diff --git a/module/block/control.php b/module/block/control.php index 4929316c2c..5e73475605 100644 --- a/module/block/control.php +++ b/module/block/control.php @@ -242,7 +242,8 @@ class block extends control $block->actionLink = ''; if($block->block == 'overview' && common::hasPriv('product', 'create')) { - $block->actionLink = html::a($this->createLink('product', 'create'), " " . $this->lang->product->create, '', "class='btn'"); + if($module == 'product' && common::hasPriv('product', 'create')) $block->actionLink = html::a($this->createLink('product', 'create'), " " . $this->lang->product->create, '', "class='btn'"); + if($module == 'project' && common::hasPriv('project', 'create')) $block->actionLink = html::a($this->createLink('project', 'create'), " " . $this->lang->project->create, '', "class='btn btn-sm'"); } if($this->block->isLongBlock($block)) @@ -835,7 +836,20 @@ class block extends control * @access public * @return void */ - public function printOverviewBlock() + public function printOverviewBlock($module = 'product') + { + $func = 'print' . ucfirst($module) . 'OverviewBlock'; + $this->view->module = $module; + $this->$func(); + } + + /** + * Print product overview block. + * + * @access public + * @return void + */ + public function printProductOverviewBlock() { $normal = 0; $closed = 0; @@ -854,6 +868,39 @@ class block extends control $this->view->closed = $closed; } + /** + * Print project overview block. + * + * @access public + * @return void + */ + public function printProjectOverviewBlock() + { + $projects = $this->loadModel('project')->getList(); + + $total = 0; + foreach($projects as $project) + { + if(!$this->project->checkPriv($project)) continue; + + if(!isset($overview[$project->status])) $overview[$project->status] = 0; + $overview[$project->status]++; + $total++; + } + + + $overviewPercent = array(); + foreach($this->lang->project->statusList as $statusKey => $statusName) + { + if(!isset($overview[$statusKey])) $overview[$statusKey] = 0; + $overviewPercent[$statusKey] = round($overview[$statusKey] / $total, 2) * 100 . '%'; + } + + $this->view->total = $total; + $this->view->overview = $overview; + $this->view->overviewPercent = $overviewPercent; + } + /** * Print project block. * diff --git a/module/block/lang/en.php b/module/block/lang/en.php index dd17671e6d..b7c7c1defe 100644 --- a/module/block/lang/en.php +++ b/module/block/lang/en.php @@ -83,21 +83,33 @@ $lang->block->default['product']['4']['params']['num'] = 15; $lang->block->default['product']['4']['params']['orderBy'] = 'id_desc'; $lang->block->default['product']['4']['params']['type'] = 'assignedTo'; -$lang->block->default['project']['1']['title'] = 'Active ' . $lang->projectCommon . 's'; -$lang->block->default['project']['1']['block'] = 'list'; +$lang->block->default['project']['1']['title'] = $lang->projectCommon . 'statistic'; +$lang->block->default['project']['1']['block'] = 'statistic'; $lang->block->default['project']['1']['grid'] = 8; -$lang->block->default['project']['1']['params']['num'] = 15; $lang->block->default['project']['1']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['1']['params']['type'] = 'undone'; +$lang->block->default['project']['1']['params']['type'] = 'noclosed'; +$lang->block->default['project']['1']['params']['num'] = 5; -$lang->block->default['project']['2']['title'] = 'My Tasks'; -$lang->block->default['project']['2']['block'] = 'task'; +$lang->block->default['project']['2']['title'] = $lang->projectCommon . 'overview'; +$lang->block->default['project']['2']['block'] = 'overview'; $lang->block->default['project']['2']['grid'] = 4; -$lang->block->default['project']['2']['params']['num'] = 15; -$lang->block->default['project']['2']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['2']['params']['type'] = 'assignedTo'; +$lang->block->default['project']['3']['title'] = 'Active ' . $lang->projectCommon . 's'; +$lang->block->default['project']['3']['block'] = 'list'; +$lang->block->default['project']['3']['grid'] = 8; + +$lang->block->default['project']['3']['params']['num'] = 15; +$lang->block->default['project']['3']['params']['orderBy'] = 'id_desc'; +$lang->block->default['project']['3']['params']['type'] = 'undone'; + +$lang->block->default['project']['4']['title'] = 'My Tasks'; +$lang->block->default['project']['4']['block'] = 'task'; +$lang->block->default['project']['4']['grid'] = 4; + +$lang->block->default['project']['4']['params']['num'] = 15; +$lang->block->default['project']['4']['params']['orderBy'] = 'id_desc'; +$lang->block->default['project']['4']['params']['type'] = 'assignedTo'; $lang->block->default['qa']['1']['title'] = 'My Bugs'; $lang->block->default['qa']['1']['block'] = 'bug'; @@ -232,6 +244,8 @@ $lang->block->modules['product']->availableBlocks->plan = 'Plans'; $lang->block->modules['product']->availableBlocks->release = 'Releases'; $lang->block->modules['project'] = new stdclass(); $lang->block->modules['project']->availableBlocks = new stdclass(); +$lang->block->modules['project']->availableBlocks->statistic = $lang->projectCommon . 'statistic'; +$lang->block->modules['project']->availableBlocks->overview = $lang->projectCommon . 'overview'; $lang->block->modules['project']->availableBlocks->list = $lang->projectCommon . 'List'; $lang->block->modules['project']->availableBlocks->task = 'Tasks'; $lang->block->modules['project']->availableBlocks->build = 'Builds'; diff --git a/module/block/lang/zh-cn.php b/module/block/lang/zh-cn.php index f34a5ab188..51dadb7892 100644 --- a/module/block/lang/zh-cn.php +++ b/module/block/lang/zh-cn.php @@ -83,21 +83,33 @@ $lang->block->default['product']['4']['params']['num'] = 15; $lang->block->default['product']['4']['params']['orderBy'] = 'id_desc'; $lang->block->default['product']['4']['params']['type'] = 'assignedTo'; -$lang->block->default['project']['1']['title'] = '进行中的' . $lang->projectCommon; -$lang->block->default['project']['1']['block'] = 'list'; +$lang->block->default['project']['1']['title'] = $lang->projectCommon . '统计'; +$lang->block->default['project']['1']['block'] = 'statistic'; $lang->block->default['project']['1']['grid'] = 8; -$lang->block->default['project']['1']['params']['num'] = 15; $lang->block->default['project']['1']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['1']['params']['type'] = 'undone'; +$lang->block->default['project']['1']['params']['type'] = 'noclosed'; +$lang->block->default['project']['1']['params']['num'] = 5; -$lang->block->default['project']['2']['title'] = '指派给我的任务'; -$lang->block->default['project']['2']['block'] = 'task'; +$lang->block->default['project']['2']['title'] = $lang->projectCommon . '总览'; +$lang->block->default['project']['2']['block'] = 'overview'; $lang->block->default['project']['2']['grid'] = 4; -$lang->block->default['project']['2']['params']['num'] = 15; -$lang->block->default['project']['2']['params']['orderBy'] = 'id_desc'; -$lang->block->default['project']['2']['params']['type'] = 'assignedTo'; +$lang->block->default['project']['3']['title'] = '进行中的' . $lang->projectCommon; +$lang->block->default['project']['3']['block'] = 'list'; +$lang->block->default['project']['3']['grid'] = 8; + +$lang->block->default['project']['3']['params']['num'] = 15; +$lang->block->default['project']['3']['params']['orderBy'] = 'id_desc'; +$lang->block->default['project']['3']['params']['type'] = 'undone'; + +$lang->block->default['project']['4']['title'] = '指派给我的任务'; +$lang->block->default['project']['4']['block'] = 'task'; +$lang->block->default['project']['4']['grid'] = 4; + +$lang->block->default['project']['4']['params']['num'] = 15; +$lang->block->default['project']['4']['params']['orderBy'] = 'id_desc'; +$lang->block->default['project']['4']['params']['type'] = 'assignedTo'; $lang->block->default['qa']['1']['title'] = '指派给我的Bug'; $lang->block->default['qa']['1']['block'] = 'bug'; @@ -232,9 +244,11 @@ $lang->block->modules['product']->availableBlocks->plan = '计划列表'; $lang->block->modules['product']->availableBlocks->release = '发布列表'; $lang->block->modules['project'] = new stdclass(); $lang->block->modules['project']->availableBlocks = new stdclass(); -$lang->block->modules['project']->availableBlocks->list = $lang->projectCommon . '列表'; -$lang->block->modules['project']->availableBlocks->task = '任务列表'; -$lang->block->modules['project']->availableBlocks->build = '版本列表'; +$lang->block->modules['project']->availableBlocks->statistic = $lang->projectCommon . '统计'; +$lang->block->modules['project']->availableBlocks->overview = $lang->projectCommon . '总览'; +$lang->block->modules['project']->availableBlocks->list = $lang->projectCommon . '列表'; +$lang->block->modules['project']->availableBlocks->task = '任务列表'; +$lang->block->modules['project']->availableBlocks->build = '版本列表'; $lang->block->modules['qa'] = new stdclass(); $lang->block->modules['qa']->availableBlocks = new stdclass(); $lang->block->modules['qa']->availableBlocks->bug = 'Bug列表'; diff --git a/module/block/view/overviewblock.html.php b/module/block/view/overviewblock.html.php index dc4cecd5ad..b6a9326c5e 100644 --- a/module/block/view/overviewblock.html.php +++ b/module/block/view/overviewblock.html.php @@ -5,34 +5,9 @@ * @copyright Copyright 2009-2018 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com) * @license ZPL (http://zpl.pub/page/zplv12.html) * @author Gang Liu - * @package block + * @package block * @version $Id$ * @link http://www.zentao.net */ ?> - -
-
-
- -
- product->all;?> - -
-
-
-
-
    -
  • product->statusList['normal'];?>  
  • -
  • product->statusList['closed'];?>  
  • -
-
-
+ diff --git a/module/block/view/productoverviewblock.html.php b/module/block/view/productoverviewblock.html.php new file mode 100644 index 0000000000..dc4cecd5ad --- /dev/null +++ b/module/block/view/productoverviewblock.html.php @@ -0,0 +1,38 @@ + + * @package block + * @version $Id$ + * @link http://www.zentao.net + */ +?> + +
+
+
+ +
+ product->all;?> + +
+
+
+
+
    +
  • product->statusList['normal'];?>  
  • +
  • product->statusList['closed'];?>  
  • +
+
+
diff --git a/module/block/view/projectoverviewblock.html.php b/module/block/view/projectoverviewblock.html.php new file mode 100644 index 0000000000..e3d9d88751 --- /dev/null +++ b/module/block/view/projectoverviewblock.html.php @@ -0,0 +1,38 @@ + + * @package block + * @version $Id$ + * @link http://www.zentao.net + */ +?> +
+
+
+
project->allProject;?>
+
+ project->viewAll;?> +
+
+
+
    + project->statusList as $statusKey => $statusName):?> +
  • + + + +
  • + +
+
+
+ + diff --git a/module/block/view/taskblock.html.php b/module/block/view/taskblock.html.php index 38104dd9ec..5348ca0c6a 100644 --- a/module/block/view/taskblock.html.php +++ b/module/block/view/taskblock.html.php @@ -14,7 +14,7 @@ '> - + @@ -36,7 +36,7 @@ - + '; - while(dowCnt < this.weekStart + 7) { - html += ''; - } - html += ''; - this.picker.find('.datetimepicker-days thead').append(html); - }, - - fillMonths: function() { - var html = '', - i = 0; - while(i < 12) { - html += '' + dates[this.language].monthsShort[i++] + ''; - } - this.picker.find('.datetimepicker-months td').html(html); - }, - - fill: function() { - if(this.date == null || this.viewDate == null) { - return; - } - var d = new Date(this.viewDate), - year = d.getUTCFullYear(), - month = d.getUTCMonth(), - dayMonth = d.getUTCDate(), - hours = d.getUTCHours(), - minutes = d.getUTCMinutes(), - startYear = this.startDate !== -Infinity ? this.startDate.getUTCFullYear() : -Infinity, - startMonth = this.startDate !== -Infinity ? this.startDate.getUTCMonth() : -Infinity, - endYear = this.endDate !== Infinity ? this.endDate.getUTCFullYear() : Infinity, - endMonth = this.endDate !== Infinity ? this.endDate.getUTCMonth() : Infinity, - currentDate = (new UTCDate(this.date.getUTCFullYear(), this.date.getUTCMonth(), this.date.getUTCDate())).valueOf(), - today = new Date(); - this.picker.find('.datetimepicker-days thead th:eq(1)') - .text(dates[this.language].months[month] + ' ' + year); - if(this.formatViewType == "time") { - var hourConverted = hours % 12 ? hours % 12 : 12; - var hoursDisplay = (hourConverted < 10 ? '0' : '') + hourConverted; - var minutesDisplay = (minutes < 10 ? '0' : '') + minutes; - var meridianDisplay = dates[this.language].meridiem[hours < 12 ? 0 : 1]; - this.picker.find('.datetimepicker-hours thead th:eq(1)') - .text(hoursDisplay + ':' + minutesDisplay + ' ' + meridianDisplay.toUpperCase()); - this.picker.find('.datetimepicker-minutes thead th:eq(1)') - .text(hoursDisplay + ':' + minutesDisplay + ' ' + meridianDisplay.toUpperCase()); - } else { - this.picker.find('.datetimepicker-hours thead th:eq(1)') - .text(dayMonth + ' ' + dates[this.language].months[month] + ' ' + year); - this.picker.find('.datetimepicker-minutes thead th:eq(1)') - .text(dayMonth + ' ' + dates[this.language].months[month] + ' ' + year); - } - this.picker.find('tfoot th.today') - .text(dates[this.language].today) - .toggle(this.todayBtn !== false); - this.updateNavArrows(); - this.fillMonths(); - /*var prevMonth = UTCDate(year, month, 0,0,0,0,0); - prevMonth.setUTCDate(prevMonth.getDate() - (prevMonth.getUTCDay() - this.weekStart + 7)%7);*/ - var prevMonth = UTCDate(year, month - 1, 28, 0, 0, 0, 0), - day = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth()); - prevMonth.setUTCDate(day); - prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.weekStart + 7) % 7); - var nextMonth = new Date(prevMonth); - nextMonth.setUTCDate(nextMonth.getUTCDate() + 42); - nextMonth = nextMonth.valueOf(); - var html = []; - var clsName; - while(prevMonth.valueOf() < nextMonth) { - if(prevMonth.getUTCDay() == this.weekStart) { - html.push(''); - } - clsName = ''; - if(prevMonth.getUTCFullYear() < year || (prevMonth.getUTCFullYear() == year && prevMonth.getUTCMonth() < month)) { - clsName += ' old'; - } else if(prevMonth.getUTCFullYear() > year || (prevMonth.getUTCFullYear() == year && prevMonth.getUTCMonth() > month)) { - clsName += ' new'; - } - // Compare internal UTC date with local today, not UTC today - if(this.todayHighlight && - prevMonth.getUTCFullYear() == today.getFullYear() && - prevMonth.getUTCMonth() == today.getMonth() && - prevMonth.getUTCDate() == today.getDate()) { - clsName += ' today'; - } - if(prevMonth.valueOf() == currentDate) { - clsName += ' active'; - } - if((prevMonth.valueOf() + 86400000) <= this.startDate || prevMonth.valueOf() > this.endDate || - $.inArray(prevMonth.getUTCDay(), this.daysOfWeekDisabled) !== -1) { - clsName += ' disabled'; - } - html.push(''); - if(prevMonth.getUTCDay() == this.weekEnd) { - html.push(''); - } - prevMonth.setUTCDate(prevMonth.getUTCDate() + 1); - } - this.picker.find('.datetimepicker-days tbody').empty().append(html.join('')); - - html = []; - var txt = '', - meridian = '', - meridianOld = ''; - for(var i = 0; i < 24; i++) { - var actual = UTCDate(year, month, dayMonth, i); - clsName = ''; - // We want the previous hour for the startDate - if((actual.valueOf() + 3600000) <= this.startDate || actual.valueOf() > this.endDate) { - clsName += ' disabled'; - } else if(hours == i) { - clsName += ' active'; - } - if(this.showMeridian && dates[this.language].meridiem.length == 2) { - meridian = (i < 12 ? dates[this.language].meridiem[0] : dates[this.language].meridiem[1]); - if(meridian != meridianOld) { - if(meridianOld != '') { - html.push(''); - } - html.push('
' + meridian.toUpperCase() + ''); - } - meridianOld = meridian; - txt = (i % 12 ? i % 12 : 12); - html.push('' + txt + ''); - if(i == 23) { - html.push('
'); - } - } else { - txt = i + ':00'; - html.push('' + txt + ''); - } - } - this.picker.find('.datetimepicker-hours td').html(html.join('')); - - html = []; - txt = '', meridian = '', meridianOld = ''; - for(var i = 0; i < 60; i += this.minuteStep) { - var actual = UTCDate(year, month, dayMonth, hours, i, 0); - clsName = ''; - if(actual.valueOf() < this.startDate || actual.valueOf() > this.endDate) { - clsName += ' disabled'; - } else if(Math.floor(minutes / this.minuteStep) == Math.floor(i / this.minuteStep)) { - clsName += ' active'; - } - if(this.showMeridian && dates[this.language].meridiem.length == 2) { - meridian = (hours < 12 ? dates[this.language].meridiem[0] : dates[this.language].meridiem[1]); - if(meridian != meridianOld) { - if(meridianOld != '') { - html.push(''); - } - html.push('
' + meridian.toUpperCase() + ''); - } - meridianOld = meridian; - txt = (hours % 12 ? hours % 12 : 12); - //html.push(''+txt+''); - html.push('' + txt + ':' + (i < 10 ? '0' + i : i) + ''); - if(i == 59) { - html.push('
'); - } - } else { - txt = i + ':00'; - //html.push(''+txt+''); - html.push('' + hours + ':' + (i < 10 ? '0' + i : i) + ''); - } - } - this.picker.find('.datetimepicker-minutes td').html(html.join('')); - - var currentYear = this.date.getUTCFullYear(); - var months = this.picker.find('.datetimepicker-months') - .find('th:eq(1)') - .text(year) - .end() - .find('span').removeClass('active'); - if(currentYear == year) { - months.eq(this.date.getUTCMonth()).addClass('active'); - } - if(year < startYear || year > endYear) { - months.addClass('disabled'); - } - if(year == startYear) { - months.slice(0, startMonth).addClass('disabled'); - } - if(year == endYear) { - months.slice(endMonth + 1).addClass('disabled'); - } - - html = ''; - year = parseInt(year / 10, 10) * 10; - var yearCont = this.picker.find('.datetimepicker-years') - .find('th:eq(1)') - .text(year + '-' + (year + 9)) - .end() - .find('td'); - year -= 1; - for(var i = -1; i < 11; i++) { - html += '' + year + ''; - year += 1; - } - yearCont.html(html); - this.place(); - }, - - updateNavArrows: function() { - var d = new Date(this.viewDate), - year = d.getUTCFullYear(), - month = d.getUTCMonth(), - day = d.getUTCDate(), - hour = d.getUTCHours(); - switch(this.viewMode) { - case 0: - if(this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() && month <= this.startDate.getUTCMonth() && day <= this.startDate.getUTCDate() && hour <= this.startDate.getUTCHours()) { - this.picker.find('.prev').css({ - visibility: 'hidden' - }); - } else { - this.picker.find('.prev').css({ - visibility: 'visible' - }); - } - if(this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() && month >= this.endDate.getUTCMonth() && day >= this.endDate.getUTCDate() && hour >= this.endDate.getUTCHours()) { - this.picker.find('.next').css({ - visibility: 'hidden' - }); - } else { - this.picker.find('.next').css({ - visibility: 'visible' - }); - } - break; - case 1: - if(this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() && month <= this.startDate.getUTCMonth() && day <= this.startDate.getUTCDate()) { - this.picker.find('.prev').css({ - visibility: 'hidden' - }); - } else { - this.picker.find('.prev').css({ - visibility: 'visible' - }); - } - if(this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() && month >= this.endDate.getUTCMonth() && day >= this.endDate.getUTCDate()) { - this.picker.find('.next').css({ - visibility: 'hidden' - }); - } else { - this.picker.find('.next').css({ - visibility: 'visible' - }); - } - break; - case 2: - if(this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() && month <= this.startDate.getUTCMonth()) { - this.picker.find('.prev').css({ - visibility: 'hidden' - }); - } else { - this.picker.find('.prev').css({ - visibility: 'visible' - }); - } - if(this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() && month >= this.endDate.getUTCMonth()) { - this.picker.find('.next').css({ - visibility: 'hidden' - }); - } else { - this.picker.find('.next').css({ - visibility: 'visible' - }); - } - break; - case 3: - case 4: - if(this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear()) { - this.picker.find('.prev').css({ - visibility: 'hidden' - }); - } else { - this.picker.find('.prev').css({ - visibility: 'visible' - }); - } - if(this.endDate !== Infinity && year >= this.endDate.getUTCFullYear()) { - this.picker.find('.next').css({ - visibility: 'hidden' - }); - } else { - this.picker.find('.next').css({ - visibility: 'visible' - }); - } - break; - } - }, - - mousewheel: function(e) { - - e.preventDefault(); - e.stopPropagation(); - - if(this.wheelPause) { - return; - } - - this.wheelPause = true; - - var originalEvent = e.originalEvent; - - var delta = originalEvent.wheelDelta; - - var mode = delta > 0 ? 1 : (delta === 0) ? 0 : -1; - - if(this.wheelViewModeNavigationInverseDirection) { - mode = -mode; - } - - this.showMode(mode); - - setTimeout($.proxy(function() { - - this.wheelPause = false - - }, this), this.wheelViewModeNavigationDelay); - - }, - - click: function(e) { - e.stopPropagation(); - e.preventDefault(); - var target = $(e.target).closest('span, td, th, legend'); - if(target.length == 1) { - if(target.is('.disabled')) { - this.element.trigger({ - type: 'outOfRange', - date: this.viewDate, - startDate: this.startDate, - endDate: this.endDate - }); - return; - } - switch(target[0].nodeName.toLowerCase()) { - case 'th': - switch(target[0].className) { - case 'switch': - this.showMode(1); - break; - case 'prev': - case 'next': - var dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className == 'prev' ? -1 : 1); - switch(this.viewMode) { - case 0: - this.viewDate = this.moveHour(this.viewDate, dir); - break; - case 1: - this.viewDate = this.moveDate(this.viewDate, dir); - break; - case 2: - this.viewDate = this.moveMonth(this.viewDate, dir); - break; - case 3: - case 4: - this.viewDate = this.moveYear(this.viewDate, dir); - break; - } - this.fill(); - break; - case 'today': - var date = new Date(); - date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0); - - // Respect startDate and endDate. - if(date < this.startDate) date = this.startDate; - else if(date > this.endDate) date = this.endDate; - - this.viewMode = this.startViewMode; - this.showMode(0); - this._setDate(date); - this.fill(); - if(this.autoclose) { - this.hide(); - } - break; - } - break; - case 'span': - if(!target.is('.disabled')) { - var year = this.viewDate.getUTCFullYear(), - month = this.viewDate.getUTCMonth(), - day = this.viewDate.getUTCDate(), - hours = this.viewDate.getUTCHours(), - minutes = this.viewDate.getUTCMinutes(), - seconds = this.viewDate.getUTCSeconds(); - - if(target.is('.month')) { - this.viewDate.setUTCDate(1); - month = target.parent().find('span').index(target); - day = this.viewDate.getUTCDate(); - this.viewDate.setUTCMonth(month); - this.element.trigger({ - type: 'changeMonth', - date: this.viewDate - }); - if(this.viewSelect >= 3) { - this._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0)); - } - } else if(target.is('.year')) { - this.viewDate.setUTCDate(1); - year = parseInt(target.text(), 10) || 0; - this.viewDate.setUTCFullYear(year); - this.element.trigger({ - type: 'changeYear', - date: this.viewDate - }); - if(this.viewSelect >= 4) { - this._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0)); - } - } else if(target.is('.hour')) { - hours = parseInt(target.text(), 10) || 0; - if(target.hasClass('hour_am') || target.hasClass('hour_pm')) { - if(hours == 12 && target.hasClass('hour_am')) { - hours = 0; - } else if(hours != 12 && target.hasClass('hour_pm')) { - hours += 12; - } - } - this.viewDate.setUTCHours(hours); - this.element.trigger({ - type: 'changeHour', - date: this.viewDate - }); - if(this.viewSelect >= 1) { - this._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0)); - } - } else if(target.is('.minute')) { - minutes = parseInt(target.text().substr(target.text().indexOf(':') + 1), 10) || 0; - this.viewDate.setUTCMinutes(minutes); - this.element.trigger({ - type: 'changeMinute', - date: this.viewDate - }); - if(this.viewSelect >= 0) { - this._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0)); - } - } - if(this.viewMode != 0) { - var oldViewMode = this.viewMode; - this.showMode(-1); - this.fill(); - if(oldViewMode == this.viewMode && this.autoclose) { - this.hide(); - } - } else { - this.fill(); - if(this.autoclose) { - this.hide(); - } - } - } - break; - case 'td': - if(target.is('.day') && !target.is('.disabled')) { - var day = parseInt(target.text(), 10) || 1; - var year = this.viewDate.getUTCFullYear(), - month = this.viewDate.getUTCMonth(), - hours = this.viewDate.getUTCHours(), - minutes = this.viewDate.getUTCMinutes(), - seconds = this.viewDate.getUTCSeconds(); - if(target.is('.old')) { - if(month === 0) { - month = 11; - year -= 1; - } else { - month -= 1; - } - } else if(target.is('.new')) { - if(month == 11) { - month = 0; - year += 1; - } else { - month += 1; - } - } - this.viewDate.setUTCFullYear(year); - this.viewDate.setUTCMonth(month, day); - this.element.trigger({ - type: 'changeDay', - date: this.viewDate - }); - if(this.viewSelect >= 2) { - this._setDate(UTCDate(year, month, day, hours, minutes, seconds, 0)); - } - } - var oldViewMode = this.viewMode; - this.showMode(-1); - this.fill(); - if(oldViewMode == this.viewMode && this.autoclose) { - this.hide(); - } - break; - } - } - }, - - _setDate: function(date, which) { - if(!which || which == 'date') - this.date = date; - if(!which || which == 'view') - this.viewDate = date; - this.fill(); - this.setValue(); - var element; - if(this.isInput) { - element = this.element; - } else if(this.component) { - element = this.element.find('input'); - } - if(element) { - element.change(); - if(this.autoclose && (!which || which == 'date')) { - //this.hide(); - } - } - this.element.trigger({ - type: 'changeDate', - date: this.date - }); - if(date === null) { - this.date = this.viewDate; - } - }, - - moveMinute: function(date, dir) { - if(!dir) return date; - var new_date = new Date(date.valueOf()); - //dir = dir > 0 ? 1 : -1; - new_date.setUTCMinutes(new_date.getUTCMinutes() + (dir * this.minuteStep)); - return new_date; - }, - - moveHour: function(date, dir) { - if(!dir) return date; - var new_date = new Date(date.valueOf()); - //dir = dir > 0 ? 1 : -1; - new_date.setUTCHours(new_date.getUTCHours() + dir); - return new_date; - }, - - moveDate: function(date, dir) { - if(!dir) return date; - var new_date = new Date(date.valueOf()); - //dir = dir > 0 ? 1 : -1; - new_date.setUTCDate(new_date.getUTCDate() + dir); - return new_date; - }, - - moveMonth: function(date, dir) { - if(!dir) return date; - var new_date = new Date(date.valueOf()), - day = new_date.getUTCDate(), - month = new_date.getUTCMonth(), - mag = Math.abs(dir), - new_month, test; - dir = dir > 0 ? 1 : -1; - if(mag == 1) { - test = dir == -1 - // If going back one month, make sure month is not current month - // (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02) - ? function() { - return new_date.getUTCMonth() == month; - } - // If going forward one month, make sure month is as expected - // (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02) - : function() { - return new_date.getUTCMonth() != new_month; - }; - new_month = month + dir; - new_date.setUTCMonth(new_month); - // Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11 - if(new_month < 0 || new_month > 11) - new_month = (new_month + 12) % 12; - } else { - // For magnitudes >1, move one month at a time... - for(var i = 0; i < mag; i++) - // ...which might decrease the day (eg, Jan 31 to Feb 28, etc)... - new_date = this.moveMonth(new_date, dir); - // ...then reset the day, keeping it in the new month - new_month = new_date.getUTCMonth(); - new_date.setUTCDate(day); - test = function() { - return new_month != new_date.getUTCMonth(); - }; - } - // Common date-resetting loop -- if date is beyond end of month, make it - // end of month - while(test()) { - new_date.setUTCDate(--day); - new_date.setUTCMonth(new_month); - } - return new_date; - }, - - moveYear: function(date, dir) { - return this.moveMonth(date, dir * 12); - }, - - dateWithinRange: function(date) { - return date >= this.startDate && date <= this.endDate; - }, - - keydown: function(e) { - if(this.picker.is(':not(:visible)')) { - if(e.keyCode == 27) // allow escape to hide and re-show picker - this.show(); - return; - } - var dateChanged = false, - dir, day, month, - newDate, newViewDate; - switch(e.keyCode) { - case 27: // escape - this.hide(); - e.preventDefault(); - break; - case 37: // left - case 39: // right - if(!this.keyboardNavigation) break; - dir = e.keyCode == 37 ? -1 : 1; - viewMode = this.viewMode; - if(e.ctrlKey) { - viewMode += 2; - } else if(e.shiftKey) { - viewMode += 1; - } - if(viewMode == 4) { - newDate = this.moveYear(this.date, dir); - newViewDate = this.moveYear(this.viewDate, dir); - } else if(viewMode == 3) { - newDate = this.moveMonth(this.date, dir); - newViewDate = this.moveMonth(this.viewDate, dir); - } else if(viewMode == 2) { - newDate = this.moveDate(this.date, dir); - newViewDate = this.moveDate(this.viewDate, dir); - } else if(viewMode == 1) { - newDate = this.moveHour(this.date, dir); - newViewDate = this.moveHour(this.viewDate, dir); - } else if(viewMode == 0) { - newDate = this.moveMinute(this.date, dir); - newViewDate = this.moveMinute(this.viewDate, dir); - } - if(this.dateWithinRange(newDate)) { - this.date = newDate; - this.viewDate = newViewDate; - this.setValue(); - this.update(); - e.preventDefault(); - dateChanged = true; - } - break; - case 38: // up - case 40: // down - if(!this.keyboardNavigation) break; - dir = e.keyCode == 38 ? -1 : 1; - viewMode = this.viewMode; - if(e.ctrlKey) { - viewMode += 2; - } else if(e.shiftKey) { - viewMode += 1; - } - if(viewMode == 4) { - newDate = this.moveYear(this.date, dir); - newViewDate = this.moveYear(this.viewDate, dir); - } else if(viewMode == 3) { - newDate = this.moveMonth(this.date, dir); - newViewDate = this.moveMonth(this.viewDate, dir); - } else if(viewMode == 2) { - newDate = this.moveDate(this.date, dir * 7); - newViewDate = this.moveDate(this.viewDate, dir * 7); - } else if(viewMode == 1) { - if(this.showMeridian) { - newDate = this.moveHour(this.date, dir * 6); - newViewDate = this.moveHour(this.viewDate, dir * 6); - } else { - newDate = this.moveHour(this.date, dir * 4); - newViewDate = this.moveHour(this.viewDate, dir * 4); - } - } else if(viewMode == 0) { - newDate = this.moveMinute(this.date, dir * 4); - newViewDate = this.moveMinute(this.viewDate, dir * 4); - } - if(this.dateWithinRange(newDate)) { - this.date = newDate; - this.viewDate = newViewDate; - this.setValue(); - this.update(); - e.preventDefault(); - dateChanged = true; - } - break; - case 13: // enter - if(this.viewMode != 0) { - var oldViewMode = this.viewMode; - this.showMode(-1); - this.fill(); - if(oldViewMode == this.viewMode && this.autoclose) { - this.hide(); - } - } else { - this.fill(); - if(this.autoclose) { - this.hide(); - } - } - e.preventDefault(); - break; - case 9: // tab - this.hide(); - break; - } - if(dateChanged) { - var element; - if(this.isInput) { - element = this.element; - } else if(this.component) { - element = this.element.find('input'); - } - if(element) { - element.change(); - } - this.element.trigger({ - type: 'changeDate', - date: this.date - }); - } - }, - - showMode: function(dir) { - if(dir) { - var newViewMode = Math.max(0, Math.min(DPGlobal.modes.length - 1, this.viewMode + dir)); - if(newViewMode >= this.minView && newViewMode <= this.maxView) { - this.element.trigger({ - type: 'changeMode', - date: this.viewDate, - oldViewMode: this.viewMode, - newViewMode: newViewMode - }); - - this.viewMode = newViewMode; - } - } - /* - vitalets: fixing bug of very special conditions: - jquery 1.7.1 + webkit + show inline datetimepicker in bootstrap popover. - Method show() does not set display css correctly and datetimepicker is not shown. - Changed to .css('display', 'block') solve the problem. - See https://github.com/vitalets/x-editable/issues/37 - - In jquery 1.7.2+ everything works fine. - */ - //this.picker.find('>div').hide().filter('.datetimepicker-'+DPGlobal.modes[this.viewMode].clsName).show(); - this.picker.find('>div').hide().filter('.datetimepicker-' + DPGlobal.modes[this.viewMode].clsName).css('display', 'block'); - this.updateNavArrows(); - }, - - reset: function(e) { - this._setDate(null, 'date'); - } - }; - - $.fn.datetimepicker = function(option) { - var args = Array.apply(null, arguments); - args.shift(); - return this.each(function() { - var $this = $(this), - data = $this.data('datetimepicker'), - options = typeof option == 'object' && option; - if(!data) { - $this.data('datetimepicker', (data = new Datetimepicker(this, $.extend({}, $.fn.datetimepicker.defaults, $this.data(), options)))); - } - if(typeof option == 'string' && typeof data[option] == 'function') { - data[option].apply(data, args); - } - }); - }; - - $.fn.datetimepicker.defaults = { - pickerPosition: 'auto-right' - }; - $.fn.datetimepicker.Constructor = Datetimepicker; - var dates = $.fn.datetimepicker.dates = { - en: { - days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], - daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], - daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"], - months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], - monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], - meridiem: ["am", "pm"], - suffix: ["st", "nd", "rd", "th"], - today: "Today" - } - }; - - dates['zh-cn'] = { - days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], - daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"], - daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], - months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], - monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], - today: "今日", - suffix: [], - meridiem: [] - }; - dates['zh-tw'] = { - days: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"], - daysShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六", "周日"], - daysMin: ["日", "一", "二", "三", "四", "五", "六", "日"], - months: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], - monthsShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], - today: "今天", - suffix: [], - meridiem: ["上午", "下午"] - }; - - var DPGlobal = { - modes: [{ - clsName: 'minutes', - navFnc: 'Hours', - navStep: 1 - }, { - clsName: 'hours', - navFnc: 'Date', - navStep: 1 - }, { - clsName: 'days', - navFnc: 'Month', - navStep: 1 - }, { - clsName: 'months', - navFnc: 'FullYear', - navStep: 1 - }, { - clsName: 'years', - navFnc: 'FullYear', - navStep: 10 - }], - isLeapYear: function(year) { - return(((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)) - }, - getDaysInMonth: function(year, month) { - return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] - }, - getDefaultFormat: function(type, field) { - if(type == "standard") { - if(field == 'input') - return 'yyyy-mm-dd hh:ii'; - else - return 'yyyy-mm-dd hh:ii:ss'; - } else if(type == "php") { - if(field == 'input') - return 'Y-m-d H:i'; - else - return 'Y-m-d H:i:s'; - } else { - throw new Error("Invalid format type."); - } - }, - validParts: function(type) { - if(type == "standard") { - return /hh?|HH?|p|P|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g; - } else if(type == "php") { - return /[dDjlNwzFmMnStyYaABgGhHis]/g; - } else { - throw new Error("Invalid format type."); - } - }, - nonpunctuation: /[^ -\/:-@\[-`{-~\t\n\rTZ]+/g, - parseFormat: function(format, type) { - // IE treats \0 as a string end in inputs (truncating the value), - // so it's a bad format delimiter, anyway - var separators = format.replace(this.validParts(type), '\0').split('\0'), - parts = format.match(this.validParts(type)); - if(!separators || !separators.length || !parts || parts.length == 0) { - throw new Error("Invalid date format."); - } - return { - separators: separators, - parts: parts - }; - }, - parseDate: function(date, format, language, type) { - if(date instanceof Date) { - var dateUTC = new Date(date.valueOf() - date.getTimezoneOffset() * 60000); - dateUTC.setMilliseconds(0); - return dateUTC; - } - if(/^\d{4}\-\d{1,2}\-\d{1,2}$/.test(date)) { - format = this.parseFormat('yyyy-mm-dd', type); - } - if(/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}$/.test(date)) { - format = this.parseFormat('yyyy-mm-dd hh:ii', type); - } - if(/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}\:\d{1,2}[Z]{0,1}$/.test(date)) { - format = this.parseFormat('yyyy-mm-dd hh:ii:ss', type); - } - if(/^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$/.test(date)) { - var part_re = /([-+]\d+)([dmwy])/, - parts = date.match(/([-+]\d+)([dmwy])/g), - part, dir; - date = new Date(); - for(var i = 0; i < parts.length; i++) { - part = part_re.exec(parts[i]); - dir = parseInt(part[1]); - switch(part[2]) { - case 'd': - date.setUTCDate(date.getUTCDate() + dir); - break; - case 'm': - date = Datetimepicker.prototype.moveMonth.call(Datetimepicker.prototype, date, dir); - break; - case 'w': - date.setUTCDate(date.getUTCDate() + dir * 7); - break; - case 'y': - date = Datetimepicker.prototype.moveYear.call(Datetimepicker.prototype, date, dir); - break; - } - } - return UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), 0); - } - var parts = date && date.match(this.nonpunctuation) || [], - date = new Date(0, 0, 0, 0, 0, 0, 0), - parsed = {}, - setters_order = ['hh', 'h', 'ii', 'i', 'ss', 's', 'yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'D', 'DD', 'd', 'dd', 'H', 'HH', 'p', 'P'], - setters_map = { - hh: function(d, v) { - return d.setUTCHours(v); - }, - h: function(d, v) { - return d.setUTCHours(v); - }, - HH: function(d, v) { - return d.setUTCHours(v == 12 ? 0 : v); - }, - H: function(d, v) { - return d.setUTCHours(v == 12 ? 0 : v); - }, - ii: function(d, v) { - return d.setUTCMinutes(v); - }, - i: function(d, v) { - return d.setUTCMinutes(v); - }, - ss: function(d, v) { - return d.setUTCSeconds(v); - }, - s: function(d, v) { - return d.setUTCSeconds(v); - }, - yyyy: function(d, v) { - return d.setUTCFullYear(v); - }, - yy: function(d, v) { - return d.setUTCFullYear(2000 + v); - }, - m: function(d, v) { - v -= 1; - while(v < 0) v += 12; - v %= 12; - d.setUTCMonth(v); - while(d.getUTCMonth() != v) - d.setUTCDate(d.getUTCDate() - 1); - return d; - }, - d: function(d, v) { - return d.setUTCDate(v); - }, - p: function(d, v) { - return d.setUTCHours(v == 1 ? d.getUTCHours() + 12 : d.getUTCHours()); - } - }, - val, filtered, part; - setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m']; - setters_map['dd'] = setters_map['d']; - setters_map['P'] = setters_map['p']; - date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()); - if(parts.length == format.parts.length) { - for(var i = 0, cnt = format.parts.length; i < cnt; i++) { - val = parseInt(parts[i], 10); - part = format.parts[i]; - if(isNaN(val)) { - switch(part) { - case 'MM': - filtered = $(dates[language].months).filter(function() { - var m = this.slice(0, parts[i].length), - p = parts[i].slice(0, m.length); - return m == p; - }); - val = $.inArray(filtered[0], dates[language].months) + 1; - break; - case 'M': - filtered = $(dates[language].monthsShort).filter(function() { - var m = this.slice(0, parts[i].length), - p = parts[i].slice(0, m.length); - return m == p; - }); - val = $.inArray(filtered[0], dates[language].monthsShort) + 1; - break; - case 'p': - case 'P': - val = $.inArray(parts[i].toLowerCase(), dates[language].meridiem); - break; - } - } - parsed[part] = val; - } - for(var i = 0, s; i < setters_order.length; i++) { - s = setters_order[i]; - if(s in parsed && !isNaN(parsed[s])) - setters_map[s](date, parsed[s]) - } - } - return date; - }, - formatDate: function(date, format, language, type) { - if(date == null) { - return ''; - } - var val; - if(type == 'standard') { - val = { - // year - yy: date.getUTCFullYear().toString().substring(2), - yyyy: date.getUTCFullYear(), - // month - m: date.getUTCMonth() + 1, - M: dates[language].monthsShort[date.getUTCMonth()], - MM: dates[language].months[date.getUTCMonth()], - // day - d: date.getUTCDate(), - D: dates[language].daysShort[date.getUTCDay()], - DD: dates[language].days[date.getUTCDay()], - p: (dates[language].meridiem.length == 2 ? dates[language].meridiem[date.getUTCHours() < 12 ? 0 : 1] : ''), - // hour - h: date.getUTCHours(), - // minute - i: date.getUTCMinutes(), - // second - s: date.getUTCSeconds() - }; - - if(dates[language].meridiem.length == 2) { - val.H = (val.h % 12 == 0 ? 12 : val.h % 12); - } else { - val.H = val.h; - } - val.HH = (val.H < 10 ? '0' : '') + val.H; - val.P = val.p.toUpperCase(); - val.hh = (val.h < 10 ? '0' : '') + val.h; - val.ii = (val.i < 10 ? '0' : '') + val.i; - val.ss = (val.s < 10 ? '0' : '') + val.s; - val.dd = (val.d < 10 ? '0' : '') + val.d; - val.mm = (val.m < 10 ? '0' : '') + val.m; - } else if(type == 'php') { - // php format - val = { - // year - y: date.getUTCFullYear().toString().substring(2), - Y: date.getUTCFullYear(), - // month - F: dates[language].months[date.getUTCMonth()], - M: dates[language].monthsShort[date.getUTCMonth()], - n: date.getUTCMonth() + 1, - t: DPGlobal.getDaysInMonth(date.getUTCFullYear(), date.getUTCMonth()), - // day - j: date.getUTCDate(), - l: dates[language].days[date.getUTCDay()], - D: dates[language].daysShort[date.getUTCDay()], - w: date.getUTCDay(), // 0 -> 6 - N: (date.getUTCDay() == 0 ? 7 : date.getUTCDay()), // 1 -> 7 - S: (date.getUTCDate() % 10 <= dates[language].suffix.length ? dates[language].suffix[date.getUTCDate() % 10 - 1] : ''), - // hour - a: (dates[language].meridiem.length == 2 ? dates[language].meridiem[date.getUTCHours() < 12 ? 0 : 1] : ''), - g: (date.getUTCHours() % 12 == 0 ? 12 : date.getUTCHours() % 12), - G: date.getUTCHours(), - // minute - i: date.getUTCMinutes(), - // second - s: date.getUTCSeconds() - }; - val.m = (val.n < 10 ? '0' : '') + val.n; - val.d = (val.j < 10 ? '0' : '') + val.j; - val.A = val.a.toString().toUpperCase(); - val.h = (val.g < 10 ? '0' : '') + val.g; - val.H = (val.G < 10 ? '0' : '') + val.G; - val.i = (val.i < 10 ? '0' : '') + val.i; - val.s = (val.s < 10 ? '0' : '') + val.s; - } else { - throw new Error("Invalid format type."); - } - var date = [], - seps = $.extend([], format.separators); - for(var i = 0, cnt = format.parts.length; i < cnt; i++) { - if(seps.length) { - date.push(seps.shift()); - } - date.push(val[format.parts[i]]); - } - if(seps.length) { - date.push(seps.shift()); - } - return date.join(''); - }, - convertViewMode: function(viewMode) { - switch(viewMode) { - case 4: - case 'decade': - viewMode = 4; - break; - case 3: - case 'year': - viewMode = 3; - break; - case 2: - case 'month': - viewMode = 2; - break; - case 1: - case 'day': - viewMode = 1; - break; - case 0: - case 'hour': - viewMode = 0; - break; - } - - return viewMode; - }, - headTemplate: '' + - '' + - '' + - '' + - '' + - '' + - '', - contTemplate: '', - footTemplate: '' - }; - DPGlobal.template = '
' + - '
' + - '
idAB?>idAB;?> priAB?> task->name;?> name?> estimate?>deadline, 0, 4) > 0) echo $task->deadline;?>deadline, 0, 4) > 0) echo $task->deadline;?> diff --git a/module/common/lang/menuOrder.php b/module/common/lang/menuOrder.php index 1c53de9cea..342ecd1dac 100644 --- a/module/common/lang/menuOrder.php +++ b/module/common/lang/menuOrder.php @@ -48,19 +48,15 @@ $lang->branch->menuOrder = $lang->product->menuOrder; /* project menu order. */ $lang->project->menuOrder[5] = 'list'; -$lang->project->menuOrder[10] = 'index'; -$lang->project->menuOrder[15] = 'task'; +$lang->project->menuOrder[10] = 'kanban'; +$lang->project->menuOrder[15] = 'burn'; $lang->project->menuOrder[20] = 'story'; -$lang->project->menuOrder[25] = 'bug'; -$lang->project->menuOrder[30] = 'build'; -$lang->project->menuOrder[35] = 'testtask'; +$lang->project->menuOrder[25] = 'qa'; +$lang->project->menuOrder[30] = 'doc'; +$lang->project->menuOrder[35] = 'action'; $lang->project->menuOrder[40] = 'team'; -$lang->project->menuOrder[45] = 'dynamic'; -$lang->project->menuOrder[50] = 'doc'; -$lang->project->menuOrder[55] = 'product'; -$lang->project->menuOrder[60] = 'view'; -$lang->project->menuOrder[65] = 'create'; -$lang->project->menuOrder[70] = 'all'; +$lang->project->menuOrder[45] = 'product'; +$lang->project->menuOrder[50] = 'view'; $lang->task->menuOrder = $lang->project->menuOrder; $lang->build->menuOrder = $lang->project->menuOrder; diff --git a/module/common/lang/zh-cn.php b/module/common/lang/zh-cn.php index bc5832a81f..613a7b73ff 100644 --- a/module/common/lang/zh-cn.php +++ b/module/common/lang/zh-cn.php @@ -221,21 +221,42 @@ $lang->release->menu = $lang->product->menu; $lang->project = new stdclass(); $lang->project->menu = new stdclass(); -$lang->project->menu->task = array('link' => '任务|project|task|projectID=%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,burn,importbug,kanban,printkanban,tree'); +$lang->project->menu->list = array('link' => '%s', 'subModule' => 'task,tree', 'alias' => 'grouptask,importtask,importbug,tree'); +$lang->project->menu->kanban = array('link' => '看板|project|kanban|projectID=%s'); +$lang->project->menu->burn = array('link' => '燃尽图|project|burn|projectID=%s'); $lang->project->menu->story = array('link' => '需求|project|story|projectID=%s', 'subModule' => 'story', 'alias' => 'linkstory,storykanban'); -$lang->project->menu->bug = 'Bug|project|bug|projectID=%s'; -$lang->project->menu->dynamic = '动态|project|dynamic|projectID=%s'; -$lang->project->menu->build = array('link' => '版本|project|build|projectID=%s', 'subModule' => 'build'); -$lang->project->menu->testtask = array('link' => '测试单|project|testtask|projectID=%s'); -$lang->project->menu->team = array('link' => '团队|project|team|projectID=%s', 'alias' => 'managemembers'); +$lang->project->menu->qa = array('link' => '%s', 'subModule' => 'build'); $lang->project->menu->doc = array('link' => '文档|doc|objectLibs|type=project&objectID=%s&from=project', 'subModule' => 'doc'); +$lang->project->menu->action = array('link' => '%s'); $lang->project->menu->product = $lang->productCommon . '|project|manageproducts|projectID=%s'; +$lang->project->menu->team = array('link' => '团队|project|team|projectID=%s', 'alias' => 'managemembers'); $lang->project->menu->view = array('link' => '概况|project|view|projectID=%s', 'alias' => 'edit,start,suspend,putoff,close'); +$lang->project->subMenu = new stdclass(); +$lang->project->subMenu->list = new stdclass(); +$lang->project->subMenu->list->task = '任务列表|project|task|projectID=%s'; +$lang->project->subMenu->list->tree = '树状图|project|tree|projectID=%s'; +$lang->project->subMenu->list->groupTask = '分组视图|project|groupTask|projectID=%s'; + +$lang->project->subMenu->qa = new stdclass(); +$lang->project->subMenu->qa->bug = 'Bug|project|bug|projectID=%s'; +$lang->project->subMenu->qa->build = '版本|project|build|projectID=%s'; +$lang->project->subMenu->qa->testtask = '测试单|project|testtask|projectID=%s'; + +$lang->project->subMenu->action = new stdclass(); +$lang->project->subMenu->action->dynamic = '动态|project|dynamic|projectID=%s'; + +$lang->project->dividerMenu = ',story,doc,'; + $lang->task = new stdclass(); $lang->build = new stdclass(); -$lang->task->menu = $lang->project->menu; -$lang->build->menu = $lang->project->menu; +$lang->task->menu = $lang->project->menu; +$lang->task->subMenu = $lang->project->subMenu; +$lang->build->menu = $lang->project->menu; +$lang->build->subMenu = $lang->project->subMenu; + +$lang->task->dividerMenu = $lang->project->dividerMenu; +$lang->build->dividerMenu = $lang->project->dividerMenu; /* QA视图菜单设置。*/ $lang->qa = new stdclass(); diff --git a/module/common/model.php b/module/common/model.php index 60fe2fb5ee..23a92a32f7 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -456,40 +456,38 @@ class commonModel extends model /* Cycling to print every sub menus. */ foreach($menu as $menuItem) { + if(isset($lang->$moduleName->dividerMenu) and strpos($lang->$moduleName->dividerMenu, ",{$menuItem->name},") !== false) echo "
  • "; if(isset($menuItem->hidden) && $menuItem->hidden) continue; if($isMobile and empty($menuItem->link)) continue; /* Init the these vars. */ + $alias = isset($menuItem->alias) ? $menuItem->alias : ''; + $subModule = isset($menuItem->subModule) ? explode(',', $menuItem->subModule) : array(); + $class = isset($menuItem->class) ? $menuItem->class : ''; + $active = ''; + if($subModule and in_array($currentModule, $subModule)) $active = 'active'; + if($alias and $moduleName == $currentModule and strpos(",$alias,", ",$currentMethod,") !== false) $active = 'active'; if($menuItem->link) { - $active = ''; - $float = isset($menuItem->float) ? $menuItem->float : ''; - $alias = ''; $target = ''; $module = ''; $method = ''; $link = commonModel::createMenuLink($menuItem); if(is_array($menuItem->link)) { - if(isset($menuItem->link['subModule'])) - { - $subModules = explode(',', $menuItem->link['subModule']); - if(in_array($currentModule, $subModules) and $float != 'right') $active = 'active'; - } - if(isset($menuItem->link['alias'])) $alias = $menuItem->link['alias']; if(isset($menuItem->link['target'])) $target = $menuItem->link['target']; if(isset($menuItem->link['module'])) $module = $menuItem->link['module']; if(isset($menuItem->link['method'])) $method = $menuItem->link['method']; } - if($float != 'right' and $module == $currentModule and ($method == $currentMethod or strpos(",$alias,", ",$currentMethod,") !== false)) $active = 'active'; + if($module == $currentModule and ($method == $currentMethod or strpos(",$alias,", ",$currentMethod,") !== false)) $active = 'active'; - $menuItemHtml = "
  • " . html::a($link, $menuItem->text, $target) . "
  • \n"; - if($isMobile) $menuItemHtml = html::a($link, $menuItem->text, $target, "class='$active'") . "\n"; + $menuItemHtml = "
  • " . html::a($link, $menuItem->text, $target) . "
  • \n"; + if($isMobile) $menuItemHtml = html::a($link, $menuItem->text, $target, "class='$class $active'") . "\n"; echo $menuItemHtml; } else { - echo $isMobile ? $menuItem->text : "
  • $menuItem->text
  • \n"; + echo $isMobile ? $menuItem->text : "
  • $menuItem->text
  • \n"; } } echo $isMobile ? '' : "\n"; @@ -1290,7 +1288,7 @@ EOD; if(!empty($app->user->admin)) return true; if($module == 'todo' and ($method == 'create' or $method == 'batchcreate')) return true; - if($module == 'effort' and $method == 'batchcreate') return true; + if($module == 'effort' and ($method == 'batchcreate' or $method == 'createforobject')) return true; // limited project $limitedProject = false; diff --git a/module/custom/model.php b/module/custom/model.php index 8a48482aaa..358b27fa52 100644 --- a/module/custom/model.php +++ b/module/custom/model.php @@ -209,11 +209,12 @@ class customModel extends model { if(is_object($item)) $item = (array)$item; - $label = ''; - $module = ''; - $method = ''; - $float = ''; - $fixed = ''; + $label = ''; + $module = ''; + $method = ''; + $class = ''; + $subModule = ''; + $alias = ''; $link = (is_array($item) and isset($item['link'])) ? $item['link'] : $item; /* The variable of item has not link and is not link then ignore it. */ @@ -235,31 +236,28 @@ class customModel extends model { $itemLink = array('module' => $module, 'method' => $method); if(isset($link[3])) $itemLink['vars'] = $link[3]; - if(is_array($item)) - { - if(isset($item['subModule'])) $itemLink['subModule'] = $item['subModule']; - if(isset($item['alias'])) $itemLink['alias'] = $item['alias']; - if(isset($item['target'])) $itemLink['target'] = $item['target']; - } + if(is_array($item) and isset($item['target'])) $itemLink['target'] = $item['target']; } if(is_array($item)) { - if(isset($item['float'])) $float = $item['float']; - if(isset($item['fixed'])) $fixed = $item['fixed']; + if(isset($item['class'])) $class = $item['class']; + if(isset($item['subModule'])) $subModule = $item['subModule']; + if(isset($item['alias'])) $alias = $item['alias']; } - $hidden = !$fixed && isset($customMenuMap[$name]) && isset($customMenuMap[$name]->hidden) && $customMenuMap[$name]->hidden; + $hidden = isset($customMenuMap[$name]) && isset($customMenuMap[$name]->hidden) && $customMenuMap[$name]->hidden; if(strpos($name, 'QUERY') === 0 and !isset($customMenuMap[$name])) $hidden = true; $menuItem = new stdclass(); $menuItem->name = $name; $menuItem->link = $itemLink; $menuItem->text = $label; - $menuItem->order = $fixed ? -1 : (isset($customMenuMap[$name]) && isset($customMenuMap[$name]->order) ? $customMenuMap[$name]->order : $order++); - if($float) $menuItem->float = $float; - if($fixed) $menuItem->fixed = $fixed; - if($hidden) $menuItem->hidden = $hidden; + $menuItem->order = (isset($customMenuMap[$name]) && isset($customMenuMap[$name]->order) ? $customMenuMap[$name]->order : $order++); + if($hidden) $menuItem->hidden = $hidden; + if($class) $menuItem->class = $class; + if($subModule)$menuItem->subModule = $subModule; + if($alias) $menuItem->alias = $alias; if($isTutorialMode) $menuItem->tutorial = true; /* Hidden menu by config in mobile. */ diff --git a/module/project/css/burn.css b/module/project/css/burn.css index 71404cdc9f..8f8e93dccf 100644 --- a/module/project/css/burn.css +++ b/module/project/css/burn.css @@ -1,7 +1,3 @@ -.container {max-width: 950px!important;} -.container .actions {margin-bottom: 10px; padding: 0} -.container .actions > .text {padding: 5px 5px 5px 15px; line-height: 20px} .mw-220px {max-width: 220px!important} -#wrap h1{font-size:14px;} #interval{margin-right:10px;} .canvas-wrapper {padding: 15px; border: 1px solid #ddd;} diff --git a/module/project/lang/en.php b/module/project/lang/en.php index 8b72c65986..21017b2007 100644 --- a/module/project/lang/en.php +++ b/module/project/lang/en.php @@ -146,6 +146,7 @@ $lang->project->storySort = 'Sort Story'; $lang->project->importPlanStory = 'Create ' . $lang->projectCommon . ' success!\nImport the stories with the plan?'; $lang->project->iteration = 'Iteration'; $lang->project->iterationInfo = 'Iteration %s times'; +$lang->project->viewAll = 'View All'; /* 分组浏览。*/ $lang->project->allTasks = 'All'; diff --git a/module/project/lang/zh-cn.php b/module/project/lang/zh-cn.php index f139611ddb..9e84e05f4a 100644 --- a/module/project/lang/zh-cn.php +++ b/module/project/lang/zh-cn.php @@ -147,6 +147,7 @@ $lang->project->storySort = '需求排序'; $lang->project->importPlanStory = '创建' . $lang->projectCommon . '成功!\n是否导入计划关联的相关需求?'; $lang->project->iteration = '版本迭代'; $lang->project->iterationInfo = '迭代%s次'; +$lang->project->viewAll = '查看所有'; /* 分组浏览。*/ $lang->project->allTasks = '所有'; diff --git a/module/project/model.php b/module/project/model.php index b353612eb1..c15a5e7127 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -78,9 +78,9 @@ class projectModel extends model if($project and $project->type == 'ops') { unset($this->lang->project->menu->story); - unset($this->lang->project->menu->bug); - unset($this->lang->project->menu->build); - unset($this->lang->project->menu->testtask); + unset($this->lang->project->subMenu->qa->bug); + unset($this->lang->project->subMenu->qa->build); + unset($this->lang->project->subMenu->qa->testtask); } if($projects and !isset($projects[$projectID]) and !$this->checkPriv($project)) @@ -118,6 +118,36 @@ class projectModel extends model foreach($this->lang->project->menu as $key => $menu) { $replace = $projectID; + + /* Replace for dropdown submenu. */ + if(isset($this->lang->project->subMenu->$key)) + { + $dropTitle = ''; + $hasActive = false; + $replace = "'; + $replace = "$dropTitle " . $replace; + + $this->lang->project->menu->$key['class'] = 'dropdown'; + if($hasActive) $this->lang->project->menu->$key['class'] .= ' active'; + } common::setMenuVars($this->lang->project->menu, $key, $replace); } } diff --git a/www/js/zui/min.js b/www/js/zui/min.js index 4906e4efbc..4ed85dc630 100644 --- a/www/js/zui/min.js +++ b/www/js/zui/min.js @@ -4,10026 +4,27 @@ * GitHub: https://github.com/easysoft/zui.git * Copyright (c) 2018 cnezsoft.com; Licensed MIT */ - -/* ======================================================================== - * ZUI: jquery.extensions.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function($, window, undefined) { - 'use strict'; - - /* Check jquery */ - if(typeof($) === 'undefined') throw new Error('ZUI requires jQuery'); - - // ZUI shared object - if(!$.zui) $.zui = function(obj) { - if($.isPlainObject(obj)) { - $.extend($.zui, obj); - } - }; - - var MOUSE_BUTTON_CODES = { - all: -1, - left: 0, - middle: 1, - right: 2 - }; - - var lastUuidAmend = 0; - $.zui({ - uuid: function(asNumber) { - var uuidNumber = (new Date()).getTime() * 1000 + (lastUuidAmend++) % 1000; - return asNumber ? uuidNumber : uuidNumber.toString(36); - }, - - callEvent: function(func, event, proxy) { - if($.isFunction(func)) { - if(proxy !== undefined) { - func = $.proxy(func, proxy); - } - var result = func(event); - if(event) event.result = result; - return !(result !== undefined && (!result)); - } - return 1; - }, - - clientLang: function() { - var lang; - var config = window.config; - if(typeof(config) != 'undefined' && config.clientLang) { - lang = config.clientLang; - } - if(!lang) { - var hl = $('html').attr('lang'); - lang = hl ? hl : (navigator.userLanguage || navigator.userLanguage || 'zh_cn'); - } - return lang.replace('-', '_').toLowerCase(); - }, - - strCode: function(str) { - var code = 0; - if(str && str.length) { - for(var i = 0; i < str.length; ++i) { - code += i * str.charCodeAt(i); - } - } - return code; - }, - - getMouseButtonCode: function(mouseButton) { - if(typeof mouseButton !== 'number') { - mouseButton = MOUSE_BUTTON_CODES[mouseButton]; - } - if(mouseButton === undefined || mouseButton === null) mouseButton = -1; - return mouseButton; - } - }); - - $.fn.callEvent = function(name, event, model) { - var $this = $(this); - var dotIndex = name.indexOf('.zui.'); - var shortName = dotIndex < 0 ? name : name.substring(0, dotIndex); - var e = $.Event(shortName, event); - - if((model === undefined) && dotIndex > 0) { - model = $this.data(name.substring(dotIndex + 1)); - } - - if(model && model.options) { - var func = model.options[shortName]; - if($.isFunction(func)) { - e.result = $.zui.callEvent(func, e, model); - } - } - $this.trigger(e); - return e; - }; - - $.fn.callComEvent = function(component, eventName, params) { - if (params !== undefined && !$.isArray(params)) { - params = [params]; - } - var $this = this; - var result = $this.triggerHandler(eventName, params); - - var eventCallback = component.options[eventName]; - if (eventCallback) { - result = eventCallback.apply(component, params); - } - return result; - }; -}(jQuery, window, undefined)); - - -/* ======================================================================== - * ZUI: typography.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function($) { - 'use strict'; - - $.fn.fixOlPd = function(pd) { - pd = pd || 10; - return this.each(function() { - var $ol = $(this); - $ol.css('paddingLeft', Math.ceil(Math.log10($ol.children().length)) * pd + 10); - }); - }; - - $(function() { - $('.ol-pd-fix,.article ol').fixOlPd(); - }); -}(jQuery)); - - -/* ======================================================================== - * Bootstrap: alert.js v3.0.0 - * http://twbs.github.com/bootstrap/javascript.html#alerts - * ======================================================================== - * Copyright 2013 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * ZUI: The file has been changed in ZUI. It will not keep update with the - * Bootsrap version in the future. - * http://zui.sexy - * ======================================================================== */ - - -+ function($) { - 'use strict'; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var zuiname = 'zui.alert'; - - var Alert = function(el) { - $(el).on('click', dismiss, this.close) - } - - Alert.prototype.close = function(e) { - var $this = $(this) - var selector = $this.attr('data-target') - - if(!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 - } - - var $parent = $(selector) - - if(e) e.preventDefault() - - if(!$parent.length) { - $parent = $this.hasClass('alert') ? $this : $this.parent() - } - - $parent.trigger(e = $.Event('close.' + zuiname)) - - if(e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - $parent.trigger('closed.' + zuiname).remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent - .one($.support.transition.end, removeElement) - .emulateTransitionEnd(150) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - var old = $.fn.alert - - $.fn.alert = function(option) { - return this.each(function() { - var $this = $(this) - var data = $this.data(zuiname) - - if(!data) $this.data(zuiname, (data = new Alert(this))) - if(typeof option == 'string') data[option].call($this) - }) - } - - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function() { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.' + zuiname + '.data-api', dismiss, Alert.prototype.close) - -}(window.jQuery); - -/* ======================================================================== - * ZUI: pager.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2017-2018 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function($, undefined) { - 'use strict'; - - var NAME = 'zui.pager'; // model name - - var DEFAULT_PAGER = { - page: 1, // current page index - recTotal: 0, // records total count - recPerPage: 10, // records count per page - }; - - var LANG = { - zh_cn: { - prev: '上一页', - next: '下一页', - first: '第一页', - last: '最后一页', - goto: '跳转', - pageOf: '第 {page} 页', - totalPage: '共 {totalPage} 页', - totalCount: '共 {recTotal} 项', - pageSize: '每页 {recPerPage} 项', - itemsRange: '第 {start} ~ {end} 项', - pageOfTotal: '第 {page}/{totalPage} 页' - }, - zh_tw: { - prev: '上一頁', - next: '下一頁', - first: '第一頁', - last: '最後一頁', - goto: '跳轉', - pageOf: '第 {page} 頁', - totalPage: '共 {totalPage} 頁', - totalCount: '共 {recTotal} 項', - pageSize: '每頁 {recPerPage} 項', - itemsRange: '第 {start} ~ {end} 項', - pageOfTotal: '第 {page}/{totalPage} 頁' - }, - en: { - prev: 'Prev', - next: 'Next', - first: 'First', - last: 'Last', - goto: 'Goto', - pageOf: 'Page {page}', - totalPage: '{totalPage} pages', - totalCount: '{recTotal} items', - pageSize: '{recPerPage} items per page', - itemsRange: 'From {start} to {end}', - pageOfTotal: 'Page {page} of {totalPage}' - } - }; - - // The pager model class - var Pager = function(element, options) { - var that = this; - that.name = NAME; - that.$ = $(element); - - options = that.options = $.extend({}, Pager.DEFAULTS, this.$.data(), options); - - var lang = options.lang || 'zh_cn'; - that.lang = $.isPlainObject(lang) ? ($.extend(true, {}, LANG[lang.lang || $.zui.clientLang()], lang)) : LANG[lang]; - - that.state = {}; - - that.set(options.page, options.recTotal, options.recPerPage, true); - - that.$.on('click', '.pager-goto-btn', function() { - var $goto = $(this).closest('.pager-goto'); - var page = parseInt($goto.find('.pager-goto-input').val()); - if (page !== NaN) { - that.set(page); - } - }).on('click', '.pager-item', function() { - var page = $(this).data('page'); - if (typeof page === 'number' && page > 0) { - that.set(page); - } - }).on('click', '.pager-size-menu [data-size]', function() { - var size = $(this).data('size'); - if (typeof size === 'number' && size > 0) { - that.set(-1, -1, size); - } - }); - }; - - Pager.prototype.set = function(page, recTotal, recPerPage, notTiggerChange) { - var that = this; - if (typeof page === 'object' && page !== null) { - recPerPage = page.recPerPage; - recTotal = page.recTotal; - page = page.page; - } - var state = that.state; - if (!state) { - state = $.extend({}, DEFAULT_PAGER); - } - var oldState = $.extend({}, state); - if (typeof recPerPage === 'number' && recPerPage > 0) { - state.recPerPage = recPerPage; - } - if (typeof recTotal === 'number' && recTotal >= 0) { - state.recTotal = recTotal; - } - if (typeof page === 'number' && page >= 0) { - state.page = page; - } - state.totalPage = (state.recTotal && state.recPerPage) ? (Math.ceil(state.recTotal / state.recPerPage)) : 1; - state.page = Math.max(0, Math.min(state.page, state.totalPage)); - // stateRecCount is items count in current page - state.pageRecCount = state.recTotal; - if (state.page && state.recTotal) { - if (state.page < state.totalPage) { - state.pageRecCount = state.recPerPage; - } else if (state.page > 1) { - state.pageRecCount = state.recTotal - (state.recPerPage * (state.page - 1)); - } - } - state.skip = state.page > 1 ? ((state.page - 1) * state.recPerPage) : 0; - state.start = state.skip + 1; - state.end = state.skip + state.pageRecCount; - state.prev = state.page > 1 ? (state.page - 1) : 0; - state.next = state.page < state.totalPage ? (state.page + 1) : 0; - that.state = state; - if (!notTiggerChange && (oldState.page !== state.page || oldState.recTotal !== state.recTotal || oldState.recPerPage !== state.recPerPage)) { - that.$.callComEvent(that, 'onPageChange', [state, oldState]); - } - return that.render(); - }; - - Pager.prototype.createLinkItem = function(page, text, asAElement) { - var that = this; - if (text === undefined) { - text = page; - } - var $ele = $('').attr('href', page ? that.createLink(page, that.state) : '###').html(text); - if (!asAElement) { - $ele = $('
  • ').append($ele).toggleClass('active', page === that.state.page).toggleClass('disabled', !page); - } - return $ele; - }; - - Pager.prototype.createNavItems = function(maxCount) { - var that = this; - var $nav = that.$; - var pager = that.state; - var totalPage = pager.totalPage; - var page = pager.page; - var appendItem = function(p, to) { - if(p === false) { - $nav.append(that.createLinkItem(0, to || that.options.navEllipsisItem)); - return; - } - if(to === undefined) to = p; - for(var i = p; i <= to; ++i) { - $nav.append(that.createLinkItem(i)); - } - }; - if (maxCount === undefined) { - maxCount = that.options.maxNavCount || 10; - } - appendItem(1); - if(totalPage > 1) { - if(totalPage <= maxCount) { - appendItem(2, totalPage); - } - else if(page < (maxCount - 2)) { - appendItem(2, maxCount - 2); - appendItem(false); - appendItem(totalPage); - } - else if(page > (totalPage - maxCount + 2)) { - appendItem(false); - appendItem((totalPage - maxCount + 2), totalPage); - } - else { - appendItem(false); - appendItem(page - Math.ceil((maxCount-4)/2), page + Math.floor((maxCount-4)/2)); - appendItem(false); - appendItem(totalPage); - } - } - }; - - Pager.prototype.createGoto = function() { - var that = this; - var pager = this.state; - var $goto = $('
    '); - return $goto; - }; - - Pager.prototype.createSizeMenu = function() { - var that = this; - var pager = this.state; - var $menu = $(''); - var options = that.options.pageSizeOptions; - if (typeof options === 'string') { - options = options.split(','); - } - for (var i = 0; i < options.length; ++i) { - var size = options[i]; - if (typeof size === 'string') { - size = parseInt(size); - } - var $li = $('
  • ' + size + '
  • ').toggleClass('active', size === pager.recPerPage); - $menu.append($li); - } - return $('
    ').addClass(that.options.menuDirection).append($menu); - }; - - Pager.prototype.createElement = function(element, $pager, pager) { - var that = this; - var createLinkItem= $.proxy(that.createLinkItem, that); - var lang = that.lang; - switch (element) { - case 'prev': - return createLinkItem(pager.prev, lang.prev); - case 'prev_icon': - return createLinkItem(pager.prev, ''); - case 'next': - return createLinkItem(pager.next, lang.next); - case 'next_icon': - return createLinkItem(pager.next, ''); - case 'first': - return createLinkItem(1, lang.first, true); - case 'first_icon': - return createLinkItem(1, '', true); - case 'last': - return createLinkItem(pager.totalPage, lang.last, true); - case 'last_icon': - return createLinkItem(pager.totalPage, '', true); - case 'space': - case '|': - return $('
  • '); - case 'nav': - case 'pages': - that.createNavItems(); - return; - case 'total_text': - return $(('
    ' + lang.totalCount + '
    ').format(pager)); - case 'page_text': - return $(('
    ' + lang.pageOf + '
    ').format(pager)); - case 'total_page_text': - return $(('
    ' + lang.totalPage + '
    ').format(pager)); - case 'page_of_total_text': - return $(('
    ' + lang.pageOfTotal + '
    ').format(pager)); - case 'page_size_text': - return $(('
    ' + lang.pageSize + '
    ').format(pager)); - case 'items_range_text': - return $(('
    ' + lang.itemsRange + '
    ').format(pager)); - case 'goto': - return that.createGoto(); - case 'size_menu': - return that.createSizeMenu(); - default: - return $('
  • ').html(element); - } - }; - - Pager.prototype.createLink = function(page, pager) { - if (page === undefined) { - page = this.state.page; - } - if (pager === undefined) { - pager = this.state; - } - var linkCreator = this.options.linkCreator; - if (typeof linkCreator === 'string') { - return linkCreator.format($.extend({}, pager, {page: page})); - } else if ($.isFunction(linkCreator)) { - return linkCreator(page, pager); - } - return '#page=' + page; - }; - - Pager.prototype.render = function(elements) { - var that = this; - var state = that.state; - var createElement = that.options.elementCreator || that.createElement; - var isMapperCreator = $.isPlainObject(createElement); - - elements = elements || that.elements || that.options.elements; - if (typeof elements == 'string') { - elements = elements.split(','); - } - that.elements = elements; - - that.$.empty(); - - for(var i = 0; i < elements.length; ++i) { - var element = $.trim(elements[i]); - var creator = isMapperCreator ? (createElement[element] || createElement) : createElement; - var $element = creator.call(that, element, that.$, state); - if ($element === false) { - $element = that.createElement(element, that.$, state); - } - if ($element instanceof $) { - if ($element[0].tagName !== 'LI') { - $element = $('
  • ').append($element); - } - that.$.append($element); - } - } - - // Fix page item border - var $lastItem = null; - that.$.children('li').each(function() { - var $li = $(this); - var isItem = !!$li.children('.pager-item').length; - if ($lastItem) { - $lastItem.toggleClass('pager-item-right', !isItem); - } else { - if (isItem) { - $li.addClass('pager-item-left'); - } - } - $lastItem = isItem ? $li : null; - }); - if ($lastItem) { - $lastItem.addClass('pager-item-right'); - } - - that.$.callComEvent(that, 'onRender', [state]); - return that; - }; - - // default options - Pager.DEFAULTS = $.extend({ - elements: ['first_icon', 'prev_icon', 'pages', 'next_icon', 'last_icon', 'page_of_total_text', 'items_range_text', 'total_text'], - prevIcon: 'icon-double-angle-left', - nextIcon: 'icon-double-angle-right', - firstIcon: 'icon-step-backward', - lastIcon: 'icon-step-forward', - navEllipsisItem: '', - maxNavCount: 10, - menuDirection: 'dropdown', // or dropup - pageSizeOptions: [10, 20, 30, 50, 100], - // onPageChange: null - }, DEFAULT_PAGER); - - // Extense jquery element - $.fn.pager = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new Pager(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - Pager.NAME = NAME; - - $.fn.pager.Constructor = Pager; - - // Auto call pager after document load complete - $(function() { - $('[data-ride="pager"]').pager(); - }); -}(jQuery, undefined)); - - -/* ======================================================================== - * Bootstrap: tab.js v3.0.0 - * http://twbs.github.com/bootstrap/javascript.html#tabs - * - * ZUI: The file has been changed in ZUI. It will not keep update with the - * Bootsrap version in the future. - * http://zui.sexy - * ======================================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+ function($) { - 'use strict'; - - // TAB CLASS DEFINITION - // ==================== - - var zuiname = 'zui.tab' - var Tab = function(element) { - this.element = $(element) - } - - Tab.prototype.show = function() { - var $this = this.element - var $ul = $this.closest('ul:not(.dropdown-menu)') - var selector = $this.attr('data-target') || $this.attr('data-tab') - - if(!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - if($this.parent('li').hasClass('active')) return - - var previous = $ul.find('.active:last a')[0] - var e = $.Event('show.' + zuiname, { - relatedTarget: previous - }) - - $this.trigger(e) - - if(e.isDefaultPrevented()) return - - var $target = $(selector) - - this.activate($this.parent('li'), $ul) - this.activate($target, $target.parent(), function() { - $this.trigger({ - type: 'shown.' + zuiname, - relatedTarget: previous - }) - }) - } - - Tab.prototype.activate = function(element, container, callback) { - var $active = container.find('> .active') - var transition = callback && $.support.transition && $active.hasClass('fade') - - function next() { - $active - .removeClass('active') - .find('> .dropdown-menu > .active') - .removeClass('active') - - element.addClass('active') - - if(transition) { - element[0].offsetWidth // reflow for transition - element.addClass('in') - } else { - element.removeClass('fade') - } - - if(element.parent('.dropdown-menu')) { - element.closest('li.dropdown').addClass('active') - } - - callback && callback() - } - - transition ? - $active - .one($.support.transition.end, next) - .emulateTransitionEnd(150) : - next() - - $active.removeClass('in') - } - - - // TAB PLUGIN DEFINITION - // ===================== - - var old = $.fn.tab - - $.fn.tab = function(option) { - return this.each(function() { - var $this = $(this) - var data = $this.data(zuiname) - - if(!data) $this.data(zuiname, (data = new Tab(this))) - if(typeof option == 'string') data[option]() - }) - } - - $.fn.tab.Constructor = Tab - - - // TAB NO CONFLICT - // =============== - - $.fn.tab.noConflict = function() { - $.fn.tab = old - return this - } - - - // TAB DATA-API - // ============ - - $(document).on('click.zui.tab.data-api', '[data-toggle="tab"], [data-tab]', function(e) { - e.preventDefault() - $(this).tab('show') - }) - -}(window.jQuery); - - -/* ======================================================================== - * Bootstrap: transition.js v3.2.0 - * http://getbootstrap.com/javascript/#transitions - * - * ZUI: The file has been changed in ZUI. It will not keep update with the - * Bootsrap version in the future. - * http://zui.sexy - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+ function($) { - 'use strict'; - - // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) - // ============================================================ - - function transitionEnd() { - var el = document.createElement('bootstrap') - - var transEndEventNames = { - WebkitTransition: 'webkitTransitionEnd', - MozTransition: 'transitionend', - OTransition: 'oTransitionEnd otransitionend', - transition: 'transitionend' - } - - for(var name in transEndEventNames) { - if(el.style[name] !== undefined) { - return { - end: transEndEventNames[name] - } - } - } - - return false // explicit for ie8 ( ._.) - } - - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function(duration) { - var called = false - var $el = this - $(this).one('bsTransitionEnd', function() { - called = true - }) - var callback = function() { - if(!called) $($el).trigger($.support.transition.end) - } - setTimeout(callback, duration) - return this - } - - $(function() { - $.support.transition = transitionEnd() - - if(!$.support.transition) return - - $.event.special.bsTransitionEnd = { - bindType: $.support.transition.end, - delegateType: $.support.transition.end, - handle: function(e) { - if($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) - } - } - }) - -}(jQuery); - - -/* ======================================================================== - * Bootstrap: collapse.js v3.0.0 - * http://twbs.github.com/bootstrap/javascript.html#collapse - * - * ZUI: The file has been changed in ZUI. It will not keep update with the - * Bootsrap version in the future. - * http://zui.sexy - * ======================================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ======================================================================== */ - - -+ function($) { - 'use strict'; - - var zuiname = 'zui.collapse' - - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ - - var Collapse = function(element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.transitioning = null - - if(this.options.parent) this.$parent = $(this.options.parent) - if(this.options.toggle) this.toggle() - } - - Collapse.DEFAULTS = { - toggle: true - } - - Collapse.prototype.dimension = function() { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - Collapse.prototype.show = function() { - if(this.transitioning || this.$element.hasClass('in')) return - - var startEvent = $.Event('show.' + zuiname) - this.$element.trigger(startEvent) - if(startEvent.isDefaultPrevented()) return - - var actives = this.$parent && this.$parent.find('.in') - - if(actives && actives.length) { - var hasData = actives.data(zuiname) - if(hasData && hasData.transitioning) return - actives.collapse('hide') - hasData || actives.data(zuiname, null) - } - - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - - this.transitioning = 1 - - var complete = function() { - this.$element - .removeClass('collapsing') - .addClass('in')[dimension]('auto') - this.transitioning = 0 - this.$element.trigger('shown.' + zuiname) - } - - if(!$.support.transition) return complete.call(this) - - var scrollSize = $.camelCase(['scroll', dimension].join('-')) - - this.$element - .one($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize]) - } - - Collapse.prototype.hide = function() { - if(this.transitioning || !this.$element.hasClass('in')) return - - var startEvent = $.Event('hide.' + zuiname) - this.$element.trigger(startEvent) - if(startEvent.isDefaultPrevented()) return - - var dimension = this.dimension() - - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - - this.$element - .addClass('collapsing') - .removeClass('collapse') - .removeClass('in') - - this.transitioning = 1 - - var complete = function() { - this.transitioning = 0 - this.$element - .trigger('hidden.' + zuiname) - .removeClass('collapsing') - .addClass('collapse') - } - - if(!$.support.transition) return complete.call(this) - - this.$element[dimension](0) - .one($.support.transition.end, $.proxy(complete, this)) - .emulateTransitionEnd(350) - } - - Collapse.prototype.toggle = function() { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - var old = $.fn.collapse - - $.fn.collapse = function(option) { - return this.each(function() { - var $this = $(this) - var data = $this.data(zuiname) - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if(!data) $this.data(zuiname, (data = new Collapse(this, options))) - if(typeof option == 'string') data[option]() - }) - } - - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function() { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.' + zuiname + '.data-api', '[data-toggle=collapse]', function(e) { - var $this = $(this), - href - var target = $this.attr('data-target') || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - var $target = $(target) - var data = $target.data(zuiname) - var option = data ? 'toggle' : $this.data() - var parent = $this.attr('data-parent') - var $parent = parent && $(parent) - - if(!data || !data.transitioning) { - if($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed') - $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed') - } - - $target.collapse(option) - }) - -}(window.jQuery); - - -/* ======================================================================== - * ZUI: device.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function(window, $) { - 'use strict'; - var desktopLg = 1200, - desktop = 992, - tablet = 768; - - var $window = $(window); - - var resetCssClass = function() { - var width = $window.width(); - $('html').toggleClass('screen-desktop', width >= desktop && width < desktopLg) - .toggleClass('screen-desktop-wide', width >= desktopLg) - .toggleClass('screen-tablet', width >= tablet && width < desktop) - .toggleClass('screen-phone', width < tablet) - .toggleClass('device-mobile', width < desktop) - .toggleClass('device-desktop', width >= desktop); - }; - - var classNames = ''; - var userAgent = navigator.userAgent; - if (userAgent.match(/(iPad|iPhone|iPod)/i)) { - classNames += ' os-ios'; - } else if (userAgent.match(/android/i)) { - classNames += ' os-android'; - } else if (userAgent.match(/Win/i)) { - classNames += ' os-windows'; - } else if (userAgent.match(/Mac/i)) { - classNames += ' os-mac'; - } else if (userAgent.match(/Linux/i)) { - classNames += ' os-linux'; - } else if (userAgent.match(/X11/i)) { - classNames += ' os-unix'; - } - if ('ontouchstart' in document.documentElement) { - classNames += ' is-touchable'; - } - $('html').addClass(classNames); - - $window.resize(resetCssClass); - resetCssClass(); -}(window, jQuery)); - - -/* ======================================================================== - * ZUI: browser.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function($) { - 'use strict'; - - var browseHappyTip = { - 'zh_cn': '您的浏览器版本过低,无法体验所有功能,建议升级或者更换浏览器。 了解更多...', - 'zh_tw': '您的瀏覽器版本過低,無法體驗所有功能,建議升級或者更换瀏覽器。了解更多...', - 'en': 'Your browser is too old, it has been unable to experience the colorful internet. We strongly recommend that you upgrade a better one. Learn more...' - }; - - // The browser modal class - var Browser = function() { - var ie = this.isIE() || this.isIE10() || false; - if(ie) { - for(var i = 10; i > 5; i--) { - if(this.isIE(i)) { - ie = i; - break; - } - } - } - - this.ie = ie; - - this.cssHelper(); - }; - - // Append CSS class to html tag - Browser.prototype.cssHelper = function() { - var ie = this.ie, - $html = $('html'); - $html.toggleClass('ie', ie) - .removeClass('ie-6 ie-7 ie-8 ie-9 ie-10'); - if(ie) { - $html.addClass('ie-' + ie) - .toggleClass('gt-ie-7 gte-ie-8 support-ie', ie >= 8) - .toggleClass('lte-ie-7 lt-ie-8 outdated-ie', ie < 8) - .toggleClass('gt-ie-8 gte-ie-9', ie >= 9) - .toggleClass('lte-ie-8 lt-ie-9', ie < 9) - .toggleClass('gt-ie-9 gte-ie-10', ie >= 10) - .toggleClass('lte-ie-9 lt-ie-10', ie < 10); - } - }; - - // Show browse happy tip - Browser.prototype.tip = function(showCoontent) { - var $browseHappy = $('#browseHappyTip'); - if(!$browseHappy.length) { - $browseHappy = $('
    '); - $browseHappy.prependTo('body'); - } - - $browseHappy.find('.content').html(showCoontent || this.browseHappyTip || browseHappyTip[$.zui.clientLang() || 'zh_cn']); - }; - - // Detect it is IE, can given a version - Browser.prototype.isIE = function(version) { - if(version === 10) return this.isIE10(); - var b = document.createElement('b'); - b.innerHTML = ''; - return b.getElementsByTagName('i').length === 1; - }; - - // Detect ie 10 with hack - Browser.prototype.isIE10 = function() { - return (/*@cc_on!@*/false); - }; - - $.zui({ - browser: new Browser() - }); - - $(function() { - if(!$('body').hasClass('disabled-browser-tip')) { - if($.zui.browser.ie && $.zui.browser.ie < 8) { - $.zui.browser.tip(); - } - } - }); -}(jQuery)); - - -/* ======================================================================== - * ZUI: date.js - * Date polyfills - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function() { - 'use strict'; - - /** - * Ticks of a whole day - * @type {number} - */ - Date.ONEDAY_TICKS = 24 * 3600 * 1000; - - /** - * Format date to a string - * - * @param string format - * @return string - */ - if(!Date.prototype.format) { - Date.prototype.format = function(format) { - var date = { - 'M+': this.getMonth() + 1, - 'd+': this.getDate(), - 'h+': this.getHours(), - 'm+': this.getMinutes(), - 's+': this.getSeconds(), - 'q+': Math.floor((this.getMonth() + 3) / 3), - 'S+': this.getMilliseconds() - }; - if(/(y+)/i.test(format)) { - format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length)); - } - for(var k in date) { - if(new RegExp('(' + k + ')').test(format)) { - format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ('00' + date[k]).substr(('' + date[k]).length)); - } - } - return format; - }; - } - - /** - * Add milliseconds to the date - * @param {number} value - */ - if(!Date.prototype.addMilliseconds) { - Date.prototype.addMilliseconds = function(value) { - this.setTime(this.getTime() + value); - return this; - }; - } - - - /** - * Add days to the date - * @param {number} days - */ - if(!Date.prototype.addDays) { - Date.prototype.addDays = function(days) { - this.addMilliseconds(days * Date.ONEDAY_TICKS); - return this; - }; - } - - - /** - * Clone a new date instane from the date - * @return {Date} - */ - if(!Date.prototype.clone) { - Date.prototype.clone = function() { - var date = new Date(); - date.setTime(this.getTime()); - return date; - }; - } - - - /** - * Judge the year is in a leap year - * @param {integer} year - * @return {Boolean} - */ - if(!Date.isLeapYear) { - Date.isLeapYear = function(year) { - return(((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0)); - }; - } - - if(!Date.getDaysInMonth) { - /** - * Get days number of the date - * @param {integer} year - * @param {integer} month - * @return {integer} - */ - Date.getDaysInMonth = function(year, month) { - return [31, (Date.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; - }; - } - - - /** - * Judge the date is in a leap year - * @return {Boolean} - */ - if(!Date.prototype.isLeapYear) { - Date.prototype.isLeapYear = function() { - return Date.isLeapYear(this.getFullYear()); - }; - } - - - /** - * Clear time part of the date - * @return {date} - */ - if(!Date.prototype.clearTime) { - Date.prototype.clearTime = function() { - this.setHours(0); - this.setMinutes(0); - this.setSeconds(0); - this.setMilliseconds(0); - return this; - }; - } - - - /** - * Get days of this month of the date - * @return {integer} - */ - if(!Date.prototype.getDaysInMonth) { - Date.prototype.getDaysInMonth = function() { - return Date.getDaysInMonth(this.getFullYear(), this.getMonth()); - }; - } - - - /** - * Add months to the date - * @param {date} value - */ - if(!Date.prototype.addMonths) { - Date.prototype.addMonths = function(value) { - var n = this.getDate(); - this.setDate(1); - this.setMonth(this.getMonth() + value); - this.setDate(Math.min(n, this.getDaysInMonth())); - return this; - }; - } - - - /** - * Get last week day of the date - * @param {integer} day - * @return {date} - */ - if(!Date.prototype.getLastWeekday) { - Date.prototype.getLastWeekday = function(day) { - day = day || 1; - - var d = this.clone(); - while(d.getDay() != day) { - d.addDays(-1); - } - d.clearTime(); - return d; - }; - } - - - /** - * Judge the date is same day as another date - * @param {date} date - * @return {Boolean} - */ - if(!Date.prototype.isSameDay) { - Date.prototype.isSameDay = function(date) { - return date.toDateString() === this.toDateString(); - }; - } - - - /** - * Judge the date is in same week as another date - * @param {date} date - * @return {Boolean} - */ - if(!Date.prototype.isSameWeek) { - Date.prototype.isSameWeek = function(date) { - var weekStart = this.getLastWeekday(); - var weekEnd = weekStart.clone().addDays(7); - return date >= weekStart && date < weekEnd; - }; - } - - - /** - * Judge the date is in same year as another date - * @param {date} date - * @return {Boolean} - */ - if(!Date.prototype.isSameYear) { - Date.prototype.isSameYear = function(date) { - return this.getFullYear() === date.getFullYear(); - }; - } - - /** - * Create an date instance with string, timestamp or date instance - * @param {Date|String|Number} date - * @return {Date} - */ - if (!Date.create) { - Date.create = function(date) { - if (!(date instanceof Date)) { - if (typeof date === 'number' && date < 10000000000) { - date *= 1000; - } - date = new Date(date); - } - return date; - }; - } - - if (!Date.timestamp) { - Date.timestamp = function(date) { - if (typeof date === 'number') { - if (date < 10000000000) { - date *= 1000; - } - } else { - date = Date.create(date).getTime(); - } - return date; - }; - } -}()); - - -/* ======================================================================== - * ZUI: string.js - * String Polyfill. - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function() { - 'use strict'; - - /** - * Format string with argument list or object - * @param {object | arguments} args - * @return {String} - */ - if(!String.prototype.format) { - String.prototype.format = function(args) { - var result = this; - if(arguments.length > 0) { - var reg; - if(arguments.length <= 2 && typeof(args) == 'object') { - for(var key in args) { - if(args[key] !== undefined) { - reg = new RegExp('(' + (arguments[1] ? arguments[1].replace('0', key) : '{' + key + '}') + ')', 'g'); - result = result.replace(reg, args[key]); - } - } - } else { - for(var i = 0; i < arguments.length; i++) { - if(arguments[i] !== undefined) { - reg = new RegExp('({[' + i + ']})', 'g'); - result = result.replace(reg, arguments[i]); - } - } - } - } - return result; - }; - } - - /** - * Judge the string is a integer number - * - * @access public - * @return bool - */ - if(!String.prototype.isNum) { - String.prototype.isNum = function(s) { - if(s !== null) { - var r, re; - re = /\d*/i; - r = s.match(re); - return(r == s) ? true : false; - } - return false; - }; - } - - if(!String.prototype.endsWith) { - String.prototype.endsWith = function(searchString, position) { - var subjectString = this.toString(); - if(position === undefined || position > subjectString.length) { - position = subjectString.length; - } - position -= searchString.length; - var lastIndex = subjectString.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; - } - - if(!String.prototype.startsWith) { - String.prototype.startsWith = function(searchString, position) { - position = position || 0; - return this.lastIndexOf(searchString, position) === position; - }; - } - - if(!String.prototype.includes) { - String.prototype.includes = function() { - return String.prototype.indexOf.apply(this, arguments) !== -1; - }; - } - -})(); - - -/* ======================================================================== - * Resize: resize.js [Version: 1.1] - * http://benalman.com/projects/jquery-resize-plugin/ - * - * ZUI: The file has been changed in ZUI. It will not keep update with the - * official version in the future. - * http://zui.sexy - * ======================================================================== - * opyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - * ======================================================================== */ - - -/*! +!function(t,e,i){"use strict";if("undefined"==typeof t)throw new Error("ZUI requires jQuery");t.zui||(t.zui=function(e){t.isPlainObject(e)&&t.extend(t.zui,e)});var s={all:-1,left:0,middle:1,right:2},n=0;t.zui({uuid:function(t){var e=1e3*(new Date).getTime()+n++%1e3;return t?e:e.toString(36)},callEvent:function(e,s,n){if(t.isFunction(e)){n!==i&&(e=t.proxy(e,n));var a=e(s);return s&&(s.result=a),!(a!==i&&!a)}return 1},clientLang:function(){var i,s=e.config;if("undefined"!=typeof s&&s.clientLang&&(i=s.clientLang),!i){var n=t("html").attr("lang");i=n?n:navigator.userLanguage||navigator.userLanguage||"zh_cn"}return i.replace("-","_").toLowerCase()},strCode:function(t){var e=0;if(t&&t.length)for(var i=0;i0&&(n=a.data(e.substring(o+1))),n&&n.options){var h=n.options[r];t.isFunction(h)&&(l.result=t.zui.callEvent(h,l,n))}return a.trigger(l),l},t.fn.callComEvent=function(e,s,n){n===i||t.isArray(n)||(n=[n]);var a=this,o=a.triggerHandler(s,n),r=e.options[s];return r&&(o=r.apply(e,n)),o}}(jQuery,window,void 0),function(t){"use strict";t.fn.fixOlPd=function(e){return e=e||10,this.each(function(){var i=t(this);i.css("paddingLeft",Math.ceil(Math.log10(i.children().length))*e+10)})},t(function(){t(".ol-pd-fix,.article ol").fixOlPd()})}(jQuery),+function(t){"use strict";var e='[data-dismiss="alert"]',i="zui.alert",s=function(i){t(i).on("click",e,this.close)};s.prototype.close=function(e){function s(){o.trigger("closed."+i).remove()}var n=t(this),a=n.attr("data-target");a||(a=n.attr("href"),a=a&&a.replace(/.*(?=#[^\s]*$)/,""));var o=t(a);e&&e.preventDefault(),o.length||(o=n.hasClass("alert")?n:n.parent()),o.trigger(e=t.Event("close."+i)),e.isDefaultPrevented()||(o.removeClass("in"),t.support.transition&&o.hasClass("fade")?o.one(t.support.transition.end,s).emulateTransitionEnd(150):s())};var n=t.fn.alert;t.fn.alert=function(e){return this.each(function(){var n=t(this),a=n.data(i);a||n.data(i,a=new s(this)),"string"==typeof e&&a[e].call(n)})},t.fn.alert.Constructor=s,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click."+i+".data-api",e,s.prototype.close)}(window.jQuery),function(t,e){"use strict";var i="zui.pager",s={page:1,recTotal:0,recPerPage:10},n={zh_cn:{prev:"上一页",next:"下一页",first:"第一页",last:"最后一页","goto":"跳转",pageOf:"第 {page} 页",totalPage:"共 {totalPage} 页",totalCount:"共 {recTotal} 项",pageSize:"每页 {recPerPage} 项",itemsRange:"第 {start} ~ {end} 项",pageOfTotal:"第 {page}/{totalPage} 页"},zh_tw:{prev:"上一頁",next:"下一頁",first:"第一頁",last:"最後一頁","goto":"跳轉",pageOf:"第 {page} 頁",totalPage:"共 {totalPage} 頁",totalCount:"共 {recTotal} 項",pageSize:"每頁 {recPerPage} 項",itemsRange:"第 {start} ~ {end} 項",pageOfTotal:"第 {page}/{totalPage} 頁"},en:{prev:"Prev",next:"Next",first:"First",last:"Last","goto":"Goto",pageOf:"Page {page}",totalPage:"{totalPage} pages",totalCount:"{recTotal} items",pageSize:"{recPerPage} items per page",itemsRange:"From {start} to {end}",pageOfTotal:"Page {page} of {totalPage}"}},a=function(e,s){var o=this;o.name=i,o.$=t(e),s=o.options=t.extend({},a.DEFAULTS,this.$.data(),s);var r=s.lang||"zh_cn";o.lang=t.isPlainObject(r)?t.extend(!0,{},n[r.lang||t.zui.clientLang()],r):n[r],o.state={},o.set(s.page,s.recTotal,s.recPerPage,!0),o.$.on("click",".pager-goto-btn",function(){var e=t(this).closest(".pager-goto"),i=parseInt(e.find(".pager-goto-input").val());NaN!==i&&o.set(i)}).on("click",".pager-item",function(){var e=t(this).data("page");"number"==typeof e&&e>0&&o.set(e)}).on("click",".pager-size-menu [data-size]",function(){var e=t(this).data("size");"number"==typeof e&&e>0&&o.set(-1,-1,e)})};a.prototype.set=function(e,i,n,a){var o=this;"object"==typeof e&&null!==e&&(n=e.recPerPage,i=e.recTotal,e=e.page);var r=o.state;r||(r=t.extend({},s));var l=t.extend({},r);return"number"==typeof n&&n>0&&(r.recPerPage=n),"number"==typeof i&&i>=0&&(r.recTotal=i),"number"==typeof e&&e>=0&&(r.page=e),r.totalPage=r.recTotal&&r.recPerPage?Math.ceil(r.recTotal/r.recPerPage):1,r.page=Math.max(0,Math.min(r.page,r.totalPage)),r.pageRecCount=r.recTotal,r.page&&r.recTotal&&(r.page1&&(r.pageRecCount=r.recTotal-r.recPerPage*(r.page-1))),r.skip=r.page>1?(r.page-1)*r.recPerPage:0,r.start=r.skip+1,r.end=r.skip+r.pageRecCount,r.prev=r.page>1?r.page-1:0,r.next=r.page').attr("href",i?a.createLink(i,a.state):"###").html(s);return n||(o=t("
  • ").append(o).toggleClass("active",i===a.state.page).toggleClass("disabled",!i)),o},a.prototype.createNavItems=function(t){var i=this,s=i.$,n=i.state,a=n.totalPage,o=n.page,r=function(t,n){if(t===!1)return void s.append(i.createLinkItem(0,n||i.options.navEllipsisItem));n===e&&(n=t);for(var a=t;a<=n;++a)s.append(i.createLinkItem(a))};t===e&&(t=i.options.maxNavCount||10),r(1),a>1&&(a<=t?r(2,a):oa-t+2?(r(!1),r(a-t+2,a)):(r(!1),r(o-Math.ceil((t-4)/2),o+Math.floor((t-4)/2)),r(!1),r(a)))},a.prototype.createGoto=function(){var e=this,i=this.state,s=t('
    ");return s},a.prototype.createSizeMenu=function(){var e=this,i=this.state,s=t(''),n=e.options.pageSizeOptions;"string"==typeof n&&(n=n.split(","));for(var a=0;a'+o+"
  • ").toggleClass("active",o===i.recPerPage);s.append(r)}return t('
    ').addClass(e.options.menuDirection).append(s)},a.prototype.createElement=function(e,i,s){var n=this,a=t.proxy(n.createLinkItem,n),o=n.lang;switch(e){case"prev":return a(s.prev,o.prev);case"prev_icon":return a(s.prev,'');case"next":return a(s.next,o.next);case"next_icon":return a(s.next,'');case"first":return a(1,o.first,!0);case"first_icon":return a(1,'',!0);case"last":return a(s.totalPage,o.last,!0);case"last_icon":return a(s.totalPage,'',!0);case"space":case"|":return t('
  • ');case"nav":case"pages":return void n.createNavItems();case"total_text":return t(('
    '+o.totalCount+"
    ").format(s));case"page_text":return t(('
    '+o.pageOf+"
    ").format(s));case"total_page_text":return t(('
    '+o.totalPage+"
    ").format(s));case"page_of_total_text":return t(('
    '+o.pageOfTotal+"
    ").format(s));case"page_size_text":return t(('
    '+o.pageSize+"
    ").format(s));case"items_range_text":return t(('
    '+o.itemsRange+"
    ").format(s));case"goto":return n.createGoto();case"size_menu":return n.createSizeMenu();default:return t("
  • ").html(e)}},a.prototype.createLink=function(i,s){i===e&&(i=this.state.page),s===e&&(s=this.state);var n=this.options.linkCreator;return"string"==typeof n?n.format(t.extend({},s,{page:i})):t.isFunction(n)?n(i,s):"#page="+i},a.prototype.render=function(e){var i=this,s=i.state,n=i.options.elementCreator||i.createElement,a=t.isPlainObject(n);e=e||i.elements||i.options.elements,"string"==typeof e&&(e=e.split(",")),i.elements=e,i.$.empty();for(var o=0;o").append(h)),i.$.append(h))}var c=null;return i.$.children("li").each(function(){var e=t(this),i=!!e.children(".pager-item").length;c?c.toggleClass("pager-item-right",!i):i&&e.addClass("pager-item-left"),c=i?e:null}),c&&c.addClass("pager-item-right"),i.$.callComEvent(i,"onRender",[s]),i},a.DEFAULTS=t.extend({elements:["first_icon","prev_icon","pages","next_icon","last_icon","page_of_total_text","items_range_text","total_text"],prevIcon:"icon-double-angle-left",nextIcon:"icon-double-angle-right",firstIcon:"icon-step-backward",lastIcon:"icon-step-forward",navEllipsisItem:'',maxNavCount:10,menuDirection:"dropdown",pageSizeOptions:[10,20,30,50,100]},s),t.fn.pager=function(e){return this.each(function(){var s=t(this),n=s.data(i),o="object"==typeof e&&e;n||s.data(i,n=new a(this,o)),"string"==typeof e&&n[e]()})},a.NAME=i,t.fn.pager.Constructor=a,t(function(){t('[data-ride="pager"]').pager()})}(jQuery,void 0),+function(t){"use strict";var e="zui.tab",i=function(e){this.element=t(e)};i.prototype.show=function(){var i=this.element,s=i.closest("ul:not(.dropdown-menu)"),n=i.attr("data-target")||i.attr("data-tab");if(n||(n=i.attr("href"),n=n&&n.replace(/.*(?=#[^\s]*$)/,"")),!i.parent("li").hasClass("active")){var a=s.find(".active:last a")[0],o=t.Event("show."+e,{relatedTarget:a});if(i.trigger(o),!o.isDefaultPrevented()){var r=t(n);this.activate(i.parent("li"),s),this.activate(r,r.parent(),function(){i.trigger({type:"shown."+e,relatedTarget:a})})}}},i.prototype.activate=function(e,i,s){function n(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),e.addClass("active"),o?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu")&&e.closest("li.dropdown").addClass("active"),s&&s()}var a=i.find("> .active"),o=s&&t.support.transition&&a.hasClass("fade");o?a.one(t.support.transition.end,n).emulateTransitionEnd(150):n(),a.removeClass("in")};var s=t.fn.tab;t.fn.tab=function(s){return this.each(function(){var n=t(this),a=n.data(e);a||n.data(e,a=new i(this)),"string"==typeof s&&a[s]()})},t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=s,this},t(document).on("click.zui.tab.data-api",'[data-toggle="tab"], [data-tab]',function(e){e.preventDefault(),t(this).tab("show")})}(window.jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,s=this;t(this).one("bsTransitionEnd",function(){i=!0});var n=function(){i||t(s).trigger(t.support.transition.end)};return setTimeout(n,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(t){"use strict";var e="zui.collapse",i=function(e,s){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,s),this.transitioning=null,this.options.parent&&(this.$parent=t(this.options.parent)),this.options.toggle&&this.toggle()};i.DEFAULTS={toggle:!0},i.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},i.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var i=t.Event("show."+e);if(this.$element.trigger(i),!i.isDefaultPrevented()){var s=this.$parent&&this.$parent.find(".in");if(s&&s.length){var n=s.data(e);if(n&&n.transitioning)return;s.collapse("hide"),n||s.data(e,null)}var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0),this.transitioning=1;var o=function(){this.$element.removeClass("collapsing").addClass("in")[a]("auto"),this.transitioning=0,this.$element.trigger("shown."+e)};if(!t.support.transition)return o.call(this);var r=t.camelCase(["scroll",a].join("-"));this.$element.one(t.support.transition.end,t.proxy(o,this)).emulateTransitionEnd(350)[a](this.$element[0][r])}}},i.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var i=t.Event("hide."+e);if(this.$element.trigger(i),!i.isDefaultPrevented()){var s=this.dimension();this.$element[s](this.$element[s]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var n=function(){this.transitioning=0,this.$element.trigger("hidden."+e).removeClass("collapsing").addClass("collapse")};return t.support.transition?void this.$element[s](0).one(t.support.transition.end,t.proxy(n,this)).emulateTransitionEnd(350):n.call(this)}}},i.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var s=t.fn.collapse;t.fn.collapse=function(s){return this.each(function(){var n=t(this),a=n.data(e),o=t.extend({},i.DEFAULTS,n.data(),"object"==typeof s&&s);a||n.data(e,a=new i(this,o)),"string"==typeof s&&a[s]()})},t.fn.collapse.Constructor=i,t.fn.collapse.noConflict=function(){return t.fn.collapse=s,this},t(document).on("click."+e+".data-api","[data-toggle=collapse]",function(i){var s,n=t(this),a=n.attr("data-target")||i.preventDefault()||(s=n.attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,""),o=t(a),r=o.data(e),l=r?"toggle":n.data(),h=n.attr("data-parent"),c=h&&t(h);r&&r.transitioning||(c&&c.find('[data-toggle=collapse][data-parent="'+h+'"]').not(n).addClass("collapsed"),n[o.hasClass("in")?"addClass":"removeClass"]("collapsed")),o.collapse(l)})}(window.jQuery),function(t,e){"use strict";var i=1200,s=992,n=768,a=e(t),o=function(){var t=a.width();e("html").toggleClass("screen-desktop",t>=s&&t=i).toggleClass("screen-tablet",t>=n&&t=s)},r="",l=navigator.userAgent;l.match(/(iPad|iPhone|iPod)/i)?r+=" os-ios":l.match(/android/i)?r+=" os-android":l.match(/Win/i)?r+=" os-windows":l.match(/Mac/i)?r+=" os-mac":l.match(/Linux/i)?r+=" os-linux":l.match(/X11/i)&&(r+=" os-unix"),"ontouchstart"in document.documentElement&&(r+=" is-touchable"),e("html").addClass(r),a.resize(o),o()}(window,jQuery),function(t){"use strict";var e={zh_cn:'您的浏览器版本过低,无法体验所有功能,建议升级或者更换浏览器。 了解更多...',zh_tw:'您的瀏覽器版本過低,無法體驗所有功能,建議升級或者更换瀏覽器。了解更多...',en:'Your browser is too old, it has been unable to experience the colorful internet. We strongly recommend that you upgrade a better one. Learn more...'},i=function(){var t=this.isIE()||this.isIE10()||!1;if(t)for(var e=10;e>5;e--)if(this.isIE(e)){t=e;break}this.ie=t,this.cssHelper()};i.prototype.cssHelper=function(){var e=this.ie,i=t("html");i.toggleClass("ie",e).removeClass("ie-6 ie-7 ie-8 ie-9 ie-10"),e&&i.addClass("ie-"+e).toggleClass("gt-ie-7 gte-ie-8 support-ie",e>=8).toggleClass("lte-ie-7 lt-ie-8 outdated-ie",e<8).toggleClass("gt-ie-8 gte-ie-9",e>=9).toggleClass("lte-ie-8 lt-ie-9",e<9).toggleClass("gt-ie-9 gte-ie-10",e>=10).toggleClass("lte-ie-9 lt-ie-10",e<10)},i.prototype.tip=function(i){var s=t("#browseHappyTip");s.length||(s=t('
    '),s.prependTo("body")),s.find(".content").html(i||this.browseHappyTip||e[t.zui.clientLang()||"zh_cn"])},i.prototype.isIE=function(t){if(10===t)return this.isIE10();var e=document.createElement("b");return e.innerHTML="",1===e.getElementsByTagName("i").length},i.prototype.isIE10=function(){return!1},t.zui({browser:new i}),t(function(){t("body").hasClass("disabled-browser-tip")||t.zui.browser.ie&&t.zui.browser.ie<8&&t.zui.browser.tip()})}(jQuery),function(){"use strict";Date.ONEDAY_TICKS=864e5,Date.prototype.format||(Date.prototype.format=function(t){var e={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),"S+":this.getMilliseconds()};/(y+)/i.test(t)&&(t=t.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)));for(var i in e)new RegExp("("+i+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[i]:("00"+e[i]).substr((""+e[i]).length)));return t}),Date.prototype.addMilliseconds||(Date.prototype.addMilliseconds=function(t){return this.setTime(this.getTime()+t),this}),Date.prototype.addDays||(Date.prototype.addDays=function(t){return this.addMilliseconds(t*Date.ONEDAY_TICKS),this}),Date.prototype.clone||(Date.prototype.clone=function(){var t=new Date;return t.setTime(this.getTime()),t}),Date.isLeapYear||(Date.isLeapYear=function(t){return t%4===0&&t%100!==0||t%400===0}),Date.getDaysInMonth||(Date.getDaysInMonth=function(t,e){return[31,Date.isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]}),Date.prototype.isLeapYear||(Date.prototype.isLeapYear=function(){return Date.isLeapYear(this.getFullYear())}),Date.prototype.clearTime||(Date.prototype.clearTime=function(){return this.setHours(0),this.setMinutes(0),this.setSeconds(0),this.setMilliseconds(0),this}),Date.prototype.getDaysInMonth||(Date.prototype.getDaysInMonth=function(){return Date.getDaysInMonth(this.getFullYear(),this.getMonth())}),Date.prototype.addMonths||(Date.prototype.addMonths=function(t){var e=this.getDate();return this.setDate(1),this.setMonth(this.getMonth()+t),this.setDate(Math.min(e,this.getDaysInMonth())),this}),Date.prototype.getLastWeekday||(Date.prototype.getLastWeekday=function(t){t=t||1;for(var e=this.clone();e.getDay()!=t;)e.addDays(-1);return e.clearTime(),e}),Date.prototype.isSameDay||(Date.prototype.isSameDay=function(t){return t.toDateString()===this.toDateString()}),Date.prototype.isSameWeek||(Date.prototype.isSameWeek=function(t){var e=this.getLastWeekday(),i=e.clone().addDays(7);return t>=e&&t0){var i;if(arguments.length<=2&&"object"==typeof t)for(var s in t)void 0!==t[s]&&(i=new RegExp("("+(arguments[1]?arguments[1].replace("0",s):"{"+s+"}")+")","g"),e=e.replace(i,t[s]));else for(var n=0;ni.length)&&(e=i.length),e-=t.length;var s=i.indexOf(t,e);return s!==-1&&s===e}),String.prototype.startsWith||(String.prototype.startsWith=function(t,e){return e=e||0,this.lastIndexOf(t,e)===e}),String.prototype.includes||(String.prototype.includes=function(){return String.prototype.indexOf.apply(this,arguments)!==-1})}(),/*! * jQuery resize event - v1.1 * http://benalman.com/projects/jquery-resize-plugin/ * Copyright (c) 2010 "Cowboy" Ben Alman * MIT & GPL http://benalman.com/about/license/ */ - -// Script: jQuery resize event -// -// *Version: 1.1, Last updated: 3/14/2010* -// -// Project Home - http://benalman.com/projects/jquery-resize-plugin/ -// GitHub - http://github.com/cowboy/jquery-resize/ -// Source - http://github.com/cowboy/jquery-resize/raw/master/jquery.ba-resize.js -// (Minified) - http://github.com/cowboy/jquery-resize/raw/master/jquery.ba-resize.min.js (1.0kb) -// -// About: License -// -// Copyright (c) 2010 "Cowboy" Ben Alman, -// Dual licensed under the MIT and GPL licenses. -// http://benalman.com/about/license/ -// -// About: Examples -// -// This working example, complete with fully commented code, illustrates a few -// ways in which this plugin can be used. -// -// resize event - http://benalman.com/code/projects/jquery-resize/examples/resize/ -// -// About: Support and Testing -// -// Information about what version or versions of jQuery this plugin has been -// tested with, what browsers it has been tested in, and where the unit tests -// reside (so you can test it yourself). -// -// jQuery Versions - 1.3.2, 1.4.1, 1.4.2 -// Browsers Tested - Internet Explorer 6-8, Firefox 2-3.6, Safari 3-4, Chrome, Opera 9.6-10.1. -// Unit Tests - http://benalman.com/code/projects/jquery-resize/unit/ -// -// About: Release History -// -// 1.1 - (3/14/2010) Fixed a minor bug that was causing the event to trigger -// immediately after bind in some circumstances. Also changed $.fn.data -// to $.data to improve performance. -// 1.0 - (2/10/2010) Initial release - -(function($, window, undefined) { - '$:nomunge'; // Used by YUI compressor. - - // A jQuery object containing all non-window elements to which the resize - // event is bound. - var elems = $([]), - - // Extend $.resize if it already exists, otherwise create it. - jq_resize = $.resize = $.extend($.resize, {}), - - timeout_id, - - // Reused strings. - str_setTimeout = 'setTimeout', - str_resize = 'resize', - str_data = str_resize + '-special-event', - str_delay = 'delay', - str_throttle = 'throttleWindow'; - - // Property: jQuery.resize.delay - // - // The numeric interval (in milliseconds) at which the resize event polling - // loop executes. Defaults to 250. - - jq_resize[str_delay] = 250; - - // Property: jQuery.resize.throttleWindow - // - // Throttle the native window object resize event to fire no more than once - // every milliseconds. Defaults to true. - // - // Because the window object has its own resize event, it doesn't need to be - // provided by this plugin, and its execution can be left entirely up to the - // browser. However, since certain browsers fire the resize event continuously - // while others do not, enabling this will throttle the window resize event, - // making event behavior consistent across all elements in all browsers. - // - // While setting this property to false will disable window object resize - // event throttling, please note that this property must be changed before any - // window object resize event callbacks are bound. - - jq_resize[str_throttle] = true; - - // Event: resize event - // - // Fired when an element's width or height changes. Because browsers only - // provide this event for the window element, for other elements a polling - // loop is initialized, running every milliseconds - // to see if elements' dimensions have changed. You may bind with either - // .resize( fn ) or .bind( "resize", fn ), and unbind with .unbind( "resize" ). - // - // Usage: - // - // > jQuery('selector').bind( 'resize', function(e) { - // > // element's width or height has changed! - // > ... - // > }); - // - // Additional Notes: - // - // * The polling loop is not created until at least one callback is actually - // bound to the 'resize' event, and this single polling loop is shared - // across all elements. - // - // Double firing issue in jQuery 1.3.2: - // - // While this plugin works in jQuery 1.3.2, if an element's event callbacks - // are manually triggered via .trigger( 'resize' ) or .resize() those - // callbacks may double-fire, due to limitations in the jQuery 1.3.2 special - // events system. This is not an issue when using jQuery 1.4+. - // - // > // While this works in jQuery 1.4+ - // > $(elem).css({ width: new_w, height: new_h }).resize(); - // > - // > // In jQuery 1.3.2, you need to do this: - // > var elem = $(elem); - // > elem.css({ width: new_w, height: new_h }); - // > elem.data( 'resize-special-event', { width: elem.width(), height: elem.height() } ); - // > elem.resize(); - - $.event.special[str_resize] = { - - // Called only when the first 'resize' event callback is bound per element. - setup: function() { - // Since window has its own native 'resize' event, return false so that - // jQuery will bind the event using DOM methods. Since only 'window' - // objects have a .setTimeout method, this should be a sufficient test. - // Unless, of course, we're throttling the 'resize' event for window. - if(!jq_resize[str_throttle] && this[str_setTimeout]) { - return false; - } - - var elem = $(this); - - // Add this element to the list of internal elements to monitor. - elems = elems.add(elem); - - // Initialize data store on the element. - $.data(this, str_data, { - w: elem.width(), - h: elem.height() - }); - - // If this is the first element added, start the polling loop. - if(elems.length === 1) { - loopy(); - } - }, - - // Called only when the last 'resize' event callback is unbound per element. - teardown: function() { - // Since window has its own native 'resize' event, return false so that - // jQuery will unbind the event using DOM methods. Since only 'window' - // objects have a .setTimeout method, this should be a sufficient test. - // Unless, of course, we're throttling the 'resize' event for window. - if(!jq_resize[str_throttle] && this[str_setTimeout]) { - return false; - } - - var elem = $(this); - - // Remove this element from the list of internal elements to monitor. - elems = elems.not(elem); - - // Remove any data stored on the element. - elem.removeData(str_data); - - // If this is the last element removed, stop the polling loop. - if(!elems.length) { - clearTimeout(timeout_id); - } - }, - - // Called every time a 'resize' event callback is bound per element (new in - // jQuery 1.4). - add: function(handleObj) { - // Since window has its own native 'resize' event, return false so that - // jQuery doesn't modify the event object. Unless, of course, we're - // throttling the 'resize' event for window. - if(!jq_resize[str_throttle] && this[str_setTimeout]) { - return false; - } - - var old_handler; - - // The new_handler function is executed every time the event is triggered. - // This is used to update the internal element data store with the width - // and height when the event is triggered manually, to avoid double-firing - // of the event callback. See the "Double firing issue in jQuery 1.3.2" - // comments above for more information. - - function new_handler(e, w, h) { - var elem = $(this), - data = $.data(this, str_data) || {}; - - // If called from the polling loop, w and h will be passed in as - // arguments. If called manually, via .trigger( 'resize' ) or .resize(), - // those values will need to be computed. - data.w = w !== undefined ? w : elem.width(); - data.h = h !== undefined ? h : elem.height(); - - old_handler.apply(this, arguments); - }; - - // This may seem a little complicated, but it normalizes the special event - // .add method between jQuery 1.4/1.4.1 and 1.4.2+ - if($.isFunction(handleObj)) { - // 1.4, 1.4.1 - old_handler = handleObj; - return new_handler; - } else { - // 1.4.2+ - old_handler = handleObj.handler; - handleObj.handler = new_handler; - } - } - - }; - - function loopy() { - - // Start the polling loop, asynchronously. - timeout_id = window[str_setTimeout](function() { - - // Iterate over all elements to which the 'resize' event is bound. - elems.each(function() { - var elem = $(this), - width = elem.width(), - height = elem.height(), - data = $.data(this, str_data); - - // If element size has changed since the last time, update the element - // data store and trigger the 'resize' event. - if(width !== data.w || height !== data.h) { - elem.trigger(str_resize, [data.w = width, data.h = height]); - } - - }); - - // Loop. - loopy(); - - }, jq_resize[str_delay]); - - }; - -})(jQuery, this); - - -/* ======================================================================== - * ZUI: storeb.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function(window, $) { - 'use strict'; - - var lsName = 'localStorage'; - var storage, - dataset, - pageName = 'page_' + window.location.pathname + window.location.search; - - /* The Store object */ - var Store = function() { - this.slience = true; - try { - if((lsName in window) && window[lsName] && window[lsName].setItem) { - this.enable = true; - storage = window[lsName]; - } - } catch(e){} - if(!this.enable) { - dataset = {}; - storage = { - getLength: function() { - var length = 0; - $.each(dataset, function() { - length++; - }); - return length; - }, - key: function(index) { - var key, i = 0; - $.each(dataset, function(k) { - if(i === index) { - key = k; - return false; - } - i++; - }); - return key; - }, - removeItem: function(key) { - delete dataset[key]; - }, - getItem: function(key) { - return dataset[key]; - }, - setItem: function(key, val) { - dataset[key] = val; - }, - clear: function() { - dataset = {}; - } - }; - } - this.storage = storage; - this.page = this.get(pageName, {}); - }; - - /* Save page data */ - Store.prototype.pageSave = function() { - if($.isEmptyObject(this.page)) { - this.remove(pageName); - } else { - var forDeletes = [], - i; - for(i in this.page) { - var val = this.page[i]; - if(val === null) - forDeletes.push(i); - } - for(i = forDeletes.length - 1; i >= 0; i--) { - delete this.page[forDeletes[i]]; - } - this.set(pageName, this.page); - } - }; - - /* Remove page data item */ - Store.prototype.pageRemove = function(key) { - if(typeof this.page[key] != 'undefined') { - this.page[key] = null; - this.pageSave(); - } - }; - - /* Clear page data */ - Store.prototype.pageClear = function() { - this.page = {}; - this.pageSave(); - }; - - /* Get page data */ - Store.prototype.pageGet = function(key, defaultValue) { - var val = this.page[key]; - return(defaultValue !== undefined && (val === null || val === undefined)) ? defaultValue : val; - }; - - /* Set page data */ - Store.prototype.pageSet = function(objOrKey, val) { - if($.isPlainObject(objOrKey)) { - $.extend(true, this.page, objOrKey); - } else { - this.page[this.serialize(objOrKey)] = val; - } - this.pageSave(); - }; - - /* Check enable status */ - Store.prototype.check = function() { - if(!this.enable) { - if(!this.slience) throw new Error('Browser not support localStorage or enable status been set true.'); - } - return this.enable; - }; - - /* Get length */ - Store.prototype.length = function() { - if(this.check()) { - return storage.getLength ? storage.getLength() : storage.length; - } - return 0; - }; - - /* Remove item with browser localstorage native method */ - Store.prototype.removeItem = function(key) { - storage.removeItem(key); - return this; - }; - - /* Remove item with browser localstorage native method, same as removeItem */ - Store.prototype.remove = function(key) { - return this.removeItem(key); - }; - - /* Get item value with browser localstorage native method, and without deserialize */ - Store.prototype.getItem = function(key) { - return storage.getItem(key); - }; - - /* Get item value and deserialize it, if value is null and defaultValue been given then return defaultValue */ - Store.prototype.get = function(key, defaultValue) { - var val = this.deserialize(this.getItem(key)); - if(typeof val === 'undefined' || val === null) { - if(typeof defaultValue !== 'undefined') { - return defaultValue; - } - } - return val; - }; - - /* Get item key by index and deserialize it */ - Store.prototype.key = function(index) { - return storage.key(index); - }; - - /* Set item value with browser localstorage native method, and without serialize filter */ - Store.prototype.setItem = function(key, val) { - storage.setItem(key, val); - return this; - }; - - /* Set item value, serialize it if the given value is not an string */ - Store.prototype.set = function(key, val) { - if(val === undefined) return this.remove(key); - this.setItem(key, this.serialize(val)); - return this; - }; - - /* Clear all items with browser localstorage native method */ - Store.prototype.clear = function() { - storage.clear(); - return this; - }; - - /* Iterate all items with callback */ - Store.prototype.forEach = function(callback) { - var length = this.length(); - for(var i = length - 1; i >= 0; i--) { - var key = storage.key(i); - callback(key, this.get(key)); - } - return this; - }; - - /* Get all items and set value in an object. */ - Store.prototype.getAll = function() { - var all = {}; - this.forEach(function(key, val) { - all[key] = val; - }); - - return all; - }; - - /* Serialize value with JSON.stringify */ - Store.prototype.serialize = function(value) { - if(typeof value === 'string') return value; - return JSON.stringify(value); - }; - - /* Deserialize value, with JSON.parse if the given value is not a string */ - Store.prototype.deserialize = function(value) { - if(typeof value !== 'string') return undefined; - try { - return JSON.parse(value); - } catch(e) { - return value || undefined; - } - }; - - $.zui({ - store: new Store() - }); -}(window, jQuery)); - - -/* ======================================================================== - * ZUI: searchbox.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function($) { - 'use strict'; - - var NAME = 'zui.searchBox'; // modal name - - // The searchbox modal class - var SearchBox = function(element, options) { - var that = this; - that.name = name; - that.$ = $(element); - - that.options = options = $.extend({}, SearchBox.DEFAULTS, that.$.data(), options); - - // Initialize here - var $input = that.$.is(options.inputSelector) ? that.$ : that.$.find(options.inputSelector); - if ($input.length) { - var clearChangeTimer = function() { - if (that.changeTimer) { - clearTimeout(that.changeTimer); - that.changeTimer = null; - } - }; - - var handleChange = function() { - clearChangeTimer(); - var value = that.getSearch(); - if (value !== that.lastValue) { - var isEmpty = value === ''; - $input.toggleClass('empty', isEmpty); - that.$.callComEvent(that, 'onSearchChange', [value, isEmpty]); - that.lastValue = value; - } - }; - - that.$input = $input = $input.first(); - that.lastValue = that.getSearch(); - - $input.on(options.listenEvent, function(params) { - that.changeTimer = setTimeout(function() { - handleChange(); - }, options.changeDelay); - }).on('focus', function(e) { - $input.addClass('focus'); - that.$.callComEvent(that, 'onFocus', [e]); - }).on('blur', function(e) { - $input.removeClass('focus'); - that.$.callComEvent(that, 'onBlur', [e]); - }).on('keydown', function(e) { - var handled = 0; - var keyCode = e.which; - if (keyCode === 27 && options.escToClear) { // esc - this.setSearch('', true); - handleChange(); - handled = 1; - } else if (keyCode === 13 && options.onPressEnter) { - handleChange(); - that.$.callComEvent(that, 'onPressEnter', [e]); - } - var onKeyDownResult = that.$.callComEvent(that, 'onKeyDown', [e]); - if (onKeyDownResult === false) { - handled = 1; - } - if (handled) { - e.preventDefault(); - } - }); - - that.$.on('click', '.search-clear-btn', function(e) { - that.setSearch('', true); - handleChange(); - e.preventDefault(); - }); - - handleChange(); - } else { - console.error('ZUI: search box init error, cannot find search box input element.'); - } - }; - - // default options - SearchBox.DEFAULTS = { - inputSelector: 'input[type="search"],input[type="text"]', - listenEvent: 'change input paste', - changeDelay: 500, - - // onKeyDown: null, - // onFocus: null, - // onBlur: null, - // onSearchChange: null, - // onPressEnter: null, - // escToClear: true - }; - - // Get current search string - SearchBox.prototype.getSearch = function() { - return this.$input && $.trim(this.$input.val()); - }; - - // Set current search string - SearchBox.prototype.setSearch = function(value, notTriggerChange) { - var $input = this.$input; - if ($input) { - $input.val(value); - if (!notTriggerChange) { - $input.trigger('change'); - } - } - }; - - // Focus input element - SearchBox.prototype.focus = function() { - this.$input && this.$input.focus(); - }; - - // Extense jquery element - $.fn.searchBox = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new SearchBox(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - SearchBox.NAME = NAME; - - $.fn.searchBox.Constructor = SearchBox; -}(jQuery)); - - -/* ======================================================================== - * ZUI: draggable.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function($, document) { - 'use strict'; - - var NAME = 'zui.draggable', - DEFAULTS = { - // selector: '', - container: 'body', - move: true - // mouseButton: -1 // 0, 1, 2, -1, all, left, right, middle - }; - var idIncrementer = 0; - - var Draggable = function(element, options) { - var that = this; - that.$ = $(element); - that.id = idIncrementer++; - that.options = $.extend({}, DEFAULTS, that.$.data(), options); - that.init(); - }; - - Draggable.DEFAULTS = DEFAULTS; - Draggable.NAME = NAME; - - Draggable.prototype.init = function() { - var that = this, - $root = that.$, - BEFORE = 'before', - DRAG = 'drag', - FINISH = 'finish', - eventSuffix = '.' + NAME + '.' + that.id, - mouseDownEvent = 'mousedown' + eventSuffix, - mouseUpEvent = 'mouseup' + eventSuffix, - mouseMoveEvent = 'mousemove' + eventSuffix, - setting = that.options, - selector = setting.selector, - handle = setting.handle, - $ele = $root, - isMoveFunc = $.isFunction(setting.move), - startPos, - cPos, - startOffset, - mousePos, - moved; - - var mouseMove = function(event) { - var mX = event.pageX, - mY = event.pageY; - moved = true; - var dragPos = { - left: mX - startOffset.x, - top: mY - startOffset.y - }; - - $ele.removeClass('drag-ready').addClass('dragging'); - if(setting.move) { - if (isMoveFunc) { - setting.move(dragPos, $ele); - } else { - $ele.css(dragPos); - } - } - - setting[DRAG] && setting[DRAG]({ - event: event, - element: $ele, - startOffset: startOffset, - pos: dragPos, - offset: { - x: mX - startPos.x, - y: mY - startPos.y - }, - smallOffset: { - x: mX - mousePos.x, - y: mY - mousePos.y - } - }); - mousePos.x = mX; - mousePos.y = mY; - - if(setting.stopPropagation) { - event.stopPropagation(); - } - }; - - var mouseUp = function(event) { - $(document).off(eventSuffix); - if(!moved) { - $ele.removeClass('drag-ready'); - return; - } - var endPos = { - left: event.pageX - startOffset.x, - top: event.pageY - startOffset.y - }; - $ele.removeClass('drag-ready dragging'); - if(setting.move) { - if (isMoveFunc) { - setting.move(endPos, $ele); - } else { - $ele.css(endPos); - } - } - - setting[FINISH] && setting[FINISH]({ - event: event, - element: $ele, - startOffset: startOffset, - pos: endPos, - offset: { - x: event.pageX - startPos.x, - y: event.pageY - startPos.y - }, - smallOffset: { - x: event.pageX - mousePos.x, - y: event.pageY - mousePos.y - } - }); - event.preventDefault(); - if(setting.stopPropagation) { - event.stopPropagation(); - } - }; - - var mouseDown = function(event) { - var mouseButton = $.zui.getMouseButtonCode(setting.mouseButton); - if(mouseButton > -1 && event.button !== mouseButton) { - return; - } - - var $mouseDownEle = $(this); - if(selector) { - $ele = handle ? $mouseDownEle.closest(selector) : $mouseDownEle; - } - - if(setting[BEFORE]) { - var isSure = setting[BEFORE]({ - event: event, - element: $ele - }); - if(isSure === false) return; - } - - var $container = $(setting.container), - pos = $ele.offset(); - cPos = $container.offset(); - startPos = { - x: event.pageX, - y: event.pageY - }; - startOffset = { - x: event.pageX - pos.left + cPos.left, - y: event.pageY - pos.top + cPos.top - }; - mousePos = $.extend({}, startPos); - moved = false; - - $ele.addClass('drag-ready'); - event.preventDefault(); - - if(setting.stopPropagation) { - event.stopPropagation(); - } - - $(document).on(mouseMoveEvent, mouseMove).on(mouseUpEvent, mouseUp); - }; - - if(handle) { - $root.on(mouseDownEvent, handle, mouseDown); - } else if(selector) { - $root.on(mouseDownEvent, selector, mouseDown); - } else { - $root.on(mouseDownEvent, mouseDown); - } - }; - - Draggable.prototype.destroy = function() { - var eventSuffix = '.' + NAME + '.' + this.id; - this.$.off(eventSuffix); - $(document).off(eventSuffix); - this.$.data(NAME, null); - }; - - $.fn.draggable = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new Draggable(this, options))); - if(typeof option == 'string') data[option](); - }); - }; - - $.fn.draggable.Constructor = Draggable; -}(jQuery, document)); - - -/* ======================================================================== - * ZUI: droppable.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function($, document, Math) { - 'use strict'; - - var NAME = 'zui.droppable', - DEFAULTS = { - // container: '', - // selector: '', - // handle: '', - // flex: false, - // nested: false, - target: '.droppable-target', - deviation: 5, - sensorOffsetX: 0, - sensorOffsetY: 0, - // mouseButton: -1 // 0, 1, 2, -1, all, left, right, middle - }; - var idIncrementer = 0; - - var Droppable = function(element, options) { - var that = this; - that.id = idIncrementer++; - that.$ = $(element); - that.options = $.extend({}, DEFAULTS, that.$.data(), options); - that.init(); - }; - - Droppable.DEFAULTS = DEFAULTS; - Droppable.NAME = NAME; - - Droppable.prototype.trigger = function(name, params) { - return $.zui.callEvent(this.options[name], params, this); - }; - - Droppable.prototype.init = function() { - var that = this, - $root = that.$, - setting = that.options, - deviation = setting.deviation, - eventSuffix = '.' + NAME + '.' + that.id, - mouseDownEvent = 'mousedown' + eventSuffix, - mouseUpEvent = 'mouseup' + eventSuffix, - mouseMoveEvent = 'mousemove' + eventSuffix, - selector = setting.selector, - handle = setting.handle, - flex = setting.flex, - container = setting.container, - canMoveHere = setting.canMoveHere, - $ele = $root, - isMouseDown = false, - $container = container ? $(setting.container).first() : (selector ? $root : $('body')), - $targets, - $target, - $shadow, - isIn, - isSelf, - oldCssPosition, - startOffset, - startMouseOffset, - containerOffset, - clickOffset, - mouseOffset, - lastMouseOffset, - mouseDownBackEventCall; - - var mouseMove = function(event) { - if(!isMouseDown) return; - - mouseOffset = {left: event.pageX, top: event.pageY}; - - // ignore small move - if(Math.abs(mouseOffset.left - startMouseOffset.left) < deviation && Math.abs(mouseOffset.top - startMouseOffset.top) < deviation) return; - - if($shadow === null) // create shadow - { - var cssPosition = $container.css('position'); - if(cssPosition != 'absolute' && cssPosition != 'relative' && cssPosition != 'fixed') { - oldCssPosition = cssPosition; - $container.css('position', 'relative'); - } - - $shadow = $ele.clone().removeClass('drag-from').addClass('drag-shadow').css({ - position: 'absolute', - width: $ele.outerWidth(), - transition: 'none' - }).appendTo($container); - $ele.addClass('dragging'); - - that.trigger('start', { - event: event, - element: $ele - }); - } - - var offset = { - left: mouseOffset.left - clickOffset.left, - top: mouseOffset.top - clickOffset.top - }; - var position = { - left: offset.left - containerOffset.left, - top: offset.top - containerOffset.top - }; - $shadow.css(position); - $.extend(lastMouseOffset, mouseOffset); - - var isNew = false; - isIn = false; - - if(!flex) { - $targets.removeClass('drop-to'); - } - - var $newTarget = null; - $targets.each(function() { - var t = $(this), - tPos = t.offset(), - tW = t.outerWidth(), - tH = t.outerHeight(), - tX = tPos.left + setting.sensorOffsetX, - tY = tPos.top + setting.sensorOffsetY; - - if(mouseOffset.left > tX && mouseOffset.top > tY && mouseOffset.left < (tX + tW) && mouseOffset.top < (tY + tH)) { - if($newTarget) $newTarget.removeClass('drop-to'); - $newTarget = t; - if(!setting.nested) return false; - } - }); - - if($newTarget) { - isIn = true; - var id = $newTarget.data('id'); - if($ele.data('id') != id) isSelf = false; - if($target === null || ($target.data('id') !== id && (!isSelf))) isNew = true; - $target = $newTarget; - if(flex) { - $targets.removeClass('drop-to'); - } - $target.addClass('drop-to'); - } - - - if(!flex) { - $ele.toggleClass('drop-in', isIn); - $shadow.toggleClass('drop-in', isIn); - } else if($target !== null && $target.length) { - isIn = true; - } - - if(!canMoveHere || canMoveHere($ele, $target) !== false) { - that.trigger('drag', { - event: event, - isIn: isIn, - target: $target, - element: $ele, - isNew: isNew, - selfTarget: isSelf, - clickOffset: clickOffset, - offset: offset, - position: { - left: offset.left - containerOffset.left, - top: offset.top - containerOffset.top - }, - mouseOffset: mouseOffset - }); - } - - event.preventDefault(); - }; - - var mouseUp = function(event) { - $(document).off(eventSuffix); - clearTimeout(mouseDownBackEventCall); - if(!isMouseDown) return; - - isMouseDown = false; - - if(oldCssPosition) { - $container.css('position', oldCssPosition); - } - - if($shadow === null) { - $ele.removeClass('drag-from'); - that.trigger('always', { - event: event, - cancel: true - }); - return; - } - - if(!isIn) $target = null; - var isSure = true; - mouseOffset = event ? { - left: event.pageX, - top: event.pageY - } : lastMouseOffset; - var offset = { - left: mouseOffset.left - clickOffset.left, - top: mouseOffset.top - clickOffset.top - }; - var moveOffset = { - left: mouseOffset.left - lastMouseOffset.left, - top: mouseOffset.top - lastMouseOffset.top - }; - lastMouseOffset.left = mouseOffset.left; - lastMouseOffset.top = mouseOffset.top; - var eventOptions = { - event: event, - isIn: isIn, - target: $target, - element: $ele, - isNew: (!isSelf) && $target !== null, - selfTarget: isSelf, - offset: offset, - mouseOffset: mouseOffset, - position: { - left: offset.left - containerOffset.left, - top: offset.top - containerOffset.top - }, - lastMouseOffset: lastMouseOffset, - moveOffset: moveOffset - }; - - isSure = that.trigger('beforeDrop', eventOptions); - - if(isSure && isIn) { - that.trigger('drop', eventOptions); - } - - $targets.removeClass('drop-to'); - $ele.removeClass('dragging').removeClass('drag-from'); - $shadow.remove(); - $shadow = null; - - that.trigger('finish', eventOptions); - that.trigger('always', eventOptions); - - if(event) event.preventDefault(); - }; - - var mouseDown = function(event) { - var mouseButton = $.zui.getMouseButtonCode(setting.mouseButton); - if(mouseButton > -1 && event.button !== mouseButton) { - return; - } - - var $mouseDownEle = $(this); - if(selector) { - $ele = handle ? $mouseDownEle.closest(selector) : $mouseDownEle; - } - - if($ele.hasClass('drag-shadow')) { - return; - } - - if(setting['before']) { - if(setting['before']({ - event: event, - element: $ele - }) === false) return; - } - - isMouseDown = true; - $targets = $.isFunction(setting.target) ? setting.target($root) : $container.find(setting.target), - $target = null, - $shadow = null, - isIn = false, - isSelf = true, - oldCssPosition = null, - startOffset = $ele.offset(), - containerOffset = $container.offset(); - startMouseOffset = {left: event.pageX, top: event.pageY}; - lastMouseOffset = $.extend({}, startMouseOffset); - clickOffset = { - left: startMouseOffset.left - startOffset.left, - top: startMouseOffset.top - startOffset.top - }; - - $ele.addClass('drag-from'); - $(document).on(mouseMoveEvent, mouseMove).on(mouseUpEvent, mouseUp); - mouseDownBackEventCall = setTimeout(function() { - $(document).on(mouseDownEvent, mouseUp); - }, 10); - event.preventDefault(); - }; - - if(handle) { - $root.on(mouseDownEvent, handle, mouseDown); - } else if(selector) { - $root.on(mouseDownEvent, selector, mouseDown); - } else { - $root.on(mouseDownEvent, mouseDown); - } - }; - - Droppable.prototype.destroy = function() { - var eventSuffix = '.' + NAME + '.' + this.id; - this.$.off(eventSuffix); - $(document).off(eventSuffix); - this.$.data(NAME, null); - }; - - Droppable.prototype.reset = function() { - this.destroy(); - this.init(); - }; - - $.fn.droppable = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new Droppable(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - $.fn.droppable.Constructor = Droppable; -}(jQuery, document, Math)); - -/* ======================================================================== - * Bootstrap: modal.js v3.2.0 - * http://getbootstrap.com/javascript/#modals - * - * ZUI: The file has been changed in ZUI. It will not keep update with the - * Bootsrap version in the future. - * http://zui.sexy - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== - * Updates in ZUI: - * 1. changed event namespace to *.zui.modal - * 2. added position option to ajust poisition of modal - * 3. added event 'escaping.zui.modal' with an param 'esc' to judge the esc - * key down - * 4. get moveable options value from '.modal-moveable' on '.modal-dialog' - * 5. add setMoveable method to make modal dialog moveable - * ======================================================================== */ - -+ function($, undefined) { - 'use strict'; - - // MODAL CLASS DEFINITION - // ====================== - - var zuiname = 'zui.modal' - var Modal = function(element, options) { - var that = this; - that.options = options - that.$body = $(document.body) - that.$element = $(element) - that.$backdrop = - that.isShown = null - that.scrollbarWidth = 0 - - if(options.moveable === undefined) { - that.options.moveable = that.$element.hasClass('modal-moveable'); - } - - if(options.remote) { - that.$element - .find('.modal-content') - .load(options.remote, function() { - that.$element.trigger('loaded.' + zuiname) - }) - } - } - - Modal.VERSION = '3.2.0' - - Modal.TRANSITION_DURATION = 300 - Modal.BACKDROP_TRANSITION_DURATION = 150 - - Modal.DEFAULTS = { - backdrop: true, - keyboard: true, - show: true, - // rememberPos: false, - // moveable: false, - position: 'fit' // 'center' or '40px' or '10%', - }; - - var setDialogPos = function($dialog, pos) { - var $window = $(window); - pos.left = Math.max(0, Math.min(pos.left, $window.width() - $dialog.outerWidth())); - pos.top = Math.max(0, Math.min(pos.top, $window.height() - $dialog.outerHeight())); - $dialog.css(pos); - }; - - Modal.prototype.toggle = function(_relatedTarget, position) { - return this.isShown ? this.hide() : this.show(_relatedTarget, position) - } - - Modal.prototype.ajustPosition = function(position) { - var that = this; - var options = that.options; - if(position === undefined) position = options.position; - if(position === undefined) return; - if ($.isFunction(position)) { - position = position(that); - } - var $dialog = that.$element.find('.modal-dialog'); - - var half = Math.max(0, ($(window).height() - $dialog.outerHeight()) / 2); - if (position === 'fit') { - position = {marginTop: half * 2 / 3}; - } else if (position === 'center') { - position = {marginTop: half}; - } else if (!$.isPlainObject(position)) { - position = {marginTop: position}; - } - if($dialog.hasClass('modal-moveable')) { - var pos = null; - var rememberPos = options.rememberPos; - if(rememberPos) { - if(rememberPos === true) { - pos = that.$element.data('modal-pos'); - } else if($.zui.store) { - pos = $.zui.store.pageGet(zuiname + '.rememberPos.' + rememberPos); - } - } - position = $.extend(position, {left: Math.max(0, ($(window).width() - $dialog.outerWidth()) / 2)}, pos); - if (options.moveable === 'inside') { - setDialogPos($dialog, position); - } else { - $dialog.css(position); - } - } else { - $dialog.css(position); - } - } - - Modal.prototype.setMoveale = function() { - if(!$.fn.draggable) console.error('Moveable modal requires draggable.js.'); - var that = this; - var options = that.options; - var $dialog = that.$element.find('.modal-dialog').removeClass('modal-dragged'); - $dialog.toggleClass('modal-moveable', !!options.moveable); - - if(!that.$element.data('modal-moveable-setup')) { - $dialog.draggable({ - container: that.$element, - handle: '.modal-header', - before: function() { - var marginTop = $dialog.css('margin-top'); - if (marginTop && marginTop !== '0px') { - $dialog.css('top', marginTop).css('margin-top', '').addClass('modal-dragged'); - } - }, - finish: function(e) { - var rememberPos = options.rememberPos; - if(rememberPos) { - that.$element.data('modal-pos', e.pos); - if($.zui.store && rememberPos !== true) { - $.zui.store.pageSet(zuiname + '.rememberPos.' + rememberPos, e.pos); - } - } - }, - move: options.moveable === 'inside' ? function (dragPos) { - setDialogPos($dialog, dragPos); - } : true - }); - } - } - - Modal.prototype.show = function(_relatedTarget, position) { - var that = this - var e = $.Event('show.' + zuiname, { - relatedTarget: _relatedTarget - }) - - that.$element.trigger(e) - - if(that.isShown || e.isDefaultPrevented()) return - - that.isShown = true - - if(that.options.moveable) that.setMoveale(); - - that.checkScrollbar() - if (that.options.backdrop !== false) { - that.$body.addClass('modal-open') - that.setScrollbar() - } - - that.escape() - - that.$element.on('click.dismiss.' + zuiname, '[data-dismiss="modal"]', $.proxy(that.hide, that)) - - that.backdrop(function() { - var transition = $.support.transition && that.$element.hasClass('fade') - - if(!that.$element.parent().length) { - that.$element.appendTo(that.$body) // don't move modals dom position - } - - that.$element - .show() - .scrollTop(0) - - if(transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element - .addClass('in') - .attr('aria-hidden', false) - - that.ajustPosition(position); - - that.enforceFocus() - - var e = $.Event('shown.' + zuiname, { - relatedTarget: _relatedTarget - }) - - transition ? - that.$element.find('.modal-dialog') // wait for modal to slide in - .one('bsTransitionEnd', function() { - that.$element.trigger('focus').trigger(e) - }) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.$element.trigger('focus').trigger(e) - }) - } - - Modal.prototype.hide = function(e) { - if(e) e.preventDefault() - - var that = this; - - e = $.Event('hide.' + zuiname) - - that.$element.trigger(e) - - if(!that.isShown || e.isDefaultPrevented()) return - - that.isShown = false - - if (that.options.backdrop !== false) { - that.$body.removeClass('modal-open') - that.resetScrollbar() - } - - that.escape() - - $(document).off('focusin.' + zuiname) - - that.$element - .removeClass('in') - .attr('aria-hidden', true) - .off('click.dismiss.' + zuiname) - - $.support.transition && that.$element.hasClass('fade') ? - that.$element - .one('bsTransitionEnd', $.proxy(that.hideModal, that)) - .emulateTransitionEnd(Modal.TRANSITION_DURATION) : - that.hideModal() - } - - Modal.prototype.enforceFocus = function() { - $(document) - .off('focusin.' + zuiname) // guard against infinite focus loop - .on('focusin.' + zuiname, $.proxy(function(e) { - if(this.$element[0] !== e.target && !this.$element.has(e.target).length) { - this.$element.trigger('focus') - } - }, this)) - } - - Modal.prototype.escape = function() { - if(this.isShown && this.options.keyboard) { - $(document).on('keydown.dismiss.' + zuiname, $.proxy(function(e) { - if(e.which == 27) { - var et = $.Event('escaping.' + zuiname) - var result = this.$element.triggerHandler(et, 'esc') - if(result != undefined && (!result)) return - this.hide() - } - }, this)) - } else if(!this.isShown) { - $(document).off('keydown.dismiss.' + zuiname) - } - } - - Modal.prototype.hideModal = function() { - var that = this - this.$element.hide() - this.backdrop(function() { - that.$element.trigger('hidden.' + zuiname) - }) - } - - Modal.prototype.removeBackdrop = function() { - this.$backdrop && this.$backdrop.remove() - this.$backdrop = null - } - - Modal.prototype.backdrop = function(callback) { - var that = this - var animate = this.$element.hasClass('fade') ? 'fade' : '' - - if(this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $('').appendTo("body").data(s,r);var d=function(e,s){var n=i[e];t.isFunction(n)&&c.on(s+a,n)};d("onShow","show"),d("shown","shown"),d("onHide","hide"),d("hidden","hidden"),d("loaded","loaded"),c.on("shown"+a,function(){r.isShown=!0}).on("hidden"+a,function(){r.isShown=!1}),this.$modal=c,this.$dialog=c.find(".modal-dialog"),i.mergeOptions&&(this.options=i)},r.prototype.show=function(i){var a=t.extend({},this.options,{url:this.$trigger?this.$trigger.attr("href")||this.$trigger.attr("data-url")||this.$trigger.data("url"):this.options.url},i);this.init(a);var r=this,l=this.$modal,h=this.$dialog,c=a.custom,d=h.find(".modal-body").css("padding",""),u=h.find(".modal-header"),p=h.find(".modal-content");l.toggleClass("fade",a.fade).addClass(a.className).toggleClass("modal-loading",!this.isShown),h.toggleClass("modal-md","md"===a.size).toggleClass("modal-sm","sm"===a.size).toggleClass("modal-lg","lg"===a.size).toggleClass("modal-fullscreen","fullscreen"===a.size),u.toggle(a.showHeader),u.find(".modal-icon").attr("class","modal-icon icon-"+a.icon),u.find(".modal-title-name").text(a.title||""),a.size&&"fullscreen"===a.size&&(a.width="",a.height="");var f=function(){clearTimeout(this.resizeTask),this.resizeTask=setTimeout(function(){r.ajustPosition(a.position)},100)},g=function(t,e){return"undefined"==typeof t&&(t=a.delay),setTimeout(function(){h=l.find(".modal-dialog"),a.width&&"auto"!=a.width&&h.css("width",a.width),a.height&&"auto"!=a.height&&(h.css("height",a.height),"iframe"===a.type&&d.css("height",h.height()-u.outerHeight())),r.ajustPosition(a.position),l.removeClass("modal-loading"),"iframe"!=a.type&&h.off("resize."+s).on("resize."+s,f),e&&e()},t)};if("custom"===a.type&&c)if(t.isFunction(c)){var m=c({modal:l,options:a,modalTrigger:r,ready:g});typeof m===o&&(d.html(m),g())}else c instanceof t?(d.html(t("
    ").append(c.clone()).html()),g()):(d.html(c),g());else if(a.url){var v=function(){var t=l.callComEvent(r,"broken");t&&(d.html(t),g())};if(l.attr("ref",a.url),"iframe"===a.type){l.addClass("modal-iframe"),this.firstLoad=!0;var y="iframe-"+a.name;u.detach(),d.detach(),p.empty().append(u).append(d),d.css("padding",0).html(''),a.waittime>0&&(r.waitTimeout=g(a.waittime,v));var b=document.getElementById(y);b.onload=b.onreadystatechange=function(){if(r.firstLoad&&l.addClass("modal-loading"),!this.readyState||"complete"==this.readyState){r.firstLoad=!1,a.waittime>0&&clearTimeout(r.waitTimeout);try{l.attr("ref",b.contentWindow.location.href);var t=e.frames[y].$;if(t&&"auto"===a.height&&"fullscreen"!=a.size){var i=t("body").addClass("body-modal");a.iframeBodyClass&&i.addClass(a.iframeBodyClass);var n=function(t){l.removeClass("fade");var e=i.outerHeight();t===!0&&a.onlyIncreaseHeight&&(e=Math.max(e,d.data("minModalHeight")||0),d.data("minModalHeight",e)),d.css("height",e),a.fade&&l.addClass("fade"),g()};l.callComEvent(r,"loaded",{modalType:"iframe",jQuery:t}),setTimeout(n,100),i.off("resize."+s).on("resize."+s,f)}else g();t.extend({closeModal:e.closeModal})}catch(o){g()}}}}else t.ajax(t.extend({url:a.url,success:function(i){try{var s=t(i);s.filter(".modal-dialog").length?h.replaceWith(s):s.filter(".modal-content").length?h.find(".modal-content").replaceWith(s):d.wrapInner(s)}catch(a){e.console&&e.console.warn&&console.warn("ZUI: Cannot recogernize remote content.",{error:a,data:i}),l.html(i)}l.callComEvent(r,"loaded",{modalType:n}),g()},error:v},a.ajaxOptions))}l.modal({show:"show",backdrop:a.backdrop,moveable:a.moveable,rememberPos:a.rememberPos,keyboard:a.keyboard})},r.prototype.close=function(i,s){(i||s)&&this.$modal.on("hidden"+a,function(){t.isFunction(i)&&i(),typeof s===o&&("this"===s?e.location.reload():e.location=s)}),this.$modal.modal("hide")},r.prototype.toggle=function(t){this.isShown?this.close():this.show(t)},r.prototype.ajustPosition=function(e){e=e===i?this.options.position:e,t.isFunction(e)&&(e=e(this)),this.$modal.modal("ajustPosition",e)},t.zui({ModalTrigger:r,modalTrigger:new r}),t.fn.modalTrigger=function(e,i){return t(this).each(function(){var n=t(this),a=n.data(s),l=t.extend({title:n.attr("title")||n.text(),url:n.attr("href"),type:n.hasClass("iframe")?"iframe":""},n.data(),t.isPlainObject(e)&&e);a||n.data(s,a=new r(l,n)),typeof e==o?a[e](i):l.show&&a.show(i),n.on((l.trigger||"click")+".toggle."+s,function(t){a.toggle(l),n.is("a")&&t.preventDefault()})})};var l=t.fn.modal;t.fn.modal=function(e,i){return t(this).each(function(){var s=t(this);s.hasClass("modal")?l.call(s,e,i):s.modalTrigger(e,i)})};var h=function(e){var i=typeof e;return"undefined"===i?e=t(".modal.modal-trigger"):i===o&&(e=t(e)),e&&e instanceof t?e:null},c=function(e,i,n){if(t.isFunction(e)){var a=n;n=i,i=e,e=a}e=h(e),e&&e.length&&e.each(function(){t(this).data(s).close(i,n)})},d=function(t,e){e=h(e),e&&e.length&&e.modal("ajustPosition",t)};t.zui({closeModal:c,ajustModalPosition:d}),t(document).on("click."+s+".data-api",'[data-toggle="modal"]',function(e){var i=t(this),n=i.attr("href"),a=null;try{a=t(i.attr("data-target")||n&&n.replace(/.*(?=#[^\s]+$)/,""))}catch(o){}a&&a.length||(i.data(s)?i.trigger(".toggle."+s):i.modalTrigger({show:!0})),i.is("a")&&e.preventDefault()})}(window.jQuery,window,void 0),+function(t){"use strict";var e=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.init("tooltip",t,e)};e.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.prototype.init=function(e,i,s){this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(s);for(var n=this.options.trigger.split(" "),a=n.length;a--;){var o=n[a];if("click"==o)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=o){var r="hover"==o?"mouseenter":"focus",l="hover"==o?"mouseleave":"blur";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},e.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,s){i[t]!=s&&(e[t]=s)}),e},e.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget)[this.type](this.getDelegateOptions()).data("zui."+this.type);return clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show()},e.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget)[this.type](this.getDelegateOptions()).data("zui."+this.type);return clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide()},e.prototype.show=function(e){var i=t.Event("show.zui."+this.type);if((e||this.hasContent())&&this.enabled){var s=this;if(s.$element.trigger(i),i.isDefaultPrevented())return;var n=s.tip();s.setContent(e),s.options.animation&&n.addClass("fade");var a="function"==typeof s.options.placement?s.options.placement.call(s,n[0],s.$element[0]):s.options.placement,o=/\s?auto?\s?/i,r=o.test(a);r&&(a=a.replace(o,"")||"top"),n.detach().css({top:0,left:0,display:"block"}).addClass(a),s.options.container?n.appendTo(s.options.container):n.insertAfter(s.$element);var l=s.getPosition(),h=n[0].offsetWidth,c=n[0].offsetHeight;if(r){var d=s.$element.parent(),u=a,p=document.documentElement.scrollTop||document.body.scrollTop,f="body"==s.options.container?window.innerWidth:d.outerWidth(),g="body"==s.options.container?window.innerHeight:d.outerHeight(),m="body"==s.options.container?0:d.offset().left;a="bottom"==a&&l.top+l.height+c-p>g?"top":"top"==a&&l.top-p-c<0?"bottom":"right"==a&&l.right+h>f?"left":"left"==a&&l.left-h

    '}),e.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),e.prototype.constructor=e,e.prototype.getDefaults=function(){return e.DEFAULTS},e.prototype.setContent=function(){var t=this.tip(),e=this.getTarget();if(e)return e.find(".arrow").length<1&&t.addClass("no-arrow"),void t.html(e.html());var i=this.getTitle(),s=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](i),t.find(".popover-content")[this.options.html?"html":"text"](s),t.removeClass("fade top bottom left right in"),this.options.tipId&&t.attr("id",this.options.tipId),this.options.tipClass&&t.addClass(this.options.tipClass),t.find(".popover-title").html()||t.find(".popover-title").hide()},e.prototype.hasContent=function(){return this.getTarget()||this.getTitle()||this.getContent()},e.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},e.prototype.getTarget=function(){var e=this.$element,i=this.options,s=e.attr("data-target")||("function"==typeof i.target?i.target.call(e[0]):i.target);return!!s&&("$next"==s?e.next(".popover"):t(s))},e.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},e.prototype.tip=function(){return this.$tip||(this.$tip=t(this.options.template)),this.$tip};var i=t.fn.popover;t.fn.popover=function(i){ +return this.each(function(){var s=t(this),n=s.data("zui.popover"),a="object"==typeof i&&i;n||s.data("zui.popover",n=new e(this,a)),"string"==typeof i&&n[i]()})},t.fn.popover.Constructor=e,t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(window.jQuery),+function(t){"use strict";function e(){t(n).remove(),t(a).each(function(e){var n=i(t(this));n.hasClass("open")&&(n.trigger(e=t.Event("hide."+s)),e.isDefaultPrevented()||n.removeClass("open").trigger("hidden."+s))})}function i(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var s;try{s=i&&t(i)}catch(n){}return s&&s.length?s:e.parent()}var s="zui.dropdown",n=".dropdown-backdrop",a="[data-toggle=dropdown]",o=function(e){t(e).on("click."+s,this.toggle)};o.prototype.toggle=function(n){var a=t(this);if(!a.is(".disabled, :disabled")){var o=i(a),r=o.hasClass("open");if(e(),!r){if("ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&t('',a={type:"default",placement:"top",time:4e3,parent:"body",icon:null,close:!0,fade:!0,scale:!0},o={},r=function(e,r){t.isPlainObject(e)&&(r=e,e=r.message);var l=this;r=l.options=t.extend({},a,r),l.id=r.id||s++;var h=o[l.id];h&&h.destroy(),o[l.id]=l,l.message=(r.icon?' ':"")+e,l.$=t(n.format(r)).toggleClass("fade",r.fade).toggleClass("scale",r.scale).attr("id","messager-"+l.id),r.cssClass&&l.$.addClass(r.cssClass);var c=!1,d=l.$.find(".messager-actions"),u=function(e){var s=t('
  • ' + dates[this.language].daysMin[(dowCnt++) % 7] + '
    ' + prevMonth.getUTCDate() + '
    ' + - DPGlobal.headTemplate + - DPGlobal.contTemplate + - DPGlobal.footTemplate + - '
    ' + - '' + - '
    ' + - '' + - DPGlobal.headTemplate + - DPGlobal.contTemplate + - DPGlobal.footTemplate + - '
    ' + - '
    ' + - '
    ' + - '' + - DPGlobal.headTemplate + - '' + - DPGlobal.footTemplate + - '
    ' + - '
    ' + - '
    ' + - '' + - DPGlobal.headTemplate + - DPGlobal.contTemplate + - DPGlobal.footTemplate + - '
    ' + - '
    ' + - '
    ' + - '' + - DPGlobal.headTemplate + - DPGlobal.contTemplate + - DPGlobal.footTemplate + - '
    ' + - '
    ' + - ''; - $.fn.datetimepicker.DPGlobal = DPGlobal; - - /* DATETIMEPICKER NO CONFLICT - * =================== */ - - $.fn.datetimepicker.noConflict = function() { - $.fn.datetimepicker = old; - return this; - }; - - /* DATETIMEPICKER DATA-API - * ================== */ - - $(document).on( - 'focus.datetimepicker.data-api click.datetimepicker.data-api', - '[data-provide="datetimepicker"]', - function(e) { - var $this = $(this); - if($this.data('datetimepicker')) return; - e.preventDefault(); - // component click requires us to explicitly show it - $this.datetimepicker('show'); - } - ); - $(function() { - $('[data-provide="datetimepicker-inline"]').datetimepicker(); - }); - -}(window.jQuery); - - -/* ======================================================================== - * Chosen: chosen.js [version 1.1.0] - * https://github.com/harvesthq/chosen - * - * Chosen, a Select Box Enhancer for jQuery and Prototype - * by Patrick Filler for Harvest, http://getharvest.com - * - * ZUI: The file has been changed in ZUI. It will not keep update with the - * official version in the future. - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2011 Harvest http://getharvest.com - * MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md - * ======================================================================== - * Improvement in ZUI: - * 1. New option 'drop_direction': 'auto' | 'top' | 'bottom'; - * 2. Enhance the search experience, support search items by custom data - * with 'data-keys=*' attribute in option; - * 3. ‘middle_highlight’ option can make hightlight item in the middle of - * the dropdown menu - * ======================================================================== */ - - -/*! +!function(t){function e(){return new Date(Date.UTC.apply(Date,arguments))}var i=function(e,i){var a=this;this.element=t(e),this.language=(i.language||this.element.data("date-language")||(t.zui&&t.zui.clientLang?t.zui.clientLang().replace("_","-"):"zh-cn")).toLowerCase(),this.language=this.language in s?this.language:"en",this.isRTL=s[this.language].rtl||!1,this.formatType=i.formatType||this.element.data("format-type")||"standard",this.format=n.parseFormat(i.format||this.element.data("date-format")||s[this.language].format||n.getDefaultFormat(this.formatType,"input"),this.formatType),this.isInline=!1,this.isVisible=!1,this.isInput=this.element.is("input"),this.component=!!this.element.is(".date")&&this.element.find(".input-group-addon .icon-th, .input-group-addon .icon-time, .input-group-addon .icon-calendar").parent(),this.componentReset=!!this.element.is(".date")&&this.element.find(".input-group-addon .icon-remove").parent(),this.hasInput=this.component&&this.element.find("input").length,this.component&&0===this.component.length&&(this.component=!1),this.linkField=i.linkField||this.element.data("link-field")||!1,this.linkFormat=n.parseFormat(i.linkFormat||this.element.data("link-format")||n.getDefaultFormat(this.formatType,"link"),this.formatType),this.minuteStep=i.minuteStep||this.element.data("minute-step")||5,this.pickerPosition=i.pickerPosition||this.element.data("picker-position")||"bottom-right",this.showMeridian=i.showMeridian||this.element.data("show-meridian")||!1,this.initialDate=i.initialDate||new Date,this.pickerClass=i.eleClass,this.pickerId=i.eleId,this._attachEvents(),this.formatViewType="datetime","formatViewType"in i?this.formatViewType=i.formatViewType:"formatViewType"in this.element.data()&&(this.formatViewType=this.element.data("formatViewType")),this.minView=0,"minView"in i?this.minView=i.minView:"minView"in this.element.data()&&(this.minView=this.element.data("min-view")),this.minView=n.convertViewMode(this.minView),this.maxView=n.modes.length-1,"maxView"in i?this.maxView=i.maxView:"maxView"in this.element.data()&&(this.maxView=this.element.data("max-view")),this.maxView=n.convertViewMode(this.maxView),this.wheelViewModeNavigation=!1,"wheelViewModeNavigation"in i?this.wheelViewModeNavigation=i.wheelViewModeNavigation:"wheelViewModeNavigation"in this.element.data()&&(this.wheelViewModeNavigation=this.element.data("view-mode-wheel-navigation")),this.wheelViewModeNavigationInverseDirection=!1,"wheelViewModeNavigationInverseDirection"in i?this.wheelViewModeNavigationInverseDirection=i.wheelViewModeNavigationInverseDirection:"wheelViewModeNavigationInverseDirection"in this.element.data()&&(this.wheelViewModeNavigationInverseDirection=this.element.data("view-mode-wheel-navigation-inverse-dir")),this.wheelViewModeNavigationDelay=100,"wheelViewModeNavigationDelay"in i?this.wheelViewModeNavigationDelay=i.wheelViewModeNavigationDelay:"wheelViewModeNavigationDelay"in this.element.data()&&(this.wheelViewModeNavigationDelay=this.element.data("view-mode-wheel-navigation-delay")),this.startViewMode=2,"startView"in i?this.startViewMode=i.startView:"startView"in this.element.data()&&(this.startViewMode=this.element.data("start-view")),this.startViewMode=n.convertViewMode(this.startViewMode),this.viewMode=this.startViewMode,this.viewSelect=this.minView,"viewSelect"in i?this.viewSelect=i.viewSelect:"viewSelect"in this.element.data()&&(this.viewSelect=this.element.data("view-select")),this.viewSelect=n.convertViewMode(this.viewSelect),this.forceParse=!0,"forceParse"in i?this.forceParse=i.forceParse:"dateForceParse"in this.element.data()&&(this.forceParse=this.element.data("date-force-parse")),this.picker=t(n.template).appendTo(this.isInline?this.element:"body").on({click:t.proxy(this.click,this),mousedown:t.proxy(this.mousedown,this)}),this.wheelViewModeNavigation&&(t.fn.mousewheel?this.picker.on({mousewheel:t.proxy(this.mousewheel,this)}):console.log("Mouse Wheel event is not supported. Please include the jQuery Mouse Wheel plugin before enabling this option")),this.isInline?this.picker.addClass("datetimepicker-inline"):this.picker.addClass("datetimepicker-dropdown-"+this.pickerPosition+" dropdown-menu"),this.isRTL&&(this.picker.addClass("datetimepicker-rtl"),this.picker.find(".prev span, .next span").toggleClass("icon-arrow-left icon-arrow-right")),t(document).on("mousedown",function(e){0===t(e.target).closest(".datetimepicker").length&&a.hide()}),this.autoclose=!1,"autoclose"in i?this.autoclose=i.autoclose:"dateAutoclose"in this.element.data()&&(this.autoclose=this.element.data("date-autoclose")),this.keyboardNavigation=!0,"keyboardNavigation"in i?this.keyboardNavigation=i.keyboardNavigation:"dateKeyboardNavigation"in this.element.data()&&(this.keyboardNavigation=this.element.data("date-keyboard-navigation")),this.todayBtn=i.todayBtn||this.element.data("date-today-btn")||!1,this.todayHighlight=i.todayHighlight||this.element.data("date-today-highlight")||!1,this.weekStart=(i.weekStart||this.element.data("date-weekstart")||s[this.language].weekStart||0)%7,this.weekEnd=(this.weekStart+6)%7,this.startDate=-(1/0),this.endDate=1/0,this.daysOfWeekDisabled=[],this.setStartDate(i.startDate||this.element.data("date-startdate")),this.setEndDate(i.endDate||this.element.data("date-enddate")),this.setDaysOfWeekDisabled(i.daysOfWeekDisabled||this.element.data("date-days-of-week-disabled")),this.fillDow(),this.fillMonths(),this.update(),this.showMode(),this.isInline&&this.show()};i.prototype={constructor:i,_events:[],_attachEvents:function(){this._detachEvents(),this.isInput?this._events=[[this.element,{focus:t.proxy(this.show,this),keyup:t.proxy(this.update,this),keydown:t.proxy(this.keydown,this)}]]:this.component&&this.hasInput?(this._events=[[this.element.find("input"),{focus:t.proxy(this.show,this),keyup:t.proxy(this.update,this),keydown:t.proxy(this.keydown,this)}],[this.component,{click:t.proxy(this.show,this)}]],this.componentReset&&this._events.push([this.componentReset,{click:t.proxy(this.reset,this)}])):this.element.is("div")?this.isInline=!0:this._events=[[this.element,{click:t.proxy(this.show,this)}]];for(var e,i,s=0;s=this.startDate&&t<=this.endDate?(this.date=t,this.setValue(),this.viewDate=this.date,this.fill()):this.element.trigger({type:"outOfRange",date:t,startDate:this.startDate,endDate:this.endDate})},setFormat:function(t){this.format=n.parseFormat(t,this.formatType);var e;this.isInput?e=this.element:this.component&&(e=this.element.find("input")),e&&e.val()&&this.setValue()},setValue:function(){var e=this.getFormattedDate();this.isInput?this.element.val(e):(this.component&&this.element.find("input").val(e),this.element.data("date",e)),this.linkField&&t("#"+this.linkField).val(this.getFormattedDate(this.linkFormat))},getFormattedDate:function(t){return void 0==t&&(t=this.format),n.formatDate(this.date,t,this.language,this.formatType)},setStartDate:function(t){this.startDate=t||-(1/0),this.startDate!==-(1/0)&&(this.startDate=n.parseDate(this.startDate,this.format,this.language,this.formatType)),this.update(),this.updateNavArrows()},setEndDate:function(t){this.endDate=t||1/0,this.endDate!==1/0&&(this.endDate=n.parseDate(this.endDate,this.format,this.language,this.formatType)),this.update(),this.updateNavArrows()},setDaysOfWeekDisabled:function(e){this.daysOfWeekDisabled=e||[],t.isArray(this.daysOfWeekDisabled)||(this.daysOfWeekDisabled=this.daysOfWeekDisabled.split(/,\s*/)),this.daysOfWeekDisabled=t.map(this.daysOfWeekDisabled,function(t){return parseInt(t,10)}),this.update(),this.updateNavArrows()},place:function(){if(!this.isInline){var e=0;t("div").each(function(){var i=parseInt(t(this).css("zIndex"),10);i>e&&(e=i)});var i,s,n,a=e+10;this.component?(i=this.component.offset(),n=i.left,"bottom-left"!==this.pickerPosition&&"top-left"!==this.pickerPosition&&"auto-left"!==this.pickerPosition||(n+=this.component.outerWidth()-this.picker.outerWidth())):(i=this.element.offset(),n=i.left);var o=0===this.pickerPosition.indexOf("auto-"),r=o?(i.top+this.picker.outerHeight()>t(window).height()+t(window).scrollTop()?"top":"bottom")+(0===this.pickerPosition.lastIndexOf("-left")?"-left":"-right"):this.pickerPosition;s="top-left"===r||"top-right"===r?i.top-this.picker.outerHeight():i.top+this.height,this.picker.css({top:s,left:n,zIndex:a}).attr("class","datetimepicker dropdown-menu datetimepicker-dropdown-"+r),this.pickerClass&&this.picker.addClass(this.pickerClass),this.pickerId&&this.picker.attr("id",this.pickerId)}},update:function(){var t,e=!1;arguments&&arguments.length&&("string"==typeof arguments[0]||arguments[0]instanceof Date)?(t=arguments[0],e=!0):(t=this.element.data("date")||(this.isInput?this.element.val():this.element.find("input").val())||this.initialDate,("string"==typeof t||t instanceof String)&&(t=t.replace(/^\s+|\s+$/g,""))),t||(t=new Date,e=!1),this.date=n.parseDate(t,this.format,this.language,this.formatType),e&&this.setValue(),this.datethis.endDate?this.viewDate=new Date(this.endDate):this.viewDate=new Date(this.date),this.fill()},fillDow:function(){for(var t=this.weekStart,e="";t'+s[this.language].daysMin[t++%7]+"";e+="",this.picker.find(".datetimepicker-days thead").append(e)},fillMonths:function(){for(var t="",e=0;e<12;)t+=''+s[this.language].monthsShort[e++]+"";this.picker.find(".datetimepicker-months td").html(t)},fill:function(){if(null!=this.date&&null!=this.viewDate){var i=new Date(this.viewDate),a=i.getUTCFullYear(),o=i.getUTCMonth(),r=i.getUTCDate(),l=i.getUTCHours(),h=i.getUTCMinutes(),c=this.startDate!==-(1/0)?this.startDate.getUTCFullYear():-(1/0),d=this.startDate!==-(1/0)?this.startDate.getUTCMonth():-(1/0),u=this.endDate!==1/0?this.endDate.getUTCFullYear():1/0,p=this.endDate!==1/0?this.endDate.getUTCMonth():1/0,f=new e(this.date.getUTCFullYear(),this.date.getUTCMonth(),this.date.getUTCDate()).valueOf(),g=new Date;if(this.picker.find(".datetimepicker-days thead th:eq(1)").text(s[this.language].months[o]+" "+a),"time"==this.formatViewType){var m=l%12?l%12:12,v=(m<10?"0":"")+m,y=(h<10?"0":"")+h,b=s[this.language].meridiem[l<12?0:1];this.picker.find(".datetimepicker-hours thead th:eq(1)").text(v+":"+y+" "+b.toUpperCase()),this.picker.find(".datetimepicker-minutes thead th:eq(1)").text(v+":"+y+" "+b.toUpperCase())}else this.picker.find(".datetimepicker-hours thead th:eq(1)").text(r+" "+s[this.language].months[o]+" "+a),this.picker.find(".datetimepicker-minutes thead th:eq(1)").text(r+" "+s[this.language].months[o]+" "+a);this.picker.find("tfoot th.today").text(s[this.language].today).toggle(this.todayBtn!==!1),this.updateNavArrows(),this.fillMonths();var w=e(a,o-1,28,0,0,0,0),x=n.getDaysInMonth(w.getUTCFullYear(),w.getUTCMonth());w.setUTCDate(x),w.setUTCDate(x-(w.getUTCDay()-this.weekStart+7)%7);var _=new Date(w);_.setUTCDate(_.getUTCDate()+42),_=_.valueOf();for(var C,k=[];w.valueOf()<_;)w.getUTCDay()==this.weekStart&&k.push(""),C="",w.getUTCFullYear()a||w.getUTCFullYear()==a&&w.getUTCMonth()>o)&&(C+=" new"),this.todayHighlight&&w.getUTCFullYear()==g.getFullYear()&&w.getUTCMonth()==g.getMonth()&&w.getUTCDate()==g.getDate()&&(C+=" today"),w.valueOf()==f&&(C+=" active"),(w.valueOf()+864e5<=this.startDate||w.valueOf()>this.endDate||t.inArray(w.getUTCDay(),this.daysOfWeekDisabled)!==-1)&&(C+=" disabled"),k.push(''+w.getUTCDate()+""),w.getUTCDay()==this.weekEnd&&k.push(""),w.setUTCDate(w.getUTCDate()+1);this.picker.find(".datetimepicker-days tbody").empty().append(k.join("")),k=[];for(var T="",S="",D="",M=0;M<24;M++){var P=e(a,o,r,M);C="",P.valueOf()+36e5<=this.startDate||P.valueOf()>this.endDate?C+=" disabled":l==M&&(C+=" active"),this.showMeridian&&2==s[this.language].meridiem.length?(S=M<12?s[this.language].meridiem[0]:s[this.language].meridiem[1],S!=D&&(""!=D&&k.push(""),k.push('
    '+S.toUpperCase()+"")),D=S,T=M%12?M%12:12,k.push(''+T+""),23==M&&k.push("
    ")):(T=M+":00",k.push(''+T+""))}this.picker.find(".datetimepicker-hours td").html(k.join("")),k=[],T="",S="",D="";for(var M=0;M<60;M+=this.minuteStep){var P=e(a,o,r,l,M,0);C="",P.valueOf()this.endDate?C+=" disabled":Math.floor(h/this.minuteStep)==Math.floor(M/this.minuteStep)&&(C+=" active"),this.showMeridian&&2==s[this.language].meridiem.length?(S=l<12?s[this.language].meridiem[0]:s[this.language].meridiem[1],S!=D&&(""!=D&&k.push(""),k.push('
    '+S.toUpperCase()+"")),D=S,T=l%12?l%12:12,k.push(''+T+":"+(M<10?"0"+M:M)+""),59==M&&k.push("
    ")):(T=M+":00",k.push(''+l+":"+(M<10?"0"+M:M)+""))}this.picker.find(".datetimepicker-minutes td").html(k.join(""));var F=this.date.getUTCFullYear(),L=this.picker.find(".datetimepicker-months").find("th:eq(1)").text(a).end().find("span").removeClass("active");F==a&&L.eq(this.date.getUTCMonth()).addClass("active"),(au)&&L.addClass("disabled"),a==c&&L.slice(0,d).addClass("disabled"),a==u&&L.slice(p+1).addClass("disabled"),k="",a=10*parseInt(a/10,10);var z=this.picker.find(".datetimepicker-years").find("th:eq(1)").text(a+"-"+(a+9)).end().find("td");a-=1;for(var M=-1;M<11;M++)k+='u?" disabled":"")+'">'+a+"",a+=1;z.html(k),this.place()}},updateNavArrows:function(){var t=new Date(this.viewDate),e=t.getUTCFullYear(),i=t.getUTCMonth(),s=t.getUTCDate(),n=t.getUTCHours();switch(this.viewMode){case 0:this.startDate!==-(1/0)&&e<=this.startDate.getUTCFullYear()&&i<=this.startDate.getUTCMonth()&&s<=this.startDate.getUTCDate()&&n<=this.startDate.getUTCHours()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.endDate!==1/0&&e>=this.endDate.getUTCFullYear()&&i>=this.endDate.getUTCMonth()&&s>=this.endDate.getUTCDate()&&n>=this.endDate.getUTCHours()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 1:this.startDate!==-(1/0)&&e<=this.startDate.getUTCFullYear()&&i<=this.startDate.getUTCMonth()&&s<=this.startDate.getUTCDate()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.endDate!==1/0&&e>=this.endDate.getUTCFullYear()&&i>=this.endDate.getUTCMonth()&&s>=this.endDate.getUTCDate()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 2:this.startDate!==-(1/0)&&e<=this.startDate.getUTCFullYear()&&i<=this.startDate.getUTCMonth()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.endDate!==1/0&&e>=this.endDate.getUTCFullYear()&&i>=this.endDate.getUTCMonth()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 3:case 4:this.startDate!==-(1/0)&&e<=this.startDate.getUTCFullYear()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.endDate!==1/0&&e>=this.endDate.getUTCFullYear()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"})}},mousewheel:function(e){if(e.preventDefault(),e.stopPropagation(),!this.wheelPause){this.wheelPause=!0;var i=e.originalEvent,s=i.wheelDelta,n=s>0?1:0===s?0:-1;this.wheelViewModeNavigationInverseDirection&&(n=-n),this.showMode(n),setTimeout(t.proxy(function(){this.wheelPause=!1},this),this.wheelViewModeNavigationDelay)}},click:function(i){i.stopPropagation(),i.preventDefault();var s=t(i.target).closest("span, td, th, legend");if(1==s.length){if(s.is(".disabled"))return void this.element.trigger({type:"outOfRange",date:this.viewDate,startDate:this.startDate,endDate:this.endDate});switch(s[0].nodeName.toLowerCase()){case"th":switch(s[0].className){case"switch":this.showMode(1);break;case"prev":case"next":var a=n.modes[this.viewMode].navStep*("prev"==s[0].className?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveHour(this.viewDate,a);break;case 1:this.viewDate=this.moveDate(this.viewDate,a);break;case 2:this.viewDate=this.moveMonth(this.viewDate,a);break;case 3:case 4:this.viewDate=this.moveYear(this.viewDate,a)}this.fill();break;case"today":var o=new Date;o=e(o.getFullYear(),o.getMonth(),o.getDate(),o.getHours(),o.getMinutes(),o.getSeconds(),0),othis.endDate&&(o=this.endDate),this.viewMode=this.startViewMode,this.showMode(0),this._setDate(o),this.fill(),this.autoclose&&this.hide()}break;case"span":if(!s.is(".disabled")){var r=this.viewDate.getUTCFullYear(),l=this.viewDate.getUTCMonth(),h=this.viewDate.getUTCDate(),c=this.viewDate.getUTCHours(),d=this.viewDate.getUTCMinutes(),u=this.viewDate.getUTCSeconds();if(s.is(".month")?(this.viewDate.setUTCDate(1),l=s.parent().find("span").index(s),h=this.viewDate.getUTCDate(),this.viewDate.setUTCMonth(l),this.element.trigger({type:"changeMonth",date:this.viewDate}),this.viewSelect>=3&&this._setDate(e(r,l,h,c,d,u,0))):s.is(".year")?(this.viewDate.setUTCDate(1),r=parseInt(s.text(),10)||0,this.viewDate.setUTCFullYear(r),this.element.trigger({type:"changeYear",date:this.viewDate}),this.viewSelect>=4&&this._setDate(e(r,l,h,c,d,u,0))):s.is(".hour")?(c=parseInt(s.text(),10)||0,(s.hasClass("hour_am")||s.hasClass("hour_pm"))&&(12==c&&s.hasClass("hour_am")?c=0:12!=c&&s.hasClass("hour_pm")&&(c+=12)),this.viewDate.setUTCHours(c),this.element.trigger({type:"changeHour",date:this.viewDate}),this.viewSelect>=1&&this._setDate(e(r,l,h,c,d,u,0))):s.is(".minute")&&(d=parseInt(s.text().substr(s.text().indexOf(":")+1),10)||0,this.viewDate.setUTCMinutes(d),this.element.trigger({type:"changeMinute",date:this.viewDate}),this.viewSelect>=0&&this._setDate(e(r,l,h,c,d,u,0))),0!=this.viewMode){var p=this.viewMode;this.showMode(-1),this.fill(),p==this.viewMode&&this.autoclose&&this.hide()}else this.fill(),this.autoclose&&this.hide()}break;case"td":if(s.is(".day")&&!s.is(".disabled")){var h=parseInt(s.text(),10)||1,r=this.viewDate.getUTCFullYear(),l=this.viewDate.getUTCMonth(),c=this.viewDate.getUTCHours(),d=this.viewDate.getUTCMinutes(),u=this.viewDate.getUTCSeconds();s.is(".old")?0===l?(l=11,r-=1):l-=1:s.is(".new")&&(11==l?(l=0,r+=1):l+=1),this.viewDate.setUTCFullYear(r),this.viewDate.setUTCMonth(l,h),this.element.trigger({type:"changeDay",date:this.viewDate}),this.viewSelect>=2&&this._setDate(e(r,l,h,c,d,u,0))}var p=this.viewMode;this.showMode(-1),this.fill(),p==this.viewMode&&this.autoclose&&this.hide()}}},_setDate:function(t,e){e&&"date"!=e||(this.date=t),e&&"view"!=e||(this.viewDate=t),this.fill(),this.setValue();var i;this.isInput?i=this.element:this.component&&(i=this.element.find("input")),i&&(i.change(),this.autoclose&&(!e||"date"==e)),this.element.trigger({type:"changeDate",date:this.date}),null===t&&(this.date=this.viewDate)},moveMinute:function(t,e){if(!e)return t;var i=new Date(t.valueOf());return i.setUTCMinutes(i.getUTCMinutes()+e*this.minuteStep),i},moveHour:function(t,e){if(!e)return t;var i=new Date(t.valueOf());return i.setUTCHours(i.getUTCHours()+e),i},moveDate:function(t,e){if(!e)return t;var i=new Date(t.valueOf());return i.setUTCDate(i.getUTCDate()+e),i},moveMonth:function(t,e){if(!e)return t;var i,s,n=new Date(t.valueOf()),a=n.getUTCDate(),o=n.getUTCMonth(),r=Math.abs(e);if(e=e>0?1:-1,1==r)s=e==-1?function(){return n.getUTCMonth()==o}:function(){return n.getUTCMonth()!=i},i=o+e,n.setUTCMonth(i),(i<0||i>11)&&(i=(i+12)%12);else{for(var l=0;l=this.startDate&&t<=this.endDate},keydown:function(t){if(this.picker.is(":not(:visible)"))return void(27==t.keyCode&&this.show());var e,i,s,n=!1;switch(t.keyCode){case 27:this.hide(),t.preventDefault();break;case 37:case 39:if(!this.keyboardNavigation)break;e=37==t.keyCode?-1:1,viewMode=this.viewMode,t.ctrlKey?viewMode+=2:t.shiftKey&&(viewMode+=1),4==viewMode?(i=this.moveYear(this.date,e),s=this.moveYear(this.viewDate,e)):3==viewMode?(i=this.moveMonth(this.date,e),s=this.moveMonth(this.viewDate,e)):2==viewMode?(i=this.moveDate(this.date,e),s=this.moveDate(this.viewDate,e)):1==viewMode?(i=this.moveHour(this.date,e),s=this.moveHour(this.viewDate,e)):0==viewMode&&(i=this.moveMinute(this.date,e),s=this.moveMinute(this.viewDate,e)),this.dateWithinRange(i)&&(this.date=i,this.viewDate=s,this.setValue(),this.update(),t.preventDefault(),n=!0);break;case 38:case 40:if(!this.keyboardNavigation)break;e=38==t.keyCode?-1:1,viewMode=this.viewMode,t.ctrlKey?viewMode+=2:t.shiftKey&&(viewMode+=1),4==viewMode?(i=this.moveYear(this.date,e),s=this.moveYear(this.viewDate,e)):3==viewMode?(i=this.moveMonth(this.date,e),s=this.moveMonth(this.viewDate,e)):2==viewMode?(i=this.moveDate(this.date,7*e),s=this.moveDate(this.viewDate,7*e)):1==viewMode?this.showMeridian?(i=this.moveHour(this.date,6*e),s=this.moveHour(this.viewDate,6*e)):(i=this.moveHour(this.date,4*e),s=this.moveHour(this.viewDate,4*e)):0==viewMode&&(i=this.moveMinute(this.date,4*e),s=this.moveMinute(this.viewDate,4*e)),this.dateWithinRange(i)&&(this.date=i,this.viewDate=s,this.setValue(),this.update(),t.preventDefault(),n=!0);break;case 13:if(0!=this.viewMode){var a=this.viewMode;this.showMode(-1),this.fill(),a==this.viewMode&&this.autoclose&&this.hide()}else this.fill(),this.autoclose&&this.hide();t.preventDefault();break;case 9:this.hide()}if(n){var o;this.isInput?o=this.element:this.component&&(o=this.element.find("input")),o&&o.change(),this.element.trigger({type:"changeDate",date:this.date})}},showMode:function(t){if(t){var e=Math.max(0,Math.min(n.modes.length-1,this.viewMode+t));e>=this.minView&&e<=this.maxView&&(this.element.trigger({type:"changeMode",date:this.viewDate,oldViewMode:this.viewMode,newViewMode:e}),this.viewMode=e)}this.picker.find(">div").hide().filter(".datetimepicker-"+n.modes[this.viewMode].clsName).css("display","block"),this.updateNavArrows()},reset:function(t){this._setDate(null,"date")}},t.fn.datetimepicker=function(e){var s=Array.apply(null,arguments);return s.shift(),this.each(function(){var n=t(this),a=n.data("datetimepicker"),o="object"==typeof e&&e;a||n.data("datetimepicker",a=new i(this,t.extend({},t.fn.datetimepicker.defaults,n.data(),o))),"string"==typeof e&&"function"==typeof a[e]&&a[e].apply(a,s)})},t.fn.datetimepicker.defaults={pickerPosition:"auto-right"},t.fn.datetimepicker.Constructor=i;var s=t.fn.datetimepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["am","pm"],suffix:["st","nd","rd","th"],today:"Today"}};s["zh-cn"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日"],daysShort:["周日","周一","周二","周三","周四","周五","周六","周日"],daysMin:["日","一","二","三","四","五","六","日"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],today:"今日",suffix:[],meridiem:[]},s["zh-tw"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日"],daysShort:["周日","周一","周二","周三","周四","周五","周六","周日"],daysMin:["日","一","二","三","四","五","六","日"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],today:"今天",suffix:[],meridiem:["上午","下午"]};var n={modes:[{clsName:"minutes",navFnc:"Hours",navStep:1},{clsName:"hours",navFnc:"Date",navStep:1},{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(t){return t%4===0&&t%100!==0||t%400===0},getDaysInMonth:function(t,e){return[31,n.isLeapYear(t)?29:28,31,30,31,30,31,31,30,31,30,31][e]},getDefaultFormat:function(t,e){if("standard"==t)return"input"==e?"yyyy-mm-dd hh:ii":"yyyy-mm-dd hh:ii:ss";if("php"==t)return"input"==e?"Y-m-d H:i":"Y-m-d H:i:s";throw new Error("Invalid format type.")},validParts:function(t){if("standard"==t)return/hh?|HH?|p|P|ii?|ss?|dd?|DD?|mm?|MM?|yy(?:yy)?/g;if("php"==t)return/[dDjlNwzFmMnStyYaABgGhHis]/g;throw new Error("Invalid format type.")},nonpunctuation:/[^ -\/:-@\[-`{-~\t\n\rTZ]+/g,parseFormat:function(t,e){var i=t.replace(this.validParts(e),"\0").split("\0"),s=t.match(this.validParts(e));if(!i||!i.length||!s||0==s.length)throw new Error("Invalid date format.");return{separators:i,parts:s}},parseDate:function(n,a,o,r){if(n instanceof Date){var l=new Date(n.valueOf()-6e4*n.getTimezoneOffset());return l.setMilliseconds(0),l}if(/^\d{4}\-\d{1,2}\-\d{1,2}$/.test(n)&&(a=this.parseFormat("yyyy-mm-dd",r)),/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}$/.test(n)&&(a=this.parseFormat("yyyy-mm-dd hh:ii",r)),/^\d{4}\-\d{1,2}\-\d{1,2}[T ]\d{1,2}\:\d{1,2}\:\d{1,2}[Z]{0,1}$/.test(n)&&(a=this.parseFormat("yyyy-mm-dd hh:ii:ss",r)),/^[-+]\d+[dmwy]([\s,]+[-+]\d+[dmwy])*$/.test(n)){var h,c,d=/([-+]\d+)([dmwy])/,u=n.match(/([-+]\d+)([dmwy])/g);n=new Date;for(var p=0;p',contTemplate:'',footTemplate:''};n.template='
    '+n.headTemplate+n.contTemplate+n.footTemplate+'
    '+n.headTemplate+n.contTemplate+n.footTemplate+'
    '+n.headTemplate+""+n.footTemplate+'
    '+n.headTemplate+n.contTemplate+n.footTemplate+'
    '+n.headTemplate+n.contTemplate+n.footTemplate+"
    ",t.fn.datetimepicker.DPGlobal=n,t.fn.datetimepicker.noConflict=function(){return t.fn.datetimepicker=old,this},t(document).on("focus.datetimepicker.data-api click.datetimepicker.data-api",'[data-provide="datetimepicker"]',function(e){ +var i=t(this);i.data("datetimepicker")||(e.preventDefault(),i.datetimepicker("show"))}),t(function(){t('[data-provide="datetimepicker-inline"]').datetimepicker()})}(window.jQuery),/*! Chosen, a Select Box Enhancer for jQuery and Prototype by Patrick Filler for Harvest, http://getharvest.com @@ -10033,1786 +34,8 @@ Copyright (c) 2011 Harvest http://getharvest.com MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */ - - -(function() { - var $, AbstractChosen, Chosen, SelectParser, _ref, - __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { - for(var key in parent) { - if(__hasProp.call(parent, key)) child[key] = parent[key]; - } - - function ctor() { - this.constructor = child; - } - ctor.prototype = parent.prototype; - child.prototype = new ctor(); - child.__super__ = parent.prototype; - return child; - }; - - var LANGUAGE = { - zh_cn: { - no_results_text: "没有找到" - }, - zh_tw: { - no_results_text: "沒有找到" - }, - en: { - no_results_text: "No results match" - } - } - - SelectParser = (function() { - function SelectParser() { - this.options_index = 0; - this.parsed = []; - } - - SelectParser.prototype.add_node = function(child) { - if(child.nodeName.toUpperCase() === "OPTGROUP") { - return this.add_group(child); - } else { - return this.add_option(child); - } - }; - - SelectParser.prototype.add_group = function(group) { - var group_position, option, _i, _len, _ref, _results; - group_position = this.parsed.length; - this.parsed.push({ - array_index: group_position, - group: true, - label: this.escapeExpression(group.label), - children: 0, - disabled: group.disabled, - title: group.title, - search_keys: ($.trim(group.getAttribute('data-keys') || '')).replace(/,/g, ' ') - }); - _ref = group.childNodes; - _results = []; - for(_i = 0, _len = _ref.length; _i < _len; _i++) { - option = _ref[_i]; - _results.push(this.add_option(option, group_position, group.disabled)); - } - return _results; - }; - - SelectParser.prototype.add_option = function(option, group_position, group_disabled) { - if(option.nodeName.toUpperCase() === "OPTION") { - if(option.text !== "") { - if(group_position != null) { - this.parsed[group_position].children += 1; - } - this.parsed.push({ - array_index: this.parsed.length, - options_index: this.options_index, - value: option.value, - text: option.text, - title: option.title, - html: option.innerHTML, - selected: option.selected, - disabled: group_disabled === true ? group_disabled : option.disabled, - group_array_index: group_position, - classes: option.className, - style: option.style.cssText, - search_keys: ($.trim(option.getAttribute('data-keys') || '') + option.value).replace(/,/, ' ') - }); - } else { - this.parsed.push({ - array_index: this.parsed.length, - options_index: this.options_index, - empty: true - }); - } - return this.options_index += 1; - } - }; - - SelectParser.prototype.escapeExpression = function(text) { - var map, unsafe_chars; - if((text == null) || text === false) { - return ""; - } - if(!/[\&\<\>\"\'\`]/.test(text)) { - return text; - } - map = { - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`" - }; - unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g; - return text.replace(unsafe_chars, function(chr) { - return map[chr] || "&"; - }); - }; - - return SelectParser; - - })(); - - SelectParser.select_to_array = function(select) { - var child, parser, _i, _len, _ref; - parser = new SelectParser(); - _ref = select.childNodes; - for(_i = 0, _len = _ref.length; _i < _len; _i++) { - child = _ref[_i]; - parser.add_node(child); - } - return parser.parsed; - }; - - AbstractChosen = (function() { - function AbstractChosen(form_field, options) { - this.form_field = form_field; - this.options = options != null ? options : {}; - if(!AbstractChosen.browser_is_supported()) { - return; - } - - this.lang = LANGUAGE[this.options.lang || ($.zui.clientLang ? $.zui.clientLang() : 'zh_cn')]; - this.is_multiple = this.form_field.multiple; - this.set_default_text(); - this.set_default_values(); - this.setup(); - this.set_up_html(); - this.register_observers(); - } - - AbstractChosen.prototype.set_default_values = function() { - var _this = this; - this.click_test_action = function(evt) { - return _this.test_active_click(evt); - }; - this.activate_action = function(evt) { - return _this.activate_field(evt); - }; - this.active_field = false; - this.mouse_on_container = false; - this.results_showing = false; - this.result_highlighted = null; - this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false; - this.disable_search_threshold = this.options.disable_search_threshold || 0; - this.disable_search = this.options.disable_search || false; - this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true; - this.group_search = this.options.group_search != null ? this.options.group_search : true; - this.search_contains = this.options.search_contains || false; - this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true; - this.max_selected_options = this.options.max_selected_options || Infinity; - this.drop_direction = this.options.drop_direction || 'auto'; - this.middle_highlight = this.options.middle_highlight; - this.inherit_select_classes = this.options.inherit_select_classes || false; - this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true; - return this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true; - }; - - AbstractChosen.prototype.set_default_text = function() { - if(this.form_field.getAttribute("data-placeholder")) { - this.default_text = this.form_field.getAttribute("data-placeholder"); - } else if(this.is_multiple) { - this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text; - } else { - this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text; - } - return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || this.lang.no_results_text || AbstractChosen.default_no_result_text; - }; - - AbstractChosen.prototype.mouse_enter = function() { - return this.mouse_on_container = true; - }; - - AbstractChosen.prototype.mouse_leave = function() { - return this.mouse_on_container = false; - }; - - AbstractChosen.prototype.input_focus = function(evt) { - var _this = this; - if(this.is_multiple) { - if(!this.active_field) { - return setTimeout((function() { - return _this.container_mousedown(); - }), 50); - } - } else { - if(!this.active_field) { - return this.activate_field(); - } - } - }; - - AbstractChosen.prototype.input_blur = function(evt) { - var _this = this; - if(!this.mouse_on_container) { - this.active_field = false; - return setTimeout((function() { - return _this.blur_test(); - }), 100); - } - }; - - AbstractChosen.prototype.results_option_build = function(options) { - var content, data, _i, _len, _ref; - content = ''; - _ref = this.results_data; - for(_i = 0, _len = _ref.length; _i < _len; _i++) { - data = _ref[_i]; - if(data.group) { - content += this.result_add_group(data); - } else { - content += this.result_add_option(data); - } - if(options != null ? options.first : void 0) { - if(data.selected && this.is_multiple) { - this.choice_build(data); - } else if(data.selected && !this.is_multiple) { - this.single_set_selected_text(data.text); - } - } - } - return content; - }; - - AbstractChosen.prototype.result_add_option = function(option) { - var classes, option_el; - if(!option.search_match) { - return ''; - } - if(!this.include_option_in_results(option)) { - return ''; - } - classes = []; - if(!option.disabled && !(option.selected && this.is_multiple)) { - classes.push("active-result"); - } - if(option.disabled && !(option.selected && this.is_multiple)) { - classes.push("disabled-result"); - } - if(option.selected) { - classes.push("result-selected"); - } - if(option.group_array_index != null) { - classes.push("group-option"); - } - if(option.classes !== "") { - classes.push(option.classes); - } - option_el = document.createElement("li"); - option_el.className = classes.join(" "); - option_el.style.cssText = option.style; - option_el.title = option.title; - option_el.setAttribute("data-option-array-index", option.array_index); - option_el.innerHTML = option.search_text; - return this.outerHTML(option_el); - }; - - AbstractChosen.prototype.result_add_group = function(group) { - var group_el; - if(!(group.search_match || group.group_match)) { - return ''; - } - if(!(group.active_options > 0)) { - return ''; - } - group_el = document.createElement("li"); - group_el.className = "group-result"; - group_el.title = group.title; - group_el.innerHTML = group.search_text; - return this.outerHTML(group_el); - }; - - AbstractChosen.prototype.results_update_field = function() { - this.set_default_text(); - if(!this.is_multiple) { - this.results_reset_cleanup(); - } - this.result_clear_highlight(); - this.results_build(); - if(this.results_showing) { - return this.winnow_results(); - } - }; - - AbstractChosen.prototype.reset_single_select_options = function() { - var result, _i, _len, _ref, _results; - _ref = this.results_data; - _results = []; - for(_i = 0, _len = _ref.length; _i < _len; _i++) { - result = _ref[_i]; - if(result.selected) { - _results.push(result.selected = false); - } else { - _results.push(void 0); - } - } - return _results; - }; - - AbstractChosen.prototype.results_toggle = function() { - if(this.results_showing) { - return this.results_hide(); - } else { - return this.results_show(); - } - }; - - AbstractChosen.prototype.results_search = function(evt) { - if(this.results_showing) { - return this.winnow_results(1); - } else { - return this.results_show(); - } - }; - - AbstractChosen.prototype.winnow_results = function(canMiddleHighlight) { - var escapedSearchText, option, regex, regexAnchor, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref; - this.no_results_clear(); - results = 0; - searchText = this.get_search_text(); - escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - regexAnchor = this.search_contains ? "" : "^"; - regex = new RegExp(regexAnchor + escapedSearchText, 'i'); - zregex = new RegExp(escapedSearchText, 'i'); - _ref = this.results_data; - for(_i = 0, _len = _ref.length; _i < _len; _i++) { - option = _ref[_i]; - option.search_match = false; - results_group = null; - if(this.include_option_in_results(option)) { - if(option.group) { - option.group_match = false; - option.active_options = 0; - } - if((option.group_array_index != null) && this.results_data[option.group_array_index]) { - results_group = this.results_data[option.group_array_index]; - if(results_group.active_options === 0 && results_group.search_match) { - results += 1; - } - results_group.active_options += 1; - } - if(!(option.group && !this.group_search)) { - option.search_text = option.group ? option.label : option.html; - option.search_keys_match = this.search_string_match(option.search_keys, regex); - option.search_text_match = this.search_string_match(option.search_text, regex); - option.search_match = option.search_text_match || option.search_keys_match; - if(option.search_match && !option.group) { - results += 1; - } - if(option.search_match) { - if(option.search_text_match && option.search_text.length) { - startpos = option.search_text.search(zregex); - text = option.search_text.substr(0, startpos + searchText.length) + '' + option.search_text.substr(startpos + searchText.length); - option.search_text = text.substr(0, startpos) + '' + text.substr(startpos); - } else if(option.search_keys_match && option.search_keys.length) { - startpos = option.search_keys.search(zregex); - text = option.search_keys.substr(0, startpos + searchText.length) + '' + option.search_keys.substr(startpos + searchText.length); - option.search_text += '  ' + text.substr(0, startpos) + '' + text.substr(startpos) + ''; - } - if(results_group != null) { - results_group.group_match = true; - } - } else if((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) { - option.search_match = true; - } - } - } - } - this.result_clear_highlight(); - if(results < 1 && searchText.length) { - this.update_results_content(""); - return this.no_results(searchText); - } else { - this.update_results_content(this.results_option_build()); - return this.winnow_results_set_highlight(canMiddleHighlight); - } - }; - - AbstractChosen.prototype.search_string_match = function(search_string, regex) { - var part, parts, _i, _len; - if(regex.test(search_string)) { - return true; - } else if(this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) { - parts = search_string.replace(/\[|\]/g, "").split(" "); - if(parts.length) { - for(_i = 0, _len = parts.length; _i < _len; _i++) { - part = parts[_i]; - if(regex.test(part)) { - return true; - } - } - } - } - }; - - AbstractChosen.prototype.choices_count = function() { - var option, _i, _len, _ref; - if(this.selected_option_count != null) { - return this.selected_option_count; - } - this.selected_option_count = 0; - _ref = this.form_field.options; - for(_i = 0, _len = _ref.length; _i < _len; _i++) { - option = _ref[_i]; - if(option.selected && option.value != '') { - this.selected_option_count += 1; - } - } - return this.selected_option_count; - }; - - AbstractChosen.prototype.choices_click = function(evt) { - evt.preventDefault(); - if(!(this.results_showing || this.is_disabled)) { - return this.results_show(); - } - }; - - AbstractChosen.prototype.keyup_checker = function(evt) { - var stroke, _ref; - stroke = (_ref = evt.which) != null ? _ref : evt.keyCode; - this.search_field_scale(); - switch(stroke) { - case 8: - if(this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) { - return this.keydown_backstroke(); - } else if(!this.pending_backstroke) { - this.result_clear_highlight(); - return this.results_search(); - } - break; - case 13: - evt.preventDefault(); - if(this.results_showing) { - return this.result_select(evt); - } - break; - case 27: - if(this.results_showing) { - this.results_hide(); - } - return true; - case 9: - case 38: - case 40: - case 16: - case 91: - case 17: - break; - default: - return this.results_search(); - } - }; - - AbstractChosen.prototype.clipboard_event_checker = function(evt) { - var _this = this; - return setTimeout((function() { - return _this.results_search(); - }), 50); - }; - - AbstractChosen.prototype.container_width = function() { - if (this.options.width != null) { - return this.options.width; - } else if (this.form_field.classList.contains('form-control')) { - return '100%'; - } else { - return "" + this.form_field.offsetWidth + "px"; - } - }; - - AbstractChosen.prototype.include_option_in_results = function(option) { - if(this.is_multiple && (!this.display_selected_options && option.selected)) { - return false; - } - if(!this.display_disabled_options && option.disabled) { - return false; - } - if(option.empty) { - return false; - } - return true; - }; - - AbstractChosen.prototype.search_results_touchstart = function(evt) { - this.touch_started = true; - return this.search_results_mouseover(evt); - }; - - AbstractChosen.prototype.search_results_touchmove = function(evt) { - this.touch_started = false; - return this.search_results_mouseout(evt); - }; - - AbstractChosen.prototype.search_results_touchend = function(evt) { - if(this.touch_started) { - return this.search_results_mouseup(evt); - } - }; - - AbstractChosen.prototype.outerHTML = function(element) { - var tmp; - if(element.outerHTML) { - return element.outerHTML; - } - tmp = document.createElement("div"); - tmp.appendChild(element); - return tmp.innerHTML; - }; - - AbstractChosen.browser_is_supported = function() { - if(window.navigator.appName === "Microsoft Internet Explorer") { - return document.documentMode >= 8; - } - if(/iP(od|hone)/i.test(window.navigator.userAgent)) { - return false; - } - if(/Android/i.test(window.navigator.userAgent)) { - if(/Mobile/i.test(window.navigator.userAgent)) { - return false; - } - } - return true; - }; - - AbstractChosen.default_multiple_text = ""; - - AbstractChosen.default_single_text = ""; - - AbstractChosen.default_no_result_text = "No results match"; - - return AbstractChosen; - - })(); - - $ = jQuery; - - $.fn.extend({ - chosen: function(options) { - if(!AbstractChosen.browser_is_supported()) { - return this; - } - return this.each(function(input_field) { - var $this, chosen; - $this = $(this); - chosen = $this.data('chosen'); - if(options === 'destroy' && chosen) { - chosen.destroy(); - } else if(!chosen) { - $this.data('chosen', new Chosen(this, options)); - } - }); - } - }); - - Chosen = (function(_super) { - __extends(Chosen, _super); - - function Chosen() { - _ref = Chosen.__super__.constructor.apply(this, arguments); - return _ref; - } - - Chosen.prototype.setup = function() { - this.form_field_jq = $(this.form_field); - this.current_selectedIndex = this.form_field.selectedIndex; - return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl"); - }; - - Chosen.prototype.set_up_html = function() { - var container_classes, container_props; - container_classes = ["chosen-container"]; - container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single")); - if(this.inherit_select_classes && this.form_field.className) { - container_classes.push(this.form_field.className); - } - if(this.is_rtl) { - container_classes.push("chosen-rtl"); - } - var strClass = this.form_field.getAttribute('data-css-class'); - if(strClass) { - container_classes.push(strClass); - } - - container_props = { - 'class': container_classes.join(' '), - 'style': "width: " + (this.container_width()) + ";", - 'title': this.form_field.title - }; - if(this.form_field.id.length) { - container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen"; - } - this.container = $("
    ", container_props); - if(this.is_multiple) { - this.container.html('
      '); - } else { - this.container.html('' + this.default_text + '
        '); - } - this.form_field_jq.hide().after(this.container); - this.dropdown = this.container.find('div.chosen-drop').first(); - this.search_field = this.container.find('input').first(); - this.search_results = this.container.find('ul.chosen-results').first(); - this.search_field_scale(); - this.search_no_results = this.container.find('li.no-results').first(); - if(this.is_multiple) { - this.search_choices = this.container.find('ul.chosen-choices').first(); - this.search_container = this.container.find('li.search-field').first(); - } else { - this.search_container = this.container.find('div.chosen-search').first(); - this.selected_item = this.container.find('.chosen-single').first(); - } - if(this.options.drop_width) { - this.dropdown.css('width', this.options.drop_width).addClass('chosen-drop-size-limited'); - } - this.results_build(); - this.set_tab_index(); - this.set_label_behavior(); - return this.form_field_jq.trigger("chosen:ready", { - chosen: this - }); - }; - - Chosen.prototype.register_observers = function() { - var _this = this; - this.container.bind('mousedown.chosen', function(evt) { - _this.container_mousedown(evt); - }); - this.container.bind('mouseup.chosen', function(evt) { - _this.container_mouseup(evt); - }); - this.container.bind('mouseenter.chosen', function(evt) { - _this.mouse_enter(evt); - }); - this.container.bind('mouseleave.chosen', function(evt) { - _this.mouse_leave(evt); - }); - this.search_results.bind('mouseup.chosen', function(evt) { - _this.search_results_mouseup(evt); - }); - this.search_results.bind('mouseover.chosen', function(evt) { - _this.search_results_mouseover(evt); - }); - this.search_results.bind('mouseout.chosen', function(evt) { - _this.search_results_mouseout(evt); - }); - this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) { - _this.search_results_mousewheel(evt); - }); - this.search_results.bind('touchstart.chosen', function(evt) { - _this.search_results_touchstart(evt); - }); - this.search_results.bind('touchmove.chosen', function(evt) { - _this.search_results_touchmove(evt); - }); - this.search_results.bind('touchend.chosen', function(evt) { - _this.search_results_touchend(evt); - }); - this.form_field_jq.bind("chosen:updated.chosen", function(evt) { - _this.results_update_field(evt); - }); - this.form_field_jq.bind("chosen:activate.chosen", function(evt) { - _this.activate_field(evt); - }); - this.form_field_jq.bind("chosen:open.chosen", function(evt) { - _this.container_mousedown(evt); - }); - this.form_field_jq.bind("chosen:close.chosen", function(evt) { - _this.input_blur(evt); - }); - this.search_field.bind('blur.chosen', function(evt) { - _this.input_blur(evt); - }); - this.search_field.bind('keyup.chosen', function(evt) { - _this.keyup_checker(evt); - }); - this.search_field.bind('keydown.chosen', function(evt) { - _this.keydown_checker(evt); - }); - this.search_field.bind('focus.chosen', function(evt) { - _this.input_focus(evt); - }); - this.search_field.bind('cut.chosen', function(evt) { - _this.clipboard_event_checker(evt); - }); - this.search_field.bind('paste.chosen', function(evt) { - _this.clipboard_event_checker(evt); - }); - if(this.is_multiple) { - return this.search_choices.bind('click.chosen', function(evt) { - _this.choices_click(evt); - }); - } else { - return this.container.bind('click.chosen', function(evt) { - evt.preventDefault(); - }); - } - }; - - Chosen.prototype.destroy = function() { - $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action); - if(this.search_field[0].tabIndex) { - this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex; - } - this.container.remove(); - this.form_field_jq.removeData('chosen'); - return this.form_field_jq.show(); - }; - - Chosen.prototype.search_field_disabled = function() { - this.is_disabled = this.form_field_jq[0].disabled; - if(this.is_disabled) { - this.container.addClass('chosen-disabled'); - this.search_field[0].disabled = true; - if(!this.is_multiple) { - this.selected_item.unbind("focus.chosen", this.activate_action); - } - return this.close_field(); - } else { - this.container.removeClass('chosen-disabled'); - this.search_field[0].disabled = false; - if(!this.is_multiple) { - return this.selected_item.bind("focus.chosen", this.activate_action); - } - } - }; - - Chosen.prototype.container_mousedown = function(evt) { - if(!this.is_disabled) { - if(evt && evt.type === "mousedown" && !this.results_showing) { - evt.preventDefault(); - } - if(!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) { - if(!this.active_field) { - if(this.is_multiple) { - this.search_field.val(""); - } - $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action); - this.results_show(); - } else if(!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) { - evt.preventDefault(); - this.results_toggle(); - } - return this.activate_field(); - } - } - }; - - Chosen.prototype.container_mouseup = function(evt) { - if(evt.target.nodeName === "ABBR" && !this.is_disabled) { - return this.results_reset(evt); - } - }; - - Chosen.prototype.search_results_mousewheel = function(evt) { - var delta; - if(evt.originalEvent) { - delta = -evt.originalEvent.wheelDelta || evt.originalEvent.detail; - } - if(delta != null) { - evt.preventDefault(); - if(evt.type === 'DOMMouseScroll') { - delta = delta * 40; - } - return this.search_results.scrollTop(delta + this.search_results.scrollTop()); - } - }; - - Chosen.prototype.blur_test = function(evt) { - if(!this.active_field && this.container.hasClass("chosen-container-active")) { - return this.close_field(); - } - }; - - Chosen.prototype.close_field = function() { - $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action); - this.active_field = false; - this.results_hide(); - this.container.removeClass("chosen-container-active"); - this.clear_backstroke(); - this.show_search_field_default(); - return this.search_field_scale(); - }; - - Chosen.prototype.activate_field = function() { - this.container.addClass("chosen-container-active"); - this.active_field = true; - this.search_field.val(this.search_field.val()); - // return this.search_field.focus(); ZUI: bug: when user select a item by click, container scroll to left automaticly. - }; - - Chosen.prototype.test_active_click = function(evt) { - var active_container; - active_container = $(evt.target).closest('.chosen-container'); - if(active_container.length && this.container[0] === active_container[0]) { - return this.active_field = true; - } else { - return this.close_field(); - } - }; - - Chosen.prototype.results_build = function() { - this.parsing = true; - this.selected_option_count = null; - this.results_data = SelectParser.select_to_array(this.form_field); - if(this.is_multiple) { - this.search_choices.find("li.search-choice").remove(); - } else if(!this.is_multiple) { - this.single_set_selected_text(); - if(this.disable_search || this.form_field.options.length <= this.disable_search_threshold) { - this.search_field[0].readOnly = true; - this.container.addClass("chosen-container-single-nosearch"); - } else { - this.search_field[0].readOnly = false; - this.container.removeClass("chosen-container-single-nosearch"); - } - } - this.update_results_content(this.results_option_build({ - first: true - })); - this.search_field_disabled(); - this.show_search_field_default(); - this.search_field_scale(); - return this.parsing = false; - }; - - Chosen.prototype.result_do_highlight = function(el, canMiddleHighlight) { - var high_bottom, high_top, maxHeight, visible_bottom, visible_top, resultHeight, scrollTop = -1; - if(el.length) { - this.result_clear_highlight(); - this.result_highlight = el; - this.result_highlight.addClass("highlighted"); - maxHeight = parseInt(this.search_results.css("maxHeight"), 10); - resultHeight = this.result_highlight.outerHeight(); - visible_top = this.search_results.scrollTop(); - visible_bottom = maxHeight + visible_top; - high_top = this.result_highlight.position().top + this.search_results.scrollTop(); - high_bottom = high_top + resultHeight; - if(this.middle_highlight && (canMiddleHighlight || this.middle_highlight === 'always' || high_bottom >= visible_bottom || high_top < visible_top)) { - scrollTop = Math.min(high_top - resultHeight, Math.max(0, high_top - (maxHeight - resultHeight)/2)); - } else if(high_bottom >= visible_bottom) { - scrollTop = (high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0; - } else if(high_top < visible_top) { - scrollTop = high_top; - } - if(scrollTop > -1) { - this.search_results.scrollTop(scrollTop); - } - } - }; - - Chosen.prototype.result_clear_highlight = function() { - if(this.result_highlight) { - this.result_highlight.removeClass("highlighted"); - } - return this.result_highlight = null; - }; - - Chosen.prototype.results_show = function() { - if(this.is_multiple && this.max_selected_options <= this.choices_count()) { - this.form_field_jq.trigger("chosen:maxselected", { - chosen: this - }); - return false; - } - this.container.addClass("chosen-with-drop"); - this.results_showing = true; - this.search_field.focus(); - this.search_field.val(this.search_field.val()); - this.winnow_results(1); - - var dropDirection = this.drop_direction; - if(dropDirection === 'auto') { - if (!this.drop_directionFixed) { - var $drop = this.container.find('.chosen-drop'); - var offset = this.container.offset(); - if(offset.top + $drop.outerHeight() + 30 > $(window).height() + $(window).scrollTop()) { - dropDirection = 'up'; - } - this.drop_directionFixed = dropDirection; - } else { - dropDirection = this.drop_directionFixed; - } - } - this.container.toggleClass('chosen-up', dropDirection === 'up'); - - return this.form_field_jq.trigger("chosen:showing_dropdown", { - chosen: this - }); - }; - - Chosen.prototype.update_results_content = function(content) { - return this.search_results.html(content); - }; - - Chosen.prototype.results_hide = function() { - if(this.results_showing) { - this.result_clear_highlight(); - this.container.removeClass("chosen-with-drop"); - this.form_field_jq.trigger("chosen:hiding_dropdown", { - chosen: this - }); - this.drop_directionFixed = 0; - } - return this.results_showing = false; - }; - - Chosen.prototype.set_tab_index = function(el) { - var ti; - if(this.form_field.tabIndex) { - ti = this.form_field.tabIndex; - this.form_field.tabIndex = -1; - return this.search_field[0].tabIndex = ti; - } - }; - - Chosen.prototype.set_label_behavior = function() { - var _this = this; - this.form_field_label = this.form_field_jq.parents("label"); - if(!this.form_field_label.length && this.form_field.id.length) { - this.form_field_label = $("label[for='" + this.form_field.id + "']"); - } - if(this.form_field_label.length > 0) { - return this.form_field_label.bind('click.chosen', function(evt) { - if(_this.is_multiple) { - return _this.container_mousedown(evt); - } else { - return _this.activate_field(); - } - }); - } - }; - - Chosen.prototype.show_search_field_default = function() { - if(this.is_multiple && this.choices_count() < 1 && !this.active_field) { - this.search_field.val(this.default_text); - return this.search_field.addClass("default"); - } else { - this.search_field.val(""); - return this.search_field.removeClass("default"); - } - }; - - Chosen.prototype.search_results_mouseup = function(evt) { - var target; - target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first(); - if(target.length) { - this.result_highlight = target; - this.result_select(evt); - // return this.search_field.focus(); // ZUI: bug: when user select a item by click, container scroll to left automaticly. - } - }; - - Chosen.prototype.search_results_mouseover = function(evt) { - var target; - target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first(); - if(target) { - return this.result_do_highlight(target); - } - }; - - Chosen.prototype.search_results_mouseout = function(evt) { - if($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) { - return this.result_clear_highlight(); - } - }; - - Chosen.prototype.choice_build = function(item) { - var choice, close_link, - _this = this; - choice = $('
      • ', { - "class": "search-choice" - /// ZUI change begin - /// Set title to span with item value - /// }).html("" + item.html + ""); - }).html("" + item.html + ""); - /// ZUI change end - if(item.disabled) { - choice.addClass('search-choice-disabled'); - } else { - close_link = $('', { - "class": 'search-choice-close', - 'data-option-array-index': item.array_index - }); - close_link.bind('click.chosen', function(evt) { - return _this.choice_destroy_link_click(evt); - }); - choice.append(close_link); - } - return this.search_container.before(choice); - }; - - Chosen.prototype.choice_destroy_link_click = function(evt) { - evt.preventDefault(); - evt.stopPropagation(); - if(!this.is_disabled) { - return this.choice_destroy($(evt.target)); - } - }; - - Chosen.prototype.choice_destroy = function(link) { - if(this.result_deselect(link[0].getAttribute("data-option-array-index"))) { - this.show_search_field_default(); - if(this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) { - this.results_hide(); - } - link.parents('li').first().remove(); - return this.search_field_scale(); - } - }; - - Chosen.prototype.results_reset = function() { - this.reset_single_select_options(); - this.form_field.options[0].selected = true; - this.single_set_selected_text(); - this.show_search_field_default(); - this.results_reset_cleanup(); - this.form_field_jq.trigger("change"); - if(this.active_field) { - return this.results_hide(); - } - }; - - Chosen.prototype.results_reset_cleanup = function() { - this.current_selectedIndex = this.form_field.selectedIndex; - return this.selected_item.find("abbr").remove(); - }; - - Chosen.prototype.result_select = function(evt) { - var high, item; - if(this.result_highlight) { - high = this.result_highlight; - this.result_clear_highlight(); - if(this.is_multiple && this.max_selected_options <= this.choices_count()) { - this.form_field_jq.trigger("chosen:maxselected", { - chosen: this - }); - return false; - } - if(this.is_multiple) { - high.removeClass("active-result"); - } else { - this.reset_single_select_options(); - } - item = this.results_data[high[0].getAttribute("data-option-array-index")]; - item.selected = true; - this.form_field.options[item.options_index].selected = true; - this.selected_option_count = null; - if(this.is_multiple) { - this.choice_build(item); - } else { - this.single_set_selected_text(item.text); - } - if(!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) { - this.results_hide(); - } - this.search_field.val(""); - if(this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) { - this.form_field_jq.trigger("change", { - 'selected': this.form_field.options[item.options_index].value - }); - } - this.current_selectedIndex = this.form_field.selectedIndex; - return this.search_field_scale(); - } - }; - - Chosen.prototype.single_set_selected_text = function(text) { - if(text == null) { - text = this.default_text; - } - if(text === this.default_text) { - this.selected_item.addClass("chosen-default"); - } else { - this.single_deselect_control_build(); - this.selected_item.removeClass("chosen-default"); - } - /// ZUI change begin - /// Change title with text - /// return this.selected_item.find("span").text(text); // old code - return this.selected_item.find("span").attr('title', text).text(text); - /// ZUI change end - }; - - Chosen.prototype.result_deselect = function(pos) { - var result_data; - result_data = this.results_data[pos]; - if(!this.form_field.options[result_data.options_index].disabled) { - result_data.selected = false; - this.form_field.options[result_data.options_index].selected = false; - this.selected_option_count = null; - this.result_clear_highlight(); - if(this.results_showing) { - this.winnow_results(); - } - this.form_field_jq.trigger("change", { - deselected: this.form_field.options[result_data.options_index].value - }); - this.search_field_scale(); - return true; - } else { - return false; - } - }; - - Chosen.prototype.single_deselect_control_build = function() { - if(!this.allow_single_deselect) { - return; - } - if(!this.selected_item.find("abbr").length) { - this.selected_item.find("span").first().after(""); - } - return this.selected_item.addClass("chosen-single-with-deselect"); - }; - - Chosen.prototype.get_search_text = function() { - if(this.search_field.val() === this.default_text) { - return ""; - } else { - return $('
        ').text($.trim(this.search_field.val())).html(); - } - }; - - Chosen.prototype.winnow_results_set_highlight = function(canMiddleHighlight) { - var do_high, selected_results; - selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : []; - do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first(); - if(do_high != null) { - return this.result_do_highlight(do_high, canMiddleHighlight); - } - }; - - Chosen.prototype.no_results = function(terms) { - var no_results_html; - no_results_html = $('
      • ' + this.results_none_found + ' ""
      • '); - no_results_html.find("span").first().html(terms); - this.search_results.append(no_results_html); - return this.form_field_jq.trigger("chosen:no_results", { - chosen: this - }); - }; - - Chosen.prototype.no_results_clear = function() { - return this.search_results.find(".no-results").remove(); - }; - - Chosen.prototype.keydown_arrow = function() { - var next_sib; - if(this.results_showing && this.result_highlight) { - next_sib = this.result_highlight.nextAll("li.active-result").first(); - if(next_sib) { - return this.result_do_highlight(next_sib); - } - } else { - return this.results_show(); - } - }; - - Chosen.prototype.keyup_arrow = function() { - var prev_sibs; - if(!this.results_showing && !this.is_multiple) { - return this.results_show(); - } else if(this.result_highlight) { - prev_sibs = this.result_highlight.prevAll("li.active-result"); - if(prev_sibs.length) { - return this.result_do_highlight(prev_sibs.first()); - } else { - if(this.choices_count() > 0) { - this.results_hide(); - } - return this.result_clear_highlight(); - } - } - }; - - Chosen.prototype.keydown_backstroke = function() { - var next_available_destroy; - if(this.pending_backstroke) { - this.choice_destroy(this.pending_backstroke.find("a").first()); - return this.clear_backstroke(); - } else { - next_available_destroy = this.search_container.siblings("li.search-choice").last(); - if(next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) { - this.pending_backstroke = next_available_destroy; - if(this.single_backstroke_delete) { - return this.keydown_backstroke(); - } else { - return this.pending_backstroke.addClass("search-choice-focus"); - } - } - } - }; - - Chosen.prototype.clear_backstroke = function() { - if(this.pending_backstroke) { - this.pending_backstroke.removeClass("search-choice-focus"); - } - return this.pending_backstroke = null; - }; - - Chosen.prototype.keydown_checker = function(evt) { - var stroke, _ref1; - stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode; - this.search_field_scale(); - if(stroke !== 8 && this.pending_backstroke) { - this.clear_backstroke(); - } - switch(stroke) { - case 8: - this.backstroke_length = this.search_field.val().length; - break; - case 9: - if(this.results_showing && !this.is_multiple) { - this.result_select(evt); - } - this.mouse_on_container = false; - break; - case 13: - evt.preventDefault(); - break; - case 38: - evt.preventDefault(); - this.keyup_arrow(); - break; - case 40: - evt.preventDefault(); - this.keydown_arrow(); - break; - } - }; - - Chosen.prototype.search_field_scale = function() { - var div, f_width, h, style, style_block, styles, w, _i, _len; - if(this.is_multiple) { - h = 0; - w = 0; - style_block = "position:absolute; left: -1000px; top: -1000px; display:none;"; - styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing']; - for(_i = 0, _len = styles.length; _i < _len; _i++) { - style = styles[_i]; - style_block += style + ":" + this.search_field.css(style) + ";"; - } - div = $('
        ', { - 'style': style_block - }); - div.text(this.search_field.val()); - $('body').append(div); - w = div.width() + 25; - div.remove(); - f_width = this.container.outerWidth(); - if(w > f_width - 10) { - w = f_width - 10; - } - return this.search_field.css({ - 'width': w + 'px' - }); - } - }; - - return Chosen; - - })(AbstractChosen); -}).call(this); - - -/* ======================================================================== - * ZUI: selectable.js [1.5.0+] - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function($) { - 'use strict'; - - var name = 'zui.selectable'; // module name - - // The selectable modal class - var Selectable = function(element, options) { - this.name = name; - this.$ = $(element); - this.id = $.zui.uuid(); - this.selectOrder = 1; - this.selections = {}; - - this.getOptions(options); - this._init(); - }; - - var isPointInner = function(x, y, a) { - return x >= a.left && x <= (a.left + a.width) && y >= a.top && y <= (a.top + a.height); - }; - - var isIntersectArea = function(a, b) { - var x1 = Math.max(a.left, b.left), - y1 = Math.max(a.top, b.top), - x2 = Math.min(a.left + a.width, b.left + b.width), - y2 = Math.min(a.top + a.height, b.top + b.height); - - return isPointInner(x1, y1, a) && isPointInner(x2, y2, a) && isPointInner(x1, y1, b) && isPointInner(x2, y2, b); - }; - - // default options - Selectable.DEFAULTS = { - selector: 'li,tr,div', - trigger: '', - selectClass: 'active', - rangeStyle: { - border: '1px solid ' + ($.zui.colorset ? $.zui.colorset.primary : '#3280fc'), - backgroundColor: $.zui.colorset ? (new $.zui.Color($.zui.colorset.primary).fade(20).toCssStr()) : 'rgba(50, 128, 252, 0.2)' - }, - clickBehavior: 'toggle', - ignoreVal: 3, - listenClick: true - // mouseButton: -1 // 0, 1, 2, -1, all, left, right, middle - }; - - // Get and init options - Selectable.prototype.getOptions = function(options) { - this.options = $.extend({}, Selectable.DEFAULTS, this.$.data(), options); - }; - - Selectable.prototype.select = function(elementOrid) { - this.toggle(elementOrid, true); - }; - - Selectable.prototype.unselect = function(elementOrid) { - this.toggle(elementOrid, false); - }; - - Selectable.prototype.toggle = function(elementOrid, isSelect, handle) { - var $element, id, selector = this.options.selector, that = this; - if(elementOrid === undefined) { - this.$.find(selector).each(function() { - that.toggle(this, isSelect); - }); - return; - } else if(typeof elementOrid === 'object') { - $element = $(elementOrid).closest(selector); - id = $element.data('id'); - } else { - id = elementOrid; - $element = that.$.find('.slectable-item[data-id="' + id + '"]'); - } - if($element && $element.length) { - if(!id) { - id = $.zui.uuid(); - $element.attr('data-id', id); - } - if(isSelect === undefined || isSelect === null) { - isSelect = !that.selections[id]; - } - if(!!isSelect !== !!that.selections[id]) { - var handleResult; - if($.isFunction(handle)) { - handleResult = handle(isSelect); - } - if(handleResult !== true) { - that.selections[id] = isSelect ? that.selectOrder++ : false; - that.callEvent(isSelect ? 'select' : 'unselect', {id: id, selections: that.selections, target: $element, selected: that.getSelectedArray()}, that); - } - } - if (that.options.selectClass) { - $element.toggleClass(that.options.selectClass, isSelect); - } - } - }; - - Selectable.prototype.getSelectedArray = function() { - var selected = []; - $.each(this.selections, function(thisId, thisIsSelected) { - if(thisIsSelected) selected.push(thisId); - }); - return selected; - }; - - Selectable.prototype.syncSelectionsFromClass = function() { - var that = this; - var $children = that.$children = that.$.find(that.options.selector); - that.selections = {}; - that.$children.each(function() { - var $item = $(this); - that.selections[$item.data('id')] = $item.hasClass(that.options.selectClass); - }); - }; - - Selectable.prototype._init = function() { - var options = this.options, that = this; - var ignoreVal = options.ignoreVal; - var isIgnoreMove = true; - var eventNamespace = '.' + this.name + '.' + this.id; - var startX, startY, $range, range, x, y, checkRangeCall; - var checkFunc = $.isFunction(options.checkFunc) ? options.checkFunc : null; - var rangeFunc = $.isFunction(options.rangeFunc) ? options.rangeFunc : null; - var isMouseDown = false; - var mouseDownBackEventCall = null; - var mouseDownEventName = 'mousedown' + eventNamespace; - - var checkRange = function() { - if(!range) return; - that.$children.each(function() { - var $item = $(this); - var offset = $item.offset(); - offset.width = $item.outerWidth(); - offset.height = $item.outerHeight(); - var isIntersect = rangeFunc ? rangeFunc.call(this, range, offset) : isIntersectArea(range, offset); - if(checkFunc) { - var result = checkFunc.call(that, { - intersect: isIntersect, - target: $item, - range: range, - targetRange: offset - }); - if(result === true) { - that.select($item); - } else if(result === false) { - that.unselect($item); - } - } else { - if(isIntersect) { - that.select($item); - } else if(!that.multiKey) { - that.unselect($item); - } - } - }); - }; - - var mousemove = function(e) { - if(!isMouseDown) return; - x = e.pageX; - y = e.pageY; - range = { - width: Math.abs(x - startX), - height: Math.abs(y - startY), - left: x > startX ? startX : x, - top: y > startY ? startY : y - }; - - if(isIgnoreMove && range.width < ignoreVal && range.height < ignoreVal) return; - if(!$range) { - $range = $('.selectable-range[data-id="' + that.id + '"]'); - if(!$range.length) { - $range = $('
        ') - .css($.extend({ - zIndex: 1060, - position: 'absolute', - top: startX, - left: startY, - pointerEvents: 'none', - }, that.options.rangeStyle)) - .appendTo($('body')); - } - } - $range.css(range); - clearTimeout(checkRangeCall); - checkRangeCall = setTimeout(checkRange, 10); - isIgnoreMove = false; - }; - - var mouseup = function(e) { - $(document).off(eventNamespace); - clearTimeout(mouseDownBackEventCall); - if(!isMouseDown) return; - isMouseDown = false; - if($range) $range.remove(); - if(!isIgnoreMove) - { - if(range) { - clearTimeout(checkRangeCall); - checkRange(); - range = null; - } - } - that.callEvent('finish', {selections: that.selections, selected: that.getSelectedArray()}); - e.preventDefault(); - }; - - var mousedown = function(e) { - if(isMouseDown) { - return mouseup(e); - } - - var mouseButton = $.zui.getMouseButtonCode(options.mouseButton); - if(mouseButton > -1 && e.button !== mouseButton) { - return; - } - - if(that.altKey || e.which === 3 || that.callEvent('start', e) === false) { - return; - } - - var $children = that.$children = that.$.find(options.selector); - $children.addClass('slectable-item'); - - var clickBehavior = that.multiKey ? 'multi' : options.clickBehavior; - if(clickBehavior === 'single') { - that.unselect(); - } - if (options.listenClick) { - if(clickBehavior === 'multi') { - that.toggle(e.target); - } else if(clickBehavior === 'single') { - that.select(e.target); - } else if(clickBehavior === 'toggle') { - that.toggle(e.target, null, function(isSelect) { - that.unselect(); - }); - } - } - - if(that.callEvent('startDrag', e) === false) { - that.callEvent('finish', {selections: that.selections, selected: that.getSelectedArray()}); - return; - } - - startX = e.pageX; - startY = e.pageY; - - $range = null; - isIgnoreMove = true; - isMouseDown = true; - - $(document).on('mousemove' + eventNamespace, mousemove).on('mouseup' + eventNamespace, mouseup); - mouseDownBackEventCall = setTimeout(function() { - $(document).on(mouseDownEventName, mouseup); - }, 10); - e.preventDefault(); - }; - - var $container = options.container && options.container !== 'default' ? $(options.container) : this.$; - if(options.trigger) { - $container.on(mouseDownEventName, options.trigger, mousedown); - } else { - $container.on(mouseDownEventName, mousedown); - } - - $(document).on('keydown', function(e) { - var code = e.keyCode; - if(code === 17 || code == 91) that.multiKey = code; - else if(code === 18) that.altKey = true; - }).on('keyup', function(e) { - that.multiKey = false; - that.altKey = false; - }); - }; - - // Call event helper - Selectable.prototype.callEvent = function(name, params) { - var event = $.Event(name + '.' + this.name); - this.$.trigger(event, params); - var result = event.result; - var callback = this.options[name]; - if($.isFunction(callback)) { - result = callback.apply(this, $.isArray(params) ? params : [params]); - } - return result; - }; - - // Extense jquery element - $.fn.selectable = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(name); - var options = typeof option == 'object' && option; - - if(!data) $this.data(name, (data = new Selectable(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - $.fn.selectable.Constructor = Selectable; - - // Auto call selectable after document load complete - $(function() { - $('[data-ride="selectable"]').selectable(); - }); -}(jQuery)); - - -/* ======================================================================== - * ZUI: sortable.js - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -+ function($, window, document) { - 'use strict'; - - if(!$.fn.droppable) { - console.error('Sortable requires droppable.js'); - return; - } - - var NAME = 'zui.sortable', - DEFAULTS = { - selector : 'li,div', - dragCssClass : 'invisible', - sortingClass : 'sortable-sorting' - }, - STR_ORDER = 'order'; - - var Sortable = function(element, options) { - var that = this; - that.$ = $(element); - that.options = $.extend({}, DEFAULTS, that.$.data(), options); - that.init(); - }; - - Sortable.DEFAULTS = DEFAULTS; - Sortable.NAME = NAME; - - Sortable.prototype.init = function() { - var that = this, - $root = that.$, - options = that.options, - selector = options.selector, - sortingClass = options.sortingClass, - dragCssClass = options.dragCssClass, - isReverse = options.reverse; - - var markOrders = function($items) { - $items = $items || that.getItems(1); - var orders = []; - - $items.each(function() { - var order = $(this).data(STR_ORDER); - if(typeof order === 'number') { - orders.push(order); - } - }); - - orders.sort(function(a, b) { - return a - b; - }); - - var itemsCount = $items.length; - while(orders.length < itemsCount) { - orders.push(orders.length ? (orders[orders.length - 1] + 1) : 0); - } - - if(isReverse) { - orders.reverse(); - } - - that.maxOrder = 0; - $items.each(function(idx) { - that.maxOrder = Math.max(that.maxOrder, orders[idx]); - $(this).data(STR_ORDER, orders[idx]).attr('data-' + STR_ORDER, orders[idx]); - }); - }; - - markOrders(); - - $root.droppable({ - handle : options.trigger, - target : selector, - selector : selector, - container : $root, - always : options.always, - flex : true, - lazy : options.lazy, - canMoveHere : options.canMoveHere, - nested : options.nested, - before : options.before, - mouseButton : options.mouseButton, - start: function(e) { - if(dragCssClass) e.element.addClass(dragCssClass); - that.trigger('start', e); - }, - drag: function(e) { - $root.addClass(sortingClass); - if(e.isIn) { - var $ele = e.element, - $target = e.target, - eleOrder = $ele.data(STR_ORDER), - targetOrder = $target.data(STR_ORDER); - if (!eleOrder && eleOrder !== 0) { - that.maxOrder++; - eleOrder = that.maxOrder; - $ele.attr('data-' + STR_ORDER, eleOrder); - } - if (!targetOrder && targetOrder !== 0) { - that.maxOrder++; - targetOrder = that.maxOrder; - $target.attr('data-' + STR_ORDER, targetOrder); - } - if(eleOrder == targetOrder) return; - else if(eleOrder > targetOrder) { - $target[isReverse ? 'after' : 'before']($ele); - } else { - $target[isReverse ? 'before' : 'after']($ele); - } - var $items = that.getItems(1); - markOrders($items); - that.trigger(STR_ORDER, { - list: $items, - element: $ele - }); - } - }, - finish: function(e) { - if(dragCssClass && e.element) e.element.removeClass(dragCssClass); - $root.removeClass(sortingClass); - that.trigger('finish', { - list: that.getItems(1), - element: e.element - }); - } - }); - }; - - Sortable.prototype.destroy = function() { - this.$.droppable('destroy'); - this.$.data(NAME, null); - }; - - Sortable.prototype.reset = function() { - this.destroy(); - this.init(); - }; - - Sortable.prototype.getItems = function(onlyElements) { - var $items = this.$.children(this.options.selector).not('.drag-shadow'); - if(!onlyElements) { - return $items.map(function() { - var $item = $(this); - return { - item: $item, - order: $item.data('order') - }; - }); - } - return $items; - }; - - Sortable.prototype.trigger = function(name, params) { - return $.zui.callEvent(this.options[name], params, this); - }; - - $.fn.sortable = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new Sortable(this, options))); - else if(typeof option == 'object') data.reset(); - - if(typeof option == 'string') data[option](); - }); - }; - - $.fn.sortable.Constructor = Sortable; -}(jQuery, window, document); - - -/*! +function(){var t,e,i,s,n,a={}.hasOwnProperty,o=function(t,e){function i(){this.constructor=t}for(var s in e)a.call(e,s)&&(t[s]=e[s]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},r={zh_cn:{no_results_text:"没有找到"},zh_tw:{no_results_text:"沒有找到"},en:{no_results_text:"No results match"}};s=function(){function e(){this.options_index=0,this.parsed=[]}return e.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},e.prototype.add_group=function(e){var i,s,n,a,o,r;for(i=this.parsed.length,this.parsed.push({array_index:i,group:!0,label:this.escapeExpression(e.label),children:0,disabled:e.disabled,title:e.title,search_keys:t.trim(e.getAttribute("data-keys")||"").replace(/,/g," ")}),o=e.childNodes,r=[],n=0,a=o.length;n\"\'\`]/.test(t)?(e={"<":"<",">":">",'"':""","'":"'","`":"`"},i=/&(?!\w+;)|[\<\>\"\'\`]/g,t.replace(i,function(t){return e[t]||"&"})):t},e}(),s.select_to_array=function(t){var e,i,n,a,o;for(i=new s,o=t.childNodes,n=0,a=o.length;n0?(e=document.createElement("li"),e.className="group-result",e.title=t.title,e.innerHTML=t.search_text,this.outerHTML(e)):""},e.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},e.prototype.reset_single_select_options=function(){var t,e,i,s,n;for(s=this.results_data,n=[],e=0,i=s.length;e"+i.search_text.substr(l+r.length),i.search_text=h.substr(0,l)+""+h.substr(l)):i.search_keys_match&&i.search_keys.length&&(l=i.search_keys.search(c),h=i.search_keys.substr(0,l+r.length)+""+i.search_keys.substr(l+r.length),i.search_text+='  '+h.substr(0,l)+""+h.substr(l)+""),null!=o&&(o.group_match=!0)):null!=i.group_array_index&&this.results_data[i.group_array_index].search_match&&(i.search_match=!0)));return this.result_clear_highlight(),a<1&&r.length?(this.update_results_content(""),this.no_results(r)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight(t))},e.prototype.search_string_match=function(t,e){var i,s,n,a;if(e.test(t))return!0;if(this.enable_split_word_search&&(t.indexOf(" ")>=0||0===t.indexOf("["))&&(s=t.replace(/\[|\]/g,"").split(" "),s.length))for(n=0,a=s.length;n0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:if(t.preventDefault(),this.results_showing)return this.result_select(t);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},e.prototype.clipboard_event_checker=function(t){var e=this;return setTimeout(function(){return e.results_search()},50)},e.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.classList.contains("form-control")?"100%":""+this.form_field.offsetWidth+"px"},e.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},e.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},e.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},e.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},e.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:(e=document.createElement("div"),e.appendChild(t),e.innerHTML)},e.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!/iP(od|hone)/i.test(window.navigator.userAgent)&&(!/Android/i.test(window.navigator.userAgent)||!/Mobile/i.test(window.navigator.userAgent))},e.default_multiple_text="",e.default_single_text="",e.default_no_result_text="No results match",e}(),t=jQuery,t.fn.extend({chosen:function(s){return e.browser_is_supported()?this.each(function(e){var n,a;n=t(this),a=n.data("chosen"),"destroy"===s&&a?a.destroy():a||n.data("chosen",new i(this,s))}):this}}),i=function(e){function i(){return n=i.__super__.constructor.apply(this,arguments)}return o(i,e),i.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex,this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")},i.prototype.set_up_html=function(){var e,i;e=["chosen-container"],e.push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl");var s=this.form_field.getAttribute("data-css-class");return s&&e.push(s),i={"class":e.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title},this.form_field.id.length&&(i.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("
        ",i),this.is_multiple?this.container.html('
          '):this.container.html('
          '+this.default_text+'
            '),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.options.drop_width&&this.dropdown.css("width",this.options.drop_width).addClass("chosen-drop-size-limited"),this.results_build(),this.set_tab_index(),this.set_label_behavior(),this.form_field_jq.trigger("chosen:ready",{chosen:this})},i.prototype.register_observers=function(){var t=this;return this.container.bind("mousedown.chosen",function(e){t.container_mousedown(e)}),this.container.bind("mouseup.chosen",function(e){t.container_mouseup(e)}),this.container.bind("mouseenter.chosen",function(e){t.mouse_enter(e)}),this.container.bind("mouseleave.chosen",function(e){t.mouse_leave(e)}),this.search_results.bind("mouseup.chosen",function(e){t.search_results_mouseup(e)}),this.search_results.bind("mouseover.chosen",function(e){t.search_results_mouseover(e)}),this.search_results.bind("mouseout.chosen",function(e){t.search_results_mouseout(e)}),this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(e){t.search_results_mousewheel(e)}),this.search_results.bind("touchstart.chosen",function(e){t.search_results_touchstart(e)}),this.search_results.bind("touchmove.chosen",function(e){t.search_results_touchmove(e)}),this.search_results.bind("touchend.chosen",function(e){t.search_results_touchend(e)}),this.form_field_jq.bind("chosen:updated.chosen",function(e){t.results_update_field(e)}),this.form_field_jq.bind("chosen:activate.chosen",function(e){t.activate_field(e)}),this.form_field_jq.bind("chosen:open.chosen",function(e){t.container_mousedown(e)}),this.form_field_jq.bind("chosen:close.chosen",function(e){t.input_blur(e)}),this.search_field.bind("blur.chosen",function(e){t.input_blur(e)}),this.search_field.bind("keyup.chosen",function(e){t.keyup_checker(e)}),this.search_field.bind("keydown.chosen",function(e){t.keydown_checker(e)}),this.search_field.bind("focus.chosen",function(e){t.input_focus(e)}),this.search_field.bind("cut.chosen",function(e){t.clipboard_event_checker(e)}),this.search_field.bind("paste.chosen",function(e){t.clipboard_event_checker(e)}),this.is_multiple?this.search_choices.bind("click.chosen",function(e){t.choices_click(e)}):this.container.bind("click.chosen",function(t){t.preventDefault()})},i.prototype.destroy=function(){return t(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},i.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field_jq[0].disabled,this.is_disabled?(this.container.addClass("chosen-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus.chosen",this.activate_action),this.close_field()):(this.container.removeClass("chosen-disabled"),this.search_field[0].disabled=!1,this.is_multiple?void 0:this.selected_item.bind("focus.chosen",this.activate_action))},i.prototype.container_mousedown=function(e){if(!this.is_disabled&&(e&&"mousedown"===e.type&&!this.results_showing&&e.preventDefault(),null==e||!t(e.target).hasClass("search-choice-close")))return this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).bind("click.chosen",this.click_test_action),this.results_show()),this.activate_field()},i.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},i.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e=40*e),this.search_results.scrollTop(e+this.search_results.scrollTop())},i.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},i.prototype.close_field=function(){return t(this.container[0].ownerDocument).unbind("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},i.prototype.activate_field=function(){this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val())},i.prototype.test_active_click=function(e){var i;return i=t(e.target).closest(".chosen-container"),i.length&&this.container[0]===i[0]?this.active_field=!0:this.close_field()},i.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=s.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.is_multiple||(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},i.prototype.result_do_highlight=function(t,e){var i,s,n,a,o,r,l=-1;t.length&&(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),n=parseInt(this.search_results.css("maxHeight"),10),r=this.result_highlight.outerHeight(),o=this.search_results.scrollTop(),a=n+o,s=this.result_highlight.position().top+this.search_results.scrollTop(),i=s+r,this.middle_highlight&&(e||"always"===this.middle_highlight||i>=a||s=a?l=i-n>0?i-n:0:s-1&&this.search_results.scrollTop(l))},i.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},i.prototype.results_show=function(){if(this.is_multiple&&this.max_selected_options<=this.choices_count())return this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1;this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results(1);var e=this.drop_direction;if("auto"===e)if(this.drop_directionFixed)e=this.drop_directionFixed;else{var i=this.container.find(".chosen-drop"),s=this.container.offset();s.top+i.outerHeight()+30>t(window).height()+t(window).scrollTop()&&(e="up"),this.drop_directionFixed=e}return this.container.toggleClass("chosen-up","up"===e),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this})},i.prototype.update_results_content=function(t){return this.search_results.html(t)},i.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this}),this.drop_directionFixed=0),this.results_showing=!1},i.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},i.prototype.set_label_behavior=function(){var e=this;if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=t("label[for='"+this.form_field.id+"']")),this.form_field_label.length>0)return this.form_field_label.bind("click.chosen",function(t){return e.is_multiple?e.container_mousedown(t):e.activate_field()})},i.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},i.prototype.search_results_mouseup=function(e){var i;i=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first(),i.length&&(this.result_highlight=i,this.result_select(e))},i.prototype.search_results_mouseover=function(e){var i;if(i=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(i)},i.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result"))return this.result_clear_highlight()},i.prototype.choice_build=function(e){var i,s,n=this;return i=t("
          • ",{"class":"search-choice"}).html(""+e.html+""),e.disabled?i.addClass("search-choice-disabled"):(s=t("",{"class":"search-choice-close","data-option-array-index":e.array_index}),s.bind("click.chosen",function(t){return n.choice_destroy_link_click(t)}),i.append(s)),this.search_container.before(i)},i.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},i.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},i.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.form_field_jq.trigger("change"),this.active_field)return this.results_hide()},i.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},i.prototype.result_select=function(t){var e,i;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),i=this.results_data[e[0].getAttribute("data-option-array-index")],i.selected=!0,this.form_field.options[i.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(i):this.single_set_selected_text(i.text),(t.metaKey||t.ctrlKey)&&this.is_multiple||this.results_hide(),this.search_field.val(""),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[i.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,this.search_field_scale())},i.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").attr("title",t).text(t)},i.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},i.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after(''),this.selected_item.addClass("chosen-single-with-deselect")},i.prototype.get_search_text=function(){return this.search_field.val()===this.default_text?"":t("
            ").text(t.trim(this.search_field.val())).html()},i.prototype.winnow_results_set_highlight=function(t){var e,i;if(i=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),e=i.length?i.first():this.search_results.find(".active-result").first(),null!=e)return this.result_do_highlight(e,t)},i.prototype.no_results=function(e){var i;return i=t('
          • '+this.results_none_found+' ""
          • '),i.find("span").first().html(e),this.search_results.append(i),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},i.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},i.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},i.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result"),t.length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight())):void 0:this.results_show()},i.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last(),t.length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0)},i.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},i.prototype.keydown_checker=function(t){var e,i;switch(e=null!=(i=t.which)?i:t.keyCode,this.search_field_scale(),8!==e&&this.pending_backstroke&&this.clear_backstroke(),e){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},i.prototype.search_field_scale=function(){var e,i,s,n,a,o,r,l,h;if(this.is_multiple){for(s=0,r=0,a="position:absolute; left: -1000px; top: -1000px; display:none;",o=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"],l=0,h=o.length;l",{style:a}),e.text(this.search_field.val()),t("body").append(e),r=e.width()+25,e.remove(),i=this.container.outerWidth(),r>i-10&&(r=i-10),this.search_field.css({width:r+"px"})}},i}(e)}.call(this),function(t){"use strict";var e="zui.selectable",i=function(i,s){this.name=e,this.$=t(i),this.id=t.zui.uuid(),this.selectOrder=1,this.selections={},this.getOptions(s),this._init()},s=function(t,e,i){return t>=i.left&&t<=i.left+i.width&&e>=i.top&&e<=i.top+i.height},n=function(t,e){var i=Math.max(t.left,e.left),n=Math.max(t.top,e.top),a=Math.min(t.left+t.width,e.left+e.width),o=Math.min(t.top+t.height,e.top+e.height);return s(i,n,t)&&s(a,o,t)&&s(i,n,e)&&s(a,o,e)};i.DEFAULTS={selector:"li,tr,div",trigger:"",selectClass:"active",rangeStyle:{border:"1px solid "+(t.zui.colorset?t.zui.colorset.primary:"#3280fc"),backgroundColor:t.zui.colorset?new t.zui.Color(t.zui.colorset.primary).fade(20).toCssStr():"rgba(50, 128, 252, 0.2)"},clickBehavior:"toggle",ignoreVal:3,listenClick:!0},i.prototype.getOptions=function(e){this.options=t.extend({},i.DEFAULTS,this.$.data(),e)},i.prototype.select=function(t){this.toggle(t,!0)},i.prototype.unselect=function(t){this.toggle(t,!1)},i.prototype.toggle=function(e,i,s){var n,a,o=this.options.selector,r=this;if(void 0===e)return void this.$.find(o).each(function(){r.toggle(this,i)});if("object"==typeof e?(n=t(e).closest(o),a=n.data("id")):(a=e,n=r.$.find('.slectable-item[data-id="'+a+'"]')),n&&n.length){if(a||(a=t.zui.uuid(),n.attr("data-id",a)),void 0!==i&&null!==i||(i=!r.selections[a]),!!i!=!!r.selections[a]){var l;t.isFunction(s)&&(l=s(i)),l!==!0&&(r.selections[a]=!!i&&r.selectOrder++,r.callEvent(i?"select":"unselect",{id:a,selections:r.selections,target:n,selected:r.getSelectedArray()},r))}r.options.selectClass&&n.toggleClass(r.options.selectClass,i)}},i.prototype.getSelectedArray=function(){var e=[];return t.each(this.selections,function(t,i){i&&e.push(t)}),e},i.prototype.syncSelectionsFromClass=function(){var e=this;e.$children=e.$.find(e.options.selector);e.selections={},e.$children.each(function(){var i=t(this);e.selections[i.data("id")]=i.hasClass(e.options.selectClass)})},i.prototype._init=function(){var e,i,s,a,o,r,l,h=this.options,c=this,d=h.ignoreVal,u=!0,p="."+this.name+"."+this.id,f=t.isFunction(h.checkFunc)?h.checkFunc:null,g=t.isFunction(h.rangeFunc)?h.rangeFunc:null,m=!1,v=null,y="mousedown"+p,b=function(){a&&c.$children.each(function(){var e=t(this),i=e.offset();i.width=e.outerWidth(),i.height=e.outerHeight();var s=g?g.call(this,a,i):n(a,i);if(f){var o=f.call(c,{intersect:s,target:e,range:a,targetRange:i});o===!0?c.select(e):o===!1&&c.unselect(e)}else s?c.select(e):c.multiKey||c.unselect(e)})},w=function(n){m&&(o=n.pageX,r=n.pageY,a={width:Math.abs(o-e),height:Math.abs(r-i),left:o>e?e:o,top:r>i?i:r},u&&a.width
            ').css(t.extend({zIndex:1060,position:"absolute",top:e,left:i,pointerEvents:"none"},c.options.rangeStyle)).appendTo(t("body")))),s.css(a),clearTimeout(l),l=setTimeout(b,10),u=!1))},x=function(e){t(document).off(p),clearTimeout(v),m&&(m=!1,s&&s.remove(),u||a&&(clearTimeout(l),b(),a=null),c.callEvent("finish",{selections:c.selections,selected:c.getSelectedArray()}),e.preventDefault())},_=function(n){if(m)return x(n);var a=t.zui.getMouseButtonCode(h.mouseButton);if(!(a>-1&&n.button!==a||c.altKey||3===n.which||c.callEvent("start",n)===!1)){var o=c.$children=c.$.find(h.selector);o.addClass("slectable-item");var r=c.multiKey?"multi":h.clickBehavior;if("single"===r&&c.unselect(),h.listenClick&&("multi"===r?c.toggle(n.target):"single"===r?c.select(n.target):"toggle"===r&&c.toggle(n.target,null,function(t){c.unselect()})),c.callEvent("startDrag",n)===!1)return void c.callEvent("finish",{selections:c.selections,selected:c.getSelectedArray()});e=n.pageX,i=n.pageY,s=null,u=!0,m=!0,t(document).on("mousemove"+p,w).on("mouseup"+p,x),v=setTimeout(function(){t(document).on(y,x)},10),n.preventDefault()}},C=h.container&&"default"!==h.container?t(h.container):this.$;h.trigger?C.on(y,h.trigger,_):C.on(y,_),t(document).on("keydown",function(t){var e=t.keyCode;17===e||91==e?c.multiKey=e:18===e&&(c.altKey=!0)}).on("keyup",function(t){c.multiKey=!1,c.altKey=!1})},i.prototype.callEvent=function(e,i){var s=t.Event(e+"."+this.name);this.$.trigger(s,i);var n=s.result,a=this.options[e];return t.isFunction(a)&&(n=a.apply(this,t.isArray(i)?i:[i])),n},t.fn.selectable=function(s){return this.each(function(){var n=t(this),a=n.data(e),o="object"==typeof s&&s;a||n.data(e,a=new i(this,o)),"string"==typeof s&&a[s]()})},t.fn.selectable.Constructor=i,t(function(){t('[data-ride="selectable"]').selectable()})}(jQuery),+function(t,e,i){ +"use strict";if(!t.fn.droppable)return void console.error("Sortable requires droppable.js");var s="zui.sortable",n={selector:"li,div",dragCssClass:"invisible",sortingClass:"sortable-sorting"},a="order",o=function(e,i){var s=this;s.$=t(e),s.options=t.extend({},n,s.$.data(),i),s.init()};o.DEFAULTS=n,o.NAME=s,o.prototype.init=function(){var e=this,i=e.$,s=e.options,n=s.selector,o=s.sortingClass,r=s.dragCssClass,l=s.reverse,h=function(i){i=i||e.getItems(1);var s=[];i.each(function(){var e=t(this).data(a);"number"==typeof e&&s.push(e)}),s.sort(function(t,e){return t-e});for(var n=i.length;s.lengthc?n[l?"after":"before"](s):n[l?"before":"after"](s);var d=e.getItems(1);h(d),e.trigger(a,{list:d,element:s})}},finish:function(t){r&&t.element&&t.element.removeClass(r),i.removeClass(o),e.trigger("finish",{list:e.getItems(1),element:t.element})}})},o.prototype.destroy=function(){this.$.droppable("destroy"),this.$.data(s,null)},o.prototype.reset=function(){this.destroy(),this.init()},o.prototype.getItems=function(e){var i=this.$.children(this.options.selector).not(".drag-shadow");return e?i:i.map(function(){var e=t(this);return{item:e,order:e.data("order")}})},o.prototype.trigger=function(e,i){return t.zui.callEvent(this.options[e],i,this)},t.fn.sortable=function(e){return this.each(function(){var i=t(this),n=i.data(s),a="object"==typeof e&&e;n?"object"==typeof e&&n.reset():i.data(s,n=new o(this,a)),"string"==typeof e&&n[e]()})},t.fn.sortable.Constructor=o}(jQuery,window,document),/*! * jQuery Form Plugin * version: 4.2.2 * Requires jQuery v1.7.2 or later @@ -11833,2669 +56,5 @@ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ -!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=function(t,r){return void 0===r&&(r="undefined"!=typeof window?require("jquery"):require("jquery")(t)),e(r),r}:e(jQuery)}(function(e){"use strict";function t(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).closest("form").ajaxSubmit(r))}function r(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=r.form;if(i.clk=r,"image"===r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function a(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}var n=/\r?\n/g,i={};i.fileapi=void 0!==e('').get(0).files,i.formdata=void 0!==window.FormData;var o=!!e.fn.prop;e.fn.attr2=function(){if(!o)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t,r,n,s){function u(r){var a,n,i=e.param(r,t.traditional).split("&"),o=i.length,s=[];for(a=0;a',k).val(f.extraData[c].value).appendTo(w)[0]):u.push(e('',k).val(f.extraData[c]).appendTo(w)[0]));f.iframeTarget||h.appendTo(D),v.attachEvent?v.attachEvent("onload",s):v.addEventListener("load",s,!1),setTimeout(t,15);try{w.submit()}catch(e){document.createElement("form").submit.apply(w)}}finally{w.setAttribute("action",i),w.setAttribute("enctype",o),r?w.setAttribute("target",r):p.removeAttr("target"),e(u).remove()}}function s(t){if(!x.aborted&&!X){if((O=n(v))||(a("cannot access response document"),t=L),t===A&&x)return x.abort("timeout"),void S.reject(x,"timeout");if(t===L&&x)return x.abort("server abort"),void S.reject(x,"error","server abort");if(O&&O.location.href!==f.iframeSrc||T){v.detachEvent?v.detachEvent("onload",s):v.removeEventListener("load",s,!1);var r,i="success";try{if(T)throw"timeout";var o="xml"===f.dataType||O.XMLDocument||e.isXMLDoc(O);if(a("isXml="+o),!o&&window.opera&&(null===O.body||!O.body.innerHTML)&&--C)return a("requeing onLoad callback, DOM not available"),void setTimeout(s,250);var u=O.body?O.body:O.documentElement;x.responseText=u?u.innerHTML:null,x.responseXML=O.XMLDocument?O.XMLDocument:O,o&&(f.dataType="xml"),x.getResponseHeader=function(e){return{"content-type":f.dataType}[e.toLowerCase()]},u&&(x.status=Number(u.getAttribute("status"))||x.status,x.statusText=u.getAttribute("statusText")||x.statusText);var c=(f.dataType||"").toLowerCase(),l=/(json|script|text)/.test(c);if(l||f.textarea){var p=O.getElementsByTagName("textarea")[0];if(p)x.responseText=p.value,x.status=Number(p.getAttribute("status"))||x.status,x.statusText=p.getAttribute("statusText")||x.statusText;else if(l){var m=O.getElementsByTagName("pre")[0],g=O.getElementsByTagName("body")[0];m?x.responseText=m.textContent?m.textContent:m.innerText:g&&(x.responseText=g.textContent?g.textContent:g.innerText)}}else"xml"===c&&!x.responseXML&&x.responseText&&(x.responseXML=q(x.responseText));try{M=N(x,c,f)}catch(e){i="parsererror",x.error=r=e||i}}catch(e){a("error caught: ",e),i="error",x.error=r=e||i}x.aborted&&(a("upload aborted"),i=null),x.status&&(i=x.status>=200&&x.status<300||304===x.status?"success":"error"),"success"===i?(f.success&&f.success.call(f.context,M,"success",x),S.resolve(x.responseText,"success",x),d&&e.event.trigger("ajaxSuccess",[x,f])):i&&(void 0===r&&(r=x.statusText),f.error&&f.error.call(f.context,x,i,r),S.reject(x,"error",r),d&&e.event.trigger("ajaxError",[x,f,r])),d&&e.event.trigger("ajaxComplete",[x,f]),d&&!--e.active&&e.event.trigger("ajaxStop"),f.complete&&f.complete.call(f.context,x,i),X=!0,f.timeout&&clearTimeout(j),setTimeout(function(){f.iframeTarget?h.attr("src",f.iframeSrc):h.remove(),x.responseXML=null},100)}}}var u,c,f,d,m,h,v,x,y,b,T,j,w=p[0],S=e.Deferred();if(S.abort=function(e){x.abort(e)},r)for(c=0;c',k)).css({position:"absolute",top:"-1000px",left:"-1000px"}),v=h[0],x={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";a("aborting upload... "+r),this.aborted=1;try{v.contentWindow.document.execCommand&&v.contentWindow.document.execCommand("Stop")}catch(e){}h.attr("src",f.iframeSrc),x.error=r,f.error&&f.error.call(f.context,x,r,t),d&&e.event.trigger("ajaxError",[x,f,r]),f.complete&&f.complete.call(f.context,x,r)}},(d=f.global)&&0==e.active++&&e.event.trigger("ajaxStart"),d&&e.event.trigger("ajaxSend",[x,f]),f.beforeSend&&!1===f.beforeSend.call(f.context,x,f))return f.global&&e.active--,S.reject(),S;if(x.aborted)return S.reject(),S;(y=w.clk)&&(b=y.name)&&!y.disabled&&(f.extraData=f.extraData||{},f.extraData[b]=y.value,"image"===y.type&&(f.extraData[b+".x"]=w.clk_x,f.extraData[b+".y"]=w.clk_y));var A=1,L=2,F=e("meta[name=csrf-token]").attr("content"),E=e("meta[name=csrf-param]").attr("content");E&&F&&(f.extraData=f.extraData||{},f.extraData[E]=F),f.forceSync?i():setTimeout(i,10);var M,O,X,C=50,q=e.parseXML||function(e,t){return window.ActiveXObject?((t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!==t.documentElement.nodeName?t:null},_=e.parseJSON||function(e){return window.eval("("+e+")")},N=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i=("xml"===r||!r)&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&(("json"===r||!r)&&n.indexOf("json")>=0?o=_(o):("script"===r||!r)&&n.indexOf("javascript")>=0&&e.globalEval(o)),o};return S}if(!this.length)return a("ajaxSubmit: skipping submit process - no element selected"),this;var l,f,d,p=this;"function"==typeof t?t={success:t}:"string"==typeof t||!1===t&&arguments.length>0?(t={url:t,data:r,dataType:n},"function"==typeof s&&(t.success=s)):void 0===t&&(t={}),l=t.method||t.type||this.attr2("method"),(d=(d="string"==typeof(f=t.url||this.attr2("action"))?e.trim(f):"")||window.location.href||"")&&(d=(d.match(/^([^#]+)/)||[])[1]),t=e.extend(!0,{url:d,success:e.ajaxSettings.success,type:l||e.ajaxSettings.type,iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&!1===t.beforeSerialize(this,t))return a("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var h=t.traditional;void 0===h&&(h=e.ajaxSettings.traditional);var v,g=[],x=this.formToArray(t.semantic,g,t.filtering);if(t.data){var y=e.isFunction(t.data)?t.data(x):t.data;t.extraData=y,v=e.param(y,h)}if(t.beforeSubmit&&!1===t.beforeSubmit(x,this,t))return a("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[x,this,t,m]),m.veto)return a("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var b=e.param(x,h);v&&(b=b?b+"&"+v:v),"GET"===t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+b,t.data=null):t.data=b;var T=[];if(t.resetForm&&T.push(function(){p.resetForm()}),t.clearForm&&T.push(function(){p.clearForm(t.includeHidden)}),!t.dataType&&t.target){var j=t.success||function(){};T.push(function(r,a,n){var i=arguments,o=t.replaceTarget?"replaceWith":"html";e(t.target)[o](r).each(function(){j.apply(this,i)})})}else t.success&&(e.isArray(t.success)?e.merge(T,t.success):T.push(t.success));if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=T.length;i0,D="multipart/form-data",A=p.attr("enctype")===D||p.attr("encoding")===D,L=i.fileapi&&i.formdata;a("fileAPI :"+L);var F,E=(k||A)&&!L;!1!==t.iframe&&(t.iframe||E)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){F=c(x)}):F=c(x):F=(k||A)&&L?function(r){for(var a=new FormData,n=0;n0)&&(n={url:n,data:i,dataType:o},"function"==typeof s&&(n.success=s)),n=n||{},n.delegation=n.delegation&&e.isFunction(e.fn.on),!n.delegation&&0===this.length){var u={s:this.selector,c:this.context};return!e.isReady&&u.s?(a("DOM not ready, queuing ajaxForm"),e(function(){e(u.s,u.c).ajaxForm(n)}),this):(a("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this)}return n.delegation?(e(document).off("submit.form-plugin",this.selector,t).off("click.form-plugin",this.selector,r).on("submit.form-plugin",this.selector,n,t).on("click.form-plugin",this.selector,n,r),this):this.ajaxFormUnbind().on("submit.form-plugin",n,t).on("click.form-plugin",n,r)},e.fn.ajaxFormUnbind=function(){return this.off("submit.form-plugin click.form-plugin")},e.fn.formToArray=function(t,r,a){var n=[];if(0===this.length)return n;var o,s=this[0],u=this.attr("id"),c=t||void 0===s.elements?s.getElementsByTagName("*"):s.elements;if(c&&(c=e.makeArray(c)),u&&(t||/(Edge|Trident)\//.test(navigator.userAgent))&&(o=e(':input[form="'+u+'"]').get()).length&&(c=(c||[]).concat(o)),!c||!c.length)return n;e.isFunction(a)&&(c=e.map(c,a));var l,f,d,p,m,h,v;for(l=0,h=c.length;l' - }, - add: { - template: '' - }, - edit: { - template: '' - }, - "delete": { - template: '' - } - }; - - function formatActions(actions, parentActions) { - if(actions === false) return actions; - if(!actions) return parentActions; - - if(actions === true) { - actions = {add: true, "delete": true, edit: true, sort: true}; - } else if(typeof actions === 'string') { - actions = actions.split(','); - } - var _actions; - if($.isArray(actions)) { - _actions = {}; - $.each(actions, function(idx, action) { - if($.isPlainObject(action)) { - _actions[action.action] = action; - } else { - _actions[action] = true; - } - }); - actions = _actions; - } - if($.isPlainObject(actions)) { - _actions = {}; - $.each(actions, function(name, action) { - if(action) { - _actions[name] = $.extend({type: name}, DETAULT_ACTIONS[name], $.isPlainObject(action) ? action : null); - } else { - _actions[name] = false; - } - }); - actions = _actions; - } - return parentActions ? $.extend(true, {}, parentActions, actions) : actions; - } - - function createActionEle(action, name, template) { - name = name || action.type; - return $(template || action.template).addClass('tree-action').attr($.extend({'data-type': name, title: action.title || ''}, action.attr)).data('action', action); - } - - // default options - Tree.DEFAULTS = { - animate: null, - initialState: 'normal', // 'normal' | 'preserve' | 'expand' | 'collapse', - toggleTemplate: '', - // sortable: false, // - }; - - Tree.prototype.add = function(rootEle, items, expand, disabledAnimate, notStore) { - var $e = $(rootEle), $ul, options = this.options; - if($e.is('li')) { - $ul = $e.children('ul'); - if(!$ul.length) { - $ul = $('
              '); - $e.append($ul); - this._initList($ul, $e); - } - } else { - $ul = $e; - } - - if($ul) { - var that = this; - if(!$.isArray(items)) { - items = [items]; - } - $.each(items, function(idx, item) { - var $li = $('
            • ').data(item).appendTo($ul); - if(item.id !== undefined) $li.attr('data-id', item.id); - var $wrapper = options.itemWrapper ? $(options.itemWrapper === true ? '
              ' : options.itemWrapper).appendTo($li) : $li; - if(item.html) { - $wrapper.html(item.html) - } else if($.isFunction(that.options.itemCreator)) { - var itemContent = that.options.itemCreator($li, item); - if(itemContent !== true && itemContent !== false) $wrapper.html(itemContent); - } else if(item.url) { - $wrapper.append($('', {href: item.url}).text(item.title || item.name)); - } else { - $wrapper.append($('').text(item.title || item.name)); - } - that._initItem($li, item.idx || idx, $ul, item); - if(item.children && item.children.length) { - that.add($li, item.children); - } - }); - this._initList($ul); - if(expand && !$ul.hasClass('tree')) { - that.expand($ul.parent('li'), disabledAnimate, notStore); - } - } - }; - - Tree.prototype.reload = function(data) { - var that = this; - - if(data) { - that.$.empty(); - that.add(that.$, data); - } - - if(that.isPreserve) - { - if(that.store.time) { - that.$.find('li:not(.tree-action-item)').each(function() { - var $li= $(this); - that[that.store[$li.data('id')] ? 'expand' : 'collapse']($li, true, true); - }); - } - } - }; - - Tree.prototype._initList = function($list, $parentItem, idx, data) { - var that = this; - if(!$list.hasClass('tree')) { - $parentItem = ($parentItem || $list.closest('li')).addClass('has-list'); - if(!$parentItem.find('.list-toggle').length) { - $parentItem.prepend(this.options.toggleTemplate); - } - idx = idx || $parentItem.data('idx'); - } else { - idx = 0; - $parentItem = null; - } - var $children = $list.attr('data-idx', idx || 0).children('li:not(.tree-action-item)').each(function(index) { - that._initItem($(this), index + 1, $list); - }); - if($children.length === 1 && !$children.find('ul').length) - { - $children.addClass('tree-single-item'); - } - data = data || ($parentItem ? $parentItem.data() : null); - var actions = formatActions(data ? data.actions : null, this.actions); - if(actions) { - if(actions.add && actions.add.templateInList !== false) { - var $actionItem = $list.children('li.tree-action-item'); - if(!$actionItem.length) { - $('
            • ').append(createActionEle(actions.add, 'add', actions.add.templateInList)).appendTo($list); - } else { - $actionItem.detach().appendTo($list); - } - } - if(actions.sort) { - $list.sortable($.extend({ - dragCssClass: 'tree-drag-holder', - trigger: '.sort-handler', - selector: 'li:not(.tree-action-item)', - finish: function(e) { - that.callEvent('action', {action: actions.sort, $list: $list, target: e.target, item: data}); - } - }, actions.sort.options, $.isPlainObject(this.options.sortable) ? this.options.sortable : null)); - } - } - if($parentItem && ($parentItem.hasClass('open') || (data && data.open))) { - $parentItem.addClass('open in'); - } - }; - - Tree.prototype._initItem = function($item, idx, $parentList, data) { - if(idx === undefined) { - var $pre = $item.prev('li'); - idx = $pre.length ? ($pre.data('idx') + 1) : 1; - } - $parentList = $parentList || $item.closest('ul'); - $item.attr('data-idx', idx).removeClass('tree-single-item'); - if(!$item.data('id')) { - var id = idx; - if(!$parentList.hasClass('tree')) { - id = $parentList.parent('li').data('id') + '-' + id; - } - $item.attr('data-id', id); - } - data = data || $item.data(); - var actions = formatActions(data.actions, this.actions); - if(actions) { - var $actions = $item.find('.tree-actions'); - if(!$actions.length) { - $actions = $('
              ').appendTo(this.options.itemWrapper ? $item.find('.tree-item-wrapper') : $item); - $.each(actions, function(actionName, action) { - if(action) $actions.append(createActionEle(action, actionName)); - }); - } - } - - var $children = $item.children('ul'); - if($children.length) { - this._initList($children, $item, idx, data); - } - }; - - Tree.prototype._init = function() { - var options = this.options, that = this; - this.actions = formatActions(options.actions); - - this.$.addClass('tree'); - if(options.animate) this.$.addClass('tree-animate'); - - this._initList(this.$); - - var initialState = options.initialState; - var isPreserveEnable = $.zui && $.zui.store && $.zui.store.enable; - if(isPreserveEnable) { - this.selector = name + '::' + (options.name || '') + '#' + (this.$.attr('id') || globalId++); - this.store = $.zui.store[options.name ? 'get' : 'pageGet'](this.selector, {}); - } - if(initialState === 'preserve') { - if(isPreserveEnable) this.isPreserve = true; - else this.options.initialState = initialState = 'normal'; - } - - // init data - this.reload(options.data); - if(isPreserveEnable) this.isPreserve = true; - - if(initialState === 'expand') { - this.expand(); - } else if(initialState === 'collapse') { - this.collapse(); - } - - // Bind event - this.$.on('click', '.list-toggle,a[href="#"],.tree-toggle', function(e) { - var $this = $(this); - var $li = $this.parent('li'); - that.callEvent('hit', {target: $li, item: $li.data()}); - that.toggle($li); - if($this.is('a')) e.preventDefault(); - }).on('click', '.tree-action', function() { - var $action = $(this); - var action = $action.data(); - if(action.action) action = action.action; - if(action.type === 'sort') return; - var $li = $action.closest('li:not(.tree-action-item)'); - that.callEvent('action', {action: action, target: this, $item: $li, item: $li.data()}); - }); - }; - - Tree.prototype.preserve = function($li, id, expand) { - if(!this.isPreserve) return; - if($li) { - id = id || $li.data('id'); - expand = expand === undefined ? $li.hasClass('open') : false; - if(expand) this.store[id] = expand; - else delete this.store[id]; - this.store.time = new Date().getTime(); - $.zui.store[this.options.name ? 'set' : 'pageSet'](this.selector, this.store); - } else { - var that = this; - this.store = {}; - this.$.find('li').each(function() { - that.preserve($(this)); - }); - } - }; - - Tree.prototype.expand = function($li, disabledAnimate, notStore) { - if($li) { - $li.addClass('open'); - if(!disabledAnimate && this.options.animate) { - setTimeout(function() { - $li.addClass('in'); - }, 10); - } else { - $li.addClass('in'); - } - } else { - $li = this.$.find('li.has-list').addClass('open in'); - } - if(!notStore) this.preserve($li); - this.callEvent('expand', $li, this); - }; - - Tree.prototype.show = function($lis, disabledAnimate, notStore) { - var that = this; - $lis.each(function() { - var $li = $(this); - that.expand($li, disabledAnimate, notStore); - if($li) { - var $ul = $li.parent('ul'); - while($ul && $ul.length && !$ul.hasClass('tree')) { - var $parentLi = $ul.parent('li'); - if($parentLi.length) { - that.expand($parentLi, disabledAnimate, notStore); - $ul = $parentLi.parent('ul'); - } else { - $ul = false; - } - } - } - }); - }; - - Tree.prototype.collapse = function($li, disabledAnimate, notStore) { - if($li) { - if(!disabledAnimate && this.options.animate) { - $li.removeClass('in'); - setTimeout(function() { - $li.removeClass('open'); - }, 300); - } else { - $li.removeClass('open in'); - } - } else { - $li = this.$.find('li.has-list').removeClass('open in'); - } - if(!notStore) this.preserve($li); - this.callEvent('collapse', $li, this); - }; - - Tree.prototype.toggle = function($li) { - var collapse = ($li && $li.hasClass('open')) || $li === false || ($li === undefined && this.$.find('li.has-list.open').length); - this[collapse ? 'collapse' : 'expand']($li); - }; - - // Get and init options - Tree.prototype.getOptions = function(options) { - this.options = $.extend({}, Tree.DEFAULTS, this.$.data(), options); - if(this.options.animate === null && this.$.hasClass('tree-animate')) { - this.options.animate = true; - } - }; - - Tree.prototype.toData = function($ul, filter) { - if($.isFunction($ul)) { - filter = $ul; - $ul = null; - } - $ul = $ul || this.$; - var that = this; - return $ul.children('li:not(.tree-action-item)').map(function() { - var $li = $(this); - var data = $li.data(); - delete data['zui.droppable']; - var $children = $li.children('ul'); - if($children.length) data.children = that.toData($children); - return $.isFunction(filter) ? filter(data, $li) : data; - }).get(); - }; - - // Call event helper - Tree.prototype.callEvent = function(name, params) { - var result; - if($.isFunction(this.options[name])) { - result = this.options[name](params, this); - } - this.$.trigger($.Event(name + '.' + this.name, params)); - return result; - }; - - // Extense jquery element - $.fn.tree = function(option, params) { - return this.each(function() { - var $this = $(this); - var data = $this.data(name); - var options = typeof option == 'object' && option; - - if(!data) $this.data(name, (data = new Tree(this, options))); - - if(typeof option == 'string') data[option](params); - }); - }; - - $.fn.tree.Constructor = Tree; - - // Auto call tree after document load complete - $(function() { - $('[data-ride="tree"]').tree(); - }); -}(jQuery)); - - -/* ======================================================================== - * ZUI: ColorPicker.js [1.5.0+] - * http://zui.sexy - * ======================================================================== - * Copyright (c) 2016 cnezsoft.com; Licensed MIT - * ======================================================================== */ - - -(function($) { - 'use strict'; - - var name = 'zui.colorPicker'; // modal name - var TEAMPLATE = '
              '; - var LANG = { - zh_cn: { - errorTip: "不是有效的颜色值" - }, - zh_tw: { - errorTip: "不是有效的顏色值" - }, - en: { - errorTip: "Not a valid color value" - } - }; - - // The ColorPicker modal class - var ColorPicker = function(element, options) { - this.name = name; - this.$ = $(element); - - this.getOptions(options); - this.init(); - }; - - // default options - ColorPicker.DEFAULTS = { - colors: ['#00BCD4', '#388E3C', '#3280fc', '#3F51B5', '#9C27B0', '#795548', '#F57C00', '#F44336', '#E91E63'], - pullMenuRight: true, - wrapper: 'btn-wrapper', - tileSize: 30, - lineCount: 5, - optional: true, - tooltip: 'top', - icon: 'caret-down', - updateBtn: 'auto' - // btnTip: 'Tool tip in button' - }; - - ColorPicker.prototype.init = function() { - var that = this; - var options = that.options; - var $input = that.$; - var $parent = $input.parent(); - var createdPicker = false; - if ($parent.hasClass('colorpicker')) { - that.$picker = $parent; - } else { - that.$picker = $(options.template || TEAMPLATE); - createdPicker = true; - } - that.$picker.addClass(options.wrapper).find('.cp-title').toggle(options.title !== undefined).text(options.title); - that.$menu = that.$picker.find('.dropdown-menu').toggleClass('pull-right', options.pullMenuRight); - that.$btn = that.$picker.find('.btn.dropdown-toggle'); - that.$btn.find('.ic').addClass('icon-' + options.icon); - if(options.btnTip) { - that.$picker.attr('data-toggle', 'tooltip').tooltip({title: options.btnTip, placement: options.tooltip, container: 'body'}); - } - $input.attr('data-provide', null); - if (createdPicker) { - $input.after(that.$picker); - } - - // init colors - that.colors = {}; - $.each(options.colors, function(idx, rawColor) { - if($.zui.Color.isColor(rawColor)) { - var color = new $.zui.Color(rawColor); - that.colors[color.toCssStr()] = color; - } - }); - - that.updateColors(); - that.$picker.on('click', '.cp-tile', function() { - that.setValue($(this).data('color')); - }); - - var setInputColor = function() { - var val = $input.val(); - var isColor = $.zui.Color.isColor(val); - $input.parent().toggleClass('has-error', !isColor && !(options.optional && val === '')); - if(isColor) { - that.setValue(val, true); - } else { - if(options.optional && val === '') { - $input.tooltip('hide'); - } else if(!$input.is(':focus')) { - $input.tooltip('show', options.errorTip); - } - } - } - if($input.is('input:not([type=hidden])')) { - if(options.tooltip) { - $input.attr('data-toggle', 'tooltip').tooltip({trigger: 'manual', placement: options.tooltip, tipClass: 'tooltip-danger', container: 'body'}); - } - $input.on('keyup paste input change', setInputColor); - } else { - $input.appendTo(that.$picker); - } - setInputColor(); - }; - - ColorPicker.prototype.addColor = function(color) { - if(!(color instanceof $.zui.Color)) { - color = new $.zui.Color(color); - } - var hex = color.toCssStr(), - options = this.options; - - if(!this.colors[hex]) { - this.colors[hex] = color; - } - - var $a = $('
              ', { - titile: color - }).data('color', color).css({ - 'color': color.contrast().toCssStr(), - 'background': hex, - 'border-color': color.luma() > 0.43 ? '#ccc' : 'transparent' - }).attr('data-color', hex); - this.$menu.append($('
            • ').css({width: options.tileSize, height: options.tileSize}).append($a)); - if(options.optional) { - this.$menu.find('.cp-tile.empty').parent().detach().appendTo(this.$menu); - } - }; - - ColorPicker.prototype.updateColors = function(colors) { - var $picker = this.$picker, - $menu = this.$menu.children('li:not(.heading)').remove(), - options = this.options, - colors = colors || this.colors, - that = this; - var bestLineCount = 0; - $.each(colors, function(idx, color) { - that.addColor(color); - bestLineCount++; - }); - if(options.optional) { - var $li = $('
            • ').css({width: options.tileSize, height: options.tileSize}); - this.$menu.append($li); - bestLineCount++; - } - $menu.css('width', Math.min(bestLineCount, options.lineCount) * options.tileSize + 6); - }; - - ColorPicker.prototype.setValue = function(color, notSetInput) { - var that = this; - var options = that.options; - var $btn = that.$btn; - that.$menu.find('.cp-tile.active').removeClass('active'); - var hex = ''; - var updateBtn = options.updateBtn; - if (updateBtn === 'auto') { - var $btnBar = $btn.find('.color-bar'); - updateBtn = $btnBar.length ? function(hexColor) { - $btnBar.css('background', hexColor || ''); - } : true; - } - if(color) { - var c = new $.zui.Color(color); - hex = c.toCssStr().toLowerCase(); - if (updateBtn) { - if ($.isFunction(updateBtn)) { - updateBtn(hex, $btn, that); - } else { - $btn.css({ - background: hex, - color: c.contrast().toCssStr(), - borderColor: c.luma() > 0.43 ? '#ccc' : hex - }); - } - } - if(!that.colors[hex]) { - that.addColor(c); - } - if(!notSetInput && that.$.val().toLowerCase() !== hex) { - that.$.val(hex).trigger('change'); - } - that.$menu.find('.cp-tile[data-color="' + hex + '"]').addClass('active'); - that.$.tooltip('hide'); - that.$.trigger('colorchange', c); - } else { - if (updateBtn) { - if ($.isFunction(updateBtn)) { - updateBtn(null, $btn, that); - } else { - $btn.attr('style', null); - } - } - if(!notSetInput && that.$.val() !== '') { - that.$.val(hex).trigger('change'); - } - if(options.optional) { - that.$.tooltip('hide'); - } - that.$menu.find('.cp-tile.empty').addClass('active'); - that.$.trigger('colorchange', null); - } - - if(options.updateBorder) { - $(options.updateBorder).css('border-color', hex); - } - if(options.updateBackground) { - $(options.updateBackground).css('background-color', hex); - } - if(options.updateColor) { - $(options.updateColor).css('color', hex); - } - if(options.updateText) { - $(options.updateText).text(hex); - } - }; - - // Get and init options - ColorPicker.prototype.getOptions = function(options) { - var thisOptions = $.extend({}, ColorPicker.DEFAULTS, this.$.data(), options); - if(typeof thisOptions.colors === 'string') thisOptions.colors = thisOptions.colors.split(','); - var lang = (thisOptions.lang || $.zui.clientLang()).toLowerCase(); - if(!thisOptions.errorTip) { - thisOptions.errorTip = LANG[lang].errorTip; - } - if(!$.fn.tooltip) thisOptions.btnTip = false; - this.options = thisOptions; - }; - - // Extense jquery element - $.fn.colorPicker = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(name); - var options = typeof option == 'object' && option; - - if(!data) $this.data(name, (data = new ColorPicker(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - $.fn.colorPicker.Constructor = ColorPicker; - - // Auto call colorPicker after document load complete - $(function() { - $('[data-provide="colorpicker"]').colorPicker(); - }); -}(jQuery)); - -(function ($, undefined) { - var colorIndex = 0; - var accentsColors = [ - '#00a9fc', '#ff5d5d', '#fdc137', '#00da88', '#7ec5ff', '#8666b8', '#bd7b46', '#ff9100', '#ff3d00', '#f57f17', '#00e5ff', '#00b0ff', '#2979ff', '#3d5afe', '#651fff', '#d500f9', '#f50057', '#ff1744' - ]; - function nextAccentColor(idx) { - if (idx === undefined) { - idx = colorIndex += 1; - } - return accentsColors[idx%accentsColors.length]; - } - - jQuery.fn.tableChart = function () { - $(this).each(function () { - var $table = $(this); - var options = $table.data(); - var chartType = options.chart || 'pie'; - var $canvas = $(options.target); - if (!$canvas.length) return; - var chart = null; - - if (chartType === 'pie') { - options = $.extend({ scaleShowLabels: true, scaleLabel: '<%=label%>: <%=value%>' }, options); - var data = []; - var $rows = $table.find('tbody > tr').each(function (idx) { - var $row = $(this); - var color = nextAccentColor(); - - $row.attr('data-id', idx).find('.chart-color-dot').css('background', color); - data.push({ label: $row.find('.chart-label').text(), value: parseInt($row.find('.chart-value').text()), color: color, id: idx }); - }); - - if (data.length > 1) options.scaleLabelPlacement = 'outside'; - else if (data.length === 1) { - options.scaleLabelPlacement = 'inside'; - data.push({ label: '', value: data[0].value / 2000, color: '#fff', showLabel: false }) - } - - chart = $canvas.pieChart(data, options); - $canvas.on('mousemove', function (e) { - var activePoints = chart.getSegmentsAtEvent(e); - $rows.removeClass('active'); - if (activePoints.length) { - $rows.filter('[data-id="' + activePoints[0].id + '"]').addClass('active'); - } - }); - } - else if (chartType === 'bar') { - var color = nextAccentColor(); - var labels = [], dataset = { label: $table.find('thead .chart-label').text(), color: color, data: [] }; - - var $rows = $table.find('tbody > tr').each(function (idx) { - var $row = $(this); - labels.push($row.find('.chart-label').text()); - dataset.data.push(parseInt($row.find('.chart-value').text())); - $row.find('.chart-color-dot').css('background', color); - }); - var data = { labels: labels, datasets: [dataset] }; - if (labels.length) options.barValueSpacing = 5; - - chart = $canvas.barChart(data, options); - } - else if (chartType === 'line') { - var color = nextAccentColor(); - var labels = [], dataset = { label: $table.find('thead .chart-label').text(), color: color, data: [] }; - - var $rows = $table.find('tbody > tr').each(function (idx) { - var $row = $(this); - labels.push($row.find('.chart-label').text()); - dataset.data.push(parseInt($row.find('.chart-value').text())); - $row.find('.chart-color-dot').css('background', color); - }); - var data = { labels: labels, datasets: [dataset] }; - if (labels.length) options.barValueSpacing = 5; - - chart = $canvas.lineChart(data, options); - } - - if (chart !== null) $table.data('zui.chart', chart); - }); - }; - - jQuery.fn.progressPie = function (setting) { - $(this).each(function () { - var $this = $(this); - var $canvas = $this.is('canvas') ? $this : $this.find('canvas'); - var options = $.extend( - { - value: 0, - color: '#006af1', - backColor: '#E9F2FB', - doughnut: true, - doughnutSize: 85, - width: 20, - height: 20, - showTip: false, - name: '', - tipTemplate: "<%=value%>%", - animation: false - }, setting, $this.data()); - var hasCanvas = $canvas.length; - - if (!hasCanvas) $canvas = $('').appendTo($this); - if ($canvas.attr('width') !== undefined) options.width = $canvas.attr('width'); - else $canvas.attr('width', options.width); - if ($canvas.attr('height') !== undefined) options.height = $canvas.attr('height'); - else $canvas.attr('height', options.height); - if (!hasCanvas && $.zui.browser.ie == 8) G_vmlCanvasManager.initElement($canvas[0]); - - options.value = Math.max(0, Math.min(100, options.value)); - - var data = - [ - { value: options.value, label: options.name, color: options.color, circleBeginEnd: true }, - { value: 100 - options.value, label: '', color: options.backColor } - ]; - - $canvas[options.doughnut ? 'doughnutChart' : 'pieChart'](data, $.extend( - { - segmentShowStroke: false, - animation: options.animation, - showTooltips: options.showTip, - tooltipTemplate: options.tipTemplate, - percentageInnerCutout: options.doughnutSize, - reverseDrawOrder: true - }, options.chartOptions)); - }); - }; - - $(function () { - $('.table-chart').tableChart(); - var $pies = $('.progress-pie'); - if ($pies.length > 100) setTimeout(function () { $pies.progressPie(); }, 1000); - else $pies.progressPie(); - }); -}(jQuery, undefined)); - -(function($) { - jQuery.fn.sparkline = function(setting) - { - $(this).each(function() - { - var $e = $(this); - var options = $.extend({ - values: $e.attr('values'), - width: $e.width() - 4, - height: $e.height() - 4 - }, $e.data(), setting); - var height = options.height, - values = [], - maxWidth = options.width; - - var strValues = options.values.split(','), maxValue = 0; - for(var i in strValues) - { - var v = parseFloat(strValues[i]); - if(v != NaN) - { - values.push(v); - maxValue = Math.max(v, maxValue); - } - } - - var scaleSteps = Math.min(maxValue, 30); - var scaleStepWidth = Math.ceil(maxValue/scaleSteps); - - var width = Math.min(maxWidth, Math.max(10, values.length*maxWidth/30)); - var canvas = $e.children('canvas'); - if(!canvas.length) - { - $e.append(''); - canvas = $e.children('canvas'); - } - canvas.attr('width', width).attr('height',height); - var data = { - labels : values, - datasets: - [{ - fillColor : "rgba(0,0,255,0.05)", - strokeColor : "#0054EC", - pointColor : "rgba(255,136,0,1)", - pointStrokeColor : "#fff", - data : values - }] - }; - var chartOtions = { - animation: true, - scaleOverride: true, - scaleStepWidth: Math.ceil(maxValue/10), - scaleSteps: 10, - scaleStartValue: 0, - showScale: false, - showTooltips: false, - pointDot: false, - scaleShowGridLines: false, - datasetStrokeWidth: 1 - }; - var lineChart = $(canvas).lineChart(data, chartOtions); - $e.data('sparklineChart', lineChart); - }); - } - - $(function(){ - $('.sparkline').sparkline(); - }); -}(jQuery)); - -(function ($) { - $(function () { - $.fn.fixedDate = function () { - return $(this).each(function () { - var $this = $(this); - if ($this.offset().top + 200 > $(document.body).height()) { - $this.attr('data-picker-position', 'top-right'); - } - - if ($this.val() == '0000-00-00') { - $this.focus(function () { - if ($this.val() == '0000-00-00') $this.val('').datetimepicker('update'); - }).blur(function () { - if ($this.val() == '') $this.val('0000-00-00') - }); - } - }); - }; - - var options = { - language: $('html').attr('lang'), - weekStart: 1, - todayBtn: 1, - autoclose: 1, - todayHighlight: 1, - startView: 2, - forceParse: 0, - showMeridian: 1, - format: 'yyyy-mm-dd hh:ii', - startDate: '1970-1-1' - }; - var dateOptions = $.extend({}, options, {minView: 2, format: 'yyyy-mm-dd' }); - var timeOptions = $.extend({}, options, {startView: 1, minView: 0, maxView: 1, format: 'hh:ii'}); - - $('.datepicker-wrapper').click(function () { - $(this).find('.form-date, .form-datetime, .form-time').datetimepicker('show').focus(); - }); - - window.datepickerOptions = options; - $.fn.datepicker = function(setting) { - return this.datetimepicker($.extend({}, dateOptions, setting)); - }; - $.fn.timepicker = function(setting) { - return this.datetimepicker($.extend({}, timeOptions, setting)); - }; - - $.fn.datepickerAll = function() { - this.find('.form-datetime').fixedDate().datetimepicker(options); - this.find('.form-date').fixedDate().datepicker(); - this.find('.form-time').fixedDate().timepicker(); - return this; - }; - - $('body').datepickerAll(); - }); -}(jQuery)); - - -(function ($) { - - var batchActionForm = function($form, options) { - options = $.extend({ - idStart: 0, - idEnd: 9, - chosen: true, - datetimepicker: true, - colorPicker: true, - hotkeys: true - }, options, $form.data()); - var $template = $form.find('.template'); - - if (!$template.length && options.template) { - $template = $(options.template); - } - - var dataCtrlCount = 0; - var rowsCount = 0; - var focusControl = function($ctrl) { - if ($ctrl.is('select.chosen')) { - $ctrl.next('.chosen-container').find('input').focus(); - } else { - $ctrl.focus(); - } - }; - - var focusNext = function(direction) { - var $currentCtrl = $form.find('[data-ctrl-index]:focus,.chosen-container-active').first(); - if (!$currentCtrl.length) { - return; - } - if ($currentCtrl.is('.chosen-container-active')) { - if ($currentCtrl.hasClass('chosen-with-drop') && (direction === 'down' || direction === 'up')) { - return; - } - $currentCtrl = $currentCtrl.prev('select.chosen'); - } - var index = $currentCtrl.data('ctrlIndex'); - var rowIndex = $currentCtrl.closest('tr').data('row'); - if (direction === 'down') { - if (rowIndex < (rowsCount - 1)) { - rowIndex += 1; - } else { - rowIndex = 0; - } - } else if (direction === 'up') { - if (rowIndex > 0) { - rowIndex -= 1; - } else { - rowIndex = rowsCount - 1; - } - } else if (direction === 'left') { - if (index > 0) { - index -= 1; - } else { - index = dataCtrlCount - 1; - } - } else if (direction === 'right') { - if (index < (dataCtrlCount - 1)) { - index += 1; - } else { - index = 0; - } - } - focusControl($form.find('tr[data-row="' + rowIndex + '"]').find('[data-ctrl-index="' + index + '"]')); - }; - - var comObject = { - options: options, - focusNext: focusNext, - focusControl: focusControl - }; - var $body = $form.find('tbody,.batch-rows'); - if ($template.length) { - var template = $template.remove().html(); - var createRow = function(id, $after) { - var rowTemplate = template; - if (typeof id !== 'number') { - id = rowsCount; - } - rowsCount = Math.max(id + 1, rowsCount); - rowTemplate = rowTemplate.replace(/\$idPlus/g, id + 1).replace(/\$id/g, id); - var $row = $('<' + $template[0].tagName.toLowerCase() + ' />').html(rowTemplate); - $row.attr('data-row', id).addClass($template.attr('class')).removeClass('template'); - options.rowCreator && options.rowCreator($row, id, options); - if ($after) { - $after.after($row); - } else { - $body.append($row); - } - - if ($.fn.chosen && options.chosen) { - $row.find('.chosen').chosen($.isPlainObject(options.chosen) ? options.chosen : null); - } - - if ($.fn.datetimepicker && options.datetimepicker) { - $row.datepickerAll($.isPlainObject(options.datetimepicker) ? options.datetimepicker : null); - } - - if ($.fn.colorPicker && options.colorPicker) { - $row.find('input.colorpicker').colorPicker($.isPlainObject(options.colorPicker) ? options.colorPicker : null); - } - var ctrlIndex = 0; - $row.find('input[type!="hidden"],textarea,select').each(function() { - var $ctrl = $(this); - if ($ctrl.parent().hasClass('chosen-search')) { - return; - } - $ctrl.attr('data-ctrl-index', ctrlIndex++); - }); - dataCtrlCount = Math.max(dataCtrlCount, ctrlIndex); - return $row; - }; - $.extend(comObject, {createRow: createRow, template: template}); - - for(var id = options.idStart; id <= options.idEnd; ++id) { - createRow(id); - } - } - - $form.on('click', '.btn-copy', function() - { - var $btn = $(this); - var copyFrom = $($btn.data('copyFrom')).val(); - var $copyTo = $($btn.data('copyTo')).val(copyFrom).addClass('highlight'); - setTimeout(function() { - $copyTo.removeClass('highlight'); - }, 2000); - }); - - if (options.hotkeys) { - $(document).on('keydown', function(e) { - var focusControlMap = { - 'Ctrl+#37': 'left', - 'Ctrl+#39': 'right', - '#38': 'up', - '#40': 'down', - 'Ctrl+#38': 'up', - 'Ctrl+#40': 'down' - } - var keys = []; - if (e.ctrlKey) keys.push('Ctrl'); - keys.push('#' + e.keyCode); - var focusControlDir = focusControlMap[keys.join('+')]; - if (focusControlDir) - { - focusNext(focusControlDir); - if (e.ctrlKey) { - e.stopPropagation(); - e.preventDefault(); - } - } - }); - } - - $form.data('zui.batchActionForm', comObject); - }; - - $.fn.batchActionForm = function(options) - { - return this.each(function() { - batchActionForm($(this), options); - }); - }; -}(jQuery)); - -(function($, undefined) { - 'use strict'; - - var NAME = 'zui.table'; // model name - - var LANG = { - zh_cn: { - selectedItems: '已选择 {0} 项', - attrTotal: '{0}总计 {1}' - }, - zh_tw: { - selectedItems: '已选择 {0} 项', - attrTotal: '{0}总计 {1}' - }, - en: { - selectedItems: 'Seleted {0} items', - attrTotal: '{0} total {1}' - } - }; - - // The Table model class - var Table = function(element, options) { - var that = this; - that.name = NAME; - var $element = that.$ = $(element); - - options = that.options = $.extend({}, Table.DEFAULTS, this.$.data(), options); - var lang = options.lang || 'zh_cn'; - that.lang = $.isPlainObject(lang) ? ($.extend(true, {}, LANG[lang.lang || $.zui.clientLang()], lang)) : LANG[lang]; - - // Initialize here - var $table = that.$table = $element.is('table') ? $element : $element.find('table'); - that.$header = $table.find('thead'); - that.$footer = $element.find('.table-footer'); - var $form = that.$form = $element.is('form') ? $element : $element.find('form'); - - if (options.checkable) { - $element.on('click', '.check-all', function() { - that.checkAll(!$(this).hasClass('checked')); - }).on('click', 'tbody>tr', function() { - that.checkRow($(this)); - }).on('click', 'tbody input[type="checkbox"],tbody label[for]', function(e){ - e.stopPropagation(); - var $checkbox = $(this); - if ($checkbox.is('label')) { - $checkbox = $checkbox.closest('.checkbox-primary').find('input[type="checkbox"]'); - } - that.checkRow($checkbox.closest('tr'), $checkbox.is(':checked')); - }).on('click', 'tbody a,tbody .btn', function(e) { - e.stopPropagation(); - }); - - if (options.selectable) { - $element.selectable($.extend({}, { - selector: 'tbody>tr', - selectClass: '', - trigger: '.c-id', - clickBehavior: 'multi', - listenClick: false, - select: function(e) { - that.checkRow(e.target, true); - }, - unselect: function(e) { - that.checkRow(e.target, false); - }, - rangeStyle: {border: '1px solid #006af1', backgroundColor: 'rgba(50, 128, 252, 0.2)', borderRadius: '2px'} - }, $.isPlainObject(options.selectable) ? options.selectable : null)); - } - } - - if ($form.length) { - if (options.ajaxForm) { - $form.ajaxForm($.isPlainObject(options.ajaxForm) ? options.ajaxForm : null); - } else { - $form.on('click', '[data-form-action]', function() { - $form.attr('action', $(this).data('formAction')).submit(); - }); - } - } - - if (options.fixFooter || options.fixHeader) { - that.pageFooterHeight = $('#footer').outerHeight(); - that.updateFixUI(); - $(window).on('scroll resize', function() { - that.updateFixUI(); - }).on('sidebar.toggle', function() { - setTimeout(function() { - that.updateFixUI(); - }, 200); - }); - } - - that.$statistic = $element.find('.table-statistic'); - that.defaultStatistic = that.$statistic.html(); - that.updateStatistic(); - }; - - Table.prototype.updateStatistic = function() { - var that = this; - var $statistic = that.$statistic; - if (!$statistic.length) return; - - if (that.defaultStatistic === undefined) { - that.defaultStatistic = $statistic.html(); - } - - var statisticCols = that.statisticCols; - if (!statisticCols && statisticCols !== false) { - statisticCols = {}; - var hasStatisticCol = false; - that.$header.find('th').each(function(index) { - var $th = $(this); - var statisticFormat = $th.data('statistic'); - if (statisticFormat) { - hasStatisticCol = true; - statisticCols[index] = {format: statisticFormat, name: $th.text()}; - } - }); - that.statisticCols = hasStatisticCol ? statisticCols : false; - } - - var checkedCount = 0; - if (statisticCols) { - $.each(statisticCols, function(colIndex) { - statisticCols[colIndex].total = 0; - statisticCols[colIndex].checkedTotal = 0; - }); - } - that.$.find('tbody>tr').each(function(rowIndex) { - var $row = $(this); - var isRowChecked = $row.hasClass('checked'); - var $tds = $row.children('td'); - if (isRowChecked) checkedCount++; - if (statisticCols) { - $.each(statisticCols, function(colIndex) { - var cellVal = parseFloat($tds.eq(colIndex).text()); - if (isNaN(cellVal)) cellVal = 0; - statisticCols[colIndex].total += cellVal; - if(isRowChecked) statisticCols[colIndex].checkedTotal += cellVal; - }); - } - }); - var statisticContents = []; - if (checkedCount) { - statisticContents.push(that.lang.selectedItems.format(checkedCount)); - } else if (that.defaultStatistic) { - $statistic.html(that.defaultStatistic); - return; - } - if (statisticCols) { - $.each(statisticCols, function(colIndex) { - var statisticCol = statisticCols[colIndex]; - var staticVal = statisticCol[checkedCount ? 'checkedTotal' : 'total']; - if (statisticCol.format) { - staticVal = statisticCol.format.format(staticVal); - } - statisticContents.push(that.lang.attrTotal.format(statisticCol.name, staticVal)); - }); - } - $statistic.html(statisticContents.join(', ')); - }; - - Table.prototype.updateFixUI = function(immediately) { - var that = this; - var now = new Date().getTime(); - if (!immediately) { - if (that.lastUpdateCall) { - clearTimeout(that.lastUpdateCall); - } - if (!that.lastUpdateTime || (now - that.lastUpdateTime) < 100) { - that.lastUpdateCall = setTimeout(function() { - that.updateFixUI(true); - }, 30); - return; - } - } - - that.lastUpdateTime = now; - - if (that.lastUpdateCall) { - clearTimeout(that.lastUpdateCall); - that.lastUpdateCall = null; - } - if (that.options.fixHeader) { - that.fixHeader(); - } - if (that.options.fixFooter) { - that.fixFooter(); - } - }; - - Table.prototype.fixHeader = function() { - var that = this; - var $header = that.$header; - var bounding = $header[0].getBoundingClientRect(); - var fixFooterOption = that.options.fixFooter; - var isFixed = $.isFunction(fixFooterOption) ? fixFooterOption(bounding, $header) : bounding.top < (typeof fixFooterOption === 'number' ? fixFooterOption : -5); - var $fixHeaderTable = that.$.find('table.fixed-header-copy'); - if (isFixed) { - if (!$fixHeaderTable.length) { - $fixHeaderTable = $('
              ').addClass(that.$table.attr('class')).append($header.clone()).insertAfter(that.$table); - } - $fixHeaderTable.css({ - top: 0, - left: bounding.left, - position: 'fixed', - width: bounding.width - }); - var $ths = $fixHeaderTable.find('th'); - $header.find('th').each(function(index) { - $ths.eq(index).css('width', $(this).outerWidth()); - }); - } else { - $fixHeaderTable.remove(); - } - }; - - Table.prototype.fixFooter = function() { - var that = this; - var $footer = that.$footer; - var bounding = that.$.find('tbody')[0].getBoundingClientRect(); - var fixFooterOption = that.options.fixFooter; - $footer.toggleClass('fixed-footer', !!isFixed); - var isFixed = $.isFunction(fixFooterOption) ? fixFooterOption(bounding, $footer) : (bounding.bottom) > (window.innerHeight - 50 - (typeof fixFooterOption === 'number' ? fixFooterOption : (that.pageFooterHeight || 5))); - $footer.toggleClass('fixed-footer', !!isFixed); - if (isFixed) { - $footer.css({ - bottom: that.pageFooterHeight, - left: bounding.left, - width: bounding.width - }); - } else { - $footer.css({ - width: '' - }); - } - }; - - Table.prototype.checkAll = function(checked) { - var that = this; - var $rows = that.$.find('tbody>tr'); - $rows.each(function() { - that.checkRow($(this), checked, true); - }); - that.updateCheckUI(); - }; - - Table.prototype.checkRow = function($row, checked, notUpdateCheckUI) { - var $checkbox = $row.find('input[type="checkbox"]'); - if (checked === undefined) { - checked = !$checkbox.is(':checked'); - } - $row.toggleClass('checked', checked); - $checkbox.prop('checked', checked); - if (!notUpdateCheckUI) { - this.updateCheckUI(); - } - }; - - Table.prototype.updateCheckUI = function() { - var $rows = this.$.find('tbody>tr'); - var isLastRowChecked = false, $lastRow = null, checkCount = 0, isRowChecked = false, rowsCount = $rows.length; - $rows.each(function(index) { - var $row = $(this); - isRowChecked = $row.hasClass('checked'); - $row.toggleClass('row-check-begin', isRowChecked && !isLastRowChecked); - $lastRow && $lastRow.toggleClass('row-check-end', !isRowChecked && isLastRowChecked); - if (isRowChecked) checkCount += 1; - $lastRow = $row; - isLastRowChecked = isRowChecked; - if (rowsCount === (index + 1)) $row.toggleClass('row-check-end', isRowChecked); - }); - this.$.toggleClass('has-row-checked', checkCount > 0).find('.check-all').toggleClass('checked', checkCount === rowsCount); - this.updateStatistic(); - }; - - // default options - Table.DEFAULTS = { - checkable: true, - ajaxForm: false, - selectable: true, - fixHeader: true, - fixFooter: true - }; - - // Extense jquery element - $.fn.table = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new Table(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - Table.NAME = NAME; - - $.fn.table.Constructor = Table; - - // Auto call table after document load complete - $(function() { - $('[data-ride="table"]').table(); - }); -}(jQuery, undefined)); - - -(function ($, window, undefined) { - - $.fn._ajaxForm = $.fn.ajaxForm; - - var DEFAULT = { - timeout: window.config ? window.config.timeout : 0, - dataType: 'json', - errControlStyle: {borderColor: '#D2322D'} - }; - var ajaxFormUrl = ''; - - $.fn.enableForm = function(enable) { - if (enable === undefined) enable = true; - return this.each(function() { - var $form = $(this); - $form.find('[type="submit"]').attr('disabled', enable ? null : 'disabled'); - if ($form.hasClass('load-indicator')) { - $form.toggleClass('loading', !enable); - } - }); - }; - - var showMessage = function(mesage, options, method) { - if (typeof options === 'string') { - method = options; - options = null; - } - method = method || 'show'; - if ($.zui.messager) { - $.zui.messager[method](mesage, options); - } else { - alert(mesage); - } - }; - - $.ajaxForm = function(form, options) { - var $form = $(form); - if ($form.length > 1) { - return $form.each(function() { - $.ajaxForm(this, options); - }); - } - if ($.isFunction(options)) { - options = {complete: options}; - } - options = $.extend({}, DEFAULT, $form.data(), options); - var beforeSubmit = options.beforeSubmit; - var onError = options.error; - var onSuccess = options.success; - var onFinish = options.finish; - delete options.finish; - delete options.success; - delete options.onError; - delete options.beforeSubmit; - var errControlStyle = options.errControlStyle; - delete options.errControlStyle; - options = $.extend({ - beforeSubmit: function(data, $thisForm, option) { - $form.enableForm(false); - if ((beforeSubmit && beforeSubmit(data, $thisForm, option)) === false) return; - - var feature = {}; - var $files = $thisForm.find('[type="file"]'); - feature.fileapi = $files.length && $files[0].files !== undefined; - feature.formdata = window.FormData !== undefined; - var fileInputs = feature.fileapi && $thisForm.find('input[type="file"]:enabled').filter(function() { return $(this).val() !== ''; }); - var hasFileInputs = fileInputs.length; - var mp = 'multipart/form-data'; - var multipart = ($thisForm.attr('enctype') == mp || $thisForm.attr('encoding') == mp); - - var fileAPI = feature.fileapi && feature.formdata; - var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI; - - /* Append HTTP_X_REQUESTED_WITH on url when shouldUseFrame is true. */ - if(shouldUseFrame) - { - if(ajaxFormUrl == '') ajaxFormUrl = options.url; - if(options.url != ajaxFormUrl) options.url = ajaxFormUrl; - options.url = options.url.indexOf('&') >= 0 ? options.url + '&HTTP_X_REQUESTED_WITH=XMLHttpRequest' : options.url + '?HTTP_X_REQUESTED_WITH=XMLHttpRequest'; - } - }, - success: function(response, textStatus, jqXHR) { - $form.enableForm(); - if ((onSuccess && onSuccess(response, textStatus, jqXHR, $form)) === false) return; - - /* try parse to json when response is json's string. */ - try{if(typeof response == 'string') response = JSON.parse(response);}catch(e){} - - /* The response is not an object, some error occers, alert it. */ - if(typeof response !== 'object') { - if(response) return alert(response); - return showMessage('No response.', 'danger'); - } - - /* The response.result is success. */ - var $responser = options.responser ? $(options.responser) : $form.find('.form-responser'); - if (!$responser.length) { - $responser = $('#responser'); - } - var message = response.message; - if (response.result === 'success') { - if (message) { - var $submitBtn = $form.find('[type="submit"]'); - var messageShowed = false; - if ($submitBtn.length) { - $submitBtn.popover({ - container: 'body', - trigger: 'manual', - content: message, - tipClass: 'popover-in-modal popover-success text-success', - placement: response.placement || options.popoverPlacement || 'right' - }).popover('show'); - setTimeout(function() { - $submitBtn.popover('destroy'); - }, options.popoverTime || 2000); - messageShowed = true; - } - - if ($responser.length) { - $responser.html('' + message + '').show().delay(3000).fadeOut(100); - messageShowed = true; - } - - if (!messageShowed) { - showMessage(message, 'success'); - } - } - - if (onFinish) { - return onFinish(response, true, $form); - } - - if (options.closeModal || response.closeModal) { - setTimeout($.zui.closeModal, options.closeModalTime || 2000); - } - - if(response.callback) { - var rcall = window[response.callback]; - if($.isFunction(rcall)) { - if(rcall() === false) return; - } - } - - var locate = options.locate || response.locate; - if(locate) { - if(locate == 'loadInModal') { - var $modal = $('.modal'); - setTimeout(function() { - $modal.load($modal.attr('ref'), function(){$(this).find('.modal-dialog').css('width', $(this).data('width')); $.zui.ajustModalPosition()}); - }, 1000); - } - else { - var reloadUrl = locate == 'reload' ? window.location.href : locate; - setTimeout(function(){window.location.href = reloadUrl;}, 1200); - } - } - - var ajaxReload = options.ajaxReload || response.ajaxReload; - if(ajaxReload) { - var $target = $(ajaxReload); - if($target.length) { - $target.load(window.location.href + ' ' + ajaxReload, function() { - $target.find('[data-toggle="modal"]').modalTrigger(); - }); - } - } - } else { - // The response.result is fail. - if (typeof message === 'string') { - if ($responser.length) { - $responser.html('' + message + '').show().delay(3000).fadeOut(100); - } else { - showMessage(message, 'danger'); - } - } else if (typeof message === 'object') { - var focusFirst = false; - var unShowedMessages = []; - $.each(message, function(key, value) { - var controlMessage = $.isArray(value) ? value.join(';') : value; - var $control = $('#' + key); - - if (!$control.length) { - unShowedMessages.push(controlMessage); - return; - } - - var errMsgLabelId = key + 'Label'; - - var $errLabel = $('#' + errMsgLabelId); - if (!$errLabel.length) { - var isInputGroup = $control.closest('.input-group').length; - $errLabel = $('
              ').appendTo(isInputGroup ? $control.closest('.input-group').parent() : $control.parent()); - } - $errLabel.empty().append(controlMessage); - $control.css(errControlStyle).addClass('has-error'); - - var removeLabel = function() { - var $theLabel = $('#' + errMsgLabelId); - if ($theLabel.length) { - $theLabel.remove(); - $control.removeAttr('style').removeClass('has-error'); - return true; - } - }; - - $control.on('change input mousedown', removeLabel); - - var $chosen = $('#' + key + '_chosen'); - if ($chosen.length) { - $chosen.find('.chosen-single').css(errControlStyle).addClass('has-error').on('mousedown', function() { - if (removeLabel() === true) { - $(this).removeAttr('style').removeClass('has-error'); - } - }); - } - - if (!focusFirst) { - $control.focus(); - focusFirst = true; - } - }); - if (unShowedMessages.length) { - showMessage(unShowedMessages.join(';'), 'danger'); - } - } - if (onFinish) { - return onFinish(response, false, $form); - } - } - }, - /* When error occers, alert the response text, status and error. */ - error: function(jqXHR, textStatus, errorThrown) { - if ((onError && onError(jqXHR, textStatus, errorThrown, $form)) === false) return; - $form.enableForm(); - var errorMessage = (textStatus == 'timeout' || textStatus == 'error') ? (window.lang ? window.lang.timeout : textStatus) : (jqXHR.responseText + textStatus + errorThrown); - showMessage(errorMessage, 'danger'); - } - }, options); - $form._ajaxForm(options); - - $form.on('click', '[data-form-action]', function() { - $form.attr('action', $(this).data('formAction')).submit(); - }); - }; - - $.fn.ajaxForm = function(options) { - return this.each(function() { - $.ajaxForm(this, options); - }); - }; - - $.fn.setInputRequired = function() { - return this.each(function() { - var $ctrl = $(this); - var $parent = $ctrl.parent(); - if ($parent.is('.input-control')) { - $parent.addClass('required'); - } else if ($ctrl.is('.chosen')) { - $ctrl.next('.chosen-container').addClass('required'); - } - }); - }; - - $(function() { - $('.form-ajax,form[data-type="ajax"]').ajaxForm(); - - // Set required - $('input[required],select[required]').setInputRequired(); - }); -}(jQuery, window, undefined)); - -(function($) { - 'use strict'; - - var NAME = 'zui.searchList'; // model name - - var isSearchMatch = function(keyArr, filter) { - if (keyArr && keyArr.length) { - for(var i = 0; i < keyArr.length; ++i) { - if (filter.indexOf(keyArr[i]) < 0) { - return false; - } - } - } - return true; - }; - - // The SearchList model class - var SearchList = function(element, options) { - var that = this; - that.name = NAME; - var $element = that.$ = $(element); - - options = that.options = $.extend({}, SearchList.DEFAULTS, this.$.data(), options); - var $searchBox = $element.find(options.searchBox); - if ($searchBox.length) { - $searchBox.searchBox({ - onSearchChange: function(searchKey) { - that.search(searchKey); - }, - onKeyDown: function(e) { - var keyCode = e.which; - if (keyCode === 13) { - var $activeItem = that.getActiveItem(); - if (options.onSelectItem) { - options.onSelectItem($activeItem); - } else { - window.location.href = $activeItem.attr('href'); - } - e.preventDefault(); - } else if (keyCode === 38) { // up key pressed - var $activeItem = that.getActiveItem(); - $activeItem.removeClass('active'); - var $prevItem = $activeItem.prev(':not(.hidden)'); - if (!$prevItem.length) { - $prevItem = that.getItems().not('.hidden').last(); - } - that.scrollTo($prevItem.addClass('active')); - e.preventDefault(); - } else if (keyCode === 40) { // down key pressed - var $activeItem = that.getActiveItem(); - $activeItem.removeClass('active'); - var $nextItem = $activeItem.next(':not(.hidden)'); - if (!$nextItem.length) { - $nextItem = that.getItems().not('.hidden').first(); - } - that.scrollTo($nextItem.addClass('active')); - e.preventDefault(); - } - } - }); - that.searchBox = $searchBox.data('zui.searchBox'); - that.search(that.searchBox.getSearch()); - } - - var $dropdownMenu = that.$menu = $element.closest('.dropdown-menu'); - if ($dropdownMenu.length) { - that.isDropdown = true; - $element.on('click', function(e) { - if (!$(e.target).closest(options.selector).length) { - e.stopPropagation(); - } - }); - $dropdownMenu.parent().on('shown.zui.dropdown', function() { - setTimeout(function() { - that.searchBox.focus(); - }, 50); - }); - } - - $element.on('mouseenter', options.selector, function() { - $element.find(that.options.selector).not('.hidden').removeClass('active'); - $(this).addClass('active'); - }); - - if (options.url || options.ajax) { - that.loadRemote(); - } - }; - - SearchList.prototype.loadRemote = function() { - var that = this; - var options = that.options; - that.$menu.addClass('load-indicator loading').find('.list-group').remove(); - $.ajax($.extend({ - url: options.url, - type: 'GET', - dataType: 'html', - success: function(data, textStatus, jqXHR) { - var $data = $(data); - if (!$data.hasClass('list-group')) { - $data = $('
              ').append($data); - } - that.$menu.append($data); - that.$menu.removeClass('loading'); - }, - error: function() { - that.$menu.removeClass('loading').append('
              ' + (options.errorText || (window.lang && window.lang.timeout)) + '
              '); - }, - }, options.ajax)); - }; - - SearchList.prototype.scrollTo = function($item) { - if ($item.length) { - $item[0].scrollIntoView({behavior: 'smooth'}); - } - }; - - SearchList.prototype.getItems = function() { - return this.$.find(this.options.selector); - }; - - SearchList.prototype.getActiveItem = function() { - return this.getItems().filter('.active:first'); - }; - - SearchList.prototype.search = function(searchKey) { - var that = this; - var isEmpty = searchKey === undefined || searchKey === null || searchKey === ''; - var $items = that.getItems().removeClass('active'); - if (isEmpty) { - $items.removeClass('hidden'); - } else { - var keyArr = $.trim(searchKey).split(' '); - $items.each(function() { - var $item = $(this); - var filter = $item.text() + ' ' + ($item.data('key') || $item.data('filter')); - $item.toggleClass('hidden', !isSearchMatch(keyArr, filter)); - }); - } - that.scrollTo($items.not('.hidden').first().addClass('active')); - }; - - // default options - SearchList.DEFAULTS = { - selector: '.list-group a', - searchBox: '.search-box', - onSelectItem: null - }; - - // Extense jquery element - $.fn.searchList = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new SearchList(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - SearchList.NAME = NAME; - - $.fn.searchList.Constructor = SearchList; - - // Auto call searchList after document load complete - $(function() { - $('[data-ride="searchList"]').searchList(); - }); -}(jQuery)); - - -(function($) { - 'use strict'; - - var NAME = 'zui.labelSelector'; // model name - - // The LabelSelector model class - var LabelSelector = function(element, options) { - var that = this; - that.name = NAME; - var $element = that.$ = $(element); - - options = that.options = $.extend({}, LabelSelector.DEFAULTS, this.$.data(), options); - - that.$.hide(); - that.update(); - }; - - LabelSelector.prototype.select = function(val) { - val = val + ''; - this.$wrapper.find('.label.active').removeClass('active'); - if (val !== '' && val !== '0') { - this.$wrapper.find('.label[data-value="' + val + '"]').addClass('active'); - } - this.$.val(val).trigger('change'); - }; - - LabelSelector.prototype.update = function() { - var that = this; - var options = that.options; - var $wrapper = that.$wrapper; - if (!$wrapper) { - if (!options.wrapper) { - var $next = that.$.next(); - if ($next.hasClass('.label-selector')) { - $wrapper = $next; - } else { - $wrapper = $('
              '); - } - } else { - $wrapper = $(options.wrapper); - } - if (!$wrapper.parent().length) { - that.$.after($wrapper); - } - that.$wrapper = $wrapper; - $wrapper.on('click', '.label', function() { - that.select($(this).data('value')); - }); - } - - $wrapper.empty(); - var currentValue = that.$.val(); - that.$.children('option').each(function() { - var $option = $(this); - var option = { - label: $option.text(), - value: $option.val() - }; - var $label = $(options.labelTemplate || ''); - if (options.labelCreator) { - $label = options.labelCreator($label); - } else { - $label.data('option', option).attr('data-value', option.value); - if ((option.value === '' || option.value === '0') && !option.label) { - $label.addClass('empty').append('') - } else { - $label.text(option.label).toggleClass('active', currentValue === option.value); - } - } - $wrapper.append($label); - }); - }; - - - // default options - LabelSelector.DEFAULTS = { - // labelCreator: null, - // dropdown: false, - // wrapper: '
              ' - }; - - // Extense jquery element - $.fn.labelSelector = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new LabelSelector(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - LabelSelector.NAME = NAME; - - $.fn.labelSelector.Constructor = LabelSelector; - - // Auto call labelSelector after document load complete - $(function() { - $('[data-provide="labelSelector"]').labelSelector(); - }); -}(jQuery)); - - -(function($) { - 'use strict'; - - var NAME = 'zui.fileInput'; // model name - - const BYTE_UNITS = $.BYTE_UNITS = { - B: 1, - KB: 1024, - MB: 1024 * 1024, - GB: 1024 * 1024 * 1024, - TB: 1024 * 1024 * 1024 * 1024, - }; - var formatBytes = $.formatBytes = function(size, fixed, unit) { - if (fixed === undefined) fixed = 2; - if (!unit) { - if (size < BYTE_UNITS.KB) { - unit = 'B'; - } else if (size < BYTE_UNITS.MB) { - unit = 'KB'; - } else if (size < BYTE_UNITS.GB) { - unit = 'MB'; - } else if (size < BYTE_UNITS.TB) { - unit = 'GB'; - } else { - unit = 'TB'; - } - } - - return (size / BYTE_UNITS[unit]).toFixed(fixed) + unit; - }; - - var getBytesValue = function(bytes) { - if (typeof bytes === 'string') { - bytes = bytes.toUpperCase(); - var unit = bytes.replace(/\d+/, ''); - bytes = parseFloat(bytes.replace(unit, '')); - bytes *= (BYTE_UNITS[unit] || BYTE_UNITS[unit + 'B']); - bytes = Math.floor(bytes); - } - return bytes; - }; - - // The FileInput model class - var FileInput = function(element, options) { - var that = this; - that.name = NAME; - var $element = that.$ = $(element); - - options = that.options = $.extend({}, FileInput.DEFAULTS, this.$.data(), options); - if (options.fileMaxSize && typeof options.fileMaxSize === 'string') { - options.fileMaxSize = getBytesValue(options.fileMaxSize); - } - - var $input = that.$input = $element.find('input[type="file"]'); - - $element.on('click', '.file-input-btn', function() { - $input.trigger('click'); - }).on('click', '.file-input-rename', function() { - that.oldName = $element.addClass('edit').find('.file-editbox').focus().val(); - }).on('click', '.file-input-delete', function() { - $input.val(''); - that.update(); - options.onDelete && options.onDelete(that); - }).on('click', '.file-name-cancel', function() { - $element.removeClass('edit').find('.file-editbox').focus().val(that.oldName);; - }).on('click', '.file-name-confirm', function() { - var $editbox = $element.find('.file-editbox'); - var newName = $.trim($editbox.val()); - if (!newName.length) { - $editbox.focus(); - } else { - $element.removeClass('edit').find('.file-title').text(newName); - } - }).on('change input paste', '.file-editbox', function() { - var $editbox = $(this); - $editbox.attr('size', Math.max(5, $editbox.val().length)); - }); - - $input.on('change', function() { - var file = that.getFile(); - if (file && options.fileMaxSize && file.size > options.fileMaxSize) { - $input.val(''); - (window.bootbox || window)['alert'](options.fileSizeError.format(formatBytes(options.fileMaxSize))); - } - that.update(); - }); - - that.update(); - }; - - FileInput.prototype.getFile = function() { - return this.$input.prop('files')[0]; - }; - - FileInput.prototype.update = function(val) { - var that = this; - var $ele = that.$; - var file = that.getFile(); - var isFileEmpty = !file; - $ele.toggleClass('normal', !isFileEmpty).toggleClass('empty', isFileEmpty); - if (file) { - that.oldName = file.name; - $ele.find('.file-title').text(file.name).attr('title', file.name); - $ele.find('.file-size').text(formatBytes(file.size)); - $ele.find('.file-editbox').val(file.name).attr('size', file.name.length); - that.options.onSelect && that.options.onSelect(file, that); - } else { - $ele.find('.file-editbox').val(''); - } - }; - - // default options - FileInput.DEFAULTS = { - fileMaxSize: 0, - fileSizeError: '无法上传大于 {0} 的文件。' - }; - - // Extense jquery element - $.fn.fileInput = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new FileInput(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - FileInput.NAME = NAME; - - $.fn.fileInput.Constructor = FileInput; - - // Auto call fileInput after document load complete - $(function() { - $('[data-provide="fileInput"]').fileInput(); - }); - - - // File input list - // The FileInputList model class - var FileInputList = function(element, options) { - var that = this; - that.name = NAME; - var $element = that.$ = $(element); - - options = that.options = $.extend({}, FileInputList.DEFAULTS, this.$.data(), options); - - that.$template = $element.find('.file-input').detach(); - that.add(); - }; - - FileInputList.prototype.add = function() { - var that = this; - var options = that.options; - var $new = that.$template.clone(); - if (options.appendWay === 'before') { - that.$.prepend($new); - } else { - that.$.append($new); - } - $new.fileInput({ - fileMaxSize: options.eachFileMaxSize, - fileSizeError: options.fileSizeError, - onDelete: function(fileInput) { - fileInput.$.remove(); - that.options.onDelete && that.options.onDelete(fileInput, that); - }, - onSelect: function(file, fileInput) { - that.add(); - that.options.onSelect && that.options.onSelect(file, fileInput, that); - } - }); - }; - - - // default options - FileInputList.DEFAULTS = { - fileMaxSize: 0, - eachFileMaxSize: 0, - appendWay: 'after', - fileSizeError: '无法上传大于 {0} 的文件。' - }; - - // Extense jquery element - $.fn.fileInputList = function(option) { - return this.each(function() { - var $this = $(this); - var data = $this.data(NAME); - var options = typeof option == 'object' && option; - - if(!data) $this.data(NAME, (data = new FileInputList(this, options))); - - if(typeof option == 'string') data[option](); - }); - }; - - FileInputList.NAME = NAME; - - $.fn.fileInputList.Constructor = FileInputList; - - // Auto call fileInputList after document load complete - $(function() { - $('[data-provide="fileInputList"]').fileInputList(); - }); -}(jQuery)); - - -(function($) { - - if (!window.config) window.config = {}; - - /** - * Create link. - * - * @param string $moduleName - * @param string $methodName - * @param string $vars - * @param string $viewType - * @access public - * @return string - */ - $.createLink = window.createLink = function createLink(moduleName, methodName, vars, viewType, isOnlyBody) - { - if(!viewType) viewType = config.defaultView; - if(!isOnlyBody) isOnlyBody = false; - if(vars) - { - vars = vars.split('&'); - for(i = 0; i < vars.length; i ++) - { - var splited = vars[i].split('='); - vars[i] = [splited.shift(), splited.join('=')]; - } - } - var link; - if(config.requestType != 'GET') - { - if(config.requestType == 'PATH_INFO') link = config.webRoot + moduleName + config.requestFix + methodName; - if(config.requestType == 'PATH_INFO2') link = config.webRoot + 'index.php/' + moduleName + config.requestFix + methodName; - if(vars) - { - for(i = 0; i < vars.length; i ++) link += config.requestFix + vars[i][1]; - } - link += '.' + viewType; - } - else - { - link = config.router + '?' + config.moduleVar + '=' + moduleName + '&' + config.methodVar + '=' + methodName + '&' + config.viewVar + '=' + viewType; - if(vars) for(i = 0; i < vars.length; i ++) link += '&' + vars[i][0] + '=' + vars[i][1]; - } - - /* if page has onlybody param then add this param in all link. the param hide header and footer. */ - if((config.onlybody !== undefined && config.onlybody == 'yes') || isOnlyBody) - { - var onlybody = config.requestType != 'GET' ? "?onlybody=yes" : '&onlybody=yes'; - link = link + onlybody; - } - return link; - } - - var convertTimeToNum = function(timeStr) { - var number = 0; - if (timeStr) { - var valArr = timeStr.split(':'); - number += parseInt(valArr[0]) * 60; - number += parseInt(valArr[1]); - } - return number; - }; - - var convertNumToTime = function(number) { - number = number%(24*60); - var hour = Math.floor(number/60); - var min = number%60; - if (hour < 10) hour = '0' + hour; - if (min < 10) min = '0' + min; - return hour + ':' + min; - }; - - var createTime = function(time) { - if (typeof time === 'string') { - time = convertTimeToNum(time); - } - if (typeof time === 'number') { - if (time < 100000) { - var time2 = new Date(); - time2.setHours(Math.floor(time/60)%24); - time2.setMinutes(time%60); - time = time2; - } else { - time = new Date(time); - } - } - return time; - }; - - var initTimeSelect = function($select, beginTime) { - var now = beginTime ? createTime(beginTime) : new Date(); - var nowHour = now.getHours(); - var nowMin = Math.floor(now.getMinutes()/10)*10 + 10; - for(var i = 0; i < 24; ++i) { - var hour = (i + nowHour)%24; - if (hour < 5) continue; - for (var j = 0; j < 6; ++j) { - var itemTime = convertNumToTime(hour*60+j*10 + nowMin); - $select.append(''); - } - } - if (!$select.val()) { - time = convertTimeToNum(now.format('hh:mm')); - time = time - (time%10) + 10; - $select.val(convertNumToTime(time)); - } - }; - - $.fn.timeSpanControl = function(options) { - return this.each(function() { - var $element = $(this); - var setting = $.extend({}, options, $element.data()); - var $beginInput = $element.find('[name="begin"],.control-time-begin'); - var $endInput = $element.find('[name="end"],.control-time-end'); - var updateEndInput = function() { - var startVal = $beginInput.val(); - $element.find('.hide-empty-begin').toggleClass('hide', !startVal); - if (startVal) { - const end = convertNumToTime(convertTimeToNum(startVal) + 30); - if ($endInput.find('option[value="' + end + '"]').length) $endInput.val(end); - setting.onChange && setting.onChange($endInput, end); - } - }; - - if ($element.data('timeSpanControlInit')) { - if (setting.begin) { - const begin = createTime(setting.begin).format('hh:mm'); - if ($beginInput.find('option[value="' + begin + '"]').length) $beginInput.val(begin); - setting.onChange && setting.onChange($beginInput, begin); - } - if (setting.end) { - const end = createTime(setting.end).format('hh:mm'); - if ($endInput.find('option[value="' + end + '"]').length) $endInput.val(end); - setting.onChange && setting.onChange($endInput, end); - } - } else { - $beginInput.on('change', updateEndInput); - initTimeSelect($beginInput, setting.begin); - initTimeSelect($endInput, setting.end); - $element.data('timeSpanControlInit', true) - } - - if (!setting.end) updateEndInput(); - }); - }; - - $.timeSpanControl = { - convertTimeToNum: convertTimeToNum, - convertNumToTime: convertNumToTime, - initTimeSelect: initTimeSelect, - createTime: createTime - }; - - // Todoes block - $.fn.blockTodoes = function() { - return this.each(function() { - var $block = $(this); - var $form = $block.find('form'); - var $titleInput = $form.find('[name="title"]'); - - var toggleForm = function(toggle) { - if (toggle === undefined) { - toggle = !$block.hasClass('show-form'); - } - $block.toggleClass('show-form', toggle); - if (toggle) { - setTimeout(function() {$titleInput.focus();}, 50); - } - }; - $block.on('click', '.todo-form-trigger', function() { - toggleForm($(this).data('trigger')); - }); - $form.timeSpanControl({ - onChange: function($control) { - $control.trigger('chosen:updated'); - } - }); - }); - }; - $(function() { - $('.block-todoes').blockTodoes(); - }); - - // Searchbox - var $searchTypeMenu = $('#searchTypeMenu'); - var $searchType = $('#searchType'); - var updateSearchType = function(type) { - if (!type) { - type = $searchType.val(); - } - type = type || 'bug'; - $searchType.val(type); - $searchTypeMenu.find('li.selected').removeClass('selected'); - var $typeItem = $searchTypeMenu.find('a[data-value="' + type + '"]'); - var typeText = $typeItem.text(); - $typeItem.parent().addClass('selected'); - $('#searchTypeName').text(typeText); - }; - updateSearchType(); - $searchTypeMenu.on('click', 'a[data-value]', function() { - updateSearchType($(this).data('value')); - }); - - - $.chosenDefaultOptions = { - disable_search_threshold: 1, - width:'100%', - allow_single_deselect: true, - placeholder_text_single: ' ', - placeholder_text_multiple: ' ', - search_contains: true - }; - - $.chosenSimpleOptions = $.extend({}, $.chosenDefaultOptions, { - disable_search_threshold: 6 - }); - - $.fn._chosen = $.fn.chosen; - $.fn.chosen = function(options) { - return this.each(function() { - var $this = $(this); - return $this._chosen($.extend({}, $this.hasClass('chosen-simple') ? $.chosenSimpleOptions : $.chosenDefaultOptions, options)); - }); - }; - - $(function() { - $('.chosen').each(function() { - var $this = $(this); - if ($this.closest('.template').length) { - return; - } - $this.chosen(); - }); - }); - - // Set pager - $.extend($.fn.pager.Constructor.DEFAULTS, { - maxNavCount: 8, - prevIcon: 'icon-angle-left', - nextIcon: 'icon-angle-right', - navEllipsisItem: '…', - menuDirection: 'dropup', - pageSizeOptions: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 100, 200, 500, 1000, 2000], - elements: ['total_text', 'size_menu', 'prev_icon', 'nav', 'next_icon'], - onPageChange: function(state, oldState) { - console.log('onPageChange', state, oldState); - if (state.recPerPage !== oldState.recPerPage) { - window.location.href = this.createLink(); - } - } - }); - - - // Set messager - $.zui.Messager.DEFAULTS.cssClass = 'messagger-zt'; - - - /* reverseOrder : jQuery order reverser plugin - * - * Written by Corey H Maass for Arc90 - * (c) Arc90, Inc. - * - * http://www.arc90.com - * http://lab.arc90.com/2008/05/22/jquery-reverse-order-plugin/#licensing - * - * Licensed under: - * Creative Commons Attribution-Share Alike 3.0 http://creativecommons.org/licenses/by-sa/3.0/us/ - * - * Gotta love a plugin with more comments than actual code. :-) - * items need to all be in the same parent like: - *
              - *
              item 1
              - *
              item 2
              - *
              item 3
              - *
              - * - * Then call the plugin with the items to reverse: - * $('.item').reverseOrder(); - * - */ - $.fn.reverseOrder = function() { - return this.each(function() { - var $ele = $(this); - $ele.prependTo($ele.parent()); - }); - }; - - - // History list - var initHistories = function(element, options) { - var $element = $(element); - options = $.extend({}, $element.data(), options); - var $list = $element.find('.histories-list'); - var ascOrder = true, expandAll = false; - $element.on('click', '.btn-reverse', function() { - $list.children('li').reverseOrder(); - ascOrder = !ascOrder; - $(this).find('.icon').toggleClass('icon-arrow-up', ascOrder).toggleClass('icon-arrow-down', !ascOrder); - }).on('click', '.btn-expand-all', function() { - var $icon = $(this).find('.icon'); - expandAll = !expandAll; - $icon.toggleClass('icon-plus', !expandAll).toggleClass('icon-minus', expandAll); - $list.children('li').toggleClass('show-changes', expandAll); - }).on('click', '.btn-expand', function() { - $(this).closest('li').toggleClass('show-changes'); - }).on('click', '.btn-strip', function() { - var $btn = $(this); - var $icon = $btn.find('.icon'); - var isOriginal = $icon.hasClass('icon-code'); - $icon.toggleClass('icon-code', !isOriginal).toggleClass('icon-text', isOriginal); - $btn.attr('title', isOriginal ? options.original : options.textdiff); - $btn.closest('li').toggleClass('show-original', isOriginal); - }); - $list.find('.btn-strip').attr('title', options.original); - - var $commentModal = $element.find('.modal-comment').modal({ - show: false, - backdrop: false, - position: function(modal) { - var bouding = $list[0].getBoundingClientRect(); - var $dialog = modal.$element.find('.modal-dialog'); - var modalWidth = $dialog.outerWidth(); - var modalHeight = $dialog.outerHeight(); - return { - top: Math.min(window.innerHeight - modalHeight, bouding.top - 40), - left: bouding.left + bouding.width - modalWidth, - margin: 0 - }; - } - }); - $element.on('click', '.btn-comment', function() { - $commentModal.modal('toggle'); - }).on('click', '.btn-edit-comment,.btn-hide-form', function() { - $(this).closest('li').toggleClass('show-form'); - }); - - var $commentEditForm = $element.find('.comment-edit-form'); - $commentEditForm.ajaxForm({ - success: function(response, textStatus, jqXHR, $form) { - setTimeout(function() { - $commentEditForm.closest('li').removeClass('show-form'); - }, 2000) - } - }) - }; - - $.fn.histories = function(options) { - return this.each(function() { - initHistories(this, options); - }); - }; - - $(function() { - $('.histories').histories(); - }); - - - // Sidebar - var toggleSiebarTask = 0; - var sidebarId = 0; - $.toggleSidebar = function(toggle) { - var $sidebar = $('#sidebar'); - if (!$sidebar.length) return; - - var $main = $('main'); - if (toggle === undefined) toggle = $main.hasClass('hide-sidebar'); - else if (toggle && !$main.hasClass('hide-sidebar')) return; - $main.toggleClass('hide-sidebar', !toggle); - - clearTimeout(toggleSiebarTask); - if (toggle) { - $sidebar.addClass('showing'); - toggleSiebarTask = setTimeout(function() { - $sidebar.removeClass('showing'); - $sidebar.trigger('sidebar.toggle', toggle); - }, 210); - } else { - $sidebar.trigger('sidebar.toggle', toggle); - } - $.zui.store.set(sidebarId, toggle); - }; - var initSidebar = function() { - var $sidebar = $('#sidebar'); - if (!$sidebar.length || $sidebar.data('init')) return; - sidebarId = 'sidebar:' + ($sidebar.data('id') || (config.module + '/' + config.method)); - var $main = $('main'); - $main.on('click', '.sidebar-toggle', function() { - $.toggleSidebar($main.hasClass('hide-sidebar')); - }); - var initToggle = $.zui.store.get(sidebarId, $sidebar.data('hide') !== false); - $sidebar.addClass('no-animate'); - $.toggleSidebar(initToggle); - setTimeout(function() { - $sidebar.removeClass('no-animate'); - }, 500); - $sidebar.data('init', 1); - return true; - }; - if (!initSidebar()) $(initSidebar); - - - // Query box - $.toggleQueryBox = function(toggle) { - var $queryBox = $('#queryBox'); - if (!$queryBox.length) return; - if (toggle === undefined) toggle = !$queryBox.hasClass('show'); - $queryBox.toggleClass('show', !!toggle); - - if (!$queryBox.data('init')) { - $queryBox.addClass('load-indicator loading').data('init', 1); - $.get($.createLink('search', 'buildForm'), function(data) { - $queryBox.html(data).removeClass('loading'); - }); - } - - $('.querybox-toggle').toggleClass('querybox-opened', toggle); - }; - - $(function() { - var $queryBox = $('#queryBox'); - if (!$queryBox.length) return; - $(document).on('click', '.querybox-toggle', function() { - $.toggleQueryBox(); - }); - if ($queryBox.hasClass('show')) { - $.toggleQueryBox(true); - } - }); - - - // Set color picker - $.extend($.fn.colorPicker.Constructor.DEFAULTS, { - colors: ['#3DA7F5', '#75C941', '#2DBDB2', '#797EC9', '#FFAF38', '#FF4E3E'] - }); - - - // Init modal trigger for iframe class - $('a.iframe').modalTrigger({type: 'iframe'}); - - - // Expand or collapse text - var limitText = function() { - var $text = $(this); - var fullText, limitText; - var options = $.extend({ - limitSize: 40, - // toggleBtn: null, - suffix: '…' - }, $text.data()); - - var text = $text.text(); - if (text.length > options.limitSize) { - fullText = text; - limitText = text.substr(0, options.limitSize) + options.suffix; - $text.text(limitText).addClass('limit-text-on'); - - var $toggleBtn = options.toggleBtn ? $(options.toggleBtn) : $text.next('.text-limit-toggle'); - $toggleBtn.text($toggleBtn.data('textExpand')); - $toggleBtn.on('click', function() { - var isLimitOn = $text.toggleClass('limit-text-on').hasClass('limit-text-on'); - $text.text(isLimitOn ? limitText : fullText); - $toggleBtn.text($toggleBtn.data(isLimitOn ? 'textExpand' : 'textCollapse')); - }); - } - }; - $.fn.textLimit = function() { - return this.each(limitText); - }; - $(function() { - $('.text-limit').textLimit(); - }); - - /** - * Fixed table head in div box. - * - * @param string $boxObj - * @access public - * @return void - */ - $.fixedTableHead = window.fixedTableHead = function(boxObj) - { - $(boxObj).scroll(function() - { - var hasFixed = $(this).find('.table-fixed-head').size() > 0; - if(!hasFixed) - { - $(this).css('position', 'relative'); - if($(this).find('table').size() == 1) - { - var fixed = "" + $(this).find('table thead').html() + '
              '; - $(this).prepend(fixed); - var $fixTable = $(this).find('table.table-fixed-head'); - $fixTable.addClass($(this).find('table:last').attr('class')); - var $dataTable = $(this).find('table:last thead th'); - $fixTable.find('thead th').each(function(i){$fixTable.find('thead th').eq(i).width($dataTable.eq(i).width());}) - } - } - $(this).find('table.table-fixed-head').css('top',$(this).scrollTop()); - }); - } -}(jQuery)); +!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=function(e,i){return void 0===i&&(i="undefined"!=typeof window?require("jquery"):require("jquery")(e)),t(i),i}:t(jQuery)}(function(t){"use strict";function e(e){var i=e.data;e.isDefaultPrevented()||(e.preventDefault(),t(e.target).closest("form").ajaxSubmit(i))}function i(e){var i=e.target,s=t(i);if(!s.is("[type=submit],[type=image]")){var n=s.closest("[type=submit]");if(0===n.length)return;i=n[0]}var a=i.form;if(a.clk=i,"image"===i.type)if(void 0!==e.offsetX)a.clk_x=e.offsetX,a.clk_y=e.offsetY;else if("function"==typeof t.fn.offset){var o=s.offset();a.clk_x=e.pageX-o.left,a.clk_y=e.pageY-o.top}else a.clk_x=e.pageX-i.offsetLeft,a.clk_y=e.pageY-i.offsetTop;setTimeout(function(){a.clk=a.clk_x=a.clk_y=null},100)}function s(){if(t.fn.ajaxSubmit.debug){var e="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(e):window.opera&&window.opera.postError&&window.opera.postError(e)}}var n=/\r?\n/g,a={};a.fileapi=void 0!==t('').get(0).files,a.formdata=void 0!==window.FormData;var o=!!t.fn.prop;t.fn.attr2=function(){if(!o)return this.attr.apply(this,arguments);var t=this.prop.apply(this,arguments);return t&&t.jquery||"string"==typeof t?t:this.attr.apply(this,arguments)},t.fn.ajaxSubmit=function(e,i,n,r){function l(i){var s,n,a=t.param(i,e.traditional).split("&"),o=a.length,r=[];for(s=0;s',T).val(d.extraData[l].value).appendTo(C)[0]):o.push(h('',T).val(d.extraData[l]).appendTo(C)[0]));d.iframeTarget||g.appendTo(S),m.attachEvent?m.attachEvent("onload",r):m.addEventListener("load",r,!1),setTimeout(t,15);try{C.submit()}catch(h){document.createElement("form").submit.apply(C)}}finally{C.setAttribute("action",i),C.setAttribute("enctype",a),e?C.setAttribute("target",e):p.removeAttr("target"),h(o).remove()}}function r(t){if(!y.aborted&&!$){if((z=n(m))||(s("cannot access response document"),t=M),t===D&&y)return y.abort("timeout"),void k.reject(y,"timeout");if(t===M&&y)return y.abort("server abort"),void k.reject(y,"error","server abort");if(z&&z.location.href!==d.iframeSrc||x){m.detachEvent?m.detachEvent("onload",r):m.removeEventListener("load",r,!1);var e,i="success";try{if(x)throw"timeout";var a="xml"===d.dataType||z.XMLDocument||v.isXMLDoc(z);if(s("isXml="+a),!a&&window.opera&&(null===z.body||!z.body.innerHTML)&&--E)return s("requeing onLoad callback, DOM not available"),void setTimeout(r,250);var o=z.body?z.body:z.documentElement;y.responseText=o?o.innerHTML:null,y.responseXML=z.XMLDocument?z.XMLDocument:z,a&&(d.dataType="xml"),y.getResponseHeader=function(t){return{"content-type":d.dataType}[t.toLowerCase()]},o&&(y.status=Number(o.getAttribute("status"))||y.status,y.statusText=o.getAttribute("statusText")||y.statusText);var l=(d.dataType||"").toLowerCase(),h=/(json|script|text)/.test(l);if(h||d.textarea){var c=z.getElementsByTagName("textarea")[0];if(c)y.responseText=c.value,y.status=Number(c.getAttribute("status"))||y.status,y.statusText=c.getAttribute("statusText")||y.statusText;else if(h){var p=z.getElementsByTagName("pre")[0],f=z.getElementsByTagName("body")[0];p?y.responseText=p.textContent?p.textContent:p.innerText:f&&(y.responseText=f.textContent?f.textContent:f.innerText)}}else"xml"===l&&!y.responseXML&&y.responseText&&(y.responseXML=I(y.responseText));try{L=U(y,l,d)}catch(v){i="parsererror",y.error=e=v||i}}catch(v){s("error caught: ",v),i="error",y.error=e=v||i}y.aborted&&(s("upload aborted"),i=null),y.status&&(i=y.status>=200&&y.status<300||304===y.status?"success":"error"),"success"===i?(d.success&&d.success.call(d.context,L,"success",y),k.resolve(y.responseText,"success",y),u&&v.event.trigger("ajaxSuccess",[y,d])):i&&(void 0===e&&(e=y.statusText),d.error&&d.error.call(d.context,y,i,e),k.reject(y,"error",e),u&&v.event.trigger("ajaxError",[y,d,e])),u&&v.event.trigger("ajaxComplete",[y,d]),u&&!--v.active&&v.event.trigger("ajaxStop"),d.complete&&d.complete.call(d.context,y,i),$=!0,d.timeout&&clearTimeout(_),setTimeout(function(){d.iframeTarget?g.attr("src",d.iframeSrc):g.remove(),y.responseXML=null},100)}}}var l,h,d,u,f,g,m,y,b,w,x,_,C=p[0],k=t.Deferred();if(k.abort=function(t){y.abort(t)},i)for(h=0;h',T)).css({position:"absolute",top:"-1000px",left:"-1000px"}),m=g[0],y={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var e="timeout"===t?"timeout":"aborted";s("aborting upload... "+e),this.aborted=1;try{m.contentWindow.document.execCommand&&m.contentWindow.document.execCommand("Stop")}catch(i){}g.attr("src",d.iframeSrc),y.error=e,d.error&&d.error.call(d.context,y,e,t),u&&i.event.trigger("ajaxError",[y,d,e]),d.complete&&d.complete.call(d.context,y,e)}},(u=d.global)&&0==t.active++&&t.event.trigger("ajaxStart"),u&&t.event.trigger("ajaxSend",[y,d]),d.beforeSend&&!1===d.beforeSend.call(d.context,y,d))return d.global&&t.active--,k.reject(),k;if(y.aborted)return k.reject(),k;(b=C.clk)&&(w=b.name)&&!b.disabled&&(d.extraData=d.extraData||{},d.extraData[w]=b.value,"image"===b.type&&(d.extraData[w+".x"]=C.clk_x,d.extraData[w+".y"]=C.clk_y));var D=1,M=2,P=t("meta[name=csrf-token]").attr("content"),F=t("meta[name=csrf-param]").attr("content");F&&P&&(d.extraData=d.extraData||{},d.extraData[F]=P),d.forceSync?a():setTimeout(a,10);var L,z,$,E=50,I=t.parseXML||function(t,e){return window.ActiveXObject?((e=new ActiveXObject("Microsoft.XMLDOM")).async="false",e.loadXML(t)):e=(new DOMParser).parseFromString(t,"text/xml"),e&&e.documentElement&&"parsererror"!==e.documentElement.nodeName?e:null},A=t.parseJSON||function(t){return window.eval("("+t+")")},U=function(e,i,s){var n=e.getResponseHeader("content-type")||"",a=("xml"===i||!i)&&n.indexOf("xml")>=0,o=a?e.responseXML:e.responseText;return a&&"parsererror"===o.documentElement.nodeName&&t.error&&t.error("parsererror"),s&&s.dataFilter&&(o=s.dataFilter(o,i)),"string"==typeof o&&(("json"===i||!i)&&n.indexOf("json")>=0?o=A(o):("script"===i||!i)&&n.indexOf("javascript")>=0&&t.globalEval(o)),o};return k}if(!this.length)return s("ajaxSubmit: skipping submit process - no element selected"),this;var c,d,u,p=this;"function"==typeof e?e={success:e}:"string"==typeof e||!1===e&&arguments.length>0?(e={url:e,data:i,dataType:n},"function"==typeof r&&(e.success=r)):void 0===e&&(e={}),c=e.method||e.type||this.attr2("method"),(u=(u="string"==typeof(d=e.url||this.attr2("action"))?t.trim(d):"")||window.location.href||"")&&(u=(u.match(/^([^#]+)/)||[])[1]),e=t.extend(!0,{url:u,success:t.ajaxSettings.success,type:c||t.ajaxSettings.type,iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},e);var f={};if(this.trigger("form-pre-serialize",[this,e,f]),f.veto)return s("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(e.beforeSerialize&&!1===e.beforeSerialize(this,e))return s("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var g=e.traditional;void 0===g&&(g=t.ajaxSettings.traditional);var m,v=[],y=this.formToArray(e.semantic,v,e.filtering);if(e.data){var b=t.isFunction(e.data)?e.data(y):e.data;e.extraData=b,m=t.param(b,g)}if(e.beforeSubmit&&!1===e.beforeSubmit(y,this,e))return s("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[y,this,e,f]),f.veto)return s("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var w=t.param(y,g);m&&(w=w?w+"&"+m:m),"GET"===e.type.toUpperCase()?(e.url+=(e.url.indexOf("?")>=0?"&":"?")+w,e.data=null):e.data=w;var x=[];if(e.resetForm&&x.push(function(){p.resetForm()}),e.clearForm&&x.push(function(){p.clearForm(e.includeHidden)}),!e.dataType&&e.target){var _=e.success||function(){};x.push(function(i,s,n){var a=arguments,o=e.replaceTarget?"replaceWith":"html";t(e.target)[o](i).each(function(){_.apply(this,a)})})}else e.success&&(t.isArray(e.success)?t.merge(x,e.success):x.push(e.success));if(e.success=function(t,i,s){for(var n=e.context||this,a=0,o=x.length;a0,S="multipart/form-data",D=p.attr("enctype")===S||p.attr("encoding")===S,M=a.fileapi&&a.formdata;s("fileAPI :"+M);var P,F=(T||D)&&!M;!1!==e.iframe&&(e.iframe||F)?e.closeKeepAlive?t.get(e.closeKeepAlive,function(){P=h(y)}):P=h(y):P=(T||D)&&M?function(i){for(var s=new FormData,n=0;n0)&&(n={url:n,data:a,dataType:o},"function"==typeof r&&(n.success=r)),n=n||{},n.delegation=n.delegation&&t.isFunction(t.fn.on),!n.delegation&&0===this.length){var l={s:this.selector,c:this.context};return!t.isReady&&l.s?(s("DOM not ready, queuing ajaxForm"),t(function(){t(l.s,l.c).ajaxForm(n)}),this):(s("terminating; zero elements found by selector"+(t.isReady?"":" (DOM not ready)")),this)}return n.delegation?(t(document).off("submit.form-plugin",this.selector,e).off("click.form-plugin",this.selector,i).on("submit.form-plugin",this.selector,n,e).on("click.form-plugin",this.selector,n,i),this):this.ajaxFormUnbind().on("submit.form-plugin",n,e).on("click.form-plugin",n,i)},t.fn.ajaxFormUnbind=function(){return this.off("submit.form-plugin click.form-plugin")},t.fn.formToArray=function(e,i,s){var n=[];if(0===this.length)return n;var o,r=this[0],l=this.attr("id"),h=e||void 0===r.elements?r.getElementsByTagName("*"):r.elements;if(h&&(h=t.makeArray(h)),l&&(e||/(Edge|Trident)\//.test(navigator.userAgent))&&(o=t(':input[form="'+l+'"]').get()).length&&(h=(h||[]).concat(o)),!h||!h.length)return n;t.isFunction(s)&&(h=t.map(h,s));var c,d,u,p,f,g,m;for(c=0,g=h.length;c'},add:{template:''},edit:{template:''},"delete":{template:''}};a.DEFAULTS={animate:null,initialState:"normal",toggleTemplate:''},a.prototype.add=function(e,i,s,n,a){var o,r=t(e),l=this.options;if(r.is("li")?(o=r.children("ul"),o.length||(o=t("
                "),r.append(o),this._initList(o,r))):o=r,o){var h=this;t.isArray(i)||(i=[i]),t.each(i,function(e,i){var s=t("
              • ").data(i).appendTo(o);void 0!==i.id&&s.attr("data-id",i.id);var n=l.itemWrapper?t(l.itemWrapper===!0?'
              • ').append(i(h.add,"add",h.add.templateInList)).appendTo(s)}h.sort&&s.sortable(t.extend({dragCssClass:"tree-drag-holder",trigger:".sort-handler",selector:"li:not(.tree-action-item)",finish:function(t){r.callEvent("action",{action:h.sort,$list:s,target:t.target,item:o})}},h.sort.options,t.isPlainObject(this.options.sortable)?this.options.sortable:null))}n&&(n.hasClass("open")||o&&o.open)&&n.addClass("open in")},a.prototype._initItem=function(s,n,a,o){if(void 0===n){var r=s.prev("li");n=r.length?r.data("idx")+1:1}if(a=a||s.closest("ul"),s.attr("data-idx",n).removeClass("tree-single-item"),!s.data("id")){var l=n;a.hasClass("tree")||(l=a.parent("li").data("id")+"-"+l),s.attr("data-id",l)}o=o||s.data();var h=e(o.actions,this.actions);if(h){var c=s.find(".tree-actions");c.length||(c=t('
                ').appendTo(this.options.itemWrapper?s.find(".tree-item-wrapper"):s),t.each(h,function(t,e){e&&c.append(i(e,t))}))}var d=s.children("ul");d.length&&this._initList(d,s,n,o)},a.prototype._init=function(){var i=this.options,a=this;this.actions=e(i.actions),this.$.addClass("tree"),i.animate&&this.$.addClass("tree-animate"),this._initList(this.$);var o=i.initialState,r=t.zui&&t.zui.store&&t.zui.store.enable;r&&(this.selector=s+"::"+(i.name||"")+"#"+(this.$.attr("id")||n++),this.store=t.zui.store[i.name?"get":"pageGet"](this.selector,{})),"preserve"===o&&(r?this.isPreserve=!0:this.options.initialState=o="normal"),this.reload(i.data),r&&(this.isPreserve=!0),"expand"===o?this.expand():"collapse"===o&&this.collapse(),this.$.on("click",'.list-toggle,a[href="#"],.tree-toggle',function(e){var i=t(this),s=i.parent("li");a.callEvent("hit",{target:s,item:s.data()}),a.toggle(s),i.is("a")&&e.preventDefault()}).on("click",".tree-action",function(){var e=t(this),i=e.data();if(i.action&&(i=i.action),"sort"!==i.type){var s=e.closest("li:not(.tree-action-item)");a.callEvent("action",{action:i,target:this,$item:s,item:s.data()})}})},a.prototype.preserve=function(e,i,s){if(this.isPreserve)if(e)i=i||e.data("id"),s=void 0===s&&e.hasClass("open"),s?this.store[i]=s:delete this.store[i],this.store.time=(new Date).getTime(),t.zui.store[this.options.name?"set":"pageSet"](this.selector,this.store);else{var n=this;this.store={},this.$.find("li").each(function(){n.preserve(t(this))})}},a.prototype.expand=function(t,e,i){t?(t.addClass("open"),!e&&this.options.animate?setTimeout(function(){t.addClass("in")},10):t.addClass("in")):t=this.$.find("li.has-list").addClass("open in"),i||this.preserve(t),this.callEvent("expand",t,this)},a.prototype.show=function(e,i,s){var n=this;e.each(function(){var e=t(this);if(n.expand(e,i,s),e)for(var a=e.parent("ul");a&&a.length&&!a.hasClass("tree");){var o=a.parent("li");o.length?(n.expand(o,i,s),a=o.parent("ul")):a=!1}})},a.prototype.collapse=function(t,e,i){t?!e&&this.options.animate?(t.removeClass("in"),setTimeout(function(){t.removeClass("open")},300)):t.removeClass("open in"):t=this.$.find("li.has-list").removeClass("open in"),i||this.preserve(t),this.callEvent("collapse",t,this)},a.prototype.toggle=function(t){var e=t&&t.hasClass("open")||t===!1||void 0===t&&this.$.find("li.has-list.open").length;this[e?"collapse":"expand"](t)},a.prototype.getOptions=function(e){this.options=t.extend({},a.DEFAULTS,this.$.data(),e),null===this.options.animate&&this.$.hasClass("tree-animate")&&(this.options.animate=!0)},a.prototype.toData=function(e,i){t.isFunction(e)&&(i=e,e=null),e=e||this.$;var s=this;return e.children("li:not(.tree-action-item)").map(function(){var e=t(this),n=e.data();delete n["zui.droppable"];var a=e.children("ul");return a.length&&(n.children=s.toData(a)),t.isFunction(i)?i(n,e):n}).get()},a.prototype.callEvent=function(e,i){var s;return t.isFunction(this.options[e])&&(s=this.options[e](i,this)),this.$.trigger(t.Event(e+"."+this.name,i)),s},t.fn.tree=function(e,i){return this.each(function(){var n=t(this),o=n.data(s),r="object"==typeof e&&e;o||n.data(s,o=new a(this,r)),"string"==typeof e&&o[e](i)})},t.fn.tree.Constructor=a,t(function(){t('[data-ride="tree"]').tree()})}(jQuery),function(t){"use strict";var e="zui.colorPicker",i='
                ',s={zh_cn:{errorTip:"不是有效的颜色值"},zh_tw:{errorTip:"不是有效的顏色值"},en:{errorTip:"Not a valid color value"}},n=function(i,s){this.name=e,this.$=t(i),this.getOptions(s),this.init()};n.DEFAULTS={colors:["#00BCD4","#388E3C","#3280fc","#3F51B5","#9C27B0","#795548","#F57C00","#F44336","#E91E63"],pullMenuRight:!0,wrapper:"btn-wrapper",tileSize:30,lineCount:5,optional:!0,tooltip:"top",icon:"caret-down",updateBtn:"auto"},n.prototype.init=function(){var e=this,s=e.options,n=e.$,a=n.parent(),o=!1;a.hasClass("colorpicker")?e.$picker=a:(e.$picker=t(s.template||i),o=!0),e.$picker.addClass(s.wrapper).find(".cp-title").toggle(void 0!==s.title).text(s.title),e.$menu=e.$picker.find(".dropdown-menu").toggleClass("pull-right",s.pullMenuRight),e.$btn=e.$picker.find(".btn.dropdown-toggle"),e.$btn.find(".ic").addClass("icon-"+s.icon),s.btnTip&&e.$picker.attr("data-toggle","tooltip").tooltip({title:s.btnTip,placement:s.tooltip,container:"body"}),n.attr("data-provide",null),o&&n.after(e.$picker),e.colors={},t.each(s.colors,function(i,s){if(t.zui.Color.isColor(s)){var n=new t.zui.Color(s);e.colors[n.toCssStr()]=n}}),e.updateColors(),e.$picker.on("click",".cp-tile",function(){e.setValue(t(this).data("color"))});var r=function(){var i=n.val(),a=t.zui.Color.isColor(i);n.parent().toggleClass("has-error",!(a||s.optional&&""===i)),a?e.setValue(i,!0):s.optional&&""===i?n.tooltip("hide"):n.is(":focus")||n.tooltip("show",s.errorTip)};n.is("input:not([type=hidden])")?(s.tooltip&&n.attr("data-toggle","tooltip").tooltip({trigger:"manual",placement:s.tooltip,tipClass:"tooltip-danger",container:"body"}),n.on("keyup paste input change",r)):n.appendTo(e.$picker),r()},n.prototype.addColor=function(e){e instanceof t.zui.Color||(e=new t.zui.Color(e));var i=e.toCssStr(),s=this.options;this.colors[i]||(this.colors[i]=e);var n=t('
                ',{titile:e}).data("color",e).css({color:e.contrast().toCssStr(),background:i,"border-color":e.luma()>.43?"#ccc":"transparent"}).attr("data-color",i);this.$menu.append(t("
              • ").css({width:s.tileSize,height:s.tileSize}).append(n)),s.optional&&this.$menu.find(".cp-tile.empty").parent().detach().appendTo(this.$menu)},n.prototype.updateColors=function(e){var i=(this.$picker,this.$menu.children("li:not(.heading)").remove()),s=this.options,e=e||this.colors,n=this,a=0;if(t.each(e,function(t,e){n.addColor(e),a++}),s.optional){var o=t('
              • ').css({width:s.tileSize,height:s.tileSize});this.$menu.append(o),a++}i.css("width",Math.min(a,s.lineCount)*s.tileSize+6)},n.prototype.setValue=function(e,i){var s=this,n=s.options,a=s.$btn;s.$menu.find(".cp-tile.active").removeClass("active");var o="",r=n.updateBtn;if("auto"===r){var l=a.find(".color-bar");r=!l.length||function(t){l.css("background",t||"")}}if(e){var h=new t.zui.Color(e);o=h.toCssStr().toLowerCase(),r&&(t.isFunction(r)?r(o,a,s):a.css({background:o,color:h.contrast().toCssStr(),borderColor:h.luma()>.43?"#ccc":o})),s.colors[o]||s.addColor(h),i||s.$.val().toLowerCase()===o||s.$.val(o).trigger("change"),s.$menu.find('.cp-tile[data-color="'+o+'"]').addClass("active"),s.$.tooltip("hide"),s.$.trigger("colorchange",h)}else r&&(t.isFunction(r)?r(null,a,s):a.attr("style",null)),i||""===s.$.val()||s.$.val(o).trigger("change"),n.optional&&s.$.tooltip("hide"),s.$menu.find(".cp-tile.empty").addClass("active"),s.$.trigger("colorchange",null);n.updateBorder&&t(n.updateBorder).css("border-color",o),n.updateBackground&&t(n.updateBackground).css("background-color",o),n.updateColor&&t(n.updateColor).css("color",o),n.updateText&&t(n.updateText).text(o)},n.prototype.getOptions=function(e){var i=t.extend({},n.DEFAULTS,this.$.data(),e);"string"==typeof i.colors&&(i.colors=i.colors.split(","));var a=(i.lang||t.zui.clientLang()).toLowerCase();i.errorTip||(i.errorTip=s[a].errorTip),t.fn.tooltip||(i.btnTip=!1),this.options=i},t.fn.colorPicker=function(i){return this.each(function(){var s=t(this),a=s.data(e),o="object"==typeof i&&i;a||s.data(e,a=new n(this,o)),"string"==typeof i&&a[i]()})},t.fn.colorPicker.Constructor=n,t(function(){t('[data-provide="colorpicker"]').colorPicker()})}(jQuery),function(t,e){function i(t){return t===e&&(t=s+=1),n[t%n.length]}var s=0,n=["#00a9fc","#ff5d5d","#fdc137","#00da88","#7ec5ff","#8666b8","#bd7b46","#ff9100","#ff3d00","#f57f17","#00e5ff","#00b0ff","#2979ff","#3d5afe","#651fff","#d500f9","#f50057","#ff1744"];jQuery.fn.tableChart=function(){t(this).each(function(){var e=t(this),s=e.data(),n=s.chart||"pie",a=t(s.target);if(a.length){var o=null;if("pie"===n){s=t.extend({scaleShowLabels:!0,scaleLabel:"<%=label%>: <%=value%>"},s);var r=[],l=e.find("tbody > tr").each(function(e){var s=t(this),n=i();s.attr("data-id",e).find(".chart-color-dot").css("background",n),r.push({label:s.find(".chart-label").text(),value:parseInt(s.find(".chart-value").text()),color:n,id:e})});r.length>1?s.scaleLabelPlacement="outside":1===r.length&&(s.scaleLabelPlacement="inside",r.push({label:"",value:r[0].value/2e3,color:"#fff",showLabel:!1})),o=a.pieChart(r,s),a.on("mousemove",function(t){var e=o.getSegmentsAtEvent(t);l.removeClass("active"),e.length&&l.filter('[data-id="'+e[0].id+'"]').addClass("active")})}else if("bar"===n){var h=i(),c=[],d={label:e.find("thead .chart-label").text(),color:h,data:[]},l=e.find("tbody > tr").each(function(e){var i=t(this);c.push(i.find(".chart-label").text()),d.data.push(parseInt(i.find(".chart-value").text())),i.find(".chart-color-dot").css("background",h)}),r={labels:c,datasets:[d]};c.length&&(s.barValueSpacing=5),o=a.barChart(r,s)}else if("line"===n){var h=i(),c=[],d={label:e.find("thead .chart-label").text(),color:h,data:[]},l=e.find("tbody > tr").each(function(e){var i=t(this);c.push(i.find(".chart-label").text()),d.data.push(parseInt(i.find(".chart-value").text())),i.find(".chart-color-dot").css("background",h)}),r={labels:c,datasets:[d]};c.length&&(s.barValueSpacing=5),o=a.lineChart(r,s)}null!==o&&e.data("zui.chart",o)}})},jQuery.fn.progressPie=function(i){t(this).each(function(){var s=t(this),n=s.is("canvas")?s:s.find("canvas"),a=t.extend({value:0,color:"#006af1",backColor:"#E9F2FB",doughnut:!0,doughnutSize:85,width:20,height:20,showTip:!1,name:"",tipTemplate:"<%=value%>%",animation:!1},i,s.data()),o=n.length;o||(n=t("").appendTo(s)),n.attr("width")!==e?a.width=n.attr("width"):n.attr("width",a.width),n.attr("height")!==e?a.height=n.attr("height"):n.attr("height",a.height),o||8!=t.zui.browser.ie||G_vmlCanvasManager.initElement(n[0]),a.value=Math.max(0,Math.min(100,a.value));var r=[{value:a.value,label:a.name,color:a.color,circleBeginEnd:!0},{value:100-a.value,label:"",color:a.backColor}];n[a.doughnut?"doughnutChart":"pieChart"](r,t.extend({segmentShowStroke:!1,animation:a.animation,showTooltips:a.showTip,tooltipTemplate:a.tipTemplate,percentageInnerCutout:a.doughnutSize,reverseDrawOrder:!0},a.chartOptions))})},t(function(){t(".table-chart").tableChart();var e=t(".progress-pie");e.length>100?setTimeout(function(){e.progressPie()},1e3):e.progressPie()})}(jQuery,void 0),function(t){jQuery.fn.sparkline=function(e){t(this).each(function(){var i=t(this),s=t.extend({values:i.attr("values"),width:i.width()-4,height:i.height()-4},i.data(),e),n=s.height,a=[],o=s.width,r=s.values.split(","),l=0;for(var h in r){var c=parseFloat(r[h]);NaN!=c&&(a.push(c),l=Math.max(c,l))}var d=Math.min(l,30),u=(Math.ceil(l/d),Math.min(o,Math.max(10,a.length*o/30))),p=i.children("canvas");p.length||(i.append(''),p=i.children("canvas")),p.attr("width",u).attr("height",n);var f={labels:a,datasets:[{fillColor:"rgba(0,0,255,0.05)",strokeColor:"#0054EC",pointColor:"rgba(255,136,0,1)",pointStrokeColor:"#fff",data:a}]},g={animation:!0,scaleOverride:!0,scaleStepWidth:Math.ceil(l/10),scaleSteps:10,scaleStartValue:0,showScale:!1,showTooltips:!1,pointDot:!1,scaleShowGridLines:!1,datasetStrokeWidth:1},m=t(p).lineChart(f,g);i.data("sparklineChart",m)})},t(function(){t(".sparkline").sparkline()})}(jQuery),function(t){t(function(){t.fn.fixedDate=function(){return t(this).each(function(){var e=t(this);e.offset().top+200>t(document.body).height()&&e.attr("data-picker-position","top-right"),"0000-00-00"==e.val()&&e.focus(function(){"0000-00-00"==e.val()&&e.val("").datetimepicker("update")}).blur(function(){""==e.val()&&e.val("0000-00-00")})})};var e={language:t("html").attr("lang"),weekStart:1,todayBtn:1,autoclose:1,todayHighlight:1,startView:2,forceParse:0,showMeridian:1,format:"yyyy-mm-dd hh:ii",startDate:"1970-1-1"},i=t.extend({},e,{minView:2,format:"yyyy-mm-dd"}),s=t.extend({},e,{startView:1,minView:0,maxView:1,format:"hh:ii"});t(".datepicker-wrapper").click(function(){t(this).find(".form-date, .form-datetime, .form-time").datetimepicker("show").focus(); +}),window.datepickerOptions=e,t.fn.datepicker=function(e){return this.datetimepicker(t.extend({},i,e))},t.fn.timepicker=function(e){return this.datetimepicker(t.extend({},s,e))},t.fn.datepickerAll=function(){return this.find(".form-datetime").fixedDate().datetimepicker(e),this.find(".form-date").fixedDate().datepicker(),this.find(".form-time").fixedDate().timepicker(),this},t("body").datepickerAll()})}(jQuery),function(t){var e=function(e,i){i=t.extend({idStart:0,idEnd:9,chosen:!0,datetimepicker:!0,colorPicker:!0,hotkeys:!0},i,e.data());var s=e.find(".template");!s.length&&i.template&&(s=t(i.template));var n=0,a=0,o=function(t){t.is("select.chosen")?t.next(".chosen-container").find("input").focus():t.focus()},r=function(t){var i=e.find("[data-ctrl-index]:focus,.chosen-container-active").first();if(i.length){if(i.is(".chosen-container-active")){if(i.hasClass("chosen-with-drop")&&("down"===t||"up"===t))return;i=i.prev("select.chosen")}var s=i.data("ctrlIndex"),r=i.closest("tr").data("row");"down"===t?r0?r-=1:r=a-1:"left"===t?s>0?s-=1:s=n-1:"right"===t&&(s").html(r);l.attr("data-row",e).addClass(s.attr("class")).removeClass("template"),i.rowCreator&&i.rowCreator(l,e,i),o?o.after(l):h.append(l),t.fn.chosen&&i.chosen&&l.find(".chosen").chosen(t.isPlainObject(i.chosen)?i.chosen:null),t.fn.datetimepicker&&i.datetimepicker&&l.datepickerAll(t.isPlainObject(i.datetimepicker)?i.datetimepicker:null),t.fn.colorPicker&&i.colorPicker&&l.find("input.colorpicker").colorPicker(t.isPlainObject(i.colorPicker)?i.colorPicker:null);var d=0;return l.find('input[type!="hidden"],textarea,select').each(function(){var e=t(this);e.parent().hasClass("chosen-search")||e.attr("data-ctrl-index",d++)}),n=Math.max(n,d),l};t.extend(l,{createRow:d,template:c});for(var u=i.idStart;u<=i.idEnd;++u)d(u)}e.on("click",".btn-copy",function(){var e=t(this),i=t(e.data("copyFrom")).val(),s=t(e.data("copyTo")).val(i).addClass("highlight");setTimeout(function(){s.removeClass("highlight")},2e3)}),i.hotkeys&&t(document).on("keydown",function(t){var e={"Ctrl+#37":"left","Ctrl+#39":"right","#38":"up","#40":"down","Ctrl+#38":"up","Ctrl+#40":"down"},i=[];t.ctrlKey&&i.push("Ctrl"),i.push("#"+t.keyCode);var s=e[i.join("+")];s&&(r(s),t.ctrlKey&&(t.stopPropagation(),t.preventDefault()))}),e.data("zui.batchActionForm",l)};t.fn.batchActionForm=function(i){return this.each(function(){e(t(this),i)})}}(jQuery),function(t,e){"use strict";var i="zui.table",s={zh_cn:{selectedItems:"已选择 {0} 项",attrTotal:"{0}总计 {1}"},zh_tw:{selectedItems:"已选择 {0} 项",attrTotal:"{0}总计 {1}"},en:{selectedItems:"Seleted {0} items",attrTotal:"{0} total {1}"}},n=function(e,a){var o=this;o.name=i;var r=o.$=t(e);a=o.options=t.extend({},n.DEFAULTS,this.$.data(),a);var l=a.lang||"zh_cn";o.lang=t.isPlainObject(l)?t.extend(!0,{},s[l.lang||t.zui.clientLang()],l):s[l];var h=o.$table=r.is("table")?r:r.find("table");o.$header=h.find("thead"),o.$footer=r.find(".table-footer");var c=o.$form=r.is("form")?r:r.find("form");a.checkable&&(r.on("click",".check-all",function(){o.checkAll(!t(this).hasClass("checked"))}).on("click","tbody>tr",function(){o.checkRow(t(this))}).on("click",'tbody input[type="checkbox"],tbody label[for]',function(e){e.stopPropagation();var i=t(this);i.is("label")&&(i=i.closest(".checkbox-primary").find('input[type="checkbox"]')),o.checkRow(i.closest("tr"),i.is(":checked"))}).on("click","tbody a,tbody .btn",function(t){t.stopPropagation()}),a.selectable&&r.selectable(t.extend({},{selector:"tbody>tr",selectClass:"",trigger:".c-id",clickBehavior:"multi",listenClick:!1,select:function(t){o.checkRow(t.target,!0)},unselect:function(t){o.checkRow(t.target,!1)},rangeStyle:{border:"1px solid #006af1",backgroundColor:"rgba(50, 128, 252, 0.2)",borderRadius:"2px"}},t.isPlainObject(a.selectable)?a.selectable:null))),c.length&&(a.ajaxForm?c.ajaxForm(t.isPlainObject(a.ajaxForm)?a.ajaxForm:null):c.on("click","[data-form-action]",function(){c.attr("action",t(this).data("formAction")).submit()})),(a.fixFooter||a.fixHeader)&&(o.pageFooterHeight=t("#footer").outerHeight(),o.updateFixUI(),t(window).on("scroll resize",function(){o.updateFixUI()}).on("sidebar.toggle",function(){setTimeout(function(){o.updateFixUI()},200)})),o.$statistic=r.find(".table-statistic"),o.defaultStatistic=o.$statistic.html(),o.updateStatistic()};n.prototype.updateStatistic=function(){var i=this,s=i.$statistic;if(s.length){i.defaultStatistic===e&&(i.defaultStatistic=s.html());var n=i.statisticCols;if(!n&&n!==!1){n={};var a=!1;i.$header.find("th").each(function(e){var i=t(this),s=i.data("statistic");s&&(a=!0,n[e]={format:s,name:i.text()})}),i.statisticCols=!!a&&n}var o=0;n&&t.each(n,function(t){n[t].total=0,n[t].checkedTotal=0}),i.$.find("tbody>tr").each(function(e){var i=t(this),s=i.hasClass("checked"),a=i.children("td");s&&o++,n&&t.each(n,function(t){var e=parseFloat(a.eq(t).text());isNaN(e)&&(e=0),n[t].total+=e,s&&(n[t].checkedTotal+=e)})});var r=[];if(o)r.push(i.lang.selectedItems.format(o));else if(i.defaultStatistic)return void s.html(i.defaultStatistic);n&&t.each(n,function(t){var e=n[t],s=e[o?"checkedTotal":"total"];e.format&&(s=e.format.format(s)),r.push(i.lang.attrTotal.format(e.name,s))}),s.html(r.join(", "))}},n.prototype.updateFixUI=function(t){var e=this,i=(new Date).getTime();return!t&&(e.lastUpdateCall&&clearTimeout(e.lastUpdateCall),!e.lastUpdateTime||i-e.lastUpdateTime<100)?void(e.lastUpdateCall=setTimeout(function(){e.updateFixUI(!0)},30)):(e.lastUpdateTime=i,e.lastUpdateCall&&(clearTimeout(e.lastUpdateCall),e.lastUpdateCall=null),e.options.fixHeader&&e.fixHeader(),void(e.options.fixFooter&&e.fixFooter()))},n.prototype.fixHeader=function(){var e=this,i=e.$header,s=i[0].getBoundingClientRect(),n=e.options.fixFooter,a=t.isFunction(n)?n(s,i):s.top<("number"==typeof n?n:-5),o=e.$.find("table.fixed-header-copy");if(a){o.length||(o=t('
                ').addClass(e.$table.attr("class")).append(i.clone()).insertAfter(e.$table)),o.css({top:0,left:s.left,position:"fixed",width:s.width});var r=o.find("th");i.find("th").each(function(e){r.eq(e).css("width",t(this).outerWidth())})}else o.remove()},n.prototype.fixFooter=function(){var e=this,i=e.$footer,s=e.$.find("tbody")[0].getBoundingClientRect(),n=e.options.fixFooter;i.toggleClass("fixed-footer",!!a);var a=t.isFunction(n)?n(s,i):s.bottom>window.innerHeight-50-("number"==typeof n?n:e.pageFooterHeight||5);i.toggleClass("fixed-footer",!!a),a?i.css({bottom:e.pageFooterHeight,left:s.left,width:s.width}):i.css({width:""})},n.prototype.checkAll=function(e){var i=this,s=i.$.find("tbody>tr");s.each(function(){i.checkRow(t(this),e,!0)}),i.updateCheckUI()},n.prototype.checkRow=function(t,i,s){var n=t.find('input[type="checkbox"]');i===e&&(i=!n.is(":checked")),t.toggleClass("checked",i),n.prop("checked",i),s||this.updateCheckUI()},n.prototype.updateCheckUI=function(){var e=this.$.find("tbody>tr"),i=!1,s=null,n=0,a=!1,o=e.length;e.each(function(e){var r=t(this);a=r.hasClass("checked"),r.toggleClass("row-check-begin",a&&!i),s&&s.toggleClass("row-check-end",!a&&i),a&&(n+=1),s=r,i=a,o===e+1&&r.toggleClass("row-check-end",a)}),this.$.toggleClass("has-row-checked",n>0).find(".check-all").toggleClass("checked",n===o),this.updateStatistic()},n.DEFAULTS={checkable:!0,ajaxForm:!1,selectable:!0,fixHeader:!0,fixFooter:!0},t.fn.table=function(e){return this.each(function(){var s=t(this),a=s.data(i),o="object"==typeof e&&e;a||s.data(i,a=new n(this,o)),"string"==typeof e&&a[e]()})},n.NAME=i,t.fn.table.Constructor=n,t(function(){t('[data-ride="table"]').table()})}(jQuery,void 0),function(t,e,i){t.fn._ajaxForm=t.fn.ajaxForm;var s={timeout:e.config?e.config.timeout:0,dataType:"json",errControlStyle:{borderColor:"#D2322D"}},n="";t.fn.enableForm=function(e){return e===i&&(e=!0),this.each(function(){var i=t(this);i.find('[type="submit"]').attr("disabled",e?null:"disabled"),i.hasClass("load-indicator")&&i.toggleClass("loading",!e)})};var a=function(e,i,s){"string"==typeof i&&(s=i,i=null),s=s||"show",t.zui.messager?t.zui.messager[s](e,i):alert(e)};t.ajaxForm=function(o,r){var l=t(o);if(l.length>1)return l.each(function(){t.ajaxForm(this,r)});t.isFunction(r)&&(r={complete:r}),r=t.extend({},s,l.data(),r);var h=r.beforeSubmit,c=r.error,d=r.success,u=r.finish;delete r.finish,delete r.success,delete r.onError,delete r.beforeSubmit;var p=r.errControlStyle;delete r.errControlStyle,r=t.extend({beforeSubmit:function(s,a,o){if(l.enableForm(!1),(h&&h(s,a,o))!==!1){var c={},d=a.find('[type="file"]');c.fileapi=d.length&&d[0].files!==i,c.formdata=e.FormData!==i;var u=c.fileapi&&a.find('input[type="file"]:enabled').filter(function(){return""!==t(this).val()}),p=u.length,f="multipart/form-data",g=a.attr("enctype")==f||a.attr("encoding")==f,m=c.fileapi&&c.formdata,v=(p||g)&&!m;v&&(""==n&&(n=r.url),r.url!=n&&(r.url=n),r.url=r.url.indexOf("&")>=0?r.url+"&HTTP_X_REQUESTED_WITH=XMLHttpRequest":r.url+"?HTTP_X_REQUESTED_WITH=XMLHttpRequest")}},success:function(i,s,n){if(l.enableForm(),(d&&d(i,s,n,l))!==!1){try{"string"==typeof i&&(i=JSON.parse(i))}catch(o){}if("object"!=typeof i)return i?alert(i):a("No response.","danger");var h=r.responser?t(r.responser):l.find(".form-responser");h.length||(h=t("#responser"));var c=i.message;if("success"===i.result){if(c){var f=l.find('[type="submit"]'),g=!1;f.length&&(f.popover({container:"body",trigger:"manual",content:c,tipClass:"popover-in-modal popover-success text-success",placement:i.placement||r.popoverPlacement||"right"}).popover("show"),setTimeout(function(){f.popover("destroy")},r.popoverTime||2e3),g=!0),h.length&&(h.html(''+c+"").show().delay(3e3).fadeOut(100),g=!0),g||a(c,"success")}if(u)return u(i,!0,l);if((r.closeModal||i.closeModal)&&setTimeout(t.zui.closeModal,r.closeModalTime||2e3),i.callback){var m=e[i.callback];if(t.isFunction(m)&&m()===!1)return}var v=r.locate||i.locate;if(v)if("loadInModal"==v){var y=t(".modal");setTimeout(function(){y.load(y.attr("ref"),function(){t(this).find(".modal-dialog").css("width",t(this).data("width")),t.zui.ajustModalPosition()})},1e3)}else{var b="reload"==v?e.location.href:v;setTimeout(function(){e.location.href=b},1200)}var w=r.ajaxReload||i.ajaxReload;if(w){var x=t(w);x.length&&x.load(e.location.href+" "+w,function(){x.find('[data-toggle="modal"]').modalTrigger()})}}else{if("string"==typeof c)h.length?h.html(''+c+"").show().delay(3e3).fadeOut(100):a(c,"danger");else if("object"==typeof c){var _=!1,C=[];t.each(c,function(e,i){var s=t.isArray(i)?i.join(";"):i,n=t("#"+e);if(!n.length)return void C.push(s);var a=e+"Label",o=t("#"+a);if(!o.length){var r=n.closest(".input-group").length;o=t('
                ').appendTo(r?n.closest(".input-group").parent():n.parent())}o.empty().append(s),n.css(p).addClass("has-error");var l=function(){var e=t("#"+a);if(e.length)return e.remove(),n.removeAttr("style").removeClass("has-error"),!0};n.on("change input mousedown",l);var h=t("#"+e+"_chosen");h.length&&h.find(".chosen-single").css(p).addClass("has-error").on("mousedown",function(){l()===!0&&t(this).removeAttr("style").removeClass("has-error")}),_||(n.focus(),_=!0)}),C.length&&a(C.join(";"),"danger")}if(u)return u(i,!1,l)}}},error:function(t,i,s){if((c&&c(t,i,s,l))!==!1){l.enableForm();var n="timeout"==i||"error"==i?e.lang?e.lang.timeout:i:t.responseText+i+s;a(n,"danger")}}},r),l._ajaxForm(r),l.on("click","[data-form-action]",function(){l.attr("action",t(this).data("formAction")).submit()})},t.fn.ajaxForm=function(e){return this.each(function(){t.ajaxForm(this,e)})},t.fn.setInputRequired=function(){return this.each(function(){var e=t(this),i=e.parent();i.is(".input-control")?i.addClass("required"):e.is(".chosen")&&e.next(".chosen-container").addClass("required")})},t(function(){t('.form-ajax,form[data-type="ajax"]').ajaxForm(),t("input[required],select[required]").setInputRequired()})}(jQuery,window,void 0),function(t){"use strict";var e="zui.searchList",i=function(t,e){if(t&&t.length)for(var i=0;i
                ').append(a)),e.$menu.append(a),e.$menu.removeClass("loading")},error:function(){e.$menu.removeClass("loading").append('
                '+(i.errorText||window.lang&&window.lang.timeout)+"
                ")}},i.ajax))},s.prototype.scrollTo=function(t){t.length&&t[0].scrollIntoView({behavior:"smooth"})},s.prototype.getItems=function(){return this.$.find(this.options.selector)},s.prototype.getActiveItem=function(){return this.getItems().filter(".active:first")},s.prototype.search=function(e){var s=this,n=void 0===e||null===e||""===e,a=s.getItems().removeClass("active");if(n)a.removeClass("hidden");else{var o=t.trim(e).split(" ");a.each(function(){var e=t(this),s=e.text()+" "+(e.data("key")||e.data("filter"));e.toggleClass("hidden",!i(o,s))})}s.scrollTo(a.not(".hidden").first().addClass("active"))},s.DEFAULTS={selector:".list-group a",searchBox:".search-box",onSelectItem:null},t.fn.searchList=function(i){return this.each(function(){var n=t(this),a=n.data(e),o="object"==typeof i&&i;a||n.data(e,a=new s(this,o)),"string"==typeof i&&a[i]()})},s.NAME=e,t.fn.searchList.Constructor=s,t(function(){t('[data-ride="searchList"]').searchList()})}(jQuery),function(t){"use strict";var e="zui.labelSelector",i=function(s,n){var a=this;a.name=e;a.$=t(s);n=a.options=t.extend({},i.DEFAULTS,this.$.data(),n),a.$.hide(),a.update()};i.prototype.select=function(t){t+="",this.$wrapper.find(".label.active").removeClass("active"),""!==t&&"0"!==t&&this.$wrapper.find('.label[data-value="'+t+'"]').addClass("active"),this.$.val(t).trigger("change")},i.prototype.update=function(){var e=this,i=e.options,s=e.$wrapper;if(!s){if(i.wrapper)s=t(i.wrapper);else{var n=e.$.next();s=n.hasClass(".label-selector")?n:t('
                ')}s.parent().length||e.$.after(s),e.$wrapper=s,s.on("click",".label",function(){e.select(t(this).data("value"))})}s.empty();var a=e.$.val();e.$.children("option").each(function(){var e=t(this),n={label:e.text(),value:e.val()},o=t(i.labelTemplate||'');i.labelCreator?o=i.labelCreator(o):(o.data("option",n).attr("data-value",n.value),""!==n.value&&"0"!==n.value||n.label?o.text(n.label).toggleClass("active",a===n.value):o.addClass("empty").append('')),s.append(o)})},i.DEFAULTS={},t.fn.labelSelector=function(s){return this.each(function(){var n=t(this),a=n.data(e),o="object"==typeof s&&s;a||n.data(e,a=new i(this,o)),"string"==typeof s&&a[s]()})},i.NAME=e,t.fn.labelSelector.Constructor=i,t(function(){t('[data-provide="labelSelector"]').labelSelector()})}(jQuery),function(t){"use strict";var e="zui.fileInput";const i=t.BYTE_UNITS={B:1,KB:1024,MB:1048576,GB:1073741824,TB:1099511627776};var s=t.formatBytes=function(t,e,s){return void 0===e&&(e=2),s||(s=to.fileMaxSize&&(h.val(""),(window.bootbox||window).alert(o.fileSizeError.format(s(o.fileMaxSize)))),r.update()}),r.update()};a.prototype.getFile=function(){return this.$input.prop("files")[0]},a.prototype.update=function(t){var e=this,i=e.$,n=e.getFile(),a=!n;i.toggleClass("normal",!a).toggleClass("empty",a),n?(e.oldName=n.name,i.find(".file-title").text(n.name).attr("title",n.name),i.find(".file-size").text(s(n.size)),i.find(".file-editbox").val(n.name).attr("size",n.name.length),e.options.onSelect&&e.options.onSelect(n,e)):i.find(".file-editbox").val("")},a.DEFAULTS={fileMaxSize:0,fileSizeError:"无法上传大于 {0} 的文件。"},t.fn.fileInput=function(i){return this.each(function(){var s=t(this),n=s.data(e),o="object"==typeof i&&i;n||s.data(e,n=new a(this,o)),"string"==typeof i&&n[i]()})},a.NAME=e,t.fn.fileInput.Constructor=a,t(function(){t('[data-provide="fileInput"]').fileInput()});var o=function(i,s){var n=this;n.name=e;var a=n.$=t(i);s=n.options=t.extend({},o.DEFAULTS,this.$.data(),s),n.$template=a.find(".file-input").detach(),n.add()};o.prototype.add=function(){var t=this,e=t.options,i=t.$template.clone();"before"===e.appendWay?t.$.prepend(i):t.$.append(i),i.fileInput({fileMaxSize:e.eachFileMaxSize,fileSizeError:e.fileSizeError,onDelete:function(e){e.$.remove(),t.options.onDelete&&t.options.onDelete(e,t)},onSelect:function(e,i){t.add(),t.options.onSelect&&t.options.onSelect(e,i,t)}})},o.DEFAULTS={fileMaxSize:0,eachFileMaxSize:0,appendWay:"after",fileSizeError:"无法上传大于 {0} 的文件。"},t.fn.fileInputList=function(i){return this.each(function(){var s=t(this),n=s.data(e),a="object"==typeof i&&i;n||s.data(e,n=new o(this,a)),"string"==typeof i&&n[i]()})},o.NAME=e,t.fn.fileInputList.Constructor=o,t(function(){t('[data-provide="fileInputList"]').fileInputList()})}(jQuery),function(t){window.config||(window.config={}),t.createLink=window.createLink=function(t,e,s,n,a){if(n||(n=config.defaultView),a||(a=!1),s)for(s=s.split("&"),i=0;i'+d+"")}}t.val()||(time=e(a.format("hh:mm")),time=time-time%10+10,t.val(s(time)))};t.fn.timeSpanControl=function(i){return this.each(function(){var o=t(this),r=t.extend({},i,o.data()),l=o.find('[name="begin"],.control-time-begin'),h=o.find('[name="end"],.control-time-end'),c=function(){var t=l.val();if(o.find(".hide-empty-begin").toggleClass("hide",!t),t){const i=s(e(t)+30);h.find('option[value="'+i+'"]').length&&h.val(i),r.onChange&&r.onChange(h,i)}};if(o.data("timeSpanControlInit")){if(r.begin){const d=n(r.begin).format("hh:mm");l.find('option[value="'+d+'"]').length&&l.val(d),r.onChange&&r.onChange(l,d)}if(r.end){const u=n(r.end).format("hh:mm");h.find('option[value="'+u+'"]').length&&h.val(u),r.onChange&&r.onChange(h,u)}}else l.on("change",c),a(l,r.begin),a(h,r.end),o.data("timeSpanControlInit",!0);r.end||c()})},t.timeSpanControl={convertTimeToNum:e,convertNumToTime:s,initTimeSelect:a,createTime:n},t.fn.blockTodoes=function(){return this.each(function(){var e=t(this),i=e.find("form"),s=i.find('[name="title"]'),n=function(t){void 0===t&&(t=!e.hasClass("show-form")),e.toggleClass("show-form",t),t&&setTimeout(function(){s.focus()},50)};e.on("click",".todo-form-trigger",function(){n(t(this).data("trigger"))}),i.timeSpanControl({onChange:function(t){t.trigger("chosen:updated")}})})},t(function(){t(".block-todoes").blockTodoes()});var o=t("#searchTypeMenu"),r=t("#searchType"),l=function(e){e||(e=r.val()),e=e||"bug",r.val(e),o.find("li.selected").removeClass("selected");var i=o.find('a[data-value="'+e+'"]'),s=i.text();i.parent().addClass("selected"),t("#searchTypeName").text(s)};l(),o.on("click","a[data-value]",function(){l(t(this).data("value"))}),t.chosenDefaultOptions={disable_search_threshold:1,width:"100%",allow_single_deselect:!0,placeholder_text_single:" ",placeholder_text_multiple:" ",search_contains:!0},t.chosenSimpleOptions=t.extend({},t.chosenDefaultOptions,{disable_search_threshold:6}),t.fn._chosen=t.fn.chosen,t.fn.chosen=function(e){return this.each(function(){var i=t(this);return i._chosen(t.extend({},i.hasClass("chosen-simple")?t.chosenSimpleOptions:t.chosenDefaultOptions,e))})},t(function(){t(".chosen").each(function(){var e=t(this);e.closest(".template").length||e.chosen()})}),t.extend(t.fn.pager.Constructor.DEFAULTS,{maxNavCount:8,prevIcon:"icon-angle-left",nextIcon:"icon-angle-right",navEllipsisItem:"…",menuDirection:"dropup",pageSizeOptions:[5,10,15,20,25,30,35,40,45,50,100,200,500,1e3,2e3],elements:["total_text","size_menu","prev_icon","nav","next_icon"],onPageChange:function(t,e){console.log("onPageChange",t,e),t.recPerPage!==e.recPerPage&&(window.location.href=this.createLink())}}),t.zui.Messager.DEFAULTS.cssClass="messagger-zt",t.fn.reverseOrder=function(){return this.each(function(){var e=t(this);e.prependTo(e.parent())})};var h=function(e,i){var s=t(e);i=t.extend({},s.data(),i);var n=s.find(".histories-list"),a=!0,o=!1;s.on("click",".btn-reverse",function(){n.children("li").reverseOrder(),a=!a,t(this).find(".icon").toggleClass("icon-arrow-up",a).toggleClass("icon-arrow-down",!a)}).on("click",".btn-expand-all",function(){var e=t(this).find(".icon");o=!o,e.toggleClass("icon-plus",!o).toggleClass("icon-minus",o),n.children("li").toggleClass("show-changes",o)}).on("click",".btn-expand",function(){t(this).closest("li").toggleClass("show-changes")}).on("click",".btn-strip",function(){var e=t(this),s=e.find(".icon"),n=s.hasClass("icon-code");s.toggleClass("icon-code",!n).toggleClass("icon-text",n),e.attr("title",n?i.original:i.textdiff),e.closest("li").toggleClass("show-original",n)}),n.find(".btn-strip").attr("title",i.original);var r=s.find(".modal-comment").modal({show:!1,backdrop:!1,position:function(t){var e=n[0].getBoundingClientRect(),i=t.$element.find(".modal-dialog"),s=i.outerWidth(),a=i.outerHeight();return{top:Math.min(window.innerHeight-a,e.top-40),left:e.left+e.width-s,margin:0}}});s.on("click",".btn-comment",function(){r.modal("toggle")}).on("click",".btn-edit-comment,.btn-hide-form",function(){t(this).closest("li").toggleClass("show-form")});var l=s.find(".comment-edit-form");l.ajaxForm({success:function(t,e,i,s){setTimeout(function(){l.closest("li").removeClass("show-form")},2e3)}})};t.fn.histories=function(t){return this.each(function(){h(this,t)})},t(function(){t(".histories").histories()});var c=0,d=0;t.toggleSidebar=function(e){var i=t("#sidebar");if(i.length){var s=t("main");if(void 0===e)e=s.hasClass("hide-sidebar");else if(e&&!s.hasClass("hide-sidebar"))return;s.toggleClass("hide-sidebar",!e),clearTimeout(c),e?(i.addClass("showing"),c=setTimeout(function(){i.removeClass("showing"),i.trigger("sidebar.toggle",e)},210)):i.trigger("sidebar.toggle",e),t.zui.store.set(d,e)}};var u=function(){var e=t("#sidebar");if(e.length&&!e.data("init")){d="sidebar:"+(e.data("id")||config.module+"/"+config.method);var i=t("main");i.on("click",".sidebar-toggle",function(){t.toggleSidebar(i.hasClass("hide-sidebar"))});var s=t.zui.store.get(d,e.data("hide")!==!1);return e.addClass("no-animate"),t.toggleSidebar(s),setTimeout(function(){e.removeClass("no-animate")},500),e.data("init",1),!0}};u()||t(u),t.toggleQueryBox=function(e){var i=t("#queryBox");i.length&&(void 0===e&&(e=!i.hasClass("show")),i.toggleClass("show",!!e),i.data("init")||(i.addClass("load-indicator loading").data("init",1),t.get(t.createLink("search","buildForm"),function(t){i.html(t).removeClass("loading")})),t(".querybox-toggle").toggleClass("querybox-opened",e))},t(function(){var e=t("#queryBox");e.length&&(t(document).on("click",".querybox-toggle",function(){t.toggleQueryBox()}),e.hasClass("show")&&t.toggleQueryBox(!0))}),t.extend(t.fn.colorPicker.Constructor.DEFAULTS,{colors:["#3DA7F5","#75C941","#2DBDB2","#797EC9","#FFAF38","#FF4E3E"]}),t("a.iframe").modalTrigger({type:"iframe"});var p=function(){var e,i,s=t(this),n=t.extend({limitSize:40,suffix:"…"},s.data()),a=s.text();if(a.length>n.limitSize){e=a,i=a.substr(0,n.limitSize)+n.suffix,s.text(i).addClass("limit-text-on");var o=n.toggleBtn?t(n.toggleBtn):s.next(".text-limit-toggle");o.text(o.data("textExpand")),o.on("click",function(){var t=s.toggleClass("limit-text-on").hasClass("limit-text-on");s.text(t?i:e),o.text(o.data(t?"textExpand":"textCollapse"))})}};t.fn.textLimit=function(){return this.each(p)},t(function(){t(".text-limit").textLimit()}),t.fixedTableHead=window.fixedTableHead=function(e){t(e).scroll(function(){var e=t(this).find(".table-fixed-head").size()>0;if(!e&&(t(this).css("position","relative"),1==t(this).find("table").size())){var i=""+t(this).find("table thead").html()+"
                ";t(this).prepend(i);var s=t(this).find("table.table-fixed-head");s.addClass(t(this).find("table:last").attr("class"));var n=t(this).find("table:last thead th");s.find("thead th").each(function(t){s.find("thead th").eq(t).width(n.eq(t).width())})}t(this).find("table.table-fixed-head").css("top",t(this).scrollTop())})}}(jQuery); \ No newline at end of file diff --git a/www/theme/zui/css/min.css b/www/theme/zui/css/min.css index 0e5b4bf728..853dc2e23e 100644 --- a/www/theme/zui/css/min.css +++ b/www/theme/zui/css/min.css @@ -1,9 +1,9 @@ /*! - * ZUI: Zentao template - v1.8.1 - 2018-04-22 + * ZUI: Zentao template - v1.8.1 - 2018-04-25 * http://zui.sexy * GitHub: https://github.com/easysoft/zui.git * Copyright (c) 2018 cnezsoft.com; Licensed MIT - *//*! normalize.css v2.1.3 | MIT License | git.io/normalize */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],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:0 0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}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{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}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]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-spacing:0;border-collapse:collapse}#userMenu:after,#userMenu:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fixed-md:after,.container-fixed-md:before,.container-fixed-sm:after,.container-fixed-sm:before,.container-fixed-xs:after,.container-fixed-xs:before,.container-fixed:after,.container-fixed:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.dl-inline:after,.dl-inline:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager-justify:after,.pager-justify:before,.pager-loose:after,.pager-loose:before,.row:after,.row:before,.table-footer:after,.table-footer:before{display:table;content:" "}#userMenu:after,.btn-toolbar:after,.clearfix:after,.container-fixed-md:after,.container-fixed-sm:after,.container-fixed-xs:after,.container-fixed:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.dl-inline:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager-justify:after,.pager-loose:after,.row:after,.table-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none}.showing{display:block}.hidden{display:none!important;visibility:hidden!important}.show{display:block!important;visibility:visible!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}.with-padding{padding:5px 12px}.no-padding{padding:0!important}.no-margin{margin:0!important}.inline-block.visible-xs,.inline.visible-xs,.visible-xs,td.visible-xs,th.visible-xs,tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}.inline.visible-xs{display:inline!important}.inline-block.visible-xs{display:inline-block!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}.inline.visible-xs.visible-sm{display:inline!important}.inline-block.visible-xs.visible-sm{display:inline-block!important}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1379px){.visible-xs.visible-md{display:block!important}.inline.visible-xs.visible-md{display:inline!important}.inline-block.visible-xs.visible-md{display:inline-block!important}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1380px){.visible-xs.visible-lg{display:block!important}.inline.visible-xs.visible-lg{display:inline!important}.inline-block.visible-xs.visible-lg{display:inline-block!important}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}.inline-block.visible-sm,.inline.visible-sm,.visible-sm,td.visible-sm,th.visible-sm,tr.visible-sm{display:none!important}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}.inline.visible-sm.visible-xs{display:inline!important}.inline-block.visible-sm.visible-xs{display:inline-block!important}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}.inline.visible-sm{display:inline!important}.inline-block.visible-sm{display:inline-block!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1379px){.visible-sm.visible-md{display:block!important}.inline.visible-sm.visible-md{display:inline!important}.inline-block.visible-sm.visible-md{display:inline-block!important}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1380px){.visible-sm.visible-lg{display:block!important}.inline.visible-sm.visible-lg{display:inline!important}.inline-block.visible-sm.visible-lg{display:inline-block!important}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}.inline-block.visible-md,.inline.visible-md,.visible-md,td.visible-md,th.visible-md,tr.visible-md{display:none!important}@media (max-width:767px){.visible-md.visible-xs{display:block!important}.inline.visible-md.visible-xs{display:inline!important}.inline-block.visible-md.visible-xs{display:inline-block!important}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}.inline.visible-md.visible-sm{display:inline!important}.inline-block.visible-md.visible-sm{display:inline-block!important}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1379px){.visible-md{display:block!important}.inline.visible-md{display:inline!important}.inline-block.visible-md{display:inline-block!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1380px){.visible-md.visible-lg{display:block!important}.inline.visible-md.visible-lg{display:inline!important}.inline-block.visible-md.visible-lg{display:inline-block!important}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}.inline-block.visible-lg,.inline.visible-lg,.visible-lg,td.visible-lg,th.visible-lg,tr.visible-lg{display:none!important}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}.inline.visible-lg.visible-xs{display:inline!important}.inline-block.visible-lg.visible-xs{display:inline-block!important}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}.inline.visible-lg.visible-sm{display:inline!important}.inline-block.visible-lg.visible-sm{display:inline-block!important}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1379px){.visible-lg.visible-md{display:block!important}.inline.visible-lg.visible-md{display:inline!important}.inline-block.visible-lg.visible-md{display:inline-block!important}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1380px){.visible-lg{display:block!important}.inline.visible-lg{display:inline!important}.inline-block.visible-lg{display:inline-block!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}.inline.hidden-xs{display:inline!important}.inline-block.hidden-xs{display:inline-block!important}tr.hidden-xs{display:table-row!important}td.hidden-xs,th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,.inline-block.hidden-xs,.inline.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,.inline-block.hidden-xs.hidden-sm,.inline.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1379px){.hidden-xs.hidden-md,.inline-block.hidden-xs.hidden-md,.inline.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1380px){.hidden-xs.hidden-lg,.inline-block.hidden-xs.hidden-lg,.inline.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}.inline.hidden-sm{display:inline!important}.inline-block.hidden-sm{display:inline-block!important}tr.hidden-sm{display:table-row!important}td.hidden-sm,th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,.inline-block.hidden-sm.hidden-xs,.inline.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,.inline-block.hidden-sm,.inline.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1379px){.hidden-sm.hidden-md,.inline-block.hidden-sm.hidden-md,.inline.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1380px){.hidden-sm.hidden-lg,.inline-block.hidden-sm.hidden-lg,.inline.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}.inline.hidden-md{display:inline!important}.inline-block.hidden-md{display:inline-block!important}tr.hidden-md{display:table-row!important}td.hidden-md,th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,.inline-block.hidden-md.hidden-xs,.inline.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,.inline-block.hidden-md.hidden-sm,.inline.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1379px){.hidden-md,.inline-block.hidden-md,.inline.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1380px){.hidden-md.hidden-lg,.inline-block.hidden-md.hidden-lg,.inline.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}.inline.hidden-lg{display:inline!important}.inline-block.hidden-lg{display:inline-block!important}tr.hidden-lg{display:table-row!important}td.hidden-lg,th.hidden-lg{display:table-cell!important}@media (max-width:767px){.hidden-lg.hidden-xs,.inline-block.hidden-lg.hidden-xs,.inline.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,.inline-block.hidden-lg.hidden-sm,.inline.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1379px){.hidden-lg.hidden-md,.inline-block.hidden-lg.hidden-md,.inline.hidden-lg.hidden-md,td.hidden-lg.hidden-md,th.hidden-lg.hidden-md,tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1380px){.hidden-lg,.inline-block.hidden-lg,.inline.hidden-lg,td.hidden-lg,th.hidden-lg,tr.hidden-lg{display:none!important}}.inline-block.visible-print,.inline.visible-print,.visible-print,td.visible-print,th.visible-print,tr.visible-print{display:none!important}@media print{.visible-print{display:block!important}.inline.visible-print{display:inline!important}.inline-block.visible-print{display:inline-block!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}.hidden-print,.inline-block.hidden-print,.inline.hidden-print,td.hidden-print,th.hidden-print,tr.hidden-print{display:none!important}}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,Tahoma,'Microsoft Yahei','PingFang SC','Hiragino Sans GB','WenQuanYi Micro Hei',sans-serif;font-size:14px;line-height:1.42857143;color:#3c4353;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#3c4353;text-decoration:none;cursor:pointer;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:color,background,opacity,left,top,right,bottom,-webkit-transform;-o-transition-property:color,background,opacity,left,top,right,bottom,-o-transform;transition-property:color,background,opacity,left,top,right,bottom,-webkit-transform;transition-property:color,background,transform,opacity,left,top,right,bottom;transition-property:color,background,transform,opacity,left,top,right,bottom,-webkit-transform,-o-transform}a:focus,a:hover{color:#006af1;text-decoration:none}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a.disabled,a.disabled:focus,a.disabled:hover,a[disabled],a[disabled]:focus,a[disabled]:hover{color:#aaa;text-decoration:none;cursor:default}audio,canvas,img,video{max-width:100%;vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}::-moz-selection{text-shadow:none;background:#b3d4fc}::selection{text-shadow:none;background:#b3d4fc}fieldset{padding:0;margin:0;border:0}textarea{resize:vertical}ol,ul{padding-left:20px}.container,.container-fixed,.container-fixed-md,.container-fixed-sm,.container-fixed-xs,.container-fluid{padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{max-width:992px}}@media (min-width:992px){.container{max-width:1380px}}@media (min-width:1380px){.container{max-width:1380px}}.container-fixed{width:1380px}.container-fixed-md{width:1380px}.container-fixed-sm{width:992px}.container-fixed-xs{width:768px}.row{margin-right:-10px;margin-left:-10px}.col,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:10px;padding-left:10px}.col,.col-xs,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-1,.col-xs-1{width:8.33333333%}.col-2,.col-xs-2{width:16.66666667%}.col-3,.col-xs-3{width:25%}.col-4,.col-xs-4{width:33.33333333%}.col-5,.col-xs-5{width:41.66666667%}.col-6,.col-xs-6{width:50%}.col-7,.col-xs-7{width:58.33333333%}.col-8,.col-xs-8{width:66.66666667%}.col-9,.col-xs-9{width:75%}.col-10,.col-xs-10{width:83.33333333%}.col-11,.col-xs-11{width:91.66666667%}.col-12,.col-xs-12{width:100%}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.33333333%}.col-sm-2{width:16.66666667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333%}.col-sm-5{width:41.66666667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333333%}.col-sm-8{width:66.66666667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333%}.col-sm-11{width:91.66666667%}.col-sm-12{width:100%}.col-sm-push-1{left:8.33333333%}.col-sm-push-2{left:16.66666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333%}.col-sm-push-5{left:41.66666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333333%}.col-sm-push-8{left:66.66666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333%}.col-sm-push-11{left:91.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-11{right:91.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.33333333%}.col-md-2{width:16.66666667%}.col-md-3{width:25%}.col-md-4{width:33.33333333%}.col-md-5{width:41.66666667%}.col-md-6{width:50%}.col-md-7{width:58.33333333%}.col-md-8{width:66.66666667%}.col-md-9{width:75%}.col-md-10{width:83.33333333%}.col-md-11{width:91.66666667%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333333%}.col-md-push-2{left:16.66666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333%}.col-md-push-5{left:41.66666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333333%}.col-md-push-8{left:66.66666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333%}.col-md-push-11{left:91.66666667%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333333%}.col-md-pull-2{right:16.66666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333%}.col-md-pull-5{right:41.66666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333333%}.col-md-pull-8{right:66.66666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333%}.col-md-pull-11{right:91.66666667%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}}@media (min-width:1380px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.33333333%}.col-lg-2{width:16.66666667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333%}.col-lg-5{width:41.66666667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333333%}.col-lg-8{width:66.66666667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333%}.col-lg-11{width:91.66666667%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333333%}.col-lg-push-2{left:16.66666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333%}.col-lg-push-5{left:41.66666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333333%}.col-lg-push-8{left:66.66666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333%}.col-lg-push-11{left:91.66666667%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-11{right:91.66666667%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}cite{font-style:normal}.text-gray,.text-muted{color:#a6aab8}.text-gray a,.text-muted a{color:#989cad}.text-gray a:active,.text-gray a:hover,.text-muted a:active,.text-muted a:hover{color:#3c4353}.text-primary{color:#006af1}.text-warning,.text-yellow{color:#fdc137}.text-danger,.text-red{color:#ff5d5d}.text-green,.text-success{color:#00da88}.text-blue,.text-info{color:#7ec5ff}.text-brown,.text-important{color:#bd7b46}.text-purple,.text-special{color:#8666b8}.text-link{color:#3c4353}.text-link:active,.text-link:hover{color:#3c4353}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.nobr,.text-nowrap{overflow:hidden;white-space:nowrap}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}dl{margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}.dl-inline dt{display:inline-block}.dl-inline dd{display:inline-block;padding-right:1em}.dl-inline dd:last-child{padding-right:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol,blockquote p,blockquote ul{font-weight:300}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857143;color:#a6aab8}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}.ol-pd-2{padding-left:40px}.ol-pd-3{padding-left:60px}.ol-pd-4{padding-left:80px}.bg-black,.bg-default{color:#fff;background-color:#3c4353}.bg-primary{color:#fff;background-color:#006af1}.bg-green,.bg-success{color:#fff;background-color:#00da88}.bg-blue,.bg-info{color:#fff;background-color:#7ec5ff}.bg-warning,.bg-yellow{color:#fff;background-color:#fdc137}.bg-danger,.bg-red{color:#fff;background-color:#ff5d5d}.bg-brown,.bg-important{color:#fff;background-color:#bd7b46}.bg-purple,.bg-special{color:#fff;background-color:#8666b8}.hl-default,.hl-gray{background-color:#f1f1f1}.hl-primary{background-color:#e9f2fb}.hl-green,.hl-success{background-color:#ddf4df}.hl-blue,.hl-info{background-color:#ddf3f5}.hl-warning,.hl-yellow{background-color:#fff0d5}.hl-danger,.hl-red{background-color:#ffe5e0}.hl-brown,.hl-important{background-color:#f7ebe1}.hl-purple,.hl-special{background-color:#f5eeff}.header-dividing,.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Arial,Tahoma,'Microsoft Yahei','PingFang SC','Hiragino Sans GB','WenQuanYi Micro Hei',sans-serif;font-weight:700;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#a6aab8}h1,h2,h3{margin-top:20px;margin-bottom:10px}h1 small,h2 small,h3 small{font-size:65%}h4,h5,h6{margin-top:10px;margin-bottom:10px}h4 small,h5 small,h6 small{font-size:75%}h1{font-size:24px}h2{font-size:20px}h3{font-size:28px}h4{font-size:16px}h5{font-size:14px}h6{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}hr.divider-sm{margin-top:10px;margin-bottom:10px}hr.divider{margin:0}.label{display:inline;padding:.2em .6em .2em;font-size:85.71428571%;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#a6aab8;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;background-color:#8a8fa1}.label.label-outline{color:#a6aab8;background:0 0;border:1px solid #a6aab8}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-badge{display:inline-block;min-width:18px;padding:3px 7px;font-size:12px;line-height:1;border-radius:9px}.label-dot{display:inline-block;width:8px;height:8px;padding:0;line-height:20px;text-indent:-9999em;border-radius:50%}.label-dot:empty{display:inline-block}.label-primary{background-color:#006af1}.label-primary[href]:focus,.label-primary[href]:hover{color:#fff;background-color:#0054be}.label-primary.label-outline{color:#006af1;background:0 0;border:1px solid #006af1}.label-success{background-color:#00da88}.label-success[href]:focus,.label-success[href]:hover{color:#fff;background-color:#00a768}.label-success.label-outline{color:#00da88;background:0 0;border:1px solid #00da88}.label-info{background-color:#7ec5ff}.label-info[href]:focus,.label-info[href]:hover{color:#fff;background-color:#4baeff}.label-info.label-outline{color:#7ec5ff;background:0 0;border:1px solid #7ec5ff}.label-warning{background-color:#fdc137}.label-warning[href]:focus,.label-warning[href]:hover{color:#fff;background-color:#fcb105}.label-warning.label-outline{color:#fdc137;background:0 0;border:1px solid #fdc137}.label-danger{background-color:#ff5d5d}.label-danger[href]:focus,.label-danger[href]:hover{color:#fff;background-color:#ff2a2a}.label-danger.label-outline{color:#ff5d5d;background:0 0;border:1px solid #ff5d5d}.btn .label,.nav-primary>li>a>.label{position:relative;top:-1px}.btn-danger .label,.btn-info .label,.btn-primary .label,.btn-success .label,.btn-warning .label{background-color:rgba(0,0,0,.2)}.list-group-item.active>.label,.nav-pills>.active>a>.label,.nav-primary>.active>a>.label{color:#3c4353;background-color:#fff}.nav>li>a>.label{margin-left:3px}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#a6aab8}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:6px;margin-bottom:20px;overflow:hidden;background-color:#f2f3f6;border-radius:3px}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#006af1;border-radius:3px;-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#00da88}.progress-bar-info{background-color:#7ec5ff}.progress-bar-warning{background-color:#fdc137}.progress-bar-danger{background-color:#ff5d5d}.avatar{position:relative;display:block;width:30px;height:30px;overflow:hidden;line-height:30px;text-align:center;background-position:center;-webkit-background-size:cover;background-size:cover;border-radius:4px}.avatar img{display:block;width:100%;height:100%;margin:0}.avatar-sm{width:20px;height:20px;font-size:12px;line-height:20px}.avatar-lg{width:40px;height:40px;font-size:20px;line-height:40px}.avatar-lg>.icon{font-size:20px}.avatar-xl{width:70px;height:70px;font-size:35px;line-height:70px}.avatar-xl>.icon{font-size:35px}.avatar-circle{border-radius:50%}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#838a9d;border:0;border-bottom:1px solid #eee}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:5px 0 0;margin-top:0\9;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}.form-control::-webkit-input-placeholder{color:#a6aab8}.form-control::-moz-placeholder{color:#a6aab8}.form-control:-ms-input-placeholder{color:#a6aab8}.form-control::placeholder{color:#a6aab8}.form-control{display:block;width:100%;height:32px;padding:5px 8px;font-size:14px;line-height:1.42857143;color:#3c4353;vertical-align:middle;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.form-control.focus,.form-control:focus{border-color:#006af1;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,106,241,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,106,241,.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.form-control[readonly]{cursor:default}textarea.form-control{height:auto;min-height:32px}.form-group{margin-bottom:10px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:3px;margin-top:4px\9;margin-left:-20px}.os-android .checkbox input[type=checkbox],.os-android .checkbox-inline input[type=checkbox],.os-android .radio input[type=radio],.os-android .radio-inline input[type=radio]{margin-top:0}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.input-sm{height:24px;padding:2px 8px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:24px;line-height:24px}textarea.input-sm{height:auto}.input-lg{height:44px;padding:10px 16px;font-size:18px;line-height:1.25;border-radius:6px}select.input-lg{height:44px;line-height:44px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning>label{color:#fdc137}.has-warning .form-control{border-color:#fdc137;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#fcb105;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fee09c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fee09c}.has-warning .input-group-addon{color:#fdc137;background-color:#fff0d5;border-color:#fdc137}.has-error .help-block,.has-error>label{color:#ff5d5d}.has-error .form-control{border-color:#ff5d5d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#ff2a2a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ffc3c3;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ffc3c3}.has-error .input-group-addon{color:#ff5d5d;background-color:#ffe5e0;border-color:#ff5d5d}.has-success .help-block,.has-success>label{color:#00da88}.has-success .form-control{border-color:#00da88;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#00a768;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #41ffb8;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #41ffb8}.has-success .input-group-addon{color:#00da88;background-color:#ddf4df;border-color:#00da88}.form-control-static{min-height:34px;padding-top:6px;padding-bottom:6px;margin-bottom:0}.help-block{display:block;margin:5px 0;color:#74809b}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .form-group>label,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:6px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-10px;margin-left:-10px}@media (min-width:768px){.form-horizontal .form-group>label{text-align:right}}.required{position:relative}.required:after{position:absolute;top:0;right:-10px;display:inline-block;font-size:18px;color:#ff5d5d;content:'*'}.form-horizontal .required:after{top:5px;right:-1px}.form-condensed .form-group{margin-bottom:10px}.form-condensed .form-control{height:24px;padding:2px 8px;font-size:12px;line-height:1.5;border-radius:3px}select.form-condensed .form-control{height:24px;line-height:24px}textarea.form-condensed .form-control{height:auto}.form-condensed textarea.form-control{height:auto}.form-condensed .btn{padding:2px 8px;font-size:12px;line-height:1.5;border-radius:4px}.form-condensed .input-group>.form-control,.form-condensed .input-group>.input-group-addon,.form-condensed .input-group>.input-group-btn>.btn{padding:2px 8px;font-size:12px;border-radius:3px}.form-condensed .input-group .form-control:first-child,.form-condensed .input-group-addon:first-child,.form-condensed .input-group-btn:first-child>.btn,.form-condensed .input-group-btn:first-child>.btn-group>.btn,.form-condensed .input-group-btn:first-child>.dropdown-toggle,.form-condensed .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.form-condensed .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.form-condensed .input-group .form-control:last-child,.form-condensed .input-group-addon:last-child,.form-condensed .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.form-condensed .input-group-btn:first-child>.btn:not(:first-child),.form-condensed .input-group-btn:last-child>.btn,.form-condensed .input-group-btn:last-child>.btn-group>.btn,.form-condensed .input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.form-condensed .input-group-addon:first-child{border-right:0}.form-condensed .input-group-addon:last-child{border-left:0}.form-condensed .input-group-addon.fix-border,.form-condensed .input-group-btn.fix-border>.btn{border-right:0;border-left:0;border-radius:0}.form-condensed.form-horizontal .checkbox,.form-condensed.form-horizontal .checkbox-inline,.form-condensed.form-horizontal .form-group>label,.form-condensed.form-horizontal .radio,.form-condensed.form-horizontal .radio-inline{padding-top:1px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.load-indicator{position:relative}.load-indicator:after,.load-indicator:before{position:absolute;color:#a6aab8;text-align:center;visibility:hidden;opacity:0;-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:visibility,opacity;-o-transition-property:visibility,opacity;transition-property:visibility,opacity}.load-indicator:before{top:0;right:0;bottom:0;left:0;z-index:10;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:50px;font-size:12px;content:attr(data-loading);background-color:rgba(255,255,255,.65);-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.load-indicator:after{top:50%;left:50%;z-index:11;display:block;width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-family:ZentaoIcon;font-size:18px;font-size:24px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:30px;text-transform:none;content:"\e982";-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.load-indicator.loading:after,.load-indicator.loading:before{visibility:visible;opacity:1}table{max-width:100%;background-color:transparent}caption{padding:8px 10px;color:#a6aab8;text-align:left}th{text-align:left}.table{width:100%;margin-bottom:20px}.table td,.table th{padding:8px 10px;line-height:1.42857143;vertical-align:top;border-bottom:1px solid #ecf0f4;-webkit-transition:background .2s cubic-bezier(.175,.885,.32,1);-o-transition:background .2s cubic-bezier(.175,.885,.32,1);transition:background .2s cubic-bezier(.175,.885,.32,1)}.table>thead>tr>th{font-weight:400;color:#a6aab8;vertical-align:bottom;background-color:transparent;border-bottom:1px solid #ecf0f4}.table>tbody+tbody{border-top:2px solid #ecf0f4}.table-fixed{table-layout:fixed}.table-fixed td,.table-fixed th{overflow:hidden;white-space:nowrap}.table-fixed .nofixed,.table-fixed tfoot>tr>td,.table-fixed tfoot>tr>th{overflow:visible}.table-borderless td,.table-borderless th,.table-borderless thead>tr>th{border:none}.table-auto{width:auto;max-width:100%}.table-condensed td,.table-condensed th{padding:5px}.table-bordered{border:1px solid #ecf0f4}.table-bordered td,.table-bordered th{border:1px solid #ecf0f4}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#e9f2fb}table col[class*=col-]{display:table-column;float:none}table td[class*=col-],table th[class*=col-]{display:table-cell;float:none}.table tr.active>td,.table tr.active>th,.table tr>td.active,.table tr>th.active{background-color:#ffe7bc}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#ddf4df;border-color:#bae8b6}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#caeecd;border-color:#a8e1a3}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#ffe5e0;border-color:#ffc6c7}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ffd0c6;border-color:#ffadad}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fff0d5;border-color:#ffdcbc}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#ffe7bc;border-color:#ffcea2}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ecf0f4}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered th{border-top:none}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}.alert{padding:15px;margin-bottom:20px;color:#313744;background-color:#f1f1f1;border-radius:3px;-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.alert hr{border-top-color:#e4e4e4}.alert .alert-link{color:#22262f}.alert h4{margin-top:0;color:inherit}.alert hr{margin:10px 0}.alert p,.alert ul{margin-bottom:0}.alert p+p{margin-top:5px}.alert-link{font-weight:700}.alert>[class*=icon-]{float:left;margin-top:-5px;font-size:42px;opacity:.6;-webkit-transition:opacity .2s cubic-bezier(.175,.885,.32,1);-o-transition:opacity .2s cubic-bezier(.175,.885,.32,1);transition:opacity .2s cubic-bezier(.175,.885,.32,1)}.alert>[class*=icon-]+.content{min-height:30px;margin-left:64px}.alert.with-icon{display:table;width:100%}.alert.with-icon>[class*=icon-],.alert.with-icon>[class*=icon-]+.content{display:table-cell;float:none;min-height:0;margin:0;vertical-align:middle}.alert.with-icon>[class*=icon-]{width:48px;text-align:center}.alert.with-icon>[class*=icon-]+.content{padding-left:1em}.alert-block{margin:0;border-radius:0}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-6px;right:-21px;color:inherit}.alert-primary{color:#313744;background-color:#e9f2fb}.alert-primary hr{border-top-color:#cbe0f6}.alert-primary .alert-link{color:#22262f}.alert-success{color:#00c178;background-color:#ddf4df}.alert-success hr{border-top-color:#bae8b6}.alert-success .alert-link{color:#009d62}.alert-info{color:#64baff;background-color:#ddf3f5}.alert-info hr{border-top-color:#a2e4de}.alert-info .alert-link{color:#41a9ff}.alert-warning{color:#fdb91e;background-color:#fff0d5}.alert-warning hr{border-top-color:#ffdcbc}.alert-warning .alert-link{color:#f4ab02}.alert-danger{color:#ff4343;background-color:#ffe5e0}.alert-danger hr{border-top-color:#ffc6c7}.alert-danger .alert-link{color:#ff2020}.alert-inverse{color:#fff;background-color:#3c4353;border-color:#3c4353}.alert-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-primary-inverse{color:#fff;background-color:#006af1;border-color:#006af1}.alert-primary-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-primary-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-success-inverse{color:#fff;background-color:#00da88;border-color:#00da88}.alert-success-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-success-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-info-inverse{color:#fff;background-color:#7ec5ff;border-color:#7ec5ff}.alert-info-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-info-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-warning-inverse{color:#fff;background-color:#fdc137;border-color:#fdc137}.alert-warning-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-warning-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-danger-inverse{color:#fff;background-color:#ff5d5d;border-color:#ff5d5d}.alert-danger-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-danger-inverse .alert-link{color:rgba(255,255,255,.8)}.input-control-icon-left,.input-control-icon-right,.input-control-label-left,.input-control-label-right{position:absolute;top:1px;z-index:5;height:30px;line-height:30px;opacity:.5}.input-control-icon-left,.input-control-icon-right{width:30px;text-align:center}.input-control-icon-left,.input-control-label-left{left:1px}.input-control-icon-right,.input-control-label-right{right:1px}.input-control-label-left,.input-control-label-right{width:70px;padding:0 8px;overflow:hidden;text-overflow:ellipsis}.has-label-left-sm>.input-control-label-left,.has-label-left-sm>.input-control-label-right{width:55px}.has-label-left-lg>.input-control-label-left,.has-label-left-lg>.input-control-label-right{width:95px}.input-control{position:relative}.input-control.has-icon-left>.form-control{padding-left:30px}.input-control.has-icon-right>.form-control{padding-right:30px}.input-control.has-label-left>.form-control{padding-left:70px}.input-control.has-label-right>.form-control{padding-right:70px}.input-control.has-label-left-sm>.form-control{padding-left:55px}.input-control.has-label-right-sm>.form-control{padding-right:55px}.input-control.has-label-left-lg>.form-control{padding-left:95px}.input-control.has-label-right-lg>.form-control{padding-right:95px}.input-control>a:hover{background-color:#f1f1f1;opacity:1}.form-control:focus+[class^=input-control-],.form-control:focus+[class^=input-control-]+[class^=input-control-]{opacity:1}.form-control:focus+.input-control-label-left{color:#00a9fc}.empty+.search-clear-btn,.empty+.search-icon+.search-clear-btn{opacity:0!important}input:placeholder-shown+.search-clear-btn,input:placeholder-shown+.search-icon+.search-clear-btn{opacity:0!important}.search-box-circle .input-control-icon-left,.search-box-circle .input-control-icon-right,.search-box-circle>.form-control{border-radius:16px}.search-box-circle+.input-group-btn>.btn{border-radius:0 16px 16px 0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:5px 12px;font-size:14px;font-weight:400;line-height:1;color:#838a9d;text-align:center;background-color:#eee;border:1px solid #e8e9ee;border-radius:4px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon.fix-border{border-right:0;border-left:0}.input-group-addon:empty{width:1px;padding:0}.input-group-addon.fix-padding{width:1px;padding:0}.input-group-btn.fix-border>.btn{border-right:0;border-left:0;border-radius:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:44px;padding:10px 16px;font-size:18px;line-height:1.25;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:44px;line-height:44px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:24px;padding:2px 8px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:24px;line-height:24px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon.input-sm{padding:2px 8px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.code,code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code,kbd{padding:2px 4px;font-size:90%;color:#37474f;background-color:#f3f5f7;border-radius:4px}kbd{padding:1px 4px;font-weight:700;color:#666;background-color:#f1f1f1;border:1px solid #d8d8d8;border-bottom-width:2px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.38461538;color:#838a9d;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;margin:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.com{color:#93a1a1}.lit{color:#195f91}.clo,.opn,.pun{color:#93a1a1}.fun{color:#dc322f}.atv,.str{color:#d14}.kwd,.prettyprint .tag{color:#1e347b}.atn,.dec,.typ,.var{color:teal}.pln{color:#48484c}.prettyprint.linenums{-webkit-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0}.prettyprint ol.linenums{padding-left:35px;margin-bottom:0;line-height:20px;color:#bebec5;text-shadow:0 1px 0 #fff}.pager{display:inline-block;padding-left:0;margin:20px 0;list-style:none}.pager>li{display:inline}.pager>li>a,.pager>li>span{position:relative;float:left;padding:5px 12px;margin-left:-1px;line-height:1.42857143;text-decoration:none;background-color:#fff;border:1px solid #cbd0db}.pager>li:first-child>a,.pager>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pager>li:last-child>a,.pager>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pager>li>a:focus,.pager>li>a:hover,.pager>li>span:focus,.pager>li>span:hover{z-index:2;background-color:#eee}.pager>li.active>a,.pager>li.active>a:hover,.pager>li.active>span,.pager>li.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#006af1;border-color:#006af1}.pager>li.disabled>a,.pager>li.disabled>a:focus,.pager>li.disabled>a:hover,.pager>li.disabled>span,.pager>li.disabled>span:focus,.pager>li.disabled>span:hover{color:#cbd0db;pointer-events:none;cursor:not-allowed;background-color:#fff;border-color:#cbd0db}.pager-justify{display:block}.pager-justify .next>a,.pager-justify .next>span{float:right;border-radius:4px}.pager-justify .previous>a,.pager-justify .previous>span{float:left;border-radius:4px}.pager-goto{width:100px;text-align:center}.pager>li>div{float:left}.pager>li .pager-goto,.pager>li .pager-size-menu,.pager>li.space{margin:0 5px}.pager-label{position:relative;float:left;padding:5px 4px;margin-left:-1px;line-height:1.42857143;text-decoration:none;border:1px solid transparent}.pager-item-left>a{border-top-left-radius:4px;border-bottom-left-radius:4px}.pager-item-right>a{border-top-right-radius:4px;border-bottom-right-radius:4px}.pager-lg>li>a,.pager-lg>li>span{padding:10px 16px;font-size:18px}.pager-lg>li:first-child>a,.pager-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pager-lg>li:last-child>a,.pager-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pager-sm>li>a,.pager-sm>li>span{padding:2px 8px;font-size:12px}.pager-sm>li:first-child>a,.pager-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pager-sm>li:last-child>a,.pager-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager-pills>li:first-child>a,.pager-pills>li:first-child>span{border-radius:16px 0 0 16px}.pager-pills>li:last-child>a,.pager-pills>li:last-child>span{border-radius:0 16px 16px 0}.pager-pills.pager-justify>li>a,.pager-pills.pager-justify>li>span{border-radius:16px}.pager-loose{display:block;margin:20px 0}.pager-loose.pager-pills>li>a,.pager-loose.pager-pills>li>span{border-radius:16px}.pager-loose>li>a,.pager-loose>li>span{margin-left:5px;border-radius:4px}.pager-loose>li:first-child>a,.pager-loose>li:first-child>span{margin-left:0}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>.nav-heading{padding:8px 15px;font-weight:700;color:#a6aab8}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:8px 15px;color:#3c4353}.nav>li>a:focus,.nav>li>a:hover{color:#006af1;text-decoration:none;background-color:#f1f1f1}.nav>li.disabled>a{color:#cbd0db}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#cbd0db;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#f1f1f1;border-color:#3c4353}.nav>li>a>img{max-width:none}.nav-default>li{float:left}.nav-default>li>a{border-radius:4px}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:20px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#006af1}.nav-primary>li{float:left;margin-left:-1px}.nav-primary>li:first-child>a{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.nav-primary>li:last-child>a{border-top-right-radius:4px;border-bottom-right-radius:4px}.nav-primary>li>a{border:1px solid #cbd0db}.nav-primary>li.active>a,.nav-primary>li.active>a:focus,.nav-primary>li.active>a:hover{color:#fff;background-color:#006af1;border-color:#006af1}.nav-secondary>li{float:left}.nav-secondary>li>a{border-bottom:2px solid #eee}.nav-secondary>li.active>a,.nav-secondary>li.active>a:focus,.nav-secondary>li.active>a:hover{color:#006af1;border-bottom-color:#006af1}.nav-secondary>li.nav-heading{border-bottom:2px solid #eee}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-stacked.nav-primary>li,.nav-stacked.nav-primary>li>a{margin-left:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.nav-stacked.nav-primary>li+li{margin-top:-1px}.nav-stacked.nav-primary>li:first-child{margin-top:0}.nav-stacked.nav-primary>li:first-child.nav-heading,.nav-stacked.nav-primary>li:first-child>a{margin-left:0;border-top-left-radius:4px;border-top-right-radius:4px}.nav-stacked.nav-primary>li:last-child>a{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.nav-stacked.nav-primary>li.nav-heading{background-color:#f1f1f1;border:1px solid #cbd0db}.nav-stacked.nav-secondary>li>a{border:none;border-top-right-radius:4px;border-bottom-right-radius:4px;-webkit-box-shadow:inset 2px 0 0 #f5f5f5;box-shadow:inset 2px 0 0 #f5f5f5}.nav-stacked.nav-secondary>li>a:hover{-webkit-box-shadow:inset 2px 0 0 #eee;box-shadow:inset 2px 0 0 #eee}.nav-stacked.nav-secondary>li+li{margin-top:-1px}.nav-stacked.nav-secondary>li:first-child{margin-top:0}.nav-stacked.nav-secondary>li.active>a,.nav-stacked.nav-secondary>li.active>a:focus,.nav-stacked.nav-secondary>li.active>a:hover{background-color:#f5f5f5;-webkit-box-shadow:inset 2px 0 0 #006af1;box-shadow:inset 2px 0 0 #006af1}.nav-stacked.nav-secondary>li.nav-heading{border-bottom:1px solid #cbd0db}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{padding-right:0;padding-left:0;margin-bottom:5px;text-align:center}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-justified.nav-primary>li+li>a{border-left:0}}.nav-tabs{border-bottom:1px solid #cbd0db}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #cbd0db}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#a6aab8;cursor:default;background-color:#fff;border:1px solid #cbd0db;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{padding-right:0;padding-left:0;margin-bottom:5px;text-align:center}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}.nav-tabs.nav-justified.nav-primary>li+li>a{border-left:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #cbd0db}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #cbd0db;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}@-moz-document url-prefix(){.nav-tabs>li.active>a:focus .nav-tabs>li>a:focus{outline:0}}.nav-tabs.nav-stacked{border-right:1px solid #cbd0db;border-bottom:none}.nav-tabs.nav-stacked>li{float:none;margin-right:-1px;margin-bottom:0}.nav-tabs.nav-stacked>li>a{margin-right:0;border-radius:4px 0 0 4px}.nav-tabs.nav-stacked>li.active>a,.nav-tabs.nav-stacked>li.active>a:focus,.nav-tabs.nav-stacked>li.active>a:hover{border:1px solid #cbd0db;border-right-color:transparent}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #cbd0db}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #cbd0db;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:40px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:10px;padding-left:10px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-10px;margin-left:-10px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:40px;padding:10px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-10px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:3px;margin-right:3px;margin-bottom:3px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:5px -10px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px}.navbar-nav.nav-justified>li{float:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:4px;margin-bottom:4px}.navbar-text{float:left;margin-top:10px;margin-bottom:10px}@media (min-width:768px){.navbar-text{margin-right:10px;margin-left:10px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-10px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f7f7f7;border-color:#dedede}.navbar-default .navbar-brand{color:#838a9d}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#697084;background-color:transparent}.navbar-default .navbar-text{color:#838a9d}.navbar-default .navbar-nav>li>a{color:#838a9d}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#3c4353;background-color:#eee}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#cbd0db}.navbar-default .navbar-toggle .icon-bar{background-color:#a6aab8}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#dedede}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#838a9d}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#3c4353;background-color:#eee}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#838a9d}.navbar-default .navbar-link:hover{color:#3c4353}.navbar-default .btn-link{color:#838a9d}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#3c4353}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#00a9fc;border-color:#0087c9}.navbar-inverse .navbar-brand{color:#cbd0db}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#cbd0db}.navbar-inverse .navbar-nav>li>a{color:#cbd0db}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:#1cb4ff}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#30bbff}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#0098e3}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#0091d8}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#30bbff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#0087c9}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#0087c9}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#cbd0db}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:#1cb4ff}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#30bbff}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#cbd0db}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-form{padding:10px 10px;margin-top:4px;margin-right:-10px;margin-bottom:4px;margin-left:-10px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.scale{-webkit-transition:all .15s ease;-o-transition:all .15s ease;transition:all .15s ease;-webkit-transform:scale(.8);-ms-transform:scale(.8);-o-transform:scale(.8);transform:scale(.8)}.scale.in{-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;pointer-events:none;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal>.loader{display:none}.modal.modal-loading .modal-dialog{opacity:0}.modal.modal-loading .loader{position:absolute;top:35%;left:50%;display:block;width:80px;margin-left:-40px;font-size:56px;color:#fff;text-align:center}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-iframe .modal-body>iframe{border-radius:0 0 6px 6px}.modal-dialog{position:relative;width:auto;pointer-events:initial;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-dialog.modal-moveable{position:absolute;margin:0}.modal-dialog.modal-moveable .modal-header{cursor:move}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.modal-fullscreen{position:relative;width:100%!important;height:100%!important;margin:0;border-radius:0}.modal-fullscreen .modal-body{position:absolute;top:52px;right:0;bottom:0;left:0;overflow-y:auto}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=100);opacity:1}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#3c4353;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#3c4353}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#3c4353}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#3c4353}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#3c4353}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#3c4353}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#3c4353}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#3c4353}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#3c4353}.tooltip-primary .tooltip-inner{background-color:#006af1}.tooltip-primary.tooltip.top .tooltip-arrow{border-top-color:#006af1}.tooltip-primary.tooltip.top-left .tooltip-arrow{border-top-color:#006af1}.tooltip-primary.tooltip.top-right .tooltip-arrow{border-top-color:#006af1}.tooltip-primary.tooltip.right .tooltip-arrow{border-right-color:#006af1}.tooltip-primary.tooltip.left .tooltip-arrow{border-left-color:#006af1}.tooltip-primary.tooltip.bottom .tooltip-arrow{border-bottom-color:#006af1}.tooltip-primary.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#006af1}.tooltip-primary.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#006af1}.tooltip-success .tooltip-inner{background-color:#00da88}.tooltip-success.tooltip.top .tooltip-arrow{border-top-color:#00da88}.tooltip-success.tooltip.top-left .tooltip-arrow{border-top-color:#00da88}.tooltip-success.tooltip.top-right .tooltip-arrow{border-top-color:#00da88}.tooltip-success.tooltip.right .tooltip-arrow{border-right-color:#00da88}.tooltip-success.tooltip.left .tooltip-arrow{border-left-color:#00da88}.tooltip-success.tooltip.bottom .tooltip-arrow{border-bottom-color:#00da88}.tooltip-success.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#00da88}.tooltip-success.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#00da88}.tooltip-info .tooltip-inner{background-color:#7ec5ff}.tooltip-info.tooltip.top .tooltip-arrow{border-top-color:#7ec5ff}.tooltip-info.tooltip.top-left .tooltip-arrow{border-top-color:#7ec5ff}.tooltip-info.tooltip.top-right .tooltip-arrow{border-top-color:#7ec5ff}.tooltip-info.tooltip.right .tooltip-arrow{border-right-color:#7ec5ff}.tooltip-info.tooltip.left .tooltip-arrow{border-left-color:#7ec5ff}.tooltip-info.tooltip.bottom .tooltip-arrow{border-bottom-color:#7ec5ff}.tooltip-info.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#7ec5ff}.tooltip-info.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#7ec5ff}.tooltip-warning .tooltip-inner{background-color:#fdc137}.tooltip-warning.tooltip.top .tooltip-arrow{border-top-color:#fdc137}.tooltip-warning.tooltip.top-left .tooltip-arrow{border-top-color:#fdc137}.tooltip-warning.tooltip.top-right .tooltip-arrow{border-top-color:#fdc137}.tooltip-warning.tooltip.right .tooltip-arrow{border-right-color:#fdc137}.tooltip-warning.tooltip.left .tooltip-arrow{border-left-color:#fdc137}.tooltip-warning.tooltip.bottom .tooltip-arrow{border-bottom-color:#fdc137}.tooltip-warning.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#fdc137}.tooltip-warning.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#fdc137}.tooltip-danger .tooltip-inner{background-color:#ff5d5d}.tooltip-danger.tooltip.top .tooltip-arrow{border-top-color:#ff5d5d}.tooltip-danger.tooltip.top-left .tooltip-arrow{border-top-color:#ff5d5d}.tooltip-danger.tooltip.top-right .tooltip-arrow{border-top-color:#ff5d5d}.tooltip-danger.tooltip.right .tooltip-arrow{border-right-color:#ff5d5d}.tooltip-danger.tooltip.left .tooltip-arrow{border-left-color:#ff5d5d}.tooltip-danger.tooltip.bottom .tooltip-arrow{border-bottom-color:#ff5d5d}.tooltip-danger.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#ff5d5d}.tooltip-danger.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#ff5d5d}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:300px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:4px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover.no-arrow.top{margin-top:0}.popover.no-arrow.right{margin-left:0}.popover.no-arrow.bottom{margin-top:0}.popover.no-arrow.left{margin-left:0}.modal .popover,.popover-in-modal{z-index:1050}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{content:"";border-width:10px}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom .arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left .arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-primary{border-color:#006af1}.popover-primary .popover-title{color:#fff;background-color:#006af1}.popover-primary.popover.top .arrow{border-top-color:#006af1}.popover-primary.popover.right .arrow{border-right-color:#006af1}.popover-primary.popover.left .arrow{border-left-color:#006af1}.popover-primary.popover.bottom .arrow,.popover-primary.popover.bottom .arrow:after{border-bottom-color:#006af1}.popover-success{border-color:#00da88}.popover-success .popover-title{color:#fff;background-color:#00da88}.popover-success.popover.top .arrow{border-top-color:#00da88}.popover-success.popover.right .arrow{border-right-color:#00da88}.popover-success.popover.left .arrow{border-left-color:#00da88}.popover-success.popover.bottom .arrow,.popover-success.popover.bottom .arrow:after{border-bottom-color:#00da88}.popover-info{border-color:#7ec5ff}.popover-info .popover-title{color:#fff;background-color:#7ec5ff}.popover-info.popover.top .arrow{border-top-color:#7ec5ff}.popover-info.popover.right .arrow{border-right-color:#7ec5ff}.popover-info.popover.left .arrow{border-left-color:#7ec5ff}.popover-info.popover.bottom .arrow,.popover-info.popover.bottom .arrow:after{border-bottom-color:#7ec5ff}.popover-warning{border-color:#fdc137}.popover-warning .popover-title{color:#fff;background-color:#fdc137}.popover-warning.popover.top .arrow{border-top-color:#fdc137}.popover-warning.popover.right .arrow{border-right-color:#fdc137}.popover-warning.popover.left .arrow{border-left-color:#fdc137}.popover-warning.popover.bottom .arrow,.popover-warning.popover.bottom .arrow:after{border-bottom-color:#fdc137}.popover-danger{border-color:#ff5d5d}.popover-danger .popover-title{color:#fff;background-color:#ff5d5d}.popover-danger.popover.top .arrow{border-top-color:#ff5d5d}.popover-danger.popover.right .arrow{border-right-color:#ff5d5d}.popover-danger.popover.left .arrow{border-left-color:#ff5d5d}.popover-danger.popover.bottom .arrow,.popover-danger.popover.bottom .arrow:after{border-bottom-color:#ff5d5d}.caret{display:inline-block;width:0;height:0;margin-bottom:2px;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:100px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#eee}.dropdown-menu>li>a{display:block;padding:5px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#3c4353;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#fff;text-decoration:none;background-color:#006af1}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#006af1;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#cbd0db}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.dropdown-hover .dropdown-menu{margin:-1px 0}.dropdown-hover:hover>.dropdown-menu,.open>.dropdown-menu{display:block}.dropdown-hover:hover>a,.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;font-weight:700;line-height:1.42857143;color:#a6aab8}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0 dotted;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;border-radius:4px}.dropdown-submenu.open>.dropdown-menu,.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;border-radius:4px}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;content:" ";border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu>a{min-width:100px}.dropdown-submenu>.dropdown-menu.pull-left{right:100%;left:auto}.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#006af1}.messager{display:table;margin:10px;overflow:hidden;color:#fff;pointer-events:auto;background-color:#3c4353;background-color:rgba(0,0,0,.8);border-radius:20px;-webkit-transition-property:opacity,-webkit-transform!important;-o-transition-property:opacity,-o-transform!important;transition-property:opacity,-webkit-transform!important;transition-property:opacity,transform!important;transition-property:opacity,transform,-webkit-transform,-o-transform!important}.messager-content{display:table-cell;padding:10px 15px;vertical-align:top}.messager-content>[class^=icon-]{display:inline-block;margin-right:8px}.messager-actions{display:table-cell;vertical-align:top}.messager-actions>.action{min-width:40px;height:40px;padding:0 12px;color:#fafafa;color:rgba(255,255,255,.6);text-align:center;text-shadow:none;background:0 0;border:none}.messager-actions>.action.close{padding-bottom:5px;font-size:20px;font-weight:400;opacity:1}.messager-actions>.action:hover{color:#fff;background:rgba(0,0,0,.1)}.messager-actions .action-icon+.action-text{margin-left:8px}.messagers-holder{position:fixed;z-index:99999;padding:10px;pointer-events:none}.messagers-holder.top{top:0}.messagers-holder.top-left{top:0;left:0}.messagers-holder.top-right{top:0;right:0}.messagers-holder.bottom{bottom:0}.messagers-holder.bottom-left{bottom:0;left:0}.messagers-holder.bottom-right{right:0;bottom:0}.messagers-holder.bottom-right .messager,.messagers-holder.top-right .messager{margin-left:auto}.messagers-holder.center{top:0}.messagers-holder.bottom,.messagers-holder.center,.messagers-holder.top{right:0;left:0}.messagers-holder.bottom .messager,.messagers-holder.center .messager,.messagers-holder.top .messager{margin:10px auto}.messager-primary{background-color:#006af1}.messager-success{background-color:#00da88}.messager-info{background-color:#7ec5ff}.messager-warning{background-color:#fdc137}.messager-danger{background-color:#ff5d5d}.messager-important{background-color:#bd7b46}.messager-special{background-color:#8666b8}.article{padding:20px}.article>header h1,.article>header h2,.article>header h3{margin-bottom:20px;line-height:1.5}.article>header>.abstract,.article>header>dl{padding:10px 15px;font-size:12px;color:#67738e;background-color:#f1f1f1}.article>header>.abstract>p:last-child,.article>header>dl>p:last-child{margin-bottom:0}.article>header>dl{margin:0;border-bottom:1px solid #e9e9e9}.article>header>dl.pull-right{background-color:transparent;border:none}.article>footer{border-top:1px dashed #d8d8d8}.article>footer>p{padding:10px 15px}.article-content,.article>.content{padding:20px 0;font-size:14px;line-height:1.78571429}.article-content h1,.article>.content h1{font-size:22px}.article-content h2,.article>.content h2{font-size:20px}.article-content h3,.article>.content h3{font-size:18px}.article-content h4,.article>.content h4{margin-top:15px;font-size:16px}.article-content h5,.article>.content h5{margin-top:15px;font-size:14px}.article-content h6,.article>.content h6{margin-top:15px;font-size:12px}.article-content img,.article>.content img{margin:10px 0}.article-content p>img,.article>.content p>img{margin-right:10px}.article-content p>img[align=right],.article>.content p>img[align=right]{margin-left:10px}.article-content dl,.article>.content dl{padding-right:2em;padding-left:2em}.article-content table,.article>.content table{margin-bottom:20px}.article-content table td,.article-content table th,.article>.content table td,.article>.content table th{padding:8px 10px;line-height:1.42857143;vertical-align:top;border-bottom:1px solid #ecf0f4}.article-content table>thead>tr>th,.article>.content table>thead>tr>th{vertical-align:bottom;background-color:transparent;border-bottom:1px solid #ecf0f4}.article-content p{margin-bottom:0}.article-content table{width:100%}.article>.content table td,.article>.content table th,.article>.content table>thead>tr>th{border:1px solid #ecf0f4}body.article-content{padding:8px}.article-condensed{padding:20px 0}.article-condensed>header{padding:0 20px}.article-condensed>header>.abstract,.article-condensed>header>dl{padding:10px 15px;margin:0 -20px}.article-condensed>.article-content,.article-condensed>.content{padding:20px}.article-condensed>.article-content>img,.article-condensed>.article-content>pre,.article-condensed>.content>img,.article-condensed>.content>pre{margin-right:-20px;margin-left:-20px;border-radius:0}.article-condensed>.article-content>pre,.article-condensed>.content>pre{border-right:none;border-left:none}.article-condensed>footer{border-top:1px dashed #d8d8d8}.article-condensed>footer>p{padding:10px 15px}.article-condensed>footer>.pager-justify>.previous>a{border-left:none;border-radius:0}.article-condensed>footer>.pager-justify>.next>a{border-right:none;border-radius:0}/*! + *//*! normalize.css v2.1.3 | MIT License | git.io/normalize */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],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:0 0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}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{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}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]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-spacing:0;border-collapse:collapse}#userMenu:after,#userMenu:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fixed-md:after,.container-fixed-md:before,.container-fixed-sm:after,.container-fixed-sm:before,.container-fixed-xs:after,.container-fixed-xs:before,.container-fixed:after,.container-fixed:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.dl-inline:after,.dl-inline:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager-justify:after,.pager-justify:before,.pager-loose:after,.pager-loose:before,.row:after,.row:before,.table-footer:after,.table-footer:before{display:table;content:" "}#userMenu:after,.btn-toolbar:after,.clearfix:after,.container-fixed-md:after,.container-fixed-sm:after,.container-fixed-xs:after,.container-fixed:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.dl-inline:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager-justify:after,.pager-loose:after,.row:after,.table-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none}.showing{display:block}.hidden{display:none!important;visibility:hidden!important}.show{display:block!important;visibility:visible!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}.with-padding{padding:5px 12px}.no-padding{padding:0!important}.no-margin{margin:0!important}.inline-block.visible-xs,.inline.visible-xs,.visible-xs,td.visible-xs,th.visible-xs,tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}.inline.visible-xs{display:inline!important}.inline-block.visible-xs{display:inline-block!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}.inline.visible-xs.visible-sm{display:inline!important}.inline-block.visible-xs.visible-sm{display:inline-block!important}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1379px){.visible-xs.visible-md{display:block!important}.inline.visible-xs.visible-md{display:inline!important}.inline-block.visible-xs.visible-md{display:inline-block!important}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1380px){.visible-xs.visible-lg{display:block!important}.inline.visible-xs.visible-lg{display:inline!important}.inline-block.visible-xs.visible-lg{display:inline-block!important}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}.inline-block.visible-sm,.inline.visible-sm,.visible-sm,td.visible-sm,th.visible-sm,tr.visible-sm{display:none!important}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}.inline.visible-sm.visible-xs{display:inline!important}.inline-block.visible-sm.visible-xs{display:inline-block!important}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}.inline.visible-sm{display:inline!important}.inline-block.visible-sm{display:inline-block!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1379px){.visible-sm.visible-md{display:block!important}.inline.visible-sm.visible-md{display:inline!important}.inline-block.visible-sm.visible-md{display:inline-block!important}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1380px){.visible-sm.visible-lg{display:block!important}.inline.visible-sm.visible-lg{display:inline!important}.inline-block.visible-sm.visible-lg{display:inline-block!important}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}.inline-block.visible-md,.inline.visible-md,.visible-md,td.visible-md,th.visible-md,tr.visible-md{display:none!important}@media (max-width:767px){.visible-md.visible-xs{display:block!important}.inline.visible-md.visible-xs{display:inline!important}.inline-block.visible-md.visible-xs{display:inline-block!important}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}.inline.visible-md.visible-sm{display:inline!important}.inline-block.visible-md.visible-sm{display:inline-block!important}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1379px){.visible-md{display:block!important}.inline.visible-md{display:inline!important}.inline-block.visible-md{display:inline-block!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1380px){.visible-md.visible-lg{display:block!important}.inline.visible-md.visible-lg{display:inline!important}.inline-block.visible-md.visible-lg{display:inline-block!important}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}.inline-block.visible-lg,.inline.visible-lg,.visible-lg,td.visible-lg,th.visible-lg,tr.visible-lg{display:none!important}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}.inline.visible-lg.visible-xs{display:inline!important}.inline-block.visible-lg.visible-xs{display:inline-block!important}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}.inline.visible-lg.visible-sm{display:inline!important}.inline-block.visible-lg.visible-sm{display:inline-block!important}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1379px){.visible-lg.visible-md{display:block!important}.inline.visible-lg.visible-md{display:inline!important}.inline-block.visible-lg.visible-md{display:inline-block!important}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1380px){.visible-lg{display:block!important}.inline.visible-lg{display:inline!important}.inline-block.visible-lg{display:inline-block!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}.inline.hidden-xs{display:inline!important}.inline-block.hidden-xs{display:inline-block!important}tr.hidden-xs{display:table-row!important}td.hidden-xs,th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,.inline-block.hidden-xs,.inline.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,.inline-block.hidden-xs.hidden-sm,.inline.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1379px){.hidden-xs.hidden-md,.inline-block.hidden-xs.hidden-md,.inline.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1380px){.hidden-xs.hidden-lg,.inline-block.hidden-xs.hidden-lg,.inline.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}.inline.hidden-sm{display:inline!important}.inline-block.hidden-sm{display:inline-block!important}tr.hidden-sm{display:table-row!important}td.hidden-sm,th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,.inline-block.hidden-sm.hidden-xs,.inline.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,.inline-block.hidden-sm,.inline.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1379px){.hidden-sm.hidden-md,.inline-block.hidden-sm.hidden-md,.inline.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1380px){.hidden-sm.hidden-lg,.inline-block.hidden-sm.hidden-lg,.inline.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}.inline.hidden-md{display:inline!important}.inline-block.hidden-md{display:inline-block!important}tr.hidden-md{display:table-row!important}td.hidden-md,th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,.inline-block.hidden-md.hidden-xs,.inline.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,.inline-block.hidden-md.hidden-sm,.inline.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1379px){.hidden-md,.inline-block.hidden-md,.inline.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1380px){.hidden-md.hidden-lg,.inline-block.hidden-md.hidden-lg,.inline.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}.inline.hidden-lg{display:inline!important}.inline-block.hidden-lg{display:inline-block!important}tr.hidden-lg{display:table-row!important}td.hidden-lg,th.hidden-lg{display:table-cell!important}@media (max-width:767px){.hidden-lg.hidden-xs,.inline-block.hidden-lg.hidden-xs,.inline.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,.inline-block.hidden-lg.hidden-sm,.inline.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1379px){.hidden-lg.hidden-md,.inline-block.hidden-lg.hidden-md,.inline.hidden-lg.hidden-md,td.hidden-lg.hidden-md,th.hidden-lg.hidden-md,tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1380px){.hidden-lg,.inline-block.hidden-lg,.inline.hidden-lg,td.hidden-lg,th.hidden-lg,tr.hidden-lg{display:none!important}}.inline-block.visible-print,.inline.visible-print,.visible-print,td.visible-print,th.visible-print,tr.visible-print{display:none!important}@media print{.visible-print{display:block!important}.inline.visible-print{display:inline!important}.inline-block.visible-print{display:inline-block!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}.hidden-print,.inline-block.hidden-print,.inline.hidden-print,td.hidden-print,th.hidden-print,tr.hidden-print{display:none!important}}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,Tahoma,'Microsoft Yahei','PingFang SC','Hiragino Sans GB','WenQuanYi Micro Hei',sans-serif;font-size:14px;line-height:1.42857143;color:#3c4353;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#3c4353;text-decoration:none;cursor:pointer;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:color,background,opacity,left,top,right,bottom,-webkit-transform;-o-transition-property:color,background,opacity,left,top,right,bottom,-o-transform;transition-property:color,background,opacity,left,top,right,bottom,-webkit-transform;transition-property:color,background,transform,opacity,left,top,right,bottom;transition-property:color,background,transform,opacity,left,top,right,bottom,-webkit-transform,-o-transform}a:focus,a:hover{color:#006af1;text-decoration:none}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a.disabled,a.disabled:focus,a.disabled:hover,a[disabled],a[disabled]:focus,a[disabled]:hover{color:#aaa;text-decoration:none;cursor:default}audio,canvas,img,video{max-width:100%;vertical-align:middle}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}::-moz-selection{text-shadow:none;background:#b3d4fc}::selection{text-shadow:none;background:#b3d4fc}fieldset{padding:0;margin:0;border:0}textarea{resize:vertical}ol,ul{padding-left:20px}.container,.container-fixed,.container-fixed-md,.container-fixed-sm,.container-fixed-xs,.container-fluid{padding-right:10px;padding-left:10px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{max-width:992px}}@media (min-width:992px){.container{max-width:1380px}}@media (min-width:1380px){.container{max-width:1380px}}.container-fixed{width:1380px}.container-fixed-md{width:1380px}.container-fixed-sm{width:992px}.container-fixed-xs{width:768px}.row{margin-right:-10px;margin-left:-10px}.col,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:10px;padding-left:10px}.col,.col-xs,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-1,.col-xs-1{width:8.33333333%}.col-2,.col-xs-2{width:16.66666667%}.col-3,.col-xs-3{width:25%}.col-4,.col-xs-4{width:33.33333333%}.col-5,.col-xs-5{width:41.66666667%}.col-6,.col-xs-6{width:50%}.col-7,.col-xs-7{width:58.33333333%}.col-8,.col-xs-8{width:66.66666667%}.col-9,.col-xs-9{width:75%}.col-10,.col-xs-10{width:83.33333333%}.col-11,.col-xs-11{width:91.66666667%}.col-12,.col-xs-12{width:100%}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.33333333%}.col-sm-2{width:16.66666667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333%}.col-sm-5{width:41.66666667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333333%}.col-sm-8{width:66.66666667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333%}.col-sm-11{width:91.66666667%}.col-sm-12{width:100%}.col-sm-push-1{left:8.33333333%}.col-sm-push-2{left:16.66666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333%}.col-sm-push-5{left:41.66666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333333%}.col-sm-push-8{left:66.66666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333%}.col-sm-push-11{left:91.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-11{right:91.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.33333333%}.col-md-2{width:16.66666667%}.col-md-3{width:25%}.col-md-4{width:33.33333333%}.col-md-5{width:41.66666667%}.col-md-6{width:50%}.col-md-7{width:58.33333333%}.col-md-8{width:66.66666667%}.col-md-9{width:75%}.col-md-10{width:83.33333333%}.col-md-11{width:91.66666667%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333333%}.col-md-push-2{left:16.66666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333%}.col-md-push-5{left:41.66666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333333%}.col-md-push-8{left:66.66666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333%}.col-md-push-11{left:91.66666667%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333333%}.col-md-pull-2{right:16.66666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333%}.col-md-pull-5{right:41.66666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333333%}.col-md-pull-8{right:66.66666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333%}.col-md-pull-11{right:91.66666667%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}}@media (min-width:1380px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.33333333%}.col-lg-2{width:16.66666667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333%}.col-lg-5{width:41.66666667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333333%}.col-lg-8{width:66.66666667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333%}.col-lg-11{width:91.66666667%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333333%}.col-lg-push-2{left:16.66666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333%}.col-lg-push-5{left:41.66666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333333%}.col-lg-push-8{left:66.66666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333%}.col-lg-push-11{left:91.66666667%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-11{right:91.66666667%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}cite{font-style:normal}.text-gray,.text-muted{color:#a6aab8}.text-gray a,.text-muted a{color:#989cad}.text-gray a:active,.text-gray a:hover,.text-muted a:active,.text-muted a:hover{color:#3c4353}.text-primary{color:#006af1}.text-warning,.text-yellow{color:#fdc137}.text-danger,.text-red{color:#ff5d5d}.text-green,.text-success{color:#00da88}.text-blue,.text-info{color:#7ec5ff}.text-brown,.text-important{color:#bd7b46}.text-purple,.text-special{color:#8666b8}.text-link{color:#3c4353}.text-link:active,.text-link:hover{color:#3c4353}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.nobr,.text-nowrap{overflow:hidden;white-space:nowrap}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}dl{margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}.dl-inline dt{display:inline-block}.dl-inline dd{display:inline-block;padding-right:1em}.dl-inline dd:last-child{padding-right:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol,blockquote p,blockquote ul{font-weight:300}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857143;color:#a6aab8}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}.ol-pd-2{padding-left:40px}.ol-pd-3{padding-left:60px}.ol-pd-4{padding-left:80px}.bg-black,.bg-default{color:#fff;background-color:#3c4353}.bg-primary{color:#fff;background-color:#006af1}.bg-green,.bg-success{color:#fff;background-color:#00da88}.bg-blue,.bg-info{color:#fff;background-color:#7ec5ff}.bg-warning,.bg-yellow{color:#fff;background-color:#fdc137}.bg-danger,.bg-red{color:#fff;background-color:#ff5d5d}.bg-brown,.bg-important{color:#fff;background-color:#bd7b46}.bg-purple,.bg-special{color:#fff;background-color:#8666b8}.hl-default,.hl-gray{background-color:#f1f1f1}.hl-primary{background-color:#e9f2fb}.hl-green,.hl-success{background-color:#ddf4df}.hl-blue,.hl-info{background-color:#ddf3f5}.hl-warning,.hl-yellow{background-color:#fff0d5}.hl-danger,.hl-red{background-color:#ffe5e0}.hl-brown,.hl-important{background-color:#f7ebe1}.hl-purple,.hl-special{background-color:#f5eeff}.header-dividing,.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Arial,Tahoma,'Microsoft Yahei','PingFang SC','Hiragino Sans GB','WenQuanYi Micro Hei',sans-serif;font-weight:700;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1;color:#a6aab8}h1,h2,h3{margin-top:20px;margin-bottom:10px}h1 small,h2 small,h3 small{font-size:65%}h4,h5,h6{margin-top:10px;margin-bottom:10px}h4 small,h5 small,h6 small{font-size:75%}h1{font-size:24px}h2{font-size:20px}h3{font-size:28px}h4{font-size:16px}h5{font-size:14px}h6{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}hr.divider-sm{margin-top:10px;margin-bottom:10px}hr.divider{margin:0}.label{display:inline;padding:.2em .6em .2em;font-size:85.71428571%;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#a6aab8;border-radius:.25em}.label[href]:focus,.label[href]:hover{color:#fff;background-color:#8a8fa1}.label.label-outline{color:#a6aab8;background:0 0;border:1px solid #a6aab8}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-badge{display:inline-block;min-width:18px;padding:3px 7px;font-size:12px;line-height:1;border-radius:9px}.label-dot{display:inline-block;width:8px;height:8px;padding:0;line-height:20px;text-indent:-9999em;border-radius:50%}.label-dot:empty{display:inline-block}.label-primary{background-color:#006af1}.label-primary[href]:focus,.label-primary[href]:hover{color:#fff;background-color:#0054be}.label-primary.label-outline{color:#006af1;background:0 0;border:1px solid #006af1}.label-success{background-color:#00da88}.label-success[href]:focus,.label-success[href]:hover{color:#fff;background-color:#00a768}.label-success.label-outline{color:#00da88;background:0 0;border:1px solid #00da88}.label-info{background-color:#7ec5ff}.label-info[href]:focus,.label-info[href]:hover{color:#fff;background-color:#4baeff}.label-info.label-outline{color:#7ec5ff;background:0 0;border:1px solid #7ec5ff}.label-warning{background-color:#fdc137}.label-warning[href]:focus,.label-warning[href]:hover{color:#fff;background-color:#fcb105}.label-warning.label-outline{color:#fdc137;background:0 0;border:1px solid #fdc137}.label-danger{background-color:#ff5d5d}.label-danger[href]:focus,.label-danger[href]:hover{color:#fff;background-color:#ff2a2a}.label-danger.label-outline{color:#ff5d5d;background:0 0;border:1px solid #ff5d5d}.btn .label,.nav-primary>li>a>.label{position:relative;top:-1px}.btn-danger .label,.btn-info .label,.btn-primary .label,.btn-success .label,.btn-warning .label{background-color:rgba(0,0,0,.2)}.list-group-item.active>.label,.nav-pills>.active>a>.label,.nav-primary>.active>a>.label{color:#3c4353;background-color:#fff}.nav>li>a>.label{margin-left:3px}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#a6aab8}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:8px;margin-bottom:20px;overflow:hidden;background-color:#e9f2fb;border-radius:3px}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#006af1;border-radius:3px;-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#00da88}.progress-bar-info{background-color:#7ec5ff}.progress-bar-warning{background-color:#fdc137}.progress-bar-danger{background-color:#ff5d5d}.avatar{position:relative;display:block;width:30px;height:30px;overflow:hidden;line-height:30px;text-align:center;background-position:center;-webkit-background-size:cover;background-size:cover;border-radius:4px}.avatar img{display:block;width:100%;height:100%;margin:0}.avatar-sm{width:20px;height:20px;font-size:12px;line-height:20px}.avatar-lg{width:40px;height:40px;font-size:20px;line-height:40px}.avatar-lg>.icon{font-size:20px}.avatar-xl{width:70px;height:70px;font-size:35px;line-height:70px}.avatar-xl>.icon{font-size:35px}.avatar-circle{border-radius:50%}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#838a9d;border:0;border-bottom:1px solid #eee}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:5px 0 0;margin-top:0\9;line-height:normal}input[type=file]{display:block}select[multiple],select[size]{height:auto}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}.form-control::-webkit-input-placeholder{color:#a6aab8}.form-control::-moz-placeholder{color:#a6aab8}.form-control:-ms-input-placeholder{color:#a6aab8}.form-control::placeholder{color:#a6aab8}.form-control{display:block;width:100%;height:32px;padding:5px 8px;font-size:14px;line-height:1.42857143;color:#3c4353;vertical-align:middle;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.form-control.focus,.form-control:focus{border-color:#006af1;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,106,241,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,106,241,.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.form-control[readonly]{cursor:default}textarea.form-control{height:auto;min-height:32px}.form-group{margin-bottom:10px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:3px;margin-top:4px\9;margin-left:-20px}.os-android .checkbox input[type=checkbox],.os-android .checkbox-inline input[type=checkbox],.os-android .radio input[type=radio],.os-android .radio-inline input[type=radio]{margin-top:0}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.input-sm{height:24px;padding:2px 8px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:24px;line-height:24px}textarea.input-sm{height:auto}.input-lg{height:44px;padding:10px 16px;font-size:18px;line-height:1.25;border-radius:6px}select.input-lg{height:44px;line-height:44px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning>label{color:#fdc137}.has-warning .form-control{border-color:#fdc137;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#fcb105;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fee09c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fee09c}.has-warning .input-group-addon{color:#fdc137;background-color:#fff0d5;border-color:#fdc137}.has-error .help-block,.has-error>label{color:#ff5d5d}.has-error .form-control{border-color:#ff5d5d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#ff2a2a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ffc3c3;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ffc3c3}.has-error .input-group-addon{color:#ff5d5d;background-color:#ffe5e0;border-color:#ff5d5d}.has-success .help-block,.has-success>label{color:#00da88}.has-success .form-control{border-color:#00da88;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#00a768;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #41ffb8;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #41ffb8}.has-success .input-group-addon{color:#00da88;background-color:#ddf4df;border-color:#00da88}.form-control-static{min-height:34px;padding-top:6px;padding-bottom:6px;margin-bottom:0}.help-block{display:block;margin:5px 0;color:#74809b}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .form-group>label,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:6px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-10px;margin-left:-10px}@media (min-width:768px){.form-horizontal .form-group>label{text-align:right}}.required{position:relative}.required:after{position:absolute;top:0;right:-10px;display:inline-block;font-size:18px;color:#ff5d5d;content:'*'}.form-horizontal .required:after{top:5px;right:-1px}.form-condensed .form-group{margin-bottom:10px}.form-condensed .form-control{height:24px;padding:2px 8px;font-size:12px;line-height:1.5;border-radius:3px}select.form-condensed .form-control{height:24px;line-height:24px}textarea.form-condensed .form-control{height:auto}.form-condensed textarea.form-control{height:auto}.form-condensed .btn{padding:2px 8px;font-size:12px;line-height:1.5;border-radius:4px}.form-condensed .input-group>.form-control,.form-condensed .input-group>.input-group-addon,.form-condensed .input-group>.input-group-btn>.btn{padding:2px 8px;font-size:12px;border-radius:3px}.form-condensed .input-group .form-control:first-child,.form-condensed .input-group-addon:first-child,.form-condensed .input-group-btn:first-child>.btn,.form-condensed .input-group-btn:first-child>.btn-group>.btn,.form-condensed .input-group-btn:first-child>.dropdown-toggle,.form-condensed .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.form-condensed .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.form-condensed .input-group .form-control:last-child,.form-condensed .input-group-addon:last-child,.form-condensed .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.form-condensed .input-group-btn:first-child>.btn:not(:first-child),.form-condensed .input-group-btn:last-child>.btn,.form-condensed .input-group-btn:last-child>.btn-group>.btn,.form-condensed .input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.form-condensed .input-group-addon:first-child{border-right:0}.form-condensed .input-group-addon:last-child{border-left:0}.form-condensed .input-group-addon.fix-border,.form-condensed .input-group-btn.fix-border>.btn{border-right:0;border-left:0;border-radius:0}.form-condensed.form-horizontal .checkbox,.form-condensed.form-horizontal .checkbox-inline,.form-condensed.form-horizontal .form-group>label,.form-condensed.form-horizontal .radio,.form-condensed.form-horizontal .radio-inline{padding-top:1px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.load-indicator{position:relative}.load-indicator:after,.load-indicator:before{position:absolute;color:#a6aab8;text-align:center;visibility:hidden;opacity:0;-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:visibility,opacity;-o-transition-property:visibility,opacity;transition-property:visibility,opacity}.load-indicator:before{top:0;right:0;bottom:0;left:0;z-index:10;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:50px;font-size:12px;content:attr(data-loading);background-color:rgba(255,255,255,.65);-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.load-indicator:after{top:50%;left:50%;z-index:11;display:block;width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-family:ZentaoIcon;font-size:18px;font-size:24px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:30px;text-transform:none;content:"\e982";-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.load-indicator.loading:after,.load-indicator.loading:before{visibility:visible;opacity:1}table{max-width:100%;background-color:transparent}caption{padding:8px 10px;color:#a6aab8;text-align:left}th{text-align:left}.table{width:100%;margin-bottom:20px}.table td,.table th{padding:8px 10px;line-height:1.42857143;vertical-align:top;border-bottom:1px solid #ecf0f4;-webkit-transition:background .2s cubic-bezier(.175,.885,.32,1);-o-transition:background .2s cubic-bezier(.175,.885,.32,1);transition:background .2s cubic-bezier(.175,.885,.32,1)}.table>thead>tr>th{font-weight:400;color:#a6aab8;vertical-align:bottom;background-color:transparent;border-bottom:1px solid #ecf0f4}.table>tbody+tbody{border-top:2px solid #ecf0f4}.table-fixed{table-layout:fixed}.table-fixed td,.table-fixed th{overflow:hidden;white-space:nowrap}.table-fixed .nofixed,.table-fixed tfoot>tr>td,.table-fixed tfoot>tr>th{overflow:visible}.table-borderless td,.table-borderless th,.table-borderless thead>tr>th{border:none}.table-auto{width:auto;max-width:100%}.table-condensed td,.table-condensed th{padding:5px}.table-bordered{border:1px solid #ecf0f4}.table-bordered td,.table-bordered th{border:1px solid #ecf0f4}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#e9f2fb}table col[class*=col-]{display:table-column;float:none}table td[class*=col-],table th[class*=col-]{display:table-cell;float:none}.table tr.active>td,.table tr.active>th,.table tr>td.active,.table tr>th.active{background-color:#ffe7bc}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#ddf4df;border-color:#bae8b6}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#caeecd;border-color:#a8e1a3}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#ffe5e0;border-color:#ffc6c7}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ffd0c6;border-color:#ffadad}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fff0d5;border-color:#ffdcbc}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#ffe7bc;border-color:#ffcea2}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ecf0f4}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered th{border-top:none}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}.alert{padding:15px;margin-bottom:20px;color:#313744;background-color:#f1f1f1;border-radius:3px;-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.alert hr{border-top-color:#e4e4e4}.alert .alert-link{color:#22262f}.alert h4{margin-top:0;color:inherit}.alert hr{margin:10px 0}.alert p,.alert ul{margin-bottom:0}.alert p+p{margin-top:5px}.alert-link{font-weight:700}.alert>[class*=icon-]{float:left;margin-top:-5px;font-size:42px;opacity:.6;-webkit-transition:opacity .2s cubic-bezier(.175,.885,.32,1);-o-transition:opacity .2s cubic-bezier(.175,.885,.32,1);transition:opacity .2s cubic-bezier(.175,.885,.32,1)}.alert>[class*=icon-]+.content{min-height:30px;margin-left:64px}.alert.with-icon{display:table;width:100%}.alert.with-icon>[class*=icon-],.alert.with-icon>[class*=icon-]+.content{display:table-cell;float:none;min-height:0;margin:0;vertical-align:middle}.alert.with-icon>[class*=icon-]{width:48px;text-align:center}.alert.with-icon>[class*=icon-]+.content{padding-left:1em}.alert-block{margin:0;border-radius:0}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-6px;right:-21px;color:inherit}.alert-primary{color:#313744;background-color:#e9f2fb}.alert-primary hr{border-top-color:#cbe0f6}.alert-primary .alert-link{color:#22262f}.alert-success{color:#00c178;background-color:#ddf4df}.alert-success hr{border-top-color:#bae8b6}.alert-success .alert-link{color:#009d62}.alert-info{color:#64baff;background-color:#ddf3f5}.alert-info hr{border-top-color:#a2e4de}.alert-info .alert-link{color:#41a9ff}.alert-warning{color:#fdb91e;background-color:#fff0d5}.alert-warning hr{border-top-color:#ffdcbc}.alert-warning .alert-link{color:#f4ab02}.alert-danger{color:#ff4343;background-color:#ffe5e0}.alert-danger hr{border-top-color:#ffc6c7}.alert-danger .alert-link{color:#ff2020}.alert-inverse{color:#fff;background-color:#3c4353;border-color:#3c4353}.alert-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-primary-inverse{color:#fff;background-color:#006af1;border-color:#006af1}.alert-primary-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-primary-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-success-inverse{color:#fff;background-color:#00da88;border-color:#00da88}.alert-success-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-success-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-info-inverse{color:#fff;background-color:#7ec5ff;border-color:#7ec5ff}.alert-info-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-info-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-warning-inverse{color:#fff;background-color:#fdc137;border-color:#fdc137}.alert-warning-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-warning-inverse .alert-link{color:rgba(255,255,255,.8)}.alert-danger-inverse{color:#fff;background-color:#ff5d5d;border-color:#ff5d5d}.alert-danger-inverse hr{border-top-color:#cbd0db;border-top-color:rgba(203,208,219,.25)}.alert-danger-inverse .alert-link{color:rgba(255,255,255,.8)}.input-control-icon-left,.input-control-icon-right,.input-control-label-left,.input-control-label-right{position:absolute;top:1px;z-index:5;height:30px;line-height:30px;opacity:.5}.input-control-icon-left,.input-control-icon-right{width:30px;text-align:center}.input-control-icon-left,.input-control-label-left{left:1px}.input-control-icon-right,.input-control-label-right{right:1px}.input-control-label-left,.input-control-label-right{width:70px;padding:0 8px;overflow:hidden;text-overflow:ellipsis}.has-label-left-sm>.input-control-label-left,.has-label-left-sm>.input-control-label-right{width:55px}.has-label-left-lg>.input-control-label-left,.has-label-left-lg>.input-control-label-right{width:95px}.input-control{position:relative}.input-control.has-icon-left>.form-control{padding-left:30px}.input-control.has-icon-right>.form-control{padding-right:30px}.input-control.has-label-left>.form-control{padding-left:70px}.input-control.has-label-right>.form-control{padding-right:70px}.input-control.has-label-left-sm>.form-control{padding-left:55px}.input-control.has-label-right-sm>.form-control{padding-right:55px}.input-control.has-label-left-lg>.form-control{padding-left:95px}.input-control.has-label-right-lg>.form-control{padding-right:95px}.input-control>a:hover{background-color:#f1f1f1;opacity:1}.form-control:focus+[class^=input-control-],.form-control:focus+[class^=input-control-]+[class^=input-control-]{opacity:1}.form-control:focus+.input-control-label-left{color:#00a9fc}.empty+.search-clear-btn,.empty+.search-icon+.search-clear-btn{opacity:0!important}input:placeholder-shown+.search-clear-btn,input:placeholder-shown+.search-icon+.search-clear-btn{opacity:0!important}.search-box-circle .input-control-icon-left,.search-box-circle .input-control-icon-right,.search-box-circle>.form-control{border-radius:16px}.search-box-circle+.input-group-btn>.btn{border-radius:0 16px 16px 0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:5px 12px;font-size:14px;font-weight:400;line-height:1;color:#838a9d;text-align:center;background-color:#eee;border:1px solid #e8e9ee;border-radius:4px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon.fix-border{border-right:0;border-left:0}.input-group-addon:empty{width:1px;padding:0}.input-group-addon.fix-padding{width:1px;padding:0}.input-group-btn.fix-border>.btn{border-right:0;border-left:0;border-radius:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:44px;padding:10px 16px;font-size:18px;line-height:1.25;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:44px;line-height:44px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:24px;padding:2px 8px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:24px;line-height:24px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon.input-sm{padding:2px 8px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.code,code,kbd,pre,samp{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code,kbd{padding:2px 4px;font-size:90%;color:#37474f;background-color:#f3f5f7;border-radius:4px}kbd{padding:1px 4px;font-weight:700;color:#666;background-color:#f1f1f1;border:1px solid #d8d8d8;border-bottom-width:2px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.38461538;color:#838a9d;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;margin:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.com{color:#93a1a1}.lit{color:#195f91}.clo,.opn,.pun{color:#93a1a1}.fun{color:#dc322f}.atv,.str{color:#d14}.kwd,.prettyprint .tag{color:#1e347b}.atn,.dec,.typ,.var{color:teal}.pln{color:#48484c}.prettyprint.linenums{-webkit-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0}.prettyprint ol.linenums{padding-left:35px;margin-bottom:0;line-height:20px;color:#bebec5;text-shadow:0 1px 0 #fff}.pager{display:inline-block;padding-left:0;margin:20px 0;list-style:none}.pager>li{display:inline}.pager>li>a,.pager>li>span{position:relative;float:left;padding:5px 12px;margin-left:-1px;line-height:1.42857143;text-decoration:none;background-color:#fff;border:1px solid #cbd0db}.pager>li:first-child>a,.pager>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pager>li:last-child>a,.pager>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pager>li>a:focus,.pager>li>a:hover,.pager>li>span:focus,.pager>li>span:hover{z-index:2;background-color:#eee}.pager>li.active>a,.pager>li.active>a:hover,.pager>li.active>span,.pager>li.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#006af1;border-color:#006af1}.pager>li.disabled>a,.pager>li.disabled>a:focus,.pager>li.disabled>a:hover,.pager>li.disabled>span,.pager>li.disabled>span:focus,.pager>li.disabled>span:hover{color:#cbd0db;pointer-events:none;cursor:not-allowed;background-color:#fff;border-color:#cbd0db}.pager-justify{display:block}.pager-justify .next>a,.pager-justify .next>span{float:right;border-radius:4px}.pager-justify .previous>a,.pager-justify .previous>span{float:left;border-radius:4px}.pager-goto{width:100px;text-align:center}.pager>li>div{float:left}.pager>li .pager-goto,.pager>li .pager-size-menu,.pager>li.space{margin:0 5px}.pager-label{position:relative;float:left;padding:5px 4px;margin-left:-1px;line-height:1.42857143;text-decoration:none;border:1px solid transparent}.pager-item-left>a{border-top-left-radius:4px;border-bottom-left-radius:4px}.pager-item-right>a{border-top-right-radius:4px;border-bottom-right-radius:4px}.pager-lg>li>a,.pager-lg>li>span{padding:10px 16px;font-size:18px}.pager-lg>li:first-child>a,.pager-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pager-lg>li:last-child>a,.pager-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pager-sm>li>a,.pager-sm>li>span{padding:2px 8px;font-size:12px}.pager-sm>li:first-child>a,.pager-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pager-sm>li:last-child>a,.pager-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager-pills>li:first-child>a,.pager-pills>li:first-child>span{border-radius:16px 0 0 16px}.pager-pills>li:last-child>a,.pager-pills>li:last-child>span{border-radius:0 16px 16px 0}.pager-pills.pager-justify>li>a,.pager-pills.pager-justify>li>span{border-radius:16px}.pager-loose{display:block;margin:20px 0}.pager-loose.pager-pills>li>a,.pager-loose.pager-pills>li>span{border-radius:16px}.pager-loose>li>a,.pager-loose>li>span{margin-left:5px;border-radius:4px}.pager-loose>li:first-child>a,.pager-loose>li:first-child>span{margin-left:0}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>.nav-heading{padding:8px 15px;font-weight:700;color:#a6aab8}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:8px 15px;color:#3c4353}.nav>li>a:focus,.nav>li>a:hover{color:#006af1;text-decoration:none;background-color:#f1f1f1}.nav>li.disabled>a{color:#cbd0db}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#cbd0db;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#f1f1f1;border-color:#3c4353}.nav>li>a>img{max-width:none}.nav-default>li{float:left}.nav-default>li>a{border-radius:4px}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:20px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#006af1}.nav-primary>li{float:left;margin-left:-1px}.nav-primary>li:first-child>a{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.nav-primary>li:last-child>a{border-top-right-radius:4px;border-bottom-right-radius:4px}.nav-primary>li>a{border:1px solid #cbd0db}.nav-primary>li.active>a,.nav-primary>li.active>a:focus,.nav-primary>li.active>a:hover{color:#fff;background-color:#006af1;border-color:#006af1}.nav-secondary>li{float:left}.nav-secondary>li>a{border-bottom:2px solid #eee}.nav-secondary>li.active>a,.nav-secondary>li.active>a:focus,.nav-secondary>li.active>a:hover{color:#006af1;border-bottom-color:#006af1}.nav-secondary>li.nav-heading{border-bottom:2px solid #eee}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-stacked.nav-primary>li,.nav-stacked.nav-primary>li>a{margin-left:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.nav-stacked.nav-primary>li+li{margin-top:-1px}.nav-stacked.nav-primary>li:first-child{margin-top:0}.nav-stacked.nav-primary>li:first-child.nav-heading,.nav-stacked.nav-primary>li:first-child>a{margin-left:0;border-top-left-radius:4px;border-top-right-radius:4px}.nav-stacked.nav-primary>li:last-child>a{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.nav-stacked.nav-primary>li.nav-heading{background-color:#f1f1f1;border:1px solid #cbd0db}.nav-stacked.nav-secondary>li>a{border:none;border-top-right-radius:4px;border-bottom-right-radius:4px;-webkit-box-shadow:inset 2px 0 0 #f5f5f5;box-shadow:inset 2px 0 0 #f5f5f5}.nav-stacked.nav-secondary>li>a:hover{-webkit-box-shadow:inset 2px 0 0 #eee;box-shadow:inset 2px 0 0 #eee}.nav-stacked.nav-secondary>li+li{margin-top:-1px}.nav-stacked.nav-secondary>li:first-child{margin-top:0}.nav-stacked.nav-secondary>li.active>a,.nav-stacked.nav-secondary>li.active>a:focus,.nav-stacked.nav-secondary>li.active>a:hover{background-color:#f5f5f5;-webkit-box-shadow:inset 2px 0 0 #006af1;box-shadow:inset 2px 0 0 #006af1}.nav-stacked.nav-secondary>li.nav-heading{border-bottom:1px solid #cbd0db}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{padding-right:0;padding-left:0;margin-bottom:5px;text-align:center}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-justified.nav-primary>li+li>a{border-left:0}}.nav-tabs{border-bottom:1px solid #cbd0db}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #cbd0db}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#a6aab8;cursor:default;background-color:#fff;border:1px solid #cbd0db;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{padding-right:0;padding-left:0;margin-bottom:5px;text-align:center}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}.nav-tabs.nav-justified.nav-primary>li+li>a{border-left:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #cbd0db}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #cbd0db;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}@-moz-document url-prefix(){.nav-tabs>li.active>a:focus .nav-tabs>li>a:focus{outline:0}}.nav-tabs.nav-stacked{border-right:1px solid #cbd0db;border-bottom:none}.nav-tabs.nav-stacked>li{float:none;margin-right:-1px;margin-bottom:0}.nav-tabs.nav-stacked>li>a{margin-right:0;border-radius:4px 0 0 4px}.nav-tabs.nav-stacked>li.active>a,.nav-tabs.nav-stacked>li.active>a:focus,.nav-tabs.nav-stacked>li.active>a:hover{border:1px solid #cbd0db;border-right-color:transparent}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #cbd0db}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #cbd0db;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:40px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:10px;padding-left:10px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-10px;margin-left:-10px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:40px;padding:10px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-10px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:3px;margin-right:3px;margin-bottom:3px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:5px -10px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px}.navbar-nav.nav-justified>li{float:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:4px;margin-bottom:4px}.navbar-text{float:left;margin-top:10px;margin-bottom:10px}@media (min-width:768px){.navbar-text{margin-right:10px;margin-left:10px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-10px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f7f7f7;border-color:#dedede}.navbar-default .navbar-brand{color:#838a9d}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#697084;background-color:transparent}.navbar-default .navbar-text{color:#838a9d}.navbar-default .navbar-nav>li>a{color:#838a9d}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#3c4353;background-color:#eee}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#cbd0db}.navbar-default .navbar-toggle .icon-bar{background-color:#a6aab8}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#dedede}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#838a9d}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#3c4353;background-color:#eee}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#838a9d}.navbar-default .navbar-link:hover{color:#3c4353}.navbar-default .btn-link{color:#838a9d}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#3c4353}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#00a9fc;border-color:#0087c9}.navbar-inverse .navbar-brand{color:#cbd0db}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#cbd0db}.navbar-inverse .navbar-nav>li>a{color:#cbd0db}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:#1cb4ff}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#30bbff}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#0098e3}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#0091d8}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#30bbff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#0087c9}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#0087c9}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#cbd0db}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:#1cb4ff}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#30bbff}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#cbd0db}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-form{padding:10px 10px;margin-top:4px;margin-right:-10px;margin-bottom:4px;margin-left:-10px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.scale{-webkit-transition:all .15s ease;-o-transition:all .15s ease;transition:all .15s ease;-webkit-transform:scale(.8);-ms-transform:scale(.8);-o-transform:scale(.8);transform:scale(.8)}.scale.in{-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;pointer-events:none;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal>.loader{display:none}.modal.modal-loading .modal-dialog{opacity:0}.modal.modal-loading .loader{position:absolute;top:35%;left:50%;display:block;width:80px;margin-left:-40px;font-size:56px;color:#fff;text-align:center}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-iframe .modal-body>iframe{border-radius:0 0 6px 6px}.modal-dialog{position:relative;width:auto;pointer-events:initial;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-dialog.modal-moveable{position:absolute;margin:0}.modal-dialog.modal-moveable .modal-header{cursor:move}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto;-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.modal-fullscreen{position:relative;width:100%!important;height:100%!important;margin:0;border-radius:0}.modal-fullscreen .modal-body{position:absolute;top:52px;right:0;bottom:0;left:0;overflow-y:auto}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=100);opacity:1}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#3c4353;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#3c4353}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#3c4353}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#3c4353}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#3c4353}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#3c4353}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#3c4353}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#3c4353}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#3c4353}.tooltip-primary .tooltip-inner{background-color:#006af1}.tooltip-primary.tooltip.top .tooltip-arrow{border-top-color:#006af1}.tooltip-primary.tooltip.top-left .tooltip-arrow{border-top-color:#006af1}.tooltip-primary.tooltip.top-right .tooltip-arrow{border-top-color:#006af1}.tooltip-primary.tooltip.right .tooltip-arrow{border-right-color:#006af1}.tooltip-primary.tooltip.left .tooltip-arrow{border-left-color:#006af1}.tooltip-primary.tooltip.bottom .tooltip-arrow{border-bottom-color:#006af1}.tooltip-primary.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#006af1}.tooltip-primary.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#006af1}.tooltip-success .tooltip-inner{background-color:#00da88}.tooltip-success.tooltip.top .tooltip-arrow{border-top-color:#00da88}.tooltip-success.tooltip.top-left .tooltip-arrow{border-top-color:#00da88}.tooltip-success.tooltip.top-right .tooltip-arrow{border-top-color:#00da88}.tooltip-success.tooltip.right .tooltip-arrow{border-right-color:#00da88}.tooltip-success.tooltip.left .tooltip-arrow{border-left-color:#00da88}.tooltip-success.tooltip.bottom .tooltip-arrow{border-bottom-color:#00da88}.tooltip-success.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#00da88}.tooltip-success.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#00da88}.tooltip-info .tooltip-inner{background-color:#7ec5ff}.tooltip-info.tooltip.top .tooltip-arrow{border-top-color:#7ec5ff}.tooltip-info.tooltip.top-left .tooltip-arrow{border-top-color:#7ec5ff}.tooltip-info.tooltip.top-right .tooltip-arrow{border-top-color:#7ec5ff}.tooltip-info.tooltip.right .tooltip-arrow{border-right-color:#7ec5ff}.tooltip-info.tooltip.left .tooltip-arrow{border-left-color:#7ec5ff}.tooltip-info.tooltip.bottom .tooltip-arrow{border-bottom-color:#7ec5ff}.tooltip-info.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#7ec5ff}.tooltip-info.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#7ec5ff}.tooltip-warning .tooltip-inner{background-color:#fdc137}.tooltip-warning.tooltip.top .tooltip-arrow{border-top-color:#fdc137}.tooltip-warning.tooltip.top-left .tooltip-arrow{border-top-color:#fdc137}.tooltip-warning.tooltip.top-right .tooltip-arrow{border-top-color:#fdc137}.tooltip-warning.tooltip.right .tooltip-arrow{border-right-color:#fdc137}.tooltip-warning.tooltip.left .tooltip-arrow{border-left-color:#fdc137}.tooltip-warning.tooltip.bottom .tooltip-arrow{border-bottom-color:#fdc137}.tooltip-warning.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#fdc137}.tooltip-warning.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#fdc137}.tooltip-danger .tooltip-inner{background-color:#ff5d5d}.tooltip-danger.tooltip.top .tooltip-arrow{border-top-color:#ff5d5d}.tooltip-danger.tooltip.top-left .tooltip-arrow{border-top-color:#ff5d5d}.tooltip-danger.tooltip.top-right .tooltip-arrow{border-top-color:#ff5d5d}.tooltip-danger.tooltip.right .tooltip-arrow{border-right-color:#ff5d5d}.tooltip-danger.tooltip.left .tooltip-arrow{border-left-color:#ff5d5d}.tooltip-danger.tooltip.bottom .tooltip-arrow{border-bottom-color:#ff5d5d}.tooltip-danger.tooltip.bottom-left .tooltip-arrow{border-bottom-color:#ff5d5d}.tooltip-danger.tooltip.bottom-right .tooltip-arrow{border-bottom-color:#ff5d5d}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:300px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:4px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover.no-arrow.top{margin-top:0}.popover.no-arrow.right{margin-left:0}.popover.no-arrow.bottom{margin-top:0}.popover.no-arrow.left{margin-left:0}.modal .popover,.popover-in-modal{z-index:1050}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{content:"";border-width:10px}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom .arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left .arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-primary{border-color:#006af1}.popover-primary .popover-title{color:#fff;background-color:#006af1}.popover-primary.popover.top .arrow{border-top-color:#006af1}.popover-primary.popover.right .arrow{border-right-color:#006af1}.popover-primary.popover.left .arrow{border-left-color:#006af1}.popover-primary.popover.bottom .arrow,.popover-primary.popover.bottom .arrow:after{border-bottom-color:#006af1}.popover-success{border-color:#00da88}.popover-success .popover-title{color:#fff;background-color:#00da88}.popover-success.popover.top .arrow{border-top-color:#00da88}.popover-success.popover.right .arrow{border-right-color:#00da88}.popover-success.popover.left .arrow{border-left-color:#00da88}.popover-success.popover.bottom .arrow,.popover-success.popover.bottom .arrow:after{border-bottom-color:#00da88}.popover-info{border-color:#7ec5ff}.popover-info .popover-title{color:#fff;background-color:#7ec5ff}.popover-info.popover.top .arrow{border-top-color:#7ec5ff}.popover-info.popover.right .arrow{border-right-color:#7ec5ff}.popover-info.popover.left .arrow{border-left-color:#7ec5ff}.popover-info.popover.bottom .arrow,.popover-info.popover.bottom .arrow:after{border-bottom-color:#7ec5ff}.popover-warning{border-color:#fdc137}.popover-warning .popover-title{color:#fff;background-color:#fdc137}.popover-warning.popover.top .arrow{border-top-color:#fdc137}.popover-warning.popover.right .arrow{border-right-color:#fdc137}.popover-warning.popover.left .arrow{border-left-color:#fdc137}.popover-warning.popover.bottom .arrow,.popover-warning.popover.bottom .arrow:after{border-bottom-color:#fdc137}.popover-danger{border-color:#ff5d5d}.popover-danger .popover-title{color:#fff;background-color:#ff5d5d}.popover-danger.popover.top .arrow{border-top-color:#ff5d5d}.popover-danger.popover.right .arrow{border-right-color:#ff5d5d}.popover-danger.popover.left .arrow{border-left-color:#ff5d5d}.popover-danger.popover.bottom .arrow,.popover-danger.popover.bottom .arrow:after{border-bottom-color:#ff5d5d}.caret{display:inline-block;width:0;height:0;margin-bottom:2px;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:100px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#eee}.dropdown-menu>li>a{display:block;padding:5px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#3c4353;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#fff;text-decoration:none;background-color:#006af1}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#006af1;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#cbd0db}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.dropdown-hover .dropdown-menu{margin:-1px 0}.dropdown-hover:hover>.dropdown-menu,.open>.dropdown-menu{display:block}.dropdown-hover:hover>a,.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;font-weight:700;line-height:1.42857143;color:#a6aab8}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0 dotted;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;border-radius:4px}.dropdown-submenu.open>.dropdown-menu,.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;border-radius:4px}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;content:" ";border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#ccc}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu>a{min-width:100px}.dropdown-submenu>.dropdown-menu.pull-left{right:100%;left:auto}.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#006af1}.messager{display:table;margin:10px;overflow:hidden;color:#fff;pointer-events:auto;background-color:#3c4353;background-color:rgba(0,0,0,.8);border-radius:20px;-webkit-transition-property:opacity,-webkit-transform!important;-o-transition-property:opacity,-o-transform!important;transition-property:opacity,-webkit-transform!important;transition-property:opacity,transform!important;transition-property:opacity,transform,-webkit-transform,-o-transform!important}.messager-content{display:table-cell;padding:10px 15px;vertical-align:top}.messager-content>[class^=icon-]{display:inline-block;margin-right:8px}.messager-actions{display:table-cell;vertical-align:top}.messager-actions>.action{min-width:40px;height:40px;padding:0 12px;color:#fafafa;color:rgba(255,255,255,.6);text-align:center;text-shadow:none;background:0 0;border:none}.messager-actions>.action.close{padding-bottom:5px;font-size:20px;font-weight:400;opacity:1}.messager-actions>.action:hover{color:#fff;background:rgba(0,0,0,.1)}.messager-actions .action-icon+.action-text{margin-left:8px}.messagers-holder{position:fixed;z-index:99999;padding:10px;pointer-events:none}.messagers-holder.top{top:0}.messagers-holder.top-left{top:0;left:0}.messagers-holder.top-right{top:0;right:0}.messagers-holder.bottom{bottom:0}.messagers-holder.bottom-left{bottom:0;left:0}.messagers-holder.bottom-right{right:0;bottom:0}.messagers-holder.bottom-right .messager,.messagers-holder.top-right .messager{margin-left:auto}.messagers-holder.center{top:0}.messagers-holder.bottom,.messagers-holder.center,.messagers-holder.top{right:0;left:0}.messagers-holder.bottom .messager,.messagers-holder.center .messager,.messagers-holder.top .messager{margin:10px auto}.messager-primary{background-color:#006af1}.messager-success{background-color:#00da88}.messager-info{background-color:#7ec5ff}.messager-warning{background-color:#fdc137}.messager-danger{background-color:#ff5d5d}.messager-important{background-color:#bd7b46}.messager-special{background-color:#8666b8}.article{padding:20px}.article>header h1,.article>header h2,.article>header h3{margin-bottom:20px;line-height:1.5}.article>header>.abstract,.article>header>dl{padding:10px 15px;font-size:12px;color:#67738e;background-color:#f1f1f1}.article>header>.abstract>p:last-child,.article>header>dl>p:last-child{margin-bottom:0}.article>header>dl{margin:0;border-bottom:1px solid #e9e9e9}.article>header>dl.pull-right{background-color:transparent;border:none}.article>footer{border-top:1px dashed #d8d8d8}.article>footer>p{padding:10px 15px}.article-content,.article>.content{padding:20px 0;font-size:14px;line-height:1.78571429}.article-content h1,.article>.content h1{font-size:22px}.article-content h2,.article>.content h2{font-size:20px}.article-content h3,.article>.content h3{font-size:18px}.article-content h4,.article>.content h4{margin-top:15px;font-size:16px}.article-content h5,.article>.content h5{margin-top:15px;font-size:14px}.article-content h6,.article>.content h6{margin-top:15px;font-size:12px}.article-content img,.article>.content img{margin:10px 0}.article-content p>img,.article>.content p>img{margin-right:10px}.article-content p>img[align=right],.article>.content p>img[align=right]{margin-left:10px}.article-content dl,.article>.content dl{padding-right:2em;padding-left:2em}.article-content table,.article>.content table{margin-bottom:20px}.article-content table td,.article-content table th,.article>.content table td,.article>.content table th{padding:8px 10px;line-height:1.42857143;vertical-align:top;border-bottom:1px solid #ecf0f4}.article-content table>thead>tr>th,.article>.content table>thead>tr>th{vertical-align:bottom;background-color:transparent;border-bottom:1px solid #ecf0f4}.article-content p{margin-bottom:0}.article-content table{width:100%}.article>.content table td,.article>.content table th,.article>.content table>thead>tr>th{border:1px solid #ecf0f4}body.article-content{padding:8px}.article-condensed{padding:20px 0}.article-condensed>header{padding:0 20px}.article-condensed>header>.abstract,.article-condensed>header>dl{padding:10px 15px;margin:0 -20px}.article-condensed>.article-content,.article-condensed>.content{padding:20px}.article-condensed>.article-content>img,.article-condensed>.article-content>pre,.article-condensed>.content>img,.article-condensed>.content>pre{margin-right:-20px;margin-left:-20px;border-radius:0}.article-condensed>.article-content>pre,.article-condensed>.content>pre{border-right:none;border-left:none}.article-condensed>footer{border-top:1px dashed #d8d8d8}.article-condensed>footer>p{padding:10px 15px}.article-condensed>footer>.pager-justify>.previous>a{border-left:none;border-radius:0}.article-condensed>footer>.pager-justify>.next>a{border-right:none;border-radius:0}/*! * Datetimepicker for Bootstrap * Copyright 2012 Stefan Petre * Licensed under the Apache License v2.0 @@ -13,4 +13,4 @@ * * Copyright (c) 2011-2016 Harvest http://getharvest.com * MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md -*/.chosen-container{position:relative;display:inline-block;font-size:14px;vertical-align:middle;zoom:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;*display:inline}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;background:#fff;border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-top:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container .chosen-drop.chosen-drop-size-limited{border-top:1px solid rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container.chosen-up .chosen-drop{top:inherit;bottom:100%;margin-top:auto;margin-bottom:-1px;border-radius:2px 2px 0 0;-webkit-box-shadow:0 -3px 5px rgba(0,0,0,.175);box-shadow:0 -3px 5px rgba(0,0,0,.175)}.chosen-container-single .chosen-single{display:block;width:100%;height:32px;padding:5px 8px;overflow:hidden;line-height:1.42857143;color:#3c4353;text-decoration:none;white-space:nowrap;vertical-align:middle;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.chosen-container-single .chosen-default{color:#a6aab8}.chosen-container-single .chosen-single>span{display:block;margin-right:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:7px;right:24px;display:block;width:20px;height:20px;font-size:21px;font-weight:700;line-height:14px;color:#000;text-align:center;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.chosen-container-single .chosen-single abbr:before{content:'×'}.chosen-container-single .chosen-single abbr:focus,.chosen-container-single .chosen-single abbr:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;height:100%;padding:5px 8px}.chosen-container-single .chosen-single div b{display:inline-block;width:0;height:0;margin-bottom:2px;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.chosen-container-single .chosen-search{position:relative;z-index:1010;padding:3px 4px;margin:0;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{width:100%;height:27px;padding:2px 26px 2px 8px;margin:1px 0;font-size:12px;line-height:1.5;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;outline:0}.chosen-container-single .chosen-search input[type=text]:focus{border-color:#006af1}.chosen-container-single .chosen-search:before{position:absolute;top:10px;right:10px;display:block;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#a6aab8;text-transform:none;content:"\e928";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chosen-container-single .chosen-drop{margin-top:-1px;-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:0 0 4px 4px}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{position:relative;max-height:240px;padding:0;margin:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;padding:5px 10px;margin:0;line-height:15px;list-style:none;-webkit-transition:background-color .2s cubic-bezier(.175,.885,.32,1);-o-transition:background-color .2s cubic-bezier(.175,.885,.32,1);transition:background-color .2s cubic-bezier(.175,.885,.32,1);-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{color:#fff;background-color:#006af1}.chosen-container .chosen-results li.no-results{display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;width:100%;min-height:32px;min-height:30px\9;padding:0;margin:0;overflow:hidden;cursor:text;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.chosen-container-multi .chosen-choices:after,.chosen-container-multi .chosen-choices:before{display:table;content:" "}.chosen-container-multi .chosen-choices:after{clear:both}.chosen-container-multi .chosen-choices li{display:block;float:left;padding:0 6px;margin:5px 0 0 6px;list-style:none}.chosen-container-multi .chosen-choices li.search-field{padding:0;margin-bottom:4px;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{height:20px;font-size:100%;color:#a6aab8;background:0 0!important;border:0!important;border-radius:0;outline:0;-webkit-box-shadow:none;box-shadow:none}.chosen-container-multi .chosen-choices li.search-field .default{color:#999}.chosen-container-multi .chosen-choices li.search-field:before{position:absolute;right:8px;bottom:8px;display:block;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#a6aab8;text-transform:none;content:"\e928";opacity:0;-webkit-transition:opacity .2s cubic-bezier(.175,.885,.32,1);-o-transition:opacity .2s cubic-bezier(.175,.885,.32,1);transition:opacity .2s cubic-bezier(.175,.885,.32,1);speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chosen-container-multi .chosen-choices li.search-choice{position:relative;padding:3px 20px 3px 5px;line-height:12px;cursor:default;background-color:#f1f1f1;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cbd0db;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.chosen-container-multi .chosen-choices li.search-choice:hover{background-color:#fff;border-color:#adb5c6;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.1)}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:20px;height:20px;font-size:16.8px;font-weight:700;line-height:14px;color:#000;text-align:center;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:'×'}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:focus,.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;color:#666;background-color:#e4e4e4;border:1px solid #ccc}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{padding:5px 0;margin:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border-color:#006af1;-webkit-box-shadow:none,0 0 8px rgba(0,106,241,.6);box-shadow:none,0 0 8px rgba(0,106,241,.6)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container-active.chosen-with-drop .chosen-single div{background:0 0;border-left:none}.chosen-container-active.chosen-with-drop .chosen-single div b{content:"";border-top:0 dotted;border-bottom:4px solid}.chosen-container-active.chosen-with-drop.chosen-up .chosen-single{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container-active .chosen-choices{border-color:#006af1;-webkit-box-shadow:none,0 0 8px rgba(0,106,241,.6);box-shadow:none,0 0 8px rgba(0,106,241,.6)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#111!important}.chosen-container-active .chosen-choices li.search-field:before{opacity:1}.chosen-disabled{cursor:default;opacity:.5!important}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.container,.container-fixed,.container-fluid{position:relative}body{padding-bottom:40px;background-color:#f6f6f6}.text-middle{vertical-align:middle!important}.inline-block{display:inline-block!important}.layer{border-radius:4px;-webkit-box-shadow:0 0 20px 0 #bdc9d8;box-shadow:0 0 20px 0 #bdc9d8}.muted{opacity:.5}.no-animate{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.template{display:none!important}.text-left{text-align:left!important}.table-row{display:table;width:100%;table-layout:fixed}.table-col,.table-row>.col,.table-row>[class*=col-],.table-row>[class*="-col"]{display:table-cell;float:none;vertical-align:top}.side-col{width:200px;padding-right:20px}.side-col.col-4{width:33.3333333%}.col-lg{width:260px}.col-xl{width:320px}.col-sm{width:150px}.col-xs{width:100px}.main-col+.side-col{padding-right:0;padding-left:20px}hr.space{margin:10px 0;border:none}hr.space-sm{margin:5px 0;border:none}.text-secondary{color:#00a9fc}.nav-primary>li>a{min-width:100px;padding:5px 8px;color:#838a9d;border-color:#e7f1fc}.nav-primary>li.active>a{color:#006af1;background-color:#e7f1fc;border-color:#e7f1fc}.nav-primary>li.active>a:hover{color:#006af1;background-color:#c3dcf7;border-color:#c3dcf7}.end-marker{margin-bottom:20px;color:#cbd0db;text-align:center}@-webkit-keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}@-o-keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}@keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}.highlight{-webkit-animation:highlight .5s linear 0s 2 alternate;-o-animation:highlight .5s linear 0s 2 alternate;animation:highlight .5s linear 0s 2 alternate}@font-face{font-family:ZentaoIcon;font-style:normal;font-weight:400;src:url(../fonts/ZentaoIcon.eot?v=1.1.0);src:url(../fonts/ZentaoIcon.eot?#iefix&v=1.1.0) format('embedded-opentype'),url(../fonts/ZentaoIcon.woff?v=1.1.0) format('woff'),url(../fonts/ZentaoIcon.ttf?v=1.1.0) format('truetype'),url(../fonts/ZentaoIcon.svg#regular?v=1.1.0) format('svg')}.icon,[class*=" icon-"],[class^=icon-]{font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon:before{display:inline-block;min-width:18px;text-align:center}a .icon,a [class*=" icon-"],a [class^=icon-]{display:inline}.icon-lg:before{font-size:1.33333333em;vertical-align:-10%}.icon-2x{font-size:36px}.icon-3x{font-size:54px}.icon-4x{font-size:72px}.icon-5x{font-size:90px}.icon-spin{display:inline-block;-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-spin{display:inline-block;text-decoration:none}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0);transform:rotate(0)}100%{-o-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}.icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical{-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.icon.icon-flip-horizontal,.icon.icon-flip-vertical,.icon.icon-rotate-180,.icon.icon-rotate-270,.icon.icon-rotate-90{display:inline-block}.icon-home:before{content:"\e958"}.icon-pencil:before{content:"\e254"}.icon-angle-down:before{content:"\e313"}.icon-angle-left:before{content:"\e314"}.icon-angle-right:before{content:"\e315"}.icon-angle-top:before{content:"\e316"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-zentao-alt:before{content:"\e900"}.icon-zentao:before{content:"\e901"}.icon-severity:before{content:"\e902"}.icon-bar-chart:before{content:"\e903"}.icon-import:before{content:"\e904"}.icon-export:before{content:"\e905"}.icon-printer:before{content:"\e906"}.icon-hand-right:before{content:"\e907"}.icon-checked:before{content:"\e908"}.icon-off:before{content:"\e909"}.icon-start:before{content:"\e90a"}.icon-play:before{content:"\e90a"}.icon-time:before{content:"\e90b"}.icon-edit:before{content:"\e90c"}.icon-trash:before{content:"\e90d"}.icon-link:before{content:"\e90e"}.icon-unlink:before{content:"\e90f"}.icon-bullhorn:before{content:"\e910"}.icon-bug:before{content:"\e911"}.icon-list-alt:before{content:"\e912"}.icon-fork:before{content:"\e913"}.icon-glasses:before{content:"\e914"}.icon-sitemap:before{content:"\e915"}.icon-plus-sign:before{content:"\e916"}.icon-pluses:before{content:"\e917"}.icon-flag-alt:before{content:"\e918"}.icon-magic:before{content:"\e919"}.icon-treemap:before{content:"\e91a"}.icon-confirm:before{content:"\e91b"}.icon-lightbulb:before{content:"\e91c"}.icon-delay:before{content:"\e91d"}.icon-calendar:before{content:"\e91d"}.icon-pause:before{content:"\e91e"}.icon-ban:before{content:"\e91f"}.icon-plus-bold:before{content:"\e920"}.icon-copy:before{content:"\e921"}.icon-refresh:before{content:"\e922"}.icon-arrow-up:before{content:"\e923"}.icon-arrow-down:before{content:"\e924"}.icon-arrow-left:before{content:"\e952"}.icon-arrow-right:before{content:"\e93e"}.icon-plus:before{content:"\e925"}.icon-minus:before{content:"\e926"}.icon-exchange:before{content:"\e927"}.icon-search:before{content:"\e928"}.icon-envelope-o:before{content:"\e92a"}.icon-check:before{content:"\e5ca"}.icon-circle:before{content:"\e836"}.icon-up-circle:before{content:"\e92b"}.icon-right-circle:before{content:"\e92c"}.icon-down-circle:before{content:"\e92d"}.icon-left-circle:before{content:"\e92e"}.icon-check-circle:before{content:"\e92f"}.icon-exclamation-sign:before{content:"\e930"}.icon-unfold-all:before{content:"\e931"}.icon-fold-all:before{content:"\e932"}.icon-plus-sm:before{content:"\e933"}.icon-chevron-left:before{content:"\e934"}.icon-chevron-right:before{content:"\e935"}.icon-close:before{content:"\e936"}.icon-flag:before{content:"\e937"}.icon-check-sign:before{content:"\e938"}.icon-minus-sign:before{content:"\e939"}.icon-bars-sign:before{content:"\e93a"}.icon-cog:before{content:"\e93b"}.icon-color:before{content:"\e93c"}.icon-paper-clip:before{content:"\e93d"}.icon-back:before{content:"\e93f"}.icon-chat-line:before{content:"\e940"}.icon-person:before{content:"\e941"}.icon-cube:before{content:"\e942"}.icon-stack:before{content:"\e943"}.icon-folder:before{content:"\e944"}.icon-folder-o:before{content:"\e945"}.icon-folder-open-o:before{content:"\e946"}.icon-folder-open:before{content:"\e947"}.icon-bars:before{content:"\e948"}.icon-cards-view:before{content:"\e949"}.icon-star-empty:before{content:"\e94a"}.icon-star:before{content:"\e94b"}.icon-file-empty:before{content:"\e94c"}.icon-file-text:before{content:"\e94d"}.icon-file-picture:before{content:"\e94e"}.icon-file-zip:before{content:"\e94f"}.icon-file-music:before{content:"\e950"}.icon-file-video:before{content:"\e951"}.icon-file-play:before{content:"\e953"}.icon-file-pdf:before{content:"\e954"}.icon-file-word:before{content:"\e955"}.icon-file-excel:before{content:"\e956"}.icon-file-code:before{content:"\f1c9"}.icon-ellipsis-v:before{content:"\e5d4"}.icon-spinner-indicator:before{content:"\e982"}.icon-text:before{content:"\e929"}.icon-code:before{content:"\e957"}.icon-chevron-double-up:before{content:"\e959"}.icon-chevron-double-down:before{content:"\e95a"}.icon-chart-pie:before{content:"\e95b"}.icon-chart-line:before{content:"\e95c"}.icon-chart-bar:before{content:"\e95d"}.icon-sm:before{font-size:14px;vertical-align:10%}.btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,border,outline,opacity,-webkit-box-shadow;-o-transition-property:background,border,box-shadow,outline,opacity;transition-property:background,border,outline,opacity,-webkit-box-shadow;transition-property:background,border,box-shadow,outline,opacity;transition-property:background,border,box-shadow,outline,opacity,-webkit-box-shadow}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,.btn:hover{color:#3c4353;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:grayscale(1);-webkit-box-shadow:none;box-shadow:none;opacity:.5;-webkit-filter:grayscale(1)}.btn{color:#3c4353;background-color:#fff;border-color:#d9e0e7}.btn.active,.btn.hover,.btn:active,.btn:focus,.btn:hover,.open .dropdown-toggle.btn{color:#3c4353;background-color:rgba(255,255,255,.8);border-color:#bac7d3}.btn.active,.btn:active,.open .dropdown-toggle.btn{background-color:#e6e6e6;background-image:none;border-color:#bac7d3}.btn.disabled,.btn.disabled.active,.btn.disabled:active,.btn.disabled:focus,.btn.disabled:hover,.btn[disabled],.btn[disabled].active,.btn[disabled]:active,.btn[disabled]:focus,.btn[disabled]:hover,fieldset[disabled] .btn,fieldset[disabled] .btn.active,fieldset[disabled] .btn:active,fieldset[disabled] .btn:focus,fieldset[disabled] .btn:hover{color:rgba(60,67,83,.3);background-color:#fff;border-color:#d9e0e7}.btn-gray{color:#82899f;background-color:#f1f1f1;border-color:#f1f1f1}.btn-gray.active,.btn-gray.hover,.btn-gray:active,.btn-gray:focus,.btn-gray:hover,.open .dropdown-toggle.btn-gray{color:#82899f;background-color:rgba(241,241,241,.8);border-color:#d8d8d8}.btn-gray.active,.btn-gray:active,.open .dropdown-toggle.btn-gray{background-color:#d8d8d8;background-image:none;border-color:#d8d8d8}.btn-gray.disabled,.btn-gray.disabled.active,.btn-gray.disabled:active,.btn-gray.disabled:focus,.btn-gray.disabled:hover,.btn-gray[disabled],.btn-gray[disabled].active,.btn-gray[disabled]:active,.btn-gray[disabled]:focus,.btn-gray[disabled]:hover,fieldset[disabled] .btn-gray,fieldset[disabled] .btn-gray.active,fieldset[disabled] .btn-gray:active,fieldset[disabled] .btn-gray:focus,fieldset[disabled] .btn-gray:hover{color:rgba(130,137,159,.3);background-color:#f1f1f1;border-color:#f1f1f1}.btn-primary{color:#fff;background-color:#006af1;border-color:transparent}.btn-primary.active,.btn-primary.hover,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:rgba(0,106,241,.8);border-color:rgba(0,0,0,0)}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-color:#0054be;background-image:none;border-color:rgba(0,0,0,0)}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{color:rgba(255,255,255,.3);background-color:#006af1;border-color:transparent}.btn-secondary{color:#fff;background-color:#00a9fc;border-color:transparent}.btn-secondary.active,.btn-secondary.hover,.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover,.open .dropdown-toggle.btn-secondary{color:#fff;background-color:rgba(0,169,252,.8);border-color:rgba(0,0,0,0)}.btn-secondary.active,.btn-secondary:active,.open .dropdown-toggle.btn-secondary{background-color:#0087c9;background-image:none;border-color:rgba(0,0,0,0)}.btn-secondary.disabled,.btn-secondary.disabled.active,.btn-secondary.disabled:active,.btn-secondary.disabled:focus,.btn-secondary.disabled:hover,.btn-secondary[disabled],.btn-secondary[disabled].active,.btn-secondary[disabled]:active,.btn-secondary[disabled]:focus,.btn-secondary[disabled]:hover,fieldset[disabled] .btn-secondary,fieldset[disabled] .btn-secondary.active,fieldset[disabled] .btn-secondary:active,fieldset[disabled] .btn-secondary:focus,fieldset[disabled] .btn-secondary:hover{color:rgba(255,255,255,.3);background-color:#00a9fc;border-color:transparent}.btn-warning{color:#fff;background-color:#fdc137;border-color:transparent}.btn-warning.active,.btn-warning.hover,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:rgba(253,193,55,.8);border-color:rgba(0,0,0,0)}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-color:#fcb105;background-image:none;border-color:rgba(0,0,0,0)}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{color:rgba(255,255,255,.3);background-color:#fdc137;border-color:transparent}.btn-danger{color:#fff;background-color:#ff5d5d;border-color:transparent}.btn-danger.active,.btn-danger.hover,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:rgba(255,93,93,.8);border-color:rgba(0,0,0,0)}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-color:#ff2a2a;background-image:none;border-color:rgba(0,0,0,0)}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{color:rgba(255,255,255,.3);background-color:#ff5d5d;border-color:transparent}.btn-success{color:#fff;background-color:#00da88;border-color:transparent}.btn-success.active,.btn-success.hover,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:rgba(0,218,136,.8);border-color:rgba(0,0,0,0)}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-color:#00a768;background-image:none;border-color:rgba(0,0,0,0)}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{color:rgba(255,255,255,.3);background-color:#00da88;border-color:transparent}.btn-info{color:#006af1;background-color:#e9f2fb;border-color:transparent}.btn-info.active,.btn-info.hover,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#006af1;background-color:rgba(233,242,251,.8);border-color:rgba(0,0,0,0)}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-color:#bed8f3;background-image:none;border-color:rgba(0,0,0,0)}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{color:rgba(0,106,241,.3);background-color:#e9f2fb;border-color:transparent}.btn-link{padding-right:6px;padding-left:6px;font-weight:400;color:#838a9d;text-shadow:none;cursor:pointer;background:0 0;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover,.btn-link[disabled],fieldset[disabled] .btn-link{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link:focus,.btn-link:hover{color:#3c4353;background-color:#f1f1f1}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#cbd0db;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.25;border-radius:4px}.btn-mini,.btn-sm,.btn-xs{padding:2px 8px;font-size:12px;line-height:1.5;border-radius:4px}.btn-mini,.btn-xs{padding:0 5px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-wide{min-width:120px}.btn-limit{max-width:150px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-limit>.caret{position:absolute;top:14px;right:8px}.btn-circle{border-radius:17px}.btn>.label-icon{top:3px;padding:3px;margin:-2px;background-color:rgba(0,0,0,.1);border-radius:12px}.btn>.label-icon>.icon{font-size:16px;line-height:18px}.btn>.icon+.text{margin-left:5px}.btn.btn-sm.btn-circle{border-radius:12px}.btn.btn-sm>.label-icon{top:1px;width:20px;height:20px;padding:1px;line-height:20px}.btn.btn-sm>.label-icon>.icon{font-size:14px}.btn-icon-left{position:relative;padding-left:35px;text-align:right}.btn-icon-left>.label-icon{position:absolute;left:5px;margin:0}.btn-icon-right{position:relative;padding-right:35px;text-align:left}.btn-icon-right>.label-icon{position:absolute;right:5px;margin:0}.btn-icon{min-width:30px;padding-right:0;padding-left:0}.btn-icon.btn-sm{width:24px;min-width:24px;height:24px}.btn-group{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group>.btn-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.dropdown{float:left;margin-right:10px}.btn-toolbar>.btn-group:last-child,.btn-toolbar>.btn:last-child,.btn-toolbar>.dropdown:last-child{margin-right:0}.btn-toolbar .divider{float:left;height:20px;margin:7px 5px 4px 10px;border-left:1px solid rgba(0,0,0,.05)}.btn-toolbar .space{float:left;min-height:1px;margin:0 10px 0 10px}.btn-toolbar .input-control{float:left}.btn-toolbar .page-title{float:left;margin-left:15px;line-height:34px}.btn-toolbar .page-title .text{font-size:18px}.btn-toolbar .page-title .label{top:-3px;margin-right:10px}.btn-active-line{position:relative;font-weight:700;color:#006af1}.btn-active-line:after{position:absolute;right:5px;bottom:1px;left:5px;display:block;content:' ';border-bottom:2px solid #006af1}.btn-active-line:hover{color:#006af1}.btn-active-text .text{position:relative;display:inline-block;font-weight:700;color:#006af1}.btn-active-text .text:after{position:absolute;bottom:-5px;display:block;width:100%;content:' ';border-bottom:2px solid #006af1}.angle-btn{position:relative;padding:1px;border:1px solid #d9e0e7;border-right:none;border-radius:3px 0 0 3px}.angle-btn:after,.angle-btn:before{position:absolute;top:-1px;right:-8px;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #d9e0e7;border-style:solid;border-width:17px 0 17px 8px}.angle-btn:after{right:-7px;border-color:transparent transparent transparent #fff;border-width:17px 0 17px 8px}.angle-btn .btn{color:#838a9d;border:none;border-radius:4px!important}.angle-btn+.angle-btn{border-left:none}.angle-btn+.angle-btn>.btn-group:first-child{padding-left:8px}.angle-btn+.angle-btn>.btn-group:first-child:after,.angle-btn+.angle-btn>.btn-group:first-child:before{position:absolute;top:-1px;left:0;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #d9e0e7;border-style:solid;border-width:17px 0 17px 8px}.angle-btn+.angle-btn>.btn-group:first-child:after{left:-1px;border-color:transparent transparent transparent #fff;border-width:17px 0 17px 8px}.label{position:relative;display:inline-block;padding:3px 5px;font-size:12px;font-weight:400;border-radius:2px}.label+.label{margin-left:4px}.label-badge{border-radius:9px}.label-outline.label-danger{color:#ff5d5d;background:#ffe5e0;border-color:rgba(255,93,93,.25)}.label-outline.label-light{color:#838a9d;background:#f2f5fb;border-color:#e1e5ee}.label-outline.label-primary{background:#e9f2fb;border-color:rgba(0,106,241,.25)}.label-outline.label-success{background:#ddf4df;border-color:rgba(0,218,136,.25)}.label-light{color:#838a9d;background-color:#e7e7e7}.label-dot{position:relative;top:-1px;padding:0;border-radius:50%}.label-dot+.status-text{display:inline-block;margin-left:5px}.label-icon{min-width:18px;padding:0;line-height:18px;border-radius:10px}.label-id{display:inline-block;min-width:30px;padding:0 5px;font-size:12px;line-height:16px;color:#838a9d;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid #cbd0db;border-radius:2px}.pri-1,.todo-pri-1{color:#ff5d5d}.project-status-delayed,.status-delayed{color:#ff5d5d}.project-status-delayed>.label-dot,.status-delayed>.label-dot{background-color:#ff5d5d}.project-status-wait,.status-wait{color:#a6aab8}.project-status-wait>.label-dot,.status-wait>.label-dot{background-color:#7ec5ff}.project-status-doing,.status-active,.status-doing,.status-unclosed{color:#a6aab8}.project-status-doing>.label-dot,.status-active>.label-dot,.status-doing>.label-dot,.status-unclosed>.label-dot{background-color:#006af1}.project-status-done,.status-done{color:#a6aab8}.project-status-done>.label-dot,.status-done>.label-dot{background-color:#00da88}.status-postpone{color:#a6aab8}.status-postpone>.label-dot{background-color:#ff5d5d}.status-changed{color:#ff5d5d}.status-changed>.label-dot{background-color:#ff5d5d}.project-status-suspended,.status-suspended{color:#fdc137}.project-status-suspended>.label-dot,.status-suspended>.label-dot{background-color:#fdc137}.status-draft{color:#a6aab8}.status-draft>.label-dot{background-color:#8666b8}.status-closed{color:#a6aab8}.status-closed>.label-dot{background-color:#a6aab8}.label-pri{display:inline-block;min-width:20px;height:20px;line-height:20px;color:#a6aab8;text-align:center;background-color:#f0f2f5;border-radius:10px}.label-pri-1{color:#fff;background:#51a1ff}.label-pri-2{color:#fff;background:#72b3ff}.label-pri-3{color:#fff;background:#98c8ff}.label-pri-4{color:#fff;background:#c4dfff}.label-level{position:relative;display:inline-block;width:24px;height:20px;text-align:center}.label-level:before{position:absolute;top:-3px;left:0;z-index:0;font-family:ZentaoIcon;font-size:18px;font-size:24px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#f0f2f5;text-transform:none;content:"\e902";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.label-level:after{position:relative;top:1px;z-index:1;display:inline-block;font-size:12px;line-height:18px;color:#fff;content:attr(data-level)}.label-level[data-level="1"]:before{color:#f65f28}.label-level[data-level="2"]:before{color:#f86e29}.label-level[data-level="3"]:before{color:#f77036}.label-level[data-level="4"]:before{color:#f7824c}.label-level[data-level="5"]:before{color:#fe9527}.label-level[data-level="6"]:before{color:#fea429}.task-status-wait{color:#a6aab8}.task-status-wait>.label-dot{background-color:#7ec5ff}.task-status-doing{color:#a6aab8}.task-status-doing>.label-dot{background-color:#006af1}.task-status-done{color:#a6aab8}.task-status-done>.label-dot{background-color:#00da88}.story-status-draft{color:#7ec5ff}.story-status-draft>.label-dot{background-color:#7ec5ff}.story-status-active{color:#a6aab8}.story-status-active>.label-dot{background-color:#006af1}.story-status-changed{color:#ff5d5d}.story-status-changed>.label-dot{background-color:#ff5d5d}.story-status-closed{color:#a6aab8}.bug-status-active{color:#a6aab8}.bug-status-active>.label-dot{background-color:#006af1}.bug-status-resolved,.status-resolved{color:#a6aab8}.bug-status-resolved>.label-dot,.status-resolved>.label-dot{background-color:#00da88}.bug-status-closed{color:#a6aab8}.checkbox-primary,.radio-primary{position:relative;display:block;vertical-align:middle}.checkbox-primary.inline-block,.radio-primary.inline-block{display:inline-block}.checkbox-primary.inline-block+.inline-block,.radio-primary.inline-block+.inline-block{margin-left:15px}.checkbox-primary>input,.radio-primary>input{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%;margin:0;opacity:0}.checkbox-primary>label,.radio-primary>label{display:block;height:20px;padding-left:30px;margin:0;font-weight:400;cursor:pointer}.checkbox-primary>label:after,.checkbox-primary>label:before,.radio-primary>label:after,.radio-primary>label:before{position:absolute;top:0;right:0;left:0;display:block;width:20px;height:20px;line-height:20px;text-align:center;content:' ';border-radius:4px}.checkbox-primary>label:after,.radio-primary>label:after{z-index:1;border:2px solid #eee;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:border,background-color;-o-transition-property:border,background-color;transition-property:border,background-color}.checkbox-primary>label:before,.radio-primary>label:before{top:3px;z-index:2;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-weight:900;font-variant:normal;line-height:1;text-transform:none;content:"\e5ca";opacity:0;-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:opacity,-webkit-transform;-o-transition-property:opacity,-o-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform,-o-transform;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.checkbox-primary.checked>label:after,.checkbox-primary>input:checked+label:after,.radio-primary.checked>label:after,.radio-primary>input:checked+label:after{background-color:#00da88;border-color:#00da88;border-width:4px}.checkbox-primary.checked>label:before,.checkbox-primary>input:checked+label:before,.radio-primary.checked>label:before,.radio-primary>input:checked+label:before{color:#fff;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.checkbox-primary.focus>label:after,.checkbox-primary>input:focus+label:after,.radio-primary.focus>label:after,.radio-primary>input:focus+label:after{border-color:#00da88;-webkit-box-shadow:0 0 0 3px rgba(0,218,136,.2);box-shadow:0 0 0 3px rgba(0,218,136,.2)}.checkbox-primary input:disabled+label:after,.checkbox-primary.disabled>label:after,.radio-primary input:disabled+label:after,.radio-primary.disabled>label:after{background-color:#e5e5e5;border-color:#bbb}.checkbox-primary input:disabled:checked+label:after,.checkbox-primary.checked.disabled>label:after,.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after{background-color:#bbb}.checkbox-primary:hover>label:after,.radio-primary:hover>label:after{border-color:#00da88}.checkbox-primary.checkbox-right>label,.radio-primary.checkbox-right>label{padding:0 30px 0 0}.checkbox-primary.checkbox-right>label:after,.checkbox-primary.checkbox-right>label:before,.radio-primary.checkbox-right>label:after,.radio-primary.checkbox-right>label:before{right:0;left:auto}.radio-primary>label:after{border-radius:50%}.radio-primary>label:before{top:6px;left:6px;width:8px;height:8px;content:' ';border:none;border-radius:50%}.radio-primary.checked>label:after,.radio-primary>input:checked+label:after{background-color:transparent;border-color:#00da88;border-width:2px}.radio-primary.checked>label:before,.radio-primary>input:checked+label:before{background-color:#00da88}.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after{background-color:transparent;border-color:#bbb}.radio-primary input:disabled:checked+label:before,.radio-primary.checked.disabled>label:before{background-color:#bbb}.panel{position:relative;margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:20px}.panel-body.has-table{padding:10px}.panel-body.has-table .table{margin-bottom:0}.panel-heading{padding:18px 20px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading+.panel-body{padding-top:0}.panel-title{font-size:16px;font-weight:700;line-height:20px}.panel-title .label{top:-1px}.panel-actions{position:absolute;top:0;right:0;z-index:10;padding:13px 10px}.panel-actions>li>a{display:inline-block;min-width:30px;padding:0 5px;line-height:30px;color:#cbd0db}.panel-actions>li>a:hover{color:#a6aab8;text-decoration:initial;background-color:#f1f1f1}.progress-text-left{position:relative;margin:7px 0;margin-left:35px;overflow:visible}.progress-text-left .progress-text{position:absolute;top:-7px;left:-35px;display:block;width:35px;height:20px;padding-right:5px;line-height:20px;color:#a6aab8;text-align:right}.chart-color{width:20px}.chart-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.chart-row{margin-top:10px}.chart-row+.chart-row{padding-top:10px;border-top:1px solid #eee}.chart-wrapper{padding:10px 5px;background:#eee}.chart-wrapper>h4{margin:5px 0 10px}.table-wrapper{max-height:250px;overflow:auto}.table-wrapper .table{margin:0}.messager{border-radius:4px;-webkit-box-shadow:0 4px 16px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.1);box-shadow:0 4px 16px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.1)}.messager-content{padding:18px 20px;font-size:18px;line-height:30px}.messager-content>.icon{font-size:28px;line-height:30px}.messager-actions{vertical-align:middle}.messagger-zt{color:#3c4353;background-color:#fff}.messagger-zt .messager-content>.icon{color:#006af1}.messagger-zt .messager-actions>.action{color:#a6aab8}.messagger-zt.messager-success .messager-content>.icon{color:#00da88}.messagger-zt.messager-danger .messager-content>.icon{color:#ff5d5d}.messagger-zt.messager-warning .messager-content>.icon{color:#fdc137}.messagger-zt.messager-info .messager-content>.icon{color:#7ec5ff}.tree{padding-left:0}.tree ul{position:relative;display:none;padding-left:0}.tree li{position:relative;padding:2px 0 2px 18px;list-style:none}.tree li.heading{padding-left:5px;color:#838a9d}.tree li>a{display:block;width:100%;max-width:100px;padding:2px 6px;overflow:hidden;color:#838a9d;text-overflow:ellipsis;white-space:nowrap}.tree li>a:hover{color:#3c4353;background-color:#f0f2f5}.tree li.active>a{color:#006af1;background-color:#e9f2fb}.tree li>.list-toggle{position:absolute;top:2px;left:1px;z-index:10;width:20px;font-size:14px;line-height:24px;color:#cbd0db;text-align:center;cursor:pointer;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.tree li>.list-toggle:before{content:"\f0da"}.tree li>.list-toggle:active,.tree li>.list-toggle:hover{color:#006af1}.tree li.open>ul{display:block}.tree li.open>.list-toggle{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.tree-actions{display:inline-block;margin-left:5px;vertical-align:middle}.tree-actions a{display:inline-block;margin-left:5px;font-size:13px;opacity:.6}.tree-actions a:hover{opacity:1}.tree li>.module-name{display:inline-block;max-width:100px;overflow:hidden;color:#838a9d;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.tree li>.module-name>a{display:inline-block;padding:2px 6px;color:#838a9d}.tree li>.module-name:hover{background-color:#f0f2f5}.tree li>.module-name:hover>a{color:#3c4353}.dropdown-menu{padding:5px 0;border-color:rgba(0,0,0,.1)}.dropdown-menu>li{padding:0 10px}.dropdown-menu>li>a{padding:2px 10px;margin:5px 0;border-radius:3px}.dropdown-menu>li>a>.icon{position:relative;left:-5px;opacity:.5}.dropdown-menu>li.active>a,.dropdown-menu>li.selected>a{position:relative;color:#fff;background-color:#00a9fc}.dropdown-menu>li.selected>a:after{position:absolute;top:2px;right:4px;display:block;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:20px;text-transform:none;content:"\e5ca";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dropdown-menu>li.divider{margin:10px}.dropdown-submenu>a:after{margin-right:-5px}.dropdown-submenu>.dropdown-menu.pull-left{margin-left:-1px}.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{color:#3c4353;background-color:#e9f2fb}.dropdown-submenu:hover>a:after{border-left-color:#006af1}.dropdown-submenu>a:hover:after{border-left-color:#fff}.pager .btn{padding:3px 10px}.pager .btn .caret{opacity:.3}.pager>li>.pager-label{padding:3px 4px}.pager>li>.pager-item{min-width:24px;padding:1px 3px;margin:2px;font-size:16px;line-height:20px;text-align:center;background:0 0;border-color:transparent;border-radius:50%}.pager>li>.pager-item:hover{background-color:rgba(0,0,0,.1)}.pager>li.disabled>a.pager-item{background:0 0;border-color:transparent}.pager>li.pager-item-left>.pager-item,.pager>li.pager-item-right>.pager-item{min-width:28px;padding:3px 4px;border-color:#d9e0e7!important;border-radius:2px!important}.pager>li.active>a{background-color:#00a9fc}.pager>li.pager-item-left>.pager-item{margin:0 5px 0 15px}.pager>li.pager-item-right>.pager-item{margin:0 0 0 5px}.pager .dropdown-menu{width:200px}.pager .dropdown-menu>li{float:left;width:33.333333%}.modal-dialog{max-width:1360px;border:none;-webkit-box-shadow:0 0 20px 0 rgba(0,0,0,.25);box-shadow:0 0 20px 0 rgba(0,0,0,.25)}.modal-header{padding:20px 0;margin:0 20px}.modal-header>.close{color:#838a9d;opacity:1}.modal-header>.close:hover{color:#3c4353}.modal-footer{padding:20px 0;margin:0 20px}.modal-title{font-size:18px;font-weight:400}.modal-actions{position:absolute;top:16px;right:16px}.modal-actions .divider{position:relative;top:5px;display:inline-block;width:0;height:20px;margin:0 10px;border-left:#eee 1px solid}.modal-actions>.dropdown{display:inline-block}.modal-body{padding:20px}.modal.fade .modal-dialog{-webkit-transform:translate(0,-3%);-ms-transform:translate(0,-3%);-o-transform:translate(0,-3%);transform:translate(0,-3%)}.modal.fade.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-simple .modal-footer{padding-top:0;border-top:none}.tile{text-align:center}.tile-title{line-height:20px;color:#838a9d}.tile-amount{font-size:32px;font-weight:700;line-height:56px}.timeline>li{position:relative;list-style:none}.timeline>li:before,.timeline>li>a:after,.timeline>li>div:after{position:absolute;left:-20px;display:block;width:15px;height:15px;content:' ';border-radius:50%}.timeline>li:before{top:14px;left:-16px;z-index:3;width:7px;height:7px;background-color:#cbd0db;border:none;border:1px solid #cbd0db}.timeline>li>a:after,.timeline>li>div:after{top:13px;left:-17px;z-index:3;width:9px;height:9px;background-color:#006af1;border-radius:50%;opacity:0}.timeline>li+li:after{position:absolute;top:-12px;bottom:20px;left:-13px;z-index:1;display:block;content:' ';border-left:1px solid #eee}.timeline>li.active>a:after,.timeline>li.active>div:after{opacity:1}.timeline>li.active:before{top:10px;left:-20px;width:15px;height:15px;background-color:rgba(0,106,241,.2);border:none}.timeline>li>a,.timeline>li>div{display:block;padding:5px;line-height:24px;color:#a6aab8}.timeline>li.active>a{color:#3c4353}.timeline-tag{position:absolute;top:5px;left:-115px;font-size:12px}.timeline-tag-left{padding-left:115px}.timeline-sm{font-size:12px}.timeline-sm>li:before,.timeline-sm>li>a:after,.timeline-sm>li>div:after{top:10px;left:-20px;width:11px;height:11px}.timeline-sm>li.active:before,.timeline-sm>li:before{top:10px;left:-18px;width:11px;height:11px;background:0 0;border:1px solid #eee}.timeline-sm>li>a,.timeline-sm>li>div{line-height:20px}.timeline-sm>li>a:after,.timeline-sm>li>div:after{top:13px;left:-15px;width:5px;height:5px}.form-control{-webkit-box-shadow:none;box-shadow:none}.form-horizontal .form-group>label{padding-right:0}.form-actions{margin-top:20px;margin-bottom:0}form label{font-weight:400;color:#838a9d}.form-group .btn+.btn{margin-left:5px}.table-form{margin-bottom:0;table-layout:fixed}.table-form>thead>tr>th.required{padding-left:18px}.table-form>thead>tr>th.required:after{top:7px;right:auto;left:5px}.table-form>tbody>tr>td,.table-form>tbody>tr>th,.table-form>tfoot>tr>td,.table-form>thead>tr>th{padding:7px 5px;vertical-align:middle;border-bottom:none}.table-form>tfoot>tr>td{padding:20px 7px 10px}.table-form>tbody>tr>th{width:100px;padding-top:12px;color:#838a9d;text-align:right;vertical-align:top}.table-form .input-group{width:100%}.chosen-container-single .chosen-single div b{color:#cbd0db}.chosen-container-single .chosen-search:before{top:8px}.chosen-container-single .chosen-search input[type=text]{border-radius:14px}.datetimepicker{padding:10px}.datetimepicker td.day.today{background-color:#ff5d5d}.datetimepicker td,.datetimepicker th{border-radius:13px}.datetimepicker tfoot th,.datetimepicker thead th{color:#a6aab8}.input-control .colorpicker{top:0;z-index:auto;opacity:1}.input-control .colorpicker .btn{padding:5px}.colorpicker .dropdown-menu{min-width:232px;padding:5px 10px 10px 10px}.colorpicker .dropdown-menu>li{display:block;float:left;padding:5px}.colorpicker .dropdown-menu>li.heading{width:100%;margin-bottom:5px;font-size:16px;font-weight:700;text-align:left}.colorpicker .dropdown-menu>li.heading>.icon-close{position:relative;top:4px;float:right;cursor:pointer;opacity:.6}.colorpicker .dropdown-menu>li>a{position:relative;display:block;width:100%;height:100%;padding:0;margin:0;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;border:1px solid transparent;border-radius:50%;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.colorpicker .dropdown-menu>li>a:before{position:absolute;top:0;display:block;width:100%;height:20px;line-height:18px}.colorpicker .dropdown-menu>li>a:hover{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.25);box-shadow:0 1px 4px rgba(0,0,0,.25)}.colorpicker .dropdown-menu>li>a.active:before{font-size:14px;content:"\e5ca"}.colorpicker .dropdown-menu>li>a.empty{color:#666;background:#fff}.colorpicker .dropdown-menu>li>a.empty:before{content:"\e90d"}.colorpicker .btn{position:relative}.colorpicker .btn .color-bar{position:absolute;right:5px;bottom:3px;left:5px;height:3px}.colorpicker .btn .color-bar[style*=background]+.ic{position:relative;top:-2px}.input-group .chosen-container{display:table-cell}.input-group-addon{border-right:none;border-left:none}.input-group-cell{display:table-cell;width:1%;padding:0 12px;white-space:nowrap;vertical-align:middle}.label-selector>.label{display:inline-block;min-width:30px;height:30px;padding:0 5px;font-size:14px;line-height:28px;color:#82899f;text-align:center;cursor:pointer;background:0 0;border:1px solid #82899f;border-radius:15px}.label-selector>.label+.label{margin-left:10px}.label-selector>.label.active{color:#fff;background-color:#00a9fc;border-color:#00a9fc}.label-selector>.label.empty{border-color:transparent}.ke-container{border-color:#e8e9ee!important;border-radius:2px!important}.ke-container.focus{border-color:#006af1!important}.ke-toolbar{border-color:#e8e9ee!important}.required:after{top:6px;font-size:20px}.file-input{position:relative}.file-input .input-group{width:auto}.file-input .input-group>.input-group-cell:first-child{padding-right:0;padding-left:7px}.file-input input[type=file]{position:absolute;width:0;height:0;opacity:0}.file-input .file-title{display:inline-block;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.file-input .file-editbox{min-width:200px;max-width:100%}.edit .file-input-empty,.file-input-edit,.file-input-normal,.normal .file-input-empty{display:none}.edit .file-input-edit,.normal .file-input-normal{display:block}.edit .file-input-edit.input-group,.normal .file-input-normal.input-group{display:table}.edit .file-input-normal{display:none!important}#mainHeader{min-height:66px;color:#fff;background:#00b1fd -webkit-gradient(linear,right top,left top,from(#0072f3),to(#00b1fd));background:#00b1fd -webkit-linear-gradient(right,#0072f3 0,#00b1fd 100%);background:#00b1fd -o-linear-gradient(right,#0072f3 0,#00b1fd 100%);background:#00b1fd linear-gradient(-90deg,#0072f3 0,#00b1fd 100%)}#mainHeader>.container{padding:0}#heading{position:absolute;top:18px;left:10px}#heading h1{float:left;max-width:240px;margin:0;overflow:hidden;font-size:20px;font-weight:400;line-height:30px;text-overflow:ellipsis;white-space:nowrap}#heading h1 a{color:inherit;text-decoration:inherit}#heading .btn{display:block;float:left;height:20px;padding:1px 5px;margin:0;margin:5px 0 0 10px;font-size:12px;font-weight:lighter;line-height:18px;background-color:rgba(255,255,255,.2);border:none}#heading .btn:hover{background-color:rgba(0,0,0,.1)}#navbar{margin:12px auto 0;font-size:16px;text-align:center}#navbar .nav{display:inline-block}#navbar .nav>li>a{line-height:24px;color:#fff;opacity:.75}@media (max-width:1380px){#navbar .nav>li>a{padding:8px 10px}}@media (max-width:992px){#navbar .nav>li>a{padding:5px 10px}}#navbar .nav>li>a:hover{background-color:rgba(0,0,0,.1);opacity:1}#navbar .nav>li.active>a{opacity:1}#navbar .nav>li.divider{display:block;width:2px;height:20px;margin:9px 15px;background-color:rgba(255,255,255,.4)}#toolbar{position:absolute;top:0;right:10px;padding:10px 0;font-size:12px;color:#fff}#extraNav{text-align:right}#extraNav>li{display:inline-block;float:none;text-align:left}#extraNav>li>a{display:block;padding:0;color:#fff;opacity:.75}#extraNav>li>a:hover{text-decoration:unset;background-color:rgba(0,0,0,.1);opacity:1}#extraNav>li.open>a{background-color:rgba(0,0,0,.1)}#extraNav>li+li{margin-left:10px}#userMenu{margin-top:5px}#searchbox{position:relative;float:left;width:150px}#searchbox .input-group-btn .btn{position:relative;padding:1px 4px 1px 8px;font-size:12px;line-height:20px;color:#fff;background-color:rgba(255,255,255,.15);border-right:none;border-radius:12px 0 0 12px}#searchbox .input-group-btn .btn:after{position:absolute;top:3px;right:-1px;bottom:3px;display:block;width:1px;content:' ';background-color:rgba(255,255,255,.15)}#searchbox .input-group-btn .btn:hover{background-color:rgba(255,255,255,.25)}#searchGo{position:absolute;top:0;right:-1px;z-index:10;min-width:24px;height:24px;padding:2px 3px;font-size:12px;line-height:20px;color:#fff;background-color:#52b3fd;border-radius:12px}#searchGo:hover{color:#fff!important;background-color:#006af1}#searchInput{height:24px;padding:2px 30px 2px 5px;color:#fff;text-align:left;background:rgba(255,255,255,.15);border-color:transparent;border-radius:0 12px 12px 0;-webkit-transition:background .2s,border .2s;-o-transition:background .2s,border .2s;transition:background .2s,border .2s}#searchInput:hover{background:rgba(255,255,255,.25)}#searchInput:focus{color:#333;background:#fff}#searchInput::-webkit-input-placeholder{font-size:12px;color:#6bcbff}#searchInput::-moz-placeholder{font-size:12px;color:#6bcbff}#searchInput:-ms-input-placeholder{font-size:12px;color:#6bcbff}#searchInput::placeholder{font-size:12px;color:#6bcbff}#searchTypeMenu{min-width:220px}#searchTypeMenu>li{float:left;width:50%}#searchTypeMenu>li>a{margin:4px 0}#userNav{float:right;margin:0 -6px 0 10px}#userNav .avatar{display:inline-block;vertical-align:middle}#userNav>li>a{padding:2px 6px;margin-left:3px;line-height:20px;color:#fff;opacity:.9}#userNav>li>a:hover{background-color:rgba(0,0,0,.1);opacity:1}#userNav>li>a span{display:inline-block;vertical-align:middle}#userNav>li.open>a{background-color:rgba(0,0,0,.1)}#userNav>li.has-new-items>a{position:relative}#userNav>li.has-new-items>a:before{position:absolute;top:3px;right:-1px;display:block;width:4px;height:4px;content:' ';background-color:#ff5d5d;border-radius:50%}#userNav .dropdown-menu{min-width:150px}#userNav .dropdown-menu>li>a>.icon{position:absolute;top:10px;right:5px;display:block;width:20px;height:20px;line-height:20px;text-align:center}#userNav .user-profile-item>a{position:relative;padding-left:45px}#userNav .user-profile-item .avatar{position:absolute;top:6px;left:5px}#userNav .user-profile-name{font-size:16px}#userNav .user-profile-role{font-size:12px;color:#a9abb8}#subHeader{min-height:54px;background:#fff}#pageNav{position:absolute;top:9px;left:0;left:10px}#subNavbar{margin-top:7px;font-size:16px;text-align:center}#subNavbar .nav{display:inline-block}#subNavbar .nav>li>a{line-height:24px;color:#838a9d}#subNavbar .nav>li>a:hover{color:#838a9d;background-color:rgba(0,0,0,.05)}#subNavbar .nav>li.active>a{color:#006af1}#subNavbar .nav>li.divider{display:block;width:2px;height:20px;margin:9px 15px;background-color:rgba(255,255,255,.4)}#pageActions{position:absolute;top:11px;right:10px}@media (max-width:1200px){#navbar{margin-top:45px}#heading{top:8px}#extraNav{float:right;margin:5px 0 0 15px}#userMenu{float:left;margin:0}}@media (max-width:750px){#extraNav{display:none}}@media (max-width:650px){#heading>h1{font-size:18px}#searchbox{display:none}#navbar .nav>li>a{padding:5px 6px;font-size:15px}#navbar .nav>li.divider{height:16px}}@media (max-width:500px){#navbar{padding-top:5px;margin-top:75px;background-color:rgba(0,0,0,.1)}#toolbar{top:35px;right:auto;left:-10px}#navbar .nav>li.divider{width:100%;height:1px;margin:0;background:0 0}}#main{padding:20px 0}#mainMenu{margin:-8px 0 10px}.main-content{padding:20px;background-color:#fff;border-radius:4px}@media (min-width:1100px){.main-content>.center-block{max-width:1002px;padding:20px;border:1px solid #eee}.main-content>.center-block .main-header{background-color:#f1f1f1}}.main-content>h2{margin:0 0 20px}.main-header{padding:12px 20px;border-bottom:1px solid #eee}.main-header>h2{display:inline-block;margin:0;font-size:20px;line-height:34px}.main-content .main-header{margin:-20px -20px 10px}.main-row{display:table;width:100%;table-layout:fixed}.main-row>*{display:table-cell;vertical-align:top}@media (max-width:720px){.main-row{display:block}.main-row>*{display:block}.main-row .side-col{width:100%;padding:0}.main-row .main-col+.side-col,.main-row .side-col+.main-col{margin-top:10px}}.cell{padding:10px;background-color:#fff;border-radius:4px}.cell+.cell{margin-top:10px}.cell>.panel{margin:0;-webkit-box-shadow:none;box-shadow:none}.cell>.panel>.panel-heading{padding:5px 5px 10px}.cell>.panel>.panel-heading .panel-actions{padding:0}.cell>.panel>.panel-body{padding:5px}.cell>.table{margin:0}@media (min-width:720px){.main-form{padding-right:40px}}#mainActions{position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;pointer-events:none}#mainActions .btn-toolbar{position:relative;top:-82px;display:inline-block;padding:4px 15px;color:#fff;pointer-events:auto;background-color:rgba(0,0,0,.7);border-radius:4px}#mainActions .btn-toolbar .divider{margin-right:15px;margin-left:20px;border-color:rgba(255,255,255,.1)}#mainActions .btn-toolbar .btn{padding-right:10px;padding-left:10px;color:#fff;background-color:transparent;border:none}#mainActions .btn-toolbar .btn:focus,#mainActions .btn-toolbar .btn:hover{background-color:rgba(255,255,255,.2)}#mainActions .btn-toolbar .btn.btn-icon{min-width:32px;padding-right:0;padding-left:0}#mainActions .dropdown-menu{text-align:left}#mainActions>.container{height:100%}#nextPage,#prevPage{position:absolute;top:50%;left:-10px;width:40px;height:60px;padding:10px 0;margin-top:-30px;line-height:40px;text-align:center;pointer-events:auto;-webkit-box-shadow:0 2px 15px 2px rgba(0,0,0,.05);box-shadow:0 2px 15px 2px rgba(0,0,0,.05)}#nextPage:hover,#prevPage:hover{-webkit-box-shadow:0 2px 15px 2px rgba(0,0,0,.15);box-shadow:0 2px 15px 2px rgba(0,0,0,.15)}#nextPage>.icon,#prevPage>.icon{display:block;font-size:36px;line-height:36px}#nextPage{right:-10px;left:auto}#sidebarHeader{position:relative;float:left;width:180px;height:34px;padding-left:16px;margin-right:20px;background:#fff}#sidebarHeader:after{position:absolute;top:-1px;right:-8px;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #fff;border-style:solid;border-width:18px 0 18px 8px}#sidebarHeader .title{padding:0 5px;overflow:hidden;font-size:16px;line-height:34px;color:#006af1;text-align:center;text-overflow:ellipsis;white-space:nowrap}#sidebarHeader .sidebar-toggle{position:absolute;top:0;left:0;width:18px;min-width:18px;height:100%;border-radius:0}#sidebarHeader .sidebar-toggle .icon{font-size:14px}#sidebar{-webkit-transition:width .2s,padding .2s;-o-transition:width .2s,padding .2s;transition:width .2s,padding .2s}.hide-sidebar #sidebar{width:0;padding:0}#sidebar.showing>.cell,.hide-sidebar #sidebar>.cell{display:none}#queryBox{max-height:0;padding:0;overflow:hidden;-webkit-transition:cubic-bezier(.175,.885,.32,1) .2s;-o-transition:cubic-bezier(.175,.885,.32,1) .2s;transition:cubic-bezier(.175,.885,.32,1) .2s;-webkit-transition-property:padding,max-height,margin;-o-transition-property:padding,max-height,margin;transition-property:padding,max-height,margin}#queryBox>form{visibility:hidden;-webkit-transition:visibility .2s .2s;-o-transition:visibility .2s .2s;transition:visibility .2s .2s}#queryBox.loading{height:50px}#queryBox.show{max-height:300px;margin-bottom:10px;overflow:visible}#queryBox.show>form{visibility:visible}#main .querybox-toggle.querybox-opened{position:relative;color:#006af1}#main .querybox-toggle.querybox-opened:before{position:absolute;bottom:-14px;left:50%;width:0;height:0;content:' ';border-color:transparent transparent #fff transparent;border-style:solid;border-width:0 10px 10px 10px}th.c-id{width:90px}th.c-date{width:100px}th.c-num,th.c-type{width:80px}th.c-pri{width:50px}th.c-begin,th.c-end,th.c-time{width:65px}th.c-hours{width:65px}th.c-actions{width:110px;text-align:center}th.c-actions-2{width:70px;text-align:center}th.c-actions-3{width:156px;text-align:center}th.c-actions-4{width:190px;text-align:center}th.c-product{width:180px}th.c-plan{width:130px}th.c-stage,th.c-status,th.c-user{width:80px}.table-lg th.c-actions{width:135px}.table-lg th.c-actions-2{width:95px}.table-lg th.c-actions-3{width:175px}.table-lg th.c-actions-4{width:215px}.table-lg th.c-stage,.table-lg th.c-status,.table-lg th.c-user{width:100px}td.c-begin,td.c-date,td.c-end,td.c-hours,td.c-plan,td.c-pri,td.c-stage,td.c-time,td.c-type,td.c-user{color:#a6aab8}td.c-name,td.c-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td.c-actions{position:relative;padding-top:0;padding-bottom:0;vertical-align:middle}td.c-actions .btn{padding:4px 5px;color:#00a9fc;background-color:#e9f2fb;border-color:transparent}td.c-actions .btn .icon{font-size:18px}td.c-actions .btn:hover{color:#006af1;background-color:#d3e5f7}td.c-actions .more{position:absolute;right:100%;display:none;padding-left:20px;margin-right:-5px;white-space:nowrap;background-color:#fafafa}tr:hover td.c-actions .more{display:block}.table tbody>tr>td.has-btn,.table thead>tr>th.has-btn{padding-top:1px;padding-bottom:1px}.text-middle td,.text-middle th{vertical-align:middle}.text-center td,.text-center th{text-align:center}.main-table{border-radius:4px}.main-table table{font-size:13px;table-layout:fixed;background-color:#fff}.main-table table.table-lg{font-size:14px}.main-table tbody>tr>td,.main-table thead>tr>th{padding:5px 10px;line-height:30px}.main-table tbody>tr>td:first-child,.main-table thead>tr>th:first-child{padding-left:15px}.main-table thead>tr>th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:2px solid #ecf0f4}.main-table tbody>tr>td{position:relative;border-bottom:none}.main-table tbody>tr>td.c-actions{padding-right:15px}.main-table tbody>tr>td:first-child:before{position:absolute;top:0;bottom:0;left:0;display:block;width:0;content:'';background:#006af1;opacity:0;-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:width,opacity,border-radius;-o-transition-property:width,opacity,border-radius;transition-property:width,opacity,border-radius}.main-table tbody>tr{-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background-color,-webkit-box-shadow;-o-transition-property:box-shadow,background-color;transition-property:background-color,-webkit-box-shadow;transition-property:box-shadow,background-color;transition-property:box-shadow,background-color,-webkit-box-shadow}.main-table tbody>tr:hover{background-color:#fafafa;-webkit-box-shadow:0 0 4px rgba(0,0,0,.15);box-shadow:0 0 4px rgba(0,0,0,.15)}.main-table tbody>tr.checked{-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked>td:first-child:before{width:4px;opacity:1}.main-table tbody>tr.checked.row-check-begin{border-top-left-radius:4px;border-top-right-radius:2px;-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked.row-check-begin>td:first-child:before{border-top-left-radius:4px}.main-table tbody>tr.checked.row-check-end{border-bottom-right-radius:2px;border-bottom-left-radius:4px;-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked.row-check-end>td:first-child:before{border-bottom-left-radius:4px}.main-table tbody>tr.checked.row-check-end.row-check-begin{-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05)}.main-table .checkbox-primary{display:inline-block;line-height:20px}.main-table .checkbox-primary label{margin:0}.main-table .table{margin:0}.main-table a:focus{text-decoration:underline}.table-header{padding:4px 0 12px}.table-header .table-statistic{color:#c2c6d3}.table-header .table-statistic strong{font-size:15px;color:#3c4353}.table-header .btn-toolbar{margin-top:-28px}.table-footer{padding:6px 15px;color:#fff;background:rgba(0,0,0,.7)}.talbe-lg+.table-footer{padding:11px 15px}.table-footer .btn-toolbar,.table-footer .checkbox-primary{float:left}.table-footer .checkbox-primary{margin:5px 20px 0 0}.table-footer .checkbox-primary label{color:#fff}.table-footer .btn{padding:3px 10px;border-radius:2px}.table-footer .pager{float:right;margin:0}.table-footer .pager>li>.pager-item{color:#fff}.table-footer .pager>li.pager-item-left>.pager-item,.table-footer .pager>li.pager-item-right>.pager-item{color:#595959;background-color:#fff}.table-footer .pager>li.pager-item-left.disabled>.pager-item,.table-footer .pager>li.pager-item-right.disabled>.pager-item{color:#bbb;background-color:#eee}.table-footer .form-control{height:28px;padding:3px 8px}.table-footer .input-control-icon-right{top:0;height:28px;line-height:28px}.table-footer.fixed-footer{position:fixed;z-index:10}.table-footer .table-statistic{float:left;margin-left:20px;line-height:28px}.table-footer .search-list .input-control-icon-left{top:-1px}.table-actions{width:0;height:28px;visibility:hidden;opacity:0;-webkit-transition:opacity cubic-bezier(.175,.885,.32,1) .8s;-o-transition:opacity cubic-bezier(.175,.885,.32,1) .8s;transition:opacity cubic-bezier(.175,.885,.32,1) .8s}.has-row-checked .table-actions{width:auto;visibility:visible;opacity:1}.table-lg tbody>tr>td{padding:9px 10px}.table-lg tbody>tr>td .btn+.btn{margin-left:5px}.table.has-sort-head thead>tr>th>a{position:relative;display:inline-block;padding-right:16px;color:#a6aab8}.table.has-sort-head thead>tr>th>a:after,.table.has-sort-head thead>tr>th>a:before{position:absolute;top:0;right:0;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:30px;color:#a6aab8;text-transform:none;content:"\f0de";opacity:.5;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.table.has-sort-head thead>tr>th>a:after{content:"\f0dd"}.table.has-sort-head thead>tr>th>a.sort-down,.table.has-sort-head thead>tr>th>a.sort-up,.table.has-sort-head thead>tr>th>a:hover{color:#006af1;text-decoration:none}.table.has-sort-head thead>tr>th>a.sort-down:after,.table.has-sort-head thead>tr>th>a.sort-up:before,.table.has-sort-head thead>tr>th>a:hover:after,.table.has-sort-head thead>tr>th>a:hover:before{color:#006af1;opacity:1}.table.fixed-header-copy{z-index:10;color:#fff;background:rgba(0,0,0,.7)}.table.fixed-header-copy thead>tr>th>a{color:#cbd0db}.table.fixed-header-copy thead>tr>th>a:hover{color:#fff}.table.fixed-header-copy thead>tr>th>a.sort-down,.table.fixed-header-copy thead>tr>th>a.sort-down:after,.table.fixed-header-copy thead>tr>th>a.sort-up,.table.fixed-header-copy thead>tr>th>a.sort-up:before,.table.fixed-header-copy thead>tr>th>a:hover,.table.fixed-header-copy thead>tr>th>a:hover:after,.table.fixed-header-copy thead>tr>th>a:hover:before{color:#e9f2fb}.table-data{margin:0}.table-data tbody>tr>td,.table-data tbody>tr>th{padding:6px 8px;border:none}.table-data tbody>tr>th{width:70px;padding-left:0;font-weight:400;color:#838a9d;text-align:right}.table-data tbody>tr>td{padding-right:0}.table-fixed-head{background:#fff}.table-empty-tip{padding:80px 10px;text-align:center;background:#fff}.block-welcome .col-left{width:25%}.block-welcome .col-left>h4{margin:5px 0;line-height:30px}.block-welcome .col-left .timeline{margin:10px 0 0;font-size:12px}.block-welcome .col-right{width:75%}.block-welcome .col-right>h4{font-weight:400}.block-welcome .col-right>h4 small{display:inline-block;margin-right:8px;font-size:14px}.block-welcome .col-right .tiles{padding:10px 0 0 16px;border-left:1px solid #e5e8ec}.block-welcome .col-right .tile{width:20%}.block-welcome .panel-body{padding-top:15px}.block-welcome .user-notification-icon{position:relative;display:inline-block;margin-left:5px}.block-welcome .user-notification-icon .label-badge{position:absolute;top:1px;right:-8px;min-width:16px;padding:2px;font-size:12px;font-weight:400}.block-dynamic .timeline{margin:0}.block-flowchart{padding:10px}.block-flowchart .table{margin-bottom:0}.block-flowchart .table>tbody>tr>td,.block-flowchart .table>tbody>tr>th,.block-flowchart .table>thead>tr>th{padding:10px;font-weight:400;text-align:center}.block-flowchart .table>tbody>tr>td:first-child,.block-flowchart .table>tbody>tr>th:first-child,.block-flowchart .table>thead>tr>th:first-child{text-align:left}.block-flowchart .table>thead>tr>th{width:18%;vertical-align:top}.block-flowchart .table>thead>tr>th:first-child{width:auto;padding:10px 10px 15px 10px;background:0 0}.block-flowchart .table>thead>tr>th:first-child+th>div{background:0 0}.block-flowchart .table>thead>tr>th,.block-flowchart .table>thead>tr>th>div{padding:0;background:url(data:image/gif;base64,R0lGODlhLQAPAJEAAAAAAP///+7u7v///yH5BAEAAAMALAAAAAAtAA8AAAJPlIY5psn92jrSUGVrRFlfvHHh9JGS6aVQ2K2l+LYOO6KuCpby/No8DjvtgrfiD+gj5ozLpvMIfSanu2FyiKX1qqOsrsaNdbXCcfm8Ok1OBQA7) no-repeat;background-position:right -22px top 15px}.block-flowchart .table>thead>tr>th>div{padding:10px 10px 15px 10px;background-position:left -23px top 15px}.block-flowchart .table>thead>tr>th:last-child{background:0 0}.block-flowchart .table>tbody>tr>td{color:#838a9d}.block-flowchart .table>tbody>tr:nth-child(even)>td{background:#f7f8f9}.block-flowchart .flowchart-title{font-size:16px;font-weight:700;color:#3c4353}.block-flowchart .flowchart-step{display:inline-block;width:24px;height:24px;font-size:16px;line-height:24px;color:#fff;background-color:#00a9fc;border-radius:50%}.block-projects .c-deadline{width:100px;color:#a6aab8;text-align:center}.block-projects .c-status{width:90px}.block-projects .c-estimate{width:60px;text-align:right}.block-projects .c-consumed{width:60px;text-align:right}.block-projects .c-left{width:60px;text-align:right}.block-projects .c-progress{width:155px}.block-projects .c-spark{width:120px}.block-projects td.c-spark{padding:0}.block-stories .c-id{width:55px;color:#a6aab8}.block-stories .c-pri{width:45px;text-align:center}.block-stories .c-estimate{width:55px;color:#a6aab8}.block-stories .c-status{width:80px}.block-stories .c-stage{width:80px;color:#a6aab8}.block-stories.block-sm .c-stage,.block-stories.block-sm .c-status .status-text,.block-stories.block-sm .estimate{display:none}.block-stories.block-sm .c-status{text-align:center}.block-tasks .c-id{width:55px;color:#a6aab8}.block-tasks .c-pri{width:45px;text-align:center}.block-tasks .c-estimate{width:55px;color:#a6aab8}.block-tasks .c-deadline{width:95px;color:#a6aab8}.block-tasks .c-status{width:80px}.block-tasks.block-sm .c-deadline,.block-tasks.block-sm .c-status .status-text,.block-tasks.block-sm .estimate{display:none}.block-tasks.block-sm .c-status{text-align:center}.block-bugs .c-id{width:55px;color:#a6aab8}.block-bugs .c-level{width:50px;text-align:center}.block-bugs .c-pri{width:35px;text-align:center}.block-bugs .c-deadline{width:95px;color:#a6aab8}.block-bugs .c-status{width:80px}.block-bugs.block-sm .c-pri,.block-bugs.block-sm .c-status .status-text{display:none}.block-bugs.block-sm .c-status{text-align:center}.block-todoes .panel-body{position:relative;padding-top:42px}.block-todoes .todoes-input{position:absolute;top:-20px;right:0;left:0;padding:20px}.block-todoes .todoes-input .form-control::-webkit-input-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control::-moz-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control:-ms-input-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control::placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes{padding-left:0;margin:0 -10px}.block-todoes .todoes>li{position:relative;padding:5px 10px 5px 35px;list-style:none}.block-todoes .todoes>li:hover{background-color:#e9f2fb}.block-todoes .todo-title{display:block;padding:5px}.block-todoes .todo-pri{display:inline-block;padding:0 5px;font-size:12px;color:#838a9d}.block-todoes .todo-time{display:inline-block;padding:0 5px;font-size:12px;color:#a6aab8}.block-todoes .todo-check{position:absolute;top:10px;left:10px;display:block;width:20px;height:20px;font-size:20px;color:transparent;cursor:pointer;background:#fff;border:2px solid #eee;border-radius:50%}.block-todoes .todo-check:hover{border-color:#a6aab8}.block-todoes .active>.todo-check{color:#00da88;background:0 0;border:none}.block-todoes .todoes-form{position:absolute;top:-51px;right:0;left:0;z-index:15;padding:20px;visibility:hidden;background:#fff;-webkit-box-shadow:0 0 20px 0 #bdc9d8;box-shadow:0 0 20px 0 #bdc9d8;opacity:0;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:opacity,visibility;-o-transition-property:opacity,visibility;transition-property:opacity,visibility}.block-todoes .todoes-form .form-group>label{padding-left:0}.block-todoes .todoes-form .form-group>label.text-center{text-align:center!important}.block-todoes .todoes-form>.form-group:last-child{margin-bottom:0}.block-todoes .todoes-form>h3{padding:0 20px 15px;margin:0 -20px 15px;font-size:16px;line-height:20px;border-bottom:1px solid #eee}.block-todoes.show-form .todoes-form{visibility:visible;opacity:1}.block-products .c-plans{width:70px;color:#a6aab8;text-align:center}.block-products .c-publishs{width:70px;color:#a6aab8;text-align:center}.block-products .c-stories{width:80px;color:#a6aab8;text-align:center}.block-products .c-bugs{width:90px;color:#a6aab8;text-align:center}.block-products.block-sm .c-project{display:none}.article-content{color:#838a9d}.article-content img{margin-top:0}.detail{padding:20px 0;margin:0 10px}.detail+.detail{padding-top:25px;border-top:1px solid #eee}.detail-title{font-size:16px;line-height:20px}.detail-title>.pull-right{position:relative;top:-8px}h2.detail-title{margin:0;font-size:24px;font-weight:400}h2.detail-title .label,h2.detail-title .label-id{position:relative;top:-3px}.detail-content{padding:5px 0 0 20px;margin-top:10px;color:#838a9d}.detail-content em{font-style:normal;color:#3c4353}.detail-content .list-unstyled>li+li{margin-top:5px}.side-col .detail-content{padding-left:0}details.detail{padding:10px 0}details.detail summary{position:relative;cursor:pointer;outline:0}details.detail summary::-webkit-details-marker{display:none}details.detail summary:after{position:absolute;top:0;right:0;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-transform:none;content:"\e316";opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}details.detail[open] summary:after{content:"\e313"}.files-list{padding-left:0;list-style:none}.files-list>li>a{display:block;line-height:24px;color:#838a9d}.files-list>li>a>.icon{display:inline-block;margin-right:5px;opacity:.7}.files-list>li>a:hover{color:#006af1}.histories-list{margin-bottom:0}.histories-list .btn-mini{position:relative;top:1px}.histories-list>li{position:relative}.histories-list>li+li{margin-top:10px}.histories-list>li strong{color:#3c4353}.histories-list .comment,.histories-list .show-form .comment-edit-form{padding:5px 5px 5px 10px;margin:5px 0 0;background-color:rgba(0,0,0,.025);border:1px solid #eee}.histories-list .btn-edit-comment{position:absolute;top:28px;right:2px}.histories-list .comment-edit-form,.histories-list .show-form .btn-edit-comment,.histories-list .show-form .comment{display:none}.histories-list .show-form .comment-edit-form{display:block;padding:10px;border:1px solid #eee}.histories .btn-mini{width:16px;min-width:16px;height:16px;overflow:hidden;line-height:16px;color:#cbd0db;vertical-align:-8%;border-radius:1px}.histories .btn-mini>.icon{position:relative;top:-2px;left:-2px}.histories .btn-mini:focus,.histories .btn-mini:hover{color:#006af1;border-color:#006af1}.histories .show-changes .btn-expand>.icon:before{content:"\e926"}.histories .btn-strip{display:none}.histories .show-changes .btn-strip{display:inline-block}.history-changes{display:none;padding:5px;margin-bottom:-5px;margin-left:5px;font-size:12px;line-height:20px;opacity:.65}.history-changes blockquote{padding:5px 5px 5px 10px;margin:5px 0 0;font-size:12px;background-color:rgba(0,0,0,.05);border-left:3px solid #eee}.history-changes blockquote.original{display:none}.show-changes .history-changes,.show-original .history-changes blockquote.original{display:block}.show-original .history-changes blockquote.textdiff{display:none}.search-list{min-width:200px;max-width:300px;min-height:55px;padding:0}.search-list .search-box{float:none;margin:10px 10px 5px}.search-list .search-box .icon-search{opacity:.5}.dropup .search-list .list-group{height:214px}.search-list .list-group{max-height:248px;padding:0 10px 5px 10px;margin:5px 0}.list-group{overflow-y:auto}.list-group>a{display:block;padding:2px 10px 2px 5px;overflow:hidden;line-height:20px;text-overflow:ellipsis;white-space:nowrap;border-radius:4px}.list-group>a+a{margin-top:5px}.list-group>a>.icon{display:inline-block;margin-right:3px;opacity:.5}.list-group>a.selected{color:#e9f2fb;background-color:#006af1}.list-group>a.active{color:#006af1;background-color:#e9f2fb}.list-group>a.active:hover,.list-group>a:hover{color:#fff;background-color:#006af1}.release-path{overflow:hidden}.release-line{display:table;width:100%;padding:0;table-layout:fixed}.release-line>li{display:table-cell;list-style:none}.release-line>li>a{position:relative;display:block}.release-line>li>a:before{position:absolute;left:0;display:block;width:13px;height:13px;content:' ';background:#fff;border:2px solid #838a9d;border-radius:50%}.release-line>li>a:after{position:absolute;left:5px;display:block;width:2px;height:30px;content:' ';background:#e9f2fb}.release-line>li>a>.icon{position:absolute;left:4px;font-size:24px}.release-line>li>a .title{display:block;color:#838a9d;white-space:nowrap}.release-line>li>a .date,.release-line>li>a .info{display:block;font-size:12px;color:#cbd0db}.release-line>li>a:hover:before{background-color:#e9f2fb}.release-line>li>a:hover:after{background-color:#a6aab8}.release-line>li>a:hover .title{color:#006af1}.release-line>li>a:hover .date,.release-line>li>a:hover .info{display:block;font-size:12px;color:#a6aab8}.release-line>li:nth-child(odd){padding-top:90px;vertical-align:top}.release-line>li:nth-child(odd)>a{padding-top:36px;border-top:5px solid #e9f2fb}.release-line>li:nth-child(odd)>a:before{top:-9px}.release-line>li:nth-child(odd)>a:after{top:6px}.release-line>li:nth-child(odd)>a>.icon{top:-26px}.release-line>li:nth-child(even){padding-bottom:90px;vertical-align:bottom}.release-line>li:nth-child(even)>a{padding-bottom:36px;border-bottom:5px solid #e9f2fb}.release-line>li:nth-child(even)>a:before{bottom:-9px}.release-line>li:nth-child(even)>a:after{bottom:6px}.release-line>li:nth-child(even)>a>.icon{bottom:-2px}.release-line>li:last-child>a{border-color:transparent}.release-line>li.active>a:before{border-color:#006af1}.release-line>li+li>a>.date,.release-line>li+li>a>.info,.release-line>li+li>a>.title{position:relative;left:-36%}#footer{position:fixed;right:0;bottom:0;left:0;z-index:1010;height:32px;background:#fff;border-top:1px solid #eff1f7}#footer .breadcrumb{padding:5px 0;margin:0}#footer .breadcrumb>.active,#footer .breadcrumb>li>a{color:#cbd0db}#footer .breadcrumb>li+li:before{content:'>'}#poweredBy{position:absolute;top:0;right:0;padding:5px 10px}#poweredBy .icon-zentao{color:#0097fd}#poweredBy a{color:#3c4353}#poweredBy a+a{margin-left:15px}#poweredBy a:hover{color:#006af1}#poweredBy a:hover .icon-zentao{color:#006af1}#poweredBy #aiux{color:#cbd0dc} \ No newline at end of file +*/.chosen-container{position:relative;display:inline-block;font-size:14px;vertical-align:middle;zoom:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;*display:inline}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;width:100%;background:#fff;border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-top:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container .chosen-drop.chosen-drop-size-limited{border-top:1px solid rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container.chosen-up .chosen-drop{top:inherit;bottom:100%;margin-top:auto;margin-bottom:-1px;border-radius:2px 2px 0 0;-webkit-box-shadow:0 -3px 5px rgba(0,0,0,.175);box-shadow:0 -3px 5px rgba(0,0,0,.175)}.chosen-container-single .chosen-single{display:block;width:100%;height:32px;padding:5px 8px;overflow:hidden;line-height:1.42857143;color:#3c4353;text-decoration:none;white-space:nowrap;vertical-align:middle;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.chosen-container-single .chosen-default{color:#a6aab8}.chosen-container-single .chosen-single>span{display:block;margin-right:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:7px;right:24px;display:block;width:20px;height:20px;font-size:21px;font-weight:700;line-height:14px;color:#000;text-align:center;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.chosen-container-single .chosen-single abbr:before{content:'×'}.chosen-container-single .chosen-single abbr:focus,.chosen-container-single .chosen-single abbr:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;height:100%;padding:5px 8px}.chosen-container-single .chosen-single div b{display:inline-block;width:0;height:0;margin-bottom:2px;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.chosen-container-single .chosen-search{position:relative;z-index:1010;padding:3px 4px;margin:0;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{width:100%;height:27px;padding:2px 26px 2px 8px;margin:1px 0;font-size:12px;line-height:1.5;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;outline:0}.chosen-container-single .chosen-search input[type=text]:focus{border-color:#006af1}.chosen-container-single .chosen-search:before{position:absolute;top:10px;right:10px;display:block;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#a6aab8;text-transform:none;content:"\e928";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chosen-container-single .chosen-drop{margin-top:-1px;-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:0 0 4px 4px}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{position:relative;max-height:240px;padding:0;margin:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;padding:5px 10px;margin:0;line-height:15px;list-style:none;-webkit-transition:background-color .2s cubic-bezier(.175,.885,.32,1);-o-transition:background-color .2s cubic-bezier(.175,.885,.32,1);transition:background-color .2s cubic-bezier(.175,.885,.32,1);-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{color:#fff;background-color:#006af1}.chosen-container .chosen-results li.no-results{display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;width:100%;min-height:32px;min-height:30px\9;padding:0;margin:0;overflow:hidden;cursor:text;background-color:#fff;border:1px solid #e8e9ee;border-radius:2px;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s}.chosen-container-multi .chosen-choices:after,.chosen-container-multi .chosen-choices:before{display:table;content:" "}.chosen-container-multi .chosen-choices:after{clear:both}.chosen-container-multi .chosen-choices li{display:block;float:left;padding:0 6px;margin:5px 0 0 6px;list-style:none}.chosen-container-multi .chosen-choices li.search-field{padding:0;margin-bottom:4px;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{height:20px;font-size:100%;color:#a6aab8;background:0 0!important;border:0!important;border-radius:0;outline:0;-webkit-box-shadow:none;box-shadow:none}.chosen-container-multi .chosen-choices li.search-field .default{color:#999}.chosen-container-multi .chosen-choices li.search-field:before{position:absolute;right:8px;bottom:8px;display:block;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#a6aab8;text-transform:none;content:"\e928";opacity:0;-webkit-transition:opacity .2s cubic-bezier(.175,.885,.32,1);-o-transition:opacity .2s cubic-bezier(.175,.885,.32,1);transition:opacity .2s cubic-bezier(.175,.885,.32,1);speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.chosen-container-multi .chosen-choices li.search-choice{position:relative;padding:3px 20px 3px 5px;line-height:12px;cursor:default;background-color:#f1f1f1;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cbd0db;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.chosen-container-multi .chosen-choices li.search-choice:hover{background-color:#fff;border-color:#adb5c6;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.1)}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:20px;height:20px;font-size:16.8px;font-weight:700;line-height:14px;color:#000;text-align:center;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:'×'}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:focus,.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;color:#666;background-color:#e4e4e4;border:1px solid #ccc}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{padding:5px 0;margin:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border-color:#006af1;-webkit-box-shadow:none,0 0 8px rgba(0,106,241,.6);box-shadow:none,0 0 8px rgba(0,106,241,.6)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #b6bdcc;border:1px solid rgba(0,0,0,.15);border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container-active.chosen-with-drop .chosen-single div{background:0 0;border-left:none}.chosen-container-active.chosen-with-drop .chosen-single div b{content:"";border-top:0 dotted;border-bottom:4px solid}.chosen-container-active.chosen-with-drop.chosen-up .chosen-single{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.chosen-container-active .chosen-choices{border-color:#006af1;-webkit-box-shadow:none,0 0 8px rgba(0,106,241,.6);box-shadow:none,0 0 8px rgba(0,106,241,.6)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#111!important}.chosen-container-active .chosen-choices li.search-field:before{opacity:1}.chosen-disabled{cursor:default;opacity:.5!important}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.container,.container-fixed,.container-fluid{position:relative}body{padding-bottom:40px;background-color:#f6f6f6}em{font-style:normal}.text-middle{vertical-align:middle!important}.text-bottom{vertical-align:bottom!important}.text-top{vertical-align:top!important}.inline-block{display:inline-block!important}.layer{border-radius:4px;-webkit-box-shadow:0 0 20px 0 #bdc9d8;box-shadow:0 0 20px 0 #bdc9d8}.space{margin-bottom:20px}.muted{opacity:.5}.text-muted em{color:#3c4353}.no-animate{-webkit-transition:none!important;-o-transition:none!important;transition:none!important}.template{display:none!important}.text-left{text-align:left!important}.text-yellow.icon-folder{color:#ffe066}.table-row{display:table;width:100%;table-layout:fixed}.table-col,.table-row>.col,.table-row>[class*=col-],.table-row>[class*="-col"]{display:table-cell;float:none;vertical-align:top}.side-col{width:200px;padding-right:20px}.side-col.col-4{width:33.3333333%}.col-lg{width:260px}.col-xl{width:320px}.col-sm{width:150px}.col-xs{width:100px}.main-col+.side-col{padding-right:0;padding-left:20px}.row-grid>[class*=col-],.row-grid>[class*="-col"]{padding-top:6px;padding-bottom:6px}hr.space{margin:10px 0;border:none}hr.space-sm{margin:5px 0;border:none}.text-secondary{color:#00a9fc}.nav-primary>li>a{min-width:100px;padding:5px 8px;color:#838a9d;border-color:#e7f1fc}.nav-primary>li.active>a{color:#006af1;background-color:#e7f1fc;border-color:#e7f1fc}.nav-primary>li.active>a:hover{color:#006af1;background-color:#c3dcf7;border-color:#c3dcf7}.end-marker{margin-bottom:20px;color:#cbd0db;text-align:center}@-webkit-keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}@-o-keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}@keyframes highlight{0%{background:#fff;outline:1px solid transparent}100%{background:#fff0d5;outline:2px solid #ffdcbc}}.highlight{-webkit-animation:highlight .5s linear 0s 2 alternate;-o-animation:highlight .5s linear 0s 2 alternate;animation:highlight .5s linear 0s 2 alternate}.progress.inline-block{width:100px;margin:0}@font-face{font-family:ZentaoIcon;font-style:normal;font-weight:400;src:url(../fonts/ZentaoIcon.eot?v=1.1.0);src:url(../fonts/ZentaoIcon.eot?#iefix&v=1.1.0) format('embedded-opentype'),url(../fonts/ZentaoIcon.woff?v=1.1.0) format('woff'),url(../fonts/ZentaoIcon.ttf?v=1.1.0) format('truetype'),url(../fonts/ZentaoIcon.svg#regular?v=1.1.0) format('svg')}.icon,[class*=" icon-"],[class^=icon-]{font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-transform:none;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon:before{display:inline-block;min-width:18px;text-align:center}a .icon,a [class*=" icon-"],a [class^=icon-]{display:inline}.icon-lg:before{font-size:1.33333333em;vertical-align:-10%}.icon-2x{font-size:36px}.icon-3x{font-size:54px}.icon-4x{font-size:72px}.icon-5x{font-size:90px}.icon-spin{display:inline-block;-webkit-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-spin{display:inline-block;text-decoration:none}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0);transform:rotate(0)}100%{-o-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);-o-transform:rotate(359deg);transform:rotate(359deg)}}.icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.icon-flip-horizontal{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.icon-flip-vertical{-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.icon.icon-flip-horizontal,.icon.icon-flip-vertical,.icon.icon-rotate-180,.icon.icon-rotate-270,.icon.icon-rotate-90{display:inline-block}.icon-home:before{content:"\e958"}.icon-pencil:before{content:"\e254"}.icon-angle-down:before{content:"\e313"}.icon-angle-left:before{content:"\e314"}.icon-angle-right:before{content:"\e315"}.icon-angle-top:before{content:"\e316"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-zentao-alt:before{content:"\e900"}.icon-zentao:before{content:"\e901"}.icon-severity:before{content:"\e902"}.icon-bar-chart:before{content:"\e903"}.icon-import:before{content:"\e904"}.icon-export:before{content:"\e905"}.icon-printer:before{content:"\e906"}.icon-hand-right:before{content:"\e907"}.icon-checked:before{content:"\e908"}.icon-off:before{content:"\e909"}.icon-start:before{content:"\e90a"}.icon-play:before{content:"\e90a"}.icon-time:before{content:"\e90b"}.icon-edit:before{content:"\e90c"}.icon-trash:before{content:"\e90d"}.icon-link:before{content:"\e90e"}.icon-unlink:before{content:"\e90f"}.icon-bullhorn:before{content:"\e910"}.icon-bug:before{content:"\e911"}.icon-list-alt:before{content:"\e912"}.icon-fork:before{content:"\e913"}.icon-glasses:before{content:"\e914"}.icon-sitemap:before{content:"\e915"}.icon-plus-sign:before{content:"\e916"}.icon-pluses:before{content:"\e917"}.icon-flag-alt:before{content:"\e918"}.icon-magic:before{content:"\e919"}.icon-treemap:before{content:"\e91a"}.icon-confirm:before{content:"\e91b"}.icon-lightbulb:before{content:"\e91c"}.icon-delay:before{content:"\e91d"}.icon-calendar:before{content:"\e91d"}.icon-pause:before{content:"\e91e"}.icon-ban:before{content:"\e91f"}.icon-plus-bold:before{content:"\e920"}.icon-copy:before{content:"\e921"}.icon-refresh:before{content:"\e922"}.icon-arrow-up:before{content:"\e923"}.icon-arrow-down:before{content:"\e924"}.icon-arrow-left:before{content:"\e952"}.icon-arrow-right:before{content:"\e93e"}.icon-plus:before{content:"\e925"}.icon-minus:before{content:"\e926"}.icon-exchange:before{content:"\e927"}.icon-search:before{content:"\e928"}.icon-envelope-o:before{content:"\e92a"}.icon-check:before{content:"\e5ca"}.icon-circle:before{content:"\e836"}.icon-up-circle:before{content:"\e92b"}.icon-right-circle:before{content:"\e92c"}.icon-down-circle:before{content:"\e92d"}.icon-left-circle:before{content:"\e92e"}.icon-check-circle:before{content:"\e92f"}.icon-exclamation-sign:before{content:"\e930"}.icon-unfold-all:before{content:"\e931"}.icon-fold-all:before{content:"\e932"}.icon-plus-sm:before{content:"\e933"}.icon-chevron-left:before{content:"\e934"}.icon-chevron-right:before{content:"\e935"}.icon-close:before{content:"\e936"}.icon-flag:before{content:"\e937"}.icon-check-sign:before{content:"\e938"}.icon-minus-sign:before{content:"\e939"}.icon-bars-sign:before{content:"\e93a"}.icon-cog:before{content:"\e93b"}.icon-color:before{content:"\e93c"}.icon-paper-clip:before{content:"\e93d"}.icon-back:before{content:"\e93f"}.icon-chat-line:before{content:"\e940"}.icon-person:before{content:"\e941"}.icon-cube:before{content:"\e942"}.icon-stack:before{content:"\e943"}.icon-folder:before{content:"\e944"}.icon-folder-o:before{content:"\e945"}.icon-folder-open-o:before{content:"\e946"}.icon-folder-open:before{content:"\e947"}.icon-bars:before{content:"\e948"}.icon-cards-view:before{content:"\e949"}.icon-star-empty:before{content:"\e94a"}.icon-star:before{content:"\e94b"}.icon-file-empty:before{content:"\e94c"}.icon-file-text:before{content:"\e94d"}.icon-file-picture:before{content:"\e94e"}.icon-file-zip:before{content:"\e94f"}.icon-file-music:before{content:"\e950"}.icon-file-video:before{content:"\e951"}.icon-file-play:before{content:"\e953"}.icon-file-pdf:before{content:"\e954"}.icon-file-word:before{content:"\e955"}.icon-file-excel:before{content:"\e956"}.icon-file-code:before{content:"\f1c9"}.icon-ellipsis-v:before{content:"\e5d4"}.icon-spinner-indicator:before{content:"\e982"}.icon-text:before{content:"\e929"}.icon-code:before{content:"\e957"}.icon-chevron-double-up:before{content:"\e959"}.icon-chevron-double-down:before{content:"\e95a"}.icon-chart-pie:before{content:"\e95b"}.icon-chart-line:before{content:"\e95c"}.icon-chart-bar:before{content:"\e95d"}.icon-sm:before{font-size:14px;vertical-align:10%}.btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background,border,outline,opacity,-webkit-box-shadow;-o-transition-property:background,border,box-shadow,outline,opacity;transition-property:background,border,outline,opacity,-webkit-box-shadow;transition-property:background,border,box-shadow,outline,opacity;transition-property:background,border,box-shadow,outline,opacity,-webkit-box-shadow}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,.btn:hover{color:#3c4353;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:grayscale(1);-webkit-box-shadow:none;box-shadow:none;opacity:.5;-webkit-filter:grayscale(1)}.btn{color:#3c4353;background-color:#fff;border-color:#d9e0e7}.btn.active,.btn.hover,.btn:active,.btn:focus,.btn:hover,.open .dropdown-toggle.btn{color:#3c4353;background-color:rgba(255,255,255,.8);border-color:#bac7d3}.btn.active,.btn:active,.open .dropdown-toggle.btn{background-color:#e6e6e6;background-image:none;border-color:#bac7d3}.btn.disabled,.btn.disabled.active,.btn.disabled:active,.btn.disabled:focus,.btn.disabled:hover,.btn[disabled],.btn[disabled].active,.btn[disabled]:active,.btn[disabled]:focus,.btn[disabled]:hover,fieldset[disabled] .btn,fieldset[disabled] .btn.active,fieldset[disabled] .btn:active,fieldset[disabled] .btn:focus,fieldset[disabled] .btn:hover{color:rgba(60,67,83,.3);background-color:#fff;border-color:#d9e0e7}.btn-gray{color:#82899f;background-color:#f1f1f1;border-color:#f1f1f1}.btn-gray.active,.btn-gray.hover,.btn-gray:active,.btn-gray:focus,.btn-gray:hover,.open .dropdown-toggle.btn-gray{color:#82899f;background-color:rgba(241,241,241,.8);border-color:#d8d8d8}.btn-gray.active,.btn-gray:active,.open .dropdown-toggle.btn-gray{background-color:#d8d8d8;background-image:none;border-color:#d8d8d8}.btn-gray.disabled,.btn-gray.disabled.active,.btn-gray.disabled:active,.btn-gray.disabled:focus,.btn-gray.disabled:hover,.btn-gray[disabled],.btn-gray[disabled].active,.btn-gray[disabled]:active,.btn-gray[disabled]:focus,.btn-gray[disabled]:hover,fieldset[disabled] .btn-gray,fieldset[disabled] .btn-gray.active,fieldset[disabled] .btn-gray:active,fieldset[disabled] .btn-gray:focus,fieldset[disabled] .btn-gray:hover{color:rgba(130,137,159,.3);background-color:#f1f1f1;border-color:#f1f1f1}.btn-primary{color:#fff;background-color:#006af1;border-color:transparent}.btn-primary.active,.btn-primary.hover,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{color:#fff;background-color:rgba(0,106,241,.8);border-color:rgba(0,0,0,0)}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-color:#0054be;background-image:none;border-color:rgba(0,0,0,0)}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{color:rgba(255,255,255,.3);background-color:#006af1;border-color:transparent}.btn-secondary{color:#fff;background-color:#00a9fc;border-color:transparent}.btn-secondary.active,.btn-secondary.hover,.btn-secondary:active,.btn-secondary:focus,.btn-secondary:hover,.open .dropdown-toggle.btn-secondary{color:#fff;background-color:rgba(0,169,252,.8);border-color:rgba(0,0,0,0)}.btn-secondary.active,.btn-secondary:active,.open .dropdown-toggle.btn-secondary{background-color:#0087c9;background-image:none;border-color:rgba(0,0,0,0)}.btn-secondary.disabled,.btn-secondary.disabled.active,.btn-secondary.disabled:active,.btn-secondary.disabled:focus,.btn-secondary.disabled:hover,.btn-secondary[disabled],.btn-secondary[disabled].active,.btn-secondary[disabled]:active,.btn-secondary[disabled]:focus,.btn-secondary[disabled]:hover,fieldset[disabled] .btn-secondary,fieldset[disabled] .btn-secondary.active,fieldset[disabled] .btn-secondary:active,fieldset[disabled] .btn-secondary:focus,fieldset[disabled] .btn-secondary:hover{color:rgba(255,255,255,.3);background-color:#00a9fc;border-color:transparent}.btn-warning{color:#fff;background-color:#fdc137;border-color:transparent}.btn-warning.active,.btn-warning.hover,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .dropdown-toggle.btn-warning{color:#fff;background-color:rgba(253,193,55,.8);border-color:rgba(0,0,0,0)}.btn-warning.active,.btn-warning:active,.open .dropdown-toggle.btn-warning{background-color:#fcb105;background-image:none;border-color:rgba(0,0,0,0)}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{color:rgba(255,255,255,.3);background-color:#fdc137;border-color:transparent}.btn-danger{color:#fff;background-color:#ff5d5d;border-color:transparent}.btn-danger.active,.btn-danger.hover,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{color:#fff;background-color:rgba(255,93,93,.8);border-color:rgba(0,0,0,0)}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-color:#ff2a2a;background-image:none;border-color:rgba(0,0,0,0)}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{color:rgba(255,255,255,.3);background-color:#ff5d5d;border-color:transparent}.btn-success{color:#fff;background-color:#00da88;border-color:transparent}.btn-success.active,.btn-success.hover,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .dropdown-toggle.btn-success{color:#fff;background-color:rgba(0,218,136,.8);border-color:rgba(0,0,0,0)}.btn-success.active,.btn-success:active,.open .dropdown-toggle.btn-success{background-color:#00a768;background-image:none;border-color:rgba(0,0,0,0)}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{color:rgba(255,255,255,.3);background-color:#00da88;border-color:transparent}.btn-info{color:#006af1;background-color:#e9f2fb;border-color:transparent}.btn-info.active,.btn-info.hover,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .dropdown-toggle.btn-info{color:#006af1;background-color:rgba(233,242,251,.8);border-color:rgba(0,0,0,0)}.btn-info.active,.btn-info:active,.open .dropdown-toggle.btn-info{background-color:#bed8f3;background-image:none;border-color:rgba(0,0,0,0)}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{color:rgba(0,106,241,.3);background-color:#e9f2fb;border-color:transparent}.btn-link{padding-right:6px;padding-left:6px;font-weight:400;color:#838a9d;text-shadow:none;cursor:pointer;background:0 0;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover,.btn-link[disabled],fieldset[disabled] .btn-link{border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link:focus,.btn-link:hover{color:#3c4353;background-color:#f1f1f1}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#cbd0db;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.25;border-radius:4px}.btn-mini,.btn-sm,.btn-xs{padding:2px 8px;font-size:12px;line-height:1.5;border-radius:4px}.btn-mini,.btn-xs{padding:0 5px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn-wide{min-width:120px}.btn-limit{max-width:150px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-limit>.caret{position:absolute;top:14px;right:8px}.btn-circle{border-radius:17px}.btn>.label-icon{top:3px;padding:3px;margin:-2px;background-color:rgba(0,0,0,.1);border-radius:12px}.btn>.label-icon>.icon{font-size:16px;line-height:18px}.btn>.icon+.text{margin-left:5px}.btn.btn-sm.btn-circle{border-radius:12px}.btn.btn-sm>.label-icon{top:1px;width:20px;height:20px;padding:1px;line-height:20px}.btn.btn-sm>.label-icon>.icon{font-size:14px}.btn-icon-left{position:relative;padding-left:35px;text-align:right}.btn-icon-left>.label-icon{position:absolute;left:5px;margin:0}.btn-icon-right{position:relative;padding-right:35px;text-align:left}.btn-icon-right>.label-icon{position:absolute;right:5px;margin:0}.btn-icon{min-width:30px;padding-right:0;padding-left:0}.btn-icon.btn-sm{width:24px;min-width:24px;height:24px}.btn-group{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group>.btn-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.dropdown{float:left;margin-right:10px}.btn-toolbar>.btn-group:last-child,.btn-toolbar>.btn:last-child,.btn-toolbar>.dropdown:last-child{margin-right:0}.btn-toolbar .divider{float:left;height:20px;margin:7px 5px 4px 10px;border-left:1px solid rgba(0,0,0,.05)}.btn-toolbar .space{float:left;min-height:1px;margin:0 10px 0 10px}.btn-toolbar .input-control{float:left}.btn-toolbar .page-title{float:left;margin-left:15px;line-height:34px}.btn-toolbar .page-title .text{font-size:18px}.btn-toolbar .page-title .label{top:-3px;margin-right:10px}.btn-active-line{position:relative;font-weight:700;color:#006af1}.btn-active-line:after{position:absolute;right:5px;bottom:1px;left:5px;display:block;content:' ';border-bottom:2px solid #006af1}.btn-active-line:hover{color:#006af1}.btn-active-text .text{position:relative;display:inline-block;font-weight:700;color:#006af1}.btn-active-text .text:after{position:absolute;bottom:-5px;display:block;width:100%;content:' ';border-bottom:2px solid #006af1}.angle-btn{position:relative;padding:1px;border:1px solid #d9e0e7;border-right:none;border-radius:3px 0 0 3px}.angle-btn:after,.angle-btn:before{position:absolute;top:-1px;right:-8px;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #d9e0e7;border-style:solid;border-width:17px 0 17px 8px}.angle-btn:after{right:-7px;border-color:transparent transparent transparent #fff;border-width:17px 0 17px 8px}.angle-btn .btn{color:#838a9d;border:none;border-radius:4px!important}.angle-btn+.angle-btn{border-left:none}.angle-btn+.angle-btn>.btn-group:first-child{padding-left:8px}.angle-btn+.angle-btn>.btn-group:first-child:after,.angle-btn+.angle-btn>.btn-group:first-child:before{position:absolute;top:-1px;left:0;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #d9e0e7;border-style:solid;border-width:17px 0 17px 8px}.angle-btn+.angle-btn>.btn-group:first-child:after{left:-1px;border-color:transparent transparent transparent #fff;border-width:17px 0 17px 8px}.label{position:relative;display:inline-block;padding:3px 5px;font-size:12px;font-weight:400;border-radius:2px}.label+.label{margin-left:4px}.label-pale{background:#e9f2fb}.label-badge{border-radius:9px}.label-outline.label-danger{color:#ff5d5d;background:#ffe5e0;border-color:rgba(255,93,93,.25)}.label-outline.label-light{color:#838a9d;background:#f2f5fb;border-color:#e1e5ee}.label-outline.label-primary{background:#e9f2fb;border-color:rgba(0,106,241,.25)}.label-outline.label-success{background:#ddf4df;border-color:rgba(0,218,136,.25)}.label-light{color:#838a9d;background-color:#e7e7e7}.label-dot{position:relative;top:-1px;padding:0;border-radius:50%}.label-dot+.status-text{display:inline-block;margin-left:5px}.label-icon{min-width:18px;padding:0;line-height:18px;border-radius:10px}.label-id{display:inline-block;min-width:30px;padding:0 5px;font-size:12px;line-height:16px;color:#838a9d;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid #cbd0db;border-radius:2px}.pri-1,.todo-pri-1{color:#ff5d5d}.project-status-delayed,.status-delayed{color:#ff5d5d}.project-status-delayed>.label-dot,.status-delayed>.label-dot{background-color:#ff5d5d}.project-status-wait,.status-wait{color:#a6aab8}.project-status-wait>.label-dot,.status-wait>.label-dot{background-color:#7ec5ff}.project-status-doing,.status-active,.status-doing,.status-unclosed{color:#a6aab8}.project-status-doing>.label-dot,.status-active>.label-dot,.status-doing>.label-dot,.status-unclosed>.label-dot{background-color:#006af1}.project-status-done,.status-done{color:#a6aab8}.project-status-done>.label-dot,.status-done>.label-dot{background-color:#00da88}.status-postpone{color:#a6aab8}.status-postpone>.label-dot{background-color:#ff5d5d}.status-changed{color:#ff5d5d}.status-changed>.label-dot{background-color:#ff5d5d}.project-status-suspended,.status-suspended{color:#fdc137}.project-status-suspended>.label-dot,.status-suspended>.label-dot{background-color:#fdc137}.status-draft{color:#a6aab8}.status-draft>.label-dot{background-color:#8666b8}.status-closed{color:#a6aab8}.status-closed>.label-dot{background-color:#a6aab8}.label-pri{display:inline-block;min-width:20px;height:20px;line-height:20px;color:#a6aab8;text-align:center;background-color:#f0f2f5;border-radius:10px}.label-pri-1{color:#fff;background:#51a1ff}.label-pri-2{color:#fff;background:#72b3ff}.label-pri-3{color:#fff;background:#98c8ff}.label-pri-4{color:#fff;background:#c4dfff}.label-level{position:relative;display:inline-block;width:24px;height:20px;text-align:center}.label-level:before{position:absolute;top:-3px;left:0;z-index:0;font-family:ZentaoIcon;font-size:18px;font-size:24px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;color:#f0f2f5;text-transform:none;content:"\e902";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.label-level:after{position:relative;top:1px;z-index:1;display:inline-block;font-size:12px;line-height:18px;color:#fff;content:attr(data-level)}.label-level[data-level="1"]:before{color:#f65f28}.label-level[data-level="2"]:before{color:#f86e29}.label-level[data-level="3"]:before{color:#f77036}.label-level[data-level="4"]:before{color:#f7824c}.label-level[data-level="5"]:before{color:#fe9527}.label-level[data-level="6"]:before{color:#fea429}.task-status-wait{color:#a6aab8}.task-status-wait>.label-dot{background-color:#7ec5ff}.task-status-doing{color:#a6aab8}.task-status-doing>.label-dot{background-color:#006af1}.task-status-done{color:#a6aab8}.task-status-done>.label-dot{background-color:#00da88}.story-status-draft{color:#7ec5ff}.story-status-draft>.label-dot{background-color:#7ec5ff}.story-status-active{color:#a6aab8}.story-status-active>.label-dot{background-color:#006af1}.story-status-changed{color:#ff5d5d}.story-status-changed>.label-dot{background-color:#ff5d5d}.story-status-closed{color:#a6aab8}.bug-status-active{color:#a6aab8}.bug-status-active>.label-dot{background-color:#006af1}.bug-status-resolved,.status-resolved{color:#a6aab8}.bug-status-resolved>.label-dot,.status-resolved>.label-dot{background-color:#00da88}.bug-status-closed{color:#a6aab8}.checkbox-primary,.radio-primary{position:relative;display:block;vertical-align:middle}.checkbox-primary.inline-block,.radio-primary.inline-block{display:inline-block}.checkbox-primary.inline-block+.inline-block,.radio-primary.inline-block+.inline-block{margin-left:15px}.checkbox-primary>input,.radio-primary>input{position:absolute;top:0;left:0;z-index:3;width:100%;height:100%;margin:0;opacity:0}.checkbox-primary>label,.radio-primary>label{display:block;height:20px;padding-left:30px;margin:0;font-weight:400;cursor:pointer}.checkbox-primary>label:after,.checkbox-primary>label:before,.radio-primary>label:after,.radio-primary>label:before{position:absolute;top:0;right:0;left:0;display:block;width:20px;height:20px;line-height:20px;text-align:center;content:' ';border-radius:4px}.checkbox-primary>label:after,.radio-primary>label:after{z-index:1;border:2px solid #eee;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:border,background-color;-o-transition-property:border,background-color;transition-property:border,background-color}.checkbox-primary>label:before,.radio-primary>label:before{top:3px;z-index:2;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-weight:900;font-variant:normal;line-height:1;text-transform:none;content:"\e5ca";opacity:0;-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:opacity,-webkit-transform;-o-transition-property:opacity,-o-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform,-o-transform;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.checkbox-primary.checked>label:after,.checkbox-primary>input:checked+label:after,.radio-primary.checked>label:after,.radio-primary>input:checked+label:after{background-color:#00da88;border-color:#00da88;border-width:4px}.checkbox-primary.checked>label:before,.checkbox-primary>input:checked+label:before,.radio-primary.checked>label:before,.radio-primary>input:checked+label:before{color:#fff;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.checkbox-primary.focus>label:after,.checkbox-primary>input:focus+label:after,.radio-primary.focus>label:after,.radio-primary>input:focus+label:after{border-color:#00da88;-webkit-box-shadow:0 0 0 3px rgba(0,218,136,.2);box-shadow:0 0 0 3px rgba(0,218,136,.2)}.checkbox-primary input:disabled+label:after,.checkbox-primary.disabled>label:after,.radio-primary input:disabled+label:after,.radio-primary.disabled>label:after{background-color:#e5e5e5;border-color:#bbb}.checkbox-primary input:disabled:checked+label:after,.checkbox-primary.checked.disabled>label:after,.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after{background-color:#bbb}.checkbox-primary:hover>label:after,.radio-primary:hover>label:after{border-color:#00da88}.checkbox-primary.checkbox-right>label,.radio-primary.checkbox-right>label{padding:0 30px 0 0}.checkbox-primary.checkbox-right>label:after,.checkbox-primary.checkbox-right>label:before,.radio-primary.checkbox-right>label:after,.radio-primary.checkbox-right>label:before{right:0;left:auto}.radio-primary>label:after{border-radius:50%}.radio-primary>label:before{top:6px;left:6px;width:8px;height:8px;content:' ';border:none;border-radius:50%}.radio-primary.checked>label:after,.radio-primary>input:checked+label:after{background-color:transparent;border-color:#00da88;border-width:2px}.radio-primary.checked>label:before,.radio-primary>input:checked+label:before{background-color:#00da88}.radio-primary input:disabled:checked+label:after,.radio-primary.checked.disabled>label:after{background-color:transparent;border-color:#bbb}.radio-primary input:disabled:checked+label:before,.radio-primary.checked.disabled>label:before{background-color:#bbb}.panel{position:relative;margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:20px}.panel-body.has-table{padding:10px}.panel-body.has-table .table{margin-bottom:0}.panel-heading{padding:18px 20px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading+.panel-body{padding-top:0}.panel-title{font-size:16px;font-weight:700;line-height:20px}.panel-title .label{top:-1px}.panel-actions{position:absolute;top:0;right:0;z-index:10;padding:13px 10px}.panel-actions>li>a{display:inline-block;min-width:30px;padding:0 5px;line-height:30px;color:#cbd0db}.panel-actions>li>a:hover{color:#a6aab8;text-decoration:initial;background-color:#f1f1f1}.panel-actions .btn-icon{color:#cbd0db}.progress-text-left{position:relative;margin:7px 0;margin-left:35px;overflow:visible}.progress-text-left .progress-text{position:absolute;top:-7px;left:-35px;display:block;width:35px;height:20px;padding-right:5px;line-height:20px;color:#a6aab8;text-align:right}.chart-color{width:20px}.chart-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.chart-row{margin-top:10px}.chart-row+.chart-row{padding-top:10px;border-top:1px solid #eee}.chart-wrapper{padding:10px 5px;background:#eee}.chart-wrapper>h4{margin:5px 0 10px}.table-wrapper{max-height:250px;overflow:auto}.table-wrapper .table{margin:0}.progress-pie{position:relative}.progress-pie .progress-info{position:absolute;top:0;left:0;width:100%;height:100%;padding-top:25px;text-align:center}.progress-pie .progress-info>small{display:block;line-height:14px;color:#a6aab8}.progress-pie .progress-info>strong{display:block;font-size:36px;line-height:40px}.progress-pie .progress-info>strong>small{font-size:20px}.progress-pie canvas[width="120"]+.progress-info{padding-top:30px}.progress-pie canvas[width="120"]+.progress-info>small{line-height:18px}.status-bars{display:table;height:140px;padding:5px;margin:0;overflow:hidden}.status-bars>li{display:table-cell;padding-top:40px;text-align:center;vertical-align:bottom}.status-bars .bar{position:relative;display:inline-block;width:10px;background:#006af1;border-radius:5px 5px 0 0}.status-bars .bar:after{position:absolute;right:-50px;bottom:0;left:-50px;display:block;height:1px;content:' ';background:#eee}.status-bars .title,.status-bars .value{display:inline-block;width:100%;font-size:16px;font-weight:700;text-align:center}.status-bars .title{font-size:12px;font-weight:400;color:#a6a8b6}.messager{border-radius:4px;-webkit-box-shadow:0 4px 16px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.1);box-shadow:0 4px 16px rgba(0,0,0,.2),0 2px 8px rgba(0,0,0,.1)}.messager-content{padding:18px 20px;font-size:18px;line-height:30px}.messager-content>.icon{font-size:28px;line-height:30px}.messager-actions{vertical-align:middle}.messagger-zt{color:#3c4353;background-color:#fff}.messagger-zt .messager-content>.icon{color:#006af1}.messagger-zt .messager-actions>.action{color:#a6aab8}.messagger-zt.messager-success .messager-content>.icon{color:#00da88}.messagger-zt.messager-danger .messager-content>.icon{color:#ff5d5d}.messagger-zt.messager-warning .messager-content>.icon{color:#fdc137}.messagger-zt.messager-info .messager-content>.icon{color:#7ec5ff}.tree{padding-left:0}.tree ul{position:relative;display:none;padding-left:0}.tree li{position:relative;padding:2px 0 2px 18px;list-style:none}.tree li.heading{padding-left:5px;color:#838a9d}.tree li>a{display:block;width:100%;max-width:100px;padding:2px 6px;overflow:hidden;color:#838a9d;text-overflow:ellipsis;white-space:nowrap}.tree li>a:hover{color:#3c4353;background-color:#f0f2f5}.tree li.active>a{color:#006af1;background-color:#e9f2fb}.tree li>.list-toggle{position:absolute;top:2px;left:1px;z-index:10;width:20px;font-size:14px;line-height:24px;color:#cbd0db;text-align:center;cursor:pointer;-webkit-transition:all .2s;-o-transition:all .2s;transition:all .2s}.tree li>.list-toggle:before{content:"\f0da"}.tree li>.list-toggle:active,.tree li>.list-toggle:hover{color:#006af1}.tree li.open>ul{display:block}.tree li.open>.list-toggle{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.tree-actions{display:inline-block;margin-left:5px;vertical-align:middle}.tree-actions a{display:inline-block;margin-left:5px;font-size:13px;opacity:.6}.tree-actions a:hover{opacity:1}.tree li>.module-name{display:inline-block;max-width:100px;overflow:hidden;color:#838a9d;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.tree li>.module-name>a{display:inline-block;padding:2px 6px;color:#838a9d}.tree li>.module-name:hover{background-color:#f0f2f5}.tree li>.module-name:hover>a{color:#3c4353}.dropdown-menu{padding:5px 0;border-color:rgba(0,0,0,.1)}.dropdown-menu>li{padding:0 10px}.dropdown-menu>li>a{padding:2px 10px;margin:5px 0;border-radius:3px}.dropdown-menu>li>a>.icon{position:relative;left:-5px;opacity:.5}.dropdown-menu>li.active>a,.dropdown-menu>li.selected>a{position:relative;color:#fff;background-color:#00a9fc}.dropdown-menu>li.selected>a:after{position:absolute;top:2px;right:4px;display:block;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:20px;text-transform:none;content:"\e5ca";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dropdown-menu>li.divider{margin:10px}.dropdown-submenu>a:after{margin-right:-5px}.dropdown-submenu>.dropdown-menu.pull-left{margin-left:-1px}.dropdown-submenu:focus>a,.dropdown-submenu:hover>a{color:#3c4353;background-color:#e9f2fb}.dropdown-submenu:hover>a:after{border-left-color:#006af1}.dropdown-submenu>a:hover:after{border-left-color:#fff}.pager .btn{padding:3px 10px}.pager .btn .caret{opacity:.3}.pager>li>.pager-label{padding:3px 4px}.pager>li>.pager-item{min-width:24px;padding:1px 3px;margin:2px;font-size:16px;line-height:20px;text-align:center;background:0 0;border-color:transparent;border-radius:50%}.pager>li>.pager-item:hover{background-color:rgba(0,0,0,.1)}.pager>li.disabled>a.pager-item{background:0 0;border-color:transparent}.pager>li.pager-item-left>.pager-item,.pager>li.pager-item-right>.pager-item{min-width:28px;padding:3px 4px;border-color:#d9e0e7!important;border-radius:2px!important}.pager>li.active>a{background-color:#00a9fc}.pager>li.pager-item-left>.pager-item{margin:0 5px 0 15px}.pager>li.pager-item-right>.pager-item{margin:0 0 0 5px}.pager .dropdown-menu{width:200px}.pager .dropdown-menu>li{float:left;width:33.333333%}.modal-dialog{max-width:1360px;border:none;-webkit-box-shadow:0 0 20px 0 rgba(0,0,0,.25);box-shadow:0 0 20px 0 rgba(0,0,0,.25)}.modal-header{padding:20px 0;margin:0 20px}.modal-header>.close{color:#838a9d;opacity:1}.modal-header>.close:hover{color:#3c4353}.modal-footer{padding:20px 0;margin:0 20px}.modal-title{font-size:18px;font-weight:400}.modal-actions{position:absolute;top:16px;right:16px}.modal-actions .divider{position:relative;top:5px;display:inline-block;width:0;height:20px;margin:0 10px;border-left:#eee 1px solid}.modal-actions>.dropdown{display:inline-block}.modal-body{padding:20px}.modal.fade .modal-dialog{-webkit-transform:translate(0,-3%);-ms-transform:translate(0,-3%);-o-transform:translate(0,-3%);transform:translate(0,-3%)}.modal.fade.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-simple .modal-footer{padding-top:0;border-top:none}.tile{text-align:center}.tile-title{line-height:20px;color:#838a9d}.tile-amount{font-size:32px;font-weight:700;line-height:56px}.timeline>li{position:relative;list-style:none}.timeline>li:before,.timeline>li>a:after,.timeline>li>div:after{position:absolute;left:-20px;display:block;width:15px;height:15px;content:' ';border-radius:50%}.timeline>li:before{top:14px;left:-16px;z-index:3;width:7px;height:7px;background-color:#cbd0db;border:none;border:1px solid #cbd0db}.timeline>li>a:after,.timeline>li>div:after{top:13px;left:-17px;z-index:3;width:9px;height:9px;background-color:#006af1;border-radius:50%;opacity:0}.timeline>li+li:after{position:absolute;top:-12px;bottom:20px;left:-13px;z-index:1;display:block;content:' ';border-left:1px solid #eee}.timeline>li.active>a:after,.timeline>li.active>div:after{opacity:1}.timeline>li.active:before{top:10px;left:-20px;width:15px;height:15px;background-color:rgba(0,106,241,.2);border:none}.timeline>li>a,.timeline>li>div{display:block;padding:5px;line-height:24px;color:#a6aab8}.timeline>li.active>a{color:#3c4353}.timeline-tag{position:absolute;top:5px;left:-115px;font-size:12px}.timeline-tag-left{padding-left:115px}.timeline-sm{font-size:12px}.timeline-sm>li:before,.timeline-sm>li>a:after,.timeline-sm>li>div:after{top:10px;left:-20px;width:11px;height:11px}.timeline-sm>li.active:before,.timeline-sm>li:before{top:10px;left:-18px;width:11px;height:11px;background:0 0;border:1px solid #eee}.timeline-sm>li>a,.timeline-sm>li>div{line-height:20px}.timeline-sm>li>a:after,.timeline-sm>li>div:after{top:13px;left:-15px;width:5px;height:5px}.form-control{-webkit-box-shadow:none;box-shadow:none}.form-horizontal .form-group>label{padding-right:0}.form-actions{margin-top:20px;margin-bottom:0}form label{font-weight:400;color:#838a9d}.form-group .btn+.btn{margin-left:5px}.table-form{margin-bottom:0;table-layout:fixed}.table-form>thead>tr>th.required{padding-left:18px}.table-form>thead>tr>th.required:after{top:7px;right:auto;left:5px}.table-form>tbody>tr>td,.table-form>tbody>tr>th,.table-form>tfoot>tr>td,.table-form>thead>tr>th{padding:7px 5px;vertical-align:middle;border-bottom:none}.table-form>tfoot>tr>td{padding:20px 7px 10px}.table-form>tbody>tr>th{width:100px;padding-top:12px;color:#838a9d;text-align:right;vertical-align:top}.table-form .input-group{width:100%}.chosen-container-single .chosen-single div b{color:#cbd0db}.chosen-container-single .chosen-search:before{top:8px}.chosen-container-single .chosen-search input[type=text]{border-radius:14px}.datetimepicker{padding:10px}.datetimepicker td.day.today{background-color:#ff5d5d}.datetimepicker td,.datetimepicker th{border-radius:13px}.datetimepicker tfoot th,.datetimepicker thead th{color:#a6aab8}.input-control .colorpicker{top:0;z-index:auto;opacity:1}.input-control .colorpicker .btn{padding:5px}.colorpicker .dropdown-menu{min-width:232px;padding:5px 10px 10px 10px}.colorpicker .dropdown-menu>li{display:block;float:left;padding:5px}.colorpicker .dropdown-menu>li.heading{width:100%;margin-bottom:5px;font-size:16px;font-weight:700;text-align:left}.colorpicker .dropdown-menu>li.heading>.icon-close{position:relative;top:4px;float:right;cursor:pointer;opacity:.6}.colorpicker .dropdown-menu>li>a{position:relative;display:block;width:100%;height:100%;padding:0;margin:0;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-align:center;text-transform:none;border:1px solid transparent;border-radius:50%;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.colorpicker .dropdown-menu>li>a:before{position:absolute;top:0;display:block;width:100%;height:20px;line-height:18px}.colorpicker .dropdown-menu>li>a:hover{-webkit-box-shadow:0 1px 4px rgba(0,0,0,.25);box-shadow:0 1px 4px rgba(0,0,0,.25)}.colorpicker .dropdown-menu>li>a.active:before{font-size:14px;content:"\e5ca"}.colorpicker .dropdown-menu>li>a.empty{color:#666;background:#fff}.colorpicker .dropdown-menu>li>a.empty:before{content:"\e90d"}.colorpicker .btn{position:relative}.colorpicker .btn .color-bar{position:absolute;right:5px;bottom:3px;left:5px;height:3px}.colorpicker .btn .color-bar[style*=background]+.ic{position:relative;top:-2px}.input-group .chosen-container{display:table-cell}.input-group-addon{border-right:none;border-left:none}.input-group-cell{display:table-cell;width:1%;padding:0 12px;white-space:nowrap;vertical-align:middle}.label-selector>.label{display:inline-block;min-width:30px;height:30px;padding:0 5px;font-size:14px;line-height:28px;color:#82899f;text-align:center;cursor:pointer;background:0 0;border:1px solid #82899f;border-radius:15px}.label-selector>.label+.label{margin-left:10px}.label-selector>.label.active{color:#fff;background-color:#00a9fc;border-color:#00a9fc}.label-selector>.label.empty{border-color:transparent}.ke-container{border-color:#e8e9ee!important;border-radius:2px!important}.ke-container.focus{border-color:#006af1!important}.ke-toolbar{border-color:#e8e9ee!important}.required:after{top:6px;font-size:20px}.file-input{position:relative}.file-input .input-group{width:auto}.file-input .input-group>.input-group-cell:first-child{padding-right:0;padding-left:7px}.file-input input[type=file]{position:absolute;width:0;height:0;opacity:0}.file-input .file-title{display:inline-block;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.file-input .file-editbox{min-width:200px;max-width:100%}.edit .file-input-empty,.file-input-edit,.file-input-normal,.normal .file-input-empty{display:none}.edit .file-input-edit,.normal .file-input-normal{display:block}.edit .file-input-edit.input-group,.normal .file-input-normal.input-group{display:table}.edit .file-input-normal{display:none!important}#mainHeader{min-height:66px;color:#fff;background:#00b1fd -webkit-gradient(linear,right top,left top,from(#0072f3),to(#00b1fd));background:#00b1fd -webkit-linear-gradient(right,#0072f3 0,#00b1fd 100%);background:#00b1fd -o-linear-gradient(right,#0072f3 0,#00b1fd 100%);background:#00b1fd linear-gradient(-90deg,#0072f3 0,#00b1fd 100%)}#mainHeader>.container{padding:0}#heading{position:absolute;top:18px;left:10px}#heading h1{float:left;max-width:240px;margin:0;overflow:hidden;font-size:20px;font-weight:400;line-height:30px;text-overflow:ellipsis;white-space:nowrap}#heading h1 a{color:inherit;text-decoration:inherit}#heading .btn{display:block;float:left;height:20px;padding:1px 5px;margin:0;margin:5px 0 0 10px;font-size:12px;font-weight:lighter;line-height:18px;background-color:rgba(255,255,255,.2);border:none}#heading .btn:hover{background-color:rgba(0,0,0,.1)}#navbar{margin:12px auto 0;font-size:16px;text-align:center}#navbar .nav{display:inline-block}#navbar .nav>li>a{line-height:24px;color:#fff;opacity:.75}@media (max-width:1380px){#navbar .nav>li>a{padding:8px 10px}}@media (max-width:992px){#navbar .nav>li>a{padding:5px 10px}}#navbar .nav>li>a:hover{background-color:rgba(0,0,0,.1);opacity:1}#navbar .nav>li.active>a{opacity:1}#navbar .nav>li.divider{display:block;width:2px;height:20px;margin:9px 15px;background-color:rgba(255,255,255,.4)}#toolbar{position:absolute;top:0;right:10px;padding:10px 0;font-size:12px;color:#fff}#extraNav{text-align:right}#extraNav>li{display:inline-block;float:none;text-align:left}#extraNav>li>a{display:block;padding:0;color:#fff;opacity:.75}#extraNav>li>a:hover{text-decoration:unset;background-color:rgba(0,0,0,.1);opacity:1}#extraNav>li.open>a{background-color:rgba(0,0,0,.1)}#extraNav>li+li{margin-left:10px}#userMenu{margin-top:5px}#searchbox{position:relative;float:left;width:150px}#searchbox .input-group-btn .btn{position:relative;padding:1px 4px 1px 8px;font-size:12px;line-height:20px;color:#fff;background-color:rgba(255,255,255,.15);border-right:none;border-radius:12px 0 0 12px}#searchbox .input-group-btn .btn:after{position:absolute;top:3px;right:-1px;bottom:3px;display:block;width:1px;content:' ';background-color:rgba(255,255,255,.15)}#searchbox .input-group-btn .btn:hover{background-color:rgba(255,255,255,.25)}#searchGo{position:absolute;top:0;right:-1px;z-index:10;min-width:24px;height:24px;padding:2px 3px;font-size:12px;line-height:20px;color:#fff;background-color:#52b3fd;border-radius:12px}#searchGo:hover{color:#fff!important;background-color:#006af1}#searchInput{height:24px;padding:2px 30px 2px 5px;color:#fff;text-align:left;background:rgba(255,255,255,.15);border-color:transparent;border-radius:0 12px 12px 0;-webkit-transition:background .2s,border .2s;-o-transition:background .2s,border .2s;transition:background .2s,border .2s}#searchInput:hover{background:rgba(255,255,255,.25)}#searchInput:focus{color:#333;background:#fff}#searchInput::-webkit-input-placeholder{font-size:12px;color:#6bcbff}#searchInput::-moz-placeholder{font-size:12px;color:#6bcbff}#searchInput:-ms-input-placeholder{font-size:12px;color:#6bcbff}#searchInput::placeholder{font-size:12px;color:#6bcbff}#searchTypeMenu{min-width:220px}#searchTypeMenu>li{float:left;width:50%}#searchTypeMenu>li>a{margin:4px 0}#userNav{float:right;margin:0 -6px 0 10px}#userNav .avatar{display:inline-block;vertical-align:middle}#userNav>li>a{padding:2px 6px;margin-left:3px;line-height:20px;color:#fff;opacity:.9}#userNav>li>a:hover{background-color:rgba(0,0,0,.1);opacity:1}#userNav>li>a span{display:inline-block;vertical-align:middle}#userNav>li.open>a{background-color:rgba(0,0,0,.1)}#userNav>li.has-new-items>a{position:relative}#userNav>li.has-new-items>a:before{position:absolute;top:3px;right:-1px;display:block;width:4px;height:4px;content:' ';background-color:#ff5d5d;border-radius:50%}#userNav .dropdown-menu{min-width:150px}#userNav .dropdown-menu>li>a>.icon{position:absolute;top:10px;right:5px;display:block;width:20px;height:20px;line-height:20px;text-align:center}#userNav .user-profile-item>a{position:relative;padding-left:45px}#userNav .user-profile-item .avatar{position:absolute;top:6px;left:5px}#userNav .user-profile-name{font-size:16px}#userNav .user-profile-role{font-size:12px;color:#a9abb8}#subHeader{min-height:54px;background:#fff}#pageNav{position:absolute;top:9px;left:0;left:10px}#subNavbar{margin-top:7px;font-size:16px;text-align:center}#subNavbar .nav{display:inline-block}#subNavbar .nav>li>a{line-height:24px;color:#838a9d}#subNavbar .nav>li>a:hover{color:#838a9d;background-color:rgba(0,0,0,.05)}#subNavbar .nav>li.active>a{color:#006af1}#subNavbar .nav>li.divider{display:block;width:2px;height:20px;margin:9px 15px;background-color:rgba(0,0,0,.05)}#pageActions{position:absolute;top:11px;right:10px}@media (max-width:1200px){#navbar{margin-top:45px}#heading{top:8px}#extraNav{float:right;margin:5px 0 0 15px}#userMenu{float:left;margin:0}}@media (max-width:750px){#extraNav{display:none}}@media (max-width:650px){#heading>h1{font-size:18px}#searchbox{display:none}#navbar .nav>li>a{padding:5px 6px;font-size:15px}#navbar .nav>li.divider{height:16px}}@media (max-width:500px){#navbar{padding-top:5px;margin-top:75px;background-color:rgba(0,0,0,.1)}#toolbar{top:35px;right:auto;left:-10px}#navbar .nav>li.divider{width:100%;height:1px;margin:0;background:0 0}}#main{padding:20px 0}#mainMenu{margin:-8px 0 10px}.main-content{padding:20px;background-color:#fff;border-radius:4px}@media (min-width:1100px){.main-content>.center-block{max-width:1002px;padding:20px;border:1px solid #eee}.main-content>.center-block .main-header{background-color:#f1f1f1}}.main-content>h2{margin:0 0 20px}.main-header{padding:12px 20px;border-bottom:1px solid #eee}.main-header>h2{display:inline-block;margin:0;font-size:20px;line-height:34px}.main-content .main-header{margin:-20px -20px 10px}.main-row{display:table;width:100%;table-layout:fixed}.main-row>*{display:table-cell;vertical-align:top}@media (max-width:720px){.main-row{display:block}.main-row>*{display:block}.main-row .side-col{width:100%;padding:0}.main-row .main-col+.side-col,.main-row .side-col+.main-col{margin-top:10px}}.cell{padding:10px;background-color:#fff;border-radius:4px}.cell+.cell{margin-top:10px}.cell>.panel{margin:0;-webkit-box-shadow:none;box-shadow:none}.cell>.panel>.panel-heading{padding:5px 5px 10px}.cell>.panel>.panel-heading .panel-actions{padding:0}.cell>.panel>.panel-body{padding:5px}.cell>.table{margin:0}@media (min-width:720px){.main-form{padding-right:40px}}#mainActions{position:fixed;top:0;right:0;bottom:0;left:0;text-align:center;pointer-events:none}#mainActions .btn-toolbar{position:relative;top:-82px;display:inline-block;padding:4px 15px;color:#fff;pointer-events:auto;background-color:rgba(0,0,0,.7);border-radius:4px}#mainActions .btn-toolbar .divider{margin-right:15px;margin-left:15px;border-color:rgba(255,255,255,.1)}#mainActions .btn-toolbar .btn{padding-right:10px;padding-left:10px;margin-right:0;color:#fff;background-color:transparent;border:none}#mainActions .btn-toolbar .btn+.btn{margin-left:10px}#mainActions .btn-toolbar .btn:focus,#mainActions .btn-toolbar .btn:hover{background-color:rgba(255,255,255,.2)}#mainActions .btn-toolbar .btn.btn-icon{min-width:32px;padding-right:0;padding-left:0}#mainActions .dropdown-menu{text-align:left}#mainActions>.container{height:100%}#nextPage,#prevPage{position:absolute;top:50%;left:-10px;width:40px;height:60px;padding:10px 0;margin-top:-30px;line-height:40px;text-align:center;pointer-events:auto;-webkit-box-shadow:0 2px 15px 2px rgba(0,0,0,.05);box-shadow:0 2px 15px 2px rgba(0,0,0,.05)}#nextPage:hover,#prevPage:hover{-webkit-box-shadow:0 2px 15px 2px rgba(0,0,0,.15);box-shadow:0 2px 15px 2px rgba(0,0,0,.15)}#nextPage>.icon,#prevPage>.icon{display:block;font-size:36px;line-height:36px}#nextPage{right:-10px;left:auto}#sidebarHeader{position:relative;float:left;width:180px;height:34px;padding-left:16px;margin-right:20px;background:#fff}#sidebarHeader:after{position:absolute;top:-1px;right:-8px;display:block;width:0;height:0;content:' ';border-color:transparent transparent transparent #fff;border-style:solid;border-width:18px 0 18px 8px}#sidebarHeader .title{padding:0 5px;overflow:hidden;font-size:16px;line-height:34px;color:#006af1;text-align:center;text-overflow:ellipsis;white-space:nowrap}#sidebarHeader .sidebar-toggle{position:absolute;top:0;left:0;width:18px;min-width:18px;height:100%;border-radius:0}#sidebarHeader .sidebar-toggle .icon{font-size:14px}#sidebar{-webkit-transition:width .2s,padding .2s;-o-transition:width .2s,padding .2s;transition:width .2s,padding .2s}.hide-sidebar #sidebar{width:0;padding:0}#sidebar.showing>.cell,.hide-sidebar #sidebar>.cell{display:none}#queryBox{max-height:0;padding:0;overflow:hidden;-webkit-transition:cubic-bezier(.175,.885,.32,1) .2s;-o-transition:cubic-bezier(.175,.885,.32,1) .2s;transition:cubic-bezier(.175,.885,.32,1) .2s;-webkit-transition-property:padding,max-height,margin;-o-transition-property:padding,max-height,margin;transition-property:padding,max-height,margin}#queryBox>form{visibility:hidden;-webkit-transition:visibility .2s .2s;-o-transition:visibility .2s .2s;transition:visibility .2s .2s}#queryBox.loading{height:50px}#queryBox.show{max-height:300px;margin-bottom:10px;overflow:visible}#queryBox.show>form{visibility:visible}#main .querybox-toggle.querybox-opened{position:relative;color:#006af1}#main .querybox-toggle.querybox-opened:before{position:absolute;bottom:-14px;left:50%;width:0;height:0;content:' ';border-color:transparent transparent #fff transparent;border-style:solid;border-width:0 10px 10px 10px}th.c-id{width:90px}th.c-date{width:100px}th.c-num,th.c-type{width:80px}th.c-pri{width:50px}th.c-begin,th.c-end,th.c-time{width:65px}th.c-hours{width:65px}th.c-actions{width:110px;text-align:center}th.c-actions-2{width:70px;text-align:center}th.c-actions-3{width:156px;text-align:center}th.c-actions-4{width:190px;text-align:center}th.c-product{width:180px}th.c-plan{width:130px}th.c-stage,th.c-status,th.c-user{width:80px}.table-lg th.c-actions{width:135px}.table-lg th.c-actions-2{width:95px}.table-lg th.c-actions-3{width:175px}.table-lg th.c-actions-4{width:215px}.table-lg th.c-stage,.table-lg th.c-status,.table-lg th.c-user{width:100px}td.c-begin,td.c-date,td.c-end,td.c-hours,td.c-plan,td.c-pri,td.c-stage,td.c-time,td.c-type,td.c-user{color:#a6aab8}td.c-name,td.c-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}td.c-actions{position:relative;padding-top:0;padding-bottom:0;vertical-align:middle}td.c-actions .btn{padding:4px 5px;color:#00a9fc;background-color:#e9f2fb;border-color:transparent}td.c-actions .btn .icon{font-size:18px}td.c-actions .btn:hover{color:#006af1;background-color:#d3e5f7}td.c-actions .more{position:absolute;right:100%;display:none;padding-left:20px;margin-right:-5px;white-space:nowrap;background-color:#fafafa}tr:hover td.c-actions .more{display:block}.table tbody>tr>td.has-btn,.table thead>tr>th.has-btn{padding-top:1px;padding-bottom:1px}.table tbody>tr>td .progress,.table thead>tr>th .progress{height:6px}.text-middle td,.text-middle th{vertical-align:middle}.text-center td,.text-center th{text-align:center}.main-table{border-radius:4px}.main-table table{font-size:13px;table-layout:fixed;background-color:#fff}.main-table table.table-lg{font-size:14px}.main-table tbody>tr>td,.main-table thead>tr>th{padding:5px 10px;line-height:30px}.main-table tbody>tr>td:first-child,.main-table thead>tr>th:first-child{padding-left:15px}.main-table thead>tr>th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:2px solid #ecf0f4}.main-table tbody>tr>td{position:relative;border-bottom:none}.main-table tbody>tr>td.c-actions{padding-right:15px}.main-table tbody>tr>td:first-child:before{position:absolute;top:0;bottom:0;left:0;display:block;width:0;content:'';background:#006af1;opacity:0;-webkit-transition:.2s linear;-o-transition:.2s linear;transition:.2s linear;-webkit-transition-property:width,opacity,border-radius;-o-transition-property:width,opacity,border-radius;transition-property:width,opacity,border-radius}.main-table tbody>tr{-webkit-transition:.2s cubic-bezier(.175,.885,.32,1);-o-transition:.2s cubic-bezier(.175,.885,.32,1);transition:.2s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:background-color,-webkit-box-shadow;-o-transition-property:box-shadow,background-color;transition-property:background-color,-webkit-box-shadow;transition-property:box-shadow,background-color;transition-property:box-shadow,background-color,-webkit-box-shadow}.main-table tbody>tr:hover{background-color:#fafafa;-webkit-box-shadow:0 0 4px rgba(0,0,0,.15);box-shadow:0 0 4px rgba(0,0,0,.15)}.main-table tbody>tr.checked{-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked>td:first-child:before{width:4px;opacity:1}.main-table tbody>tr.checked.row-check-begin{border-top-left-radius:4px;border-top-right-radius:2px;-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked.row-check-begin>td:first-child:before{border-top-left-radius:4px}.main-table tbody>tr.checked.row-check-end{border-bottom-right-radius:2px;border-bottom-left-radius:4px;-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05)}.main-table tbody>tr.checked.row-check-end>td:first-child:before{border-bottom-left-radius:4px}.main-table tbody>tr.checked.row-check-end.row-check-begin{-webkit-box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05);box-shadow:1px 0 0 0 rgba(203,208,219,.3),2px 0 0 0 rgba(203,208,219,.15),3px 0 0 0 rgba(203,208,219,.1),4px 0 0 0 rgba(203,208,219,.05),0 1px 0 0 rgba(203,208,219,.3),0 2px 0 0 rgba(203,208,219,.15),0 3px 0 0 rgba(203,208,219,.1),0 4px 0 0 rgba(203,208,219,.05),0 -1px 0 0 rgba(203,208,219,.3),0 -2px 0 0 rgba(203,208,219,.1),0 -3px 0 0 rgba(203,208,219,.15),0 -4px 0 0 rgba(203,208,219,.05)}.main-table .checkbox-primary{display:inline-block;line-height:20px}.main-table .checkbox-primary label{margin:0}.main-table .table{margin:0}.main-table a:focus{text-decoration:underline}.table-header{padding:4px 0 12px}.table-header .table-statistic{color:#c2c6d3}.table-header .table-statistic strong{font-size:15px;color:#3c4353}.table-header .btn-toolbar{margin-top:-28px}.table-footer{padding:6px 15px;color:#fff;background:rgba(0,0,0,.7)}.talbe-lg+.table-footer{padding:11px 15px}.table-footer .btn-toolbar,.table-footer .checkbox-primary{float:left}.table-footer .checkbox-primary{margin:5px 20px 0 0}.table-footer .checkbox-primary label{color:#fff}.table-footer .btn{padding:3px 10px;border-radius:2px}.table-footer .pager{float:right;margin:0}.table-footer .pager>li>.pager-item{color:#fff}.table-footer .pager>li.pager-item-left>.pager-item,.table-footer .pager>li.pager-item-right>.pager-item{color:#595959;background-color:#fff}.table-footer .pager>li.pager-item-left.disabled>.pager-item,.table-footer .pager>li.pager-item-right.disabled>.pager-item{color:#bbb;background-color:#eee}.table-footer .form-control{height:28px;padding:3px 8px}.table-footer .input-control-icon-right{top:0;height:28px;line-height:28px}.table-footer.fixed-footer{position:fixed;z-index:10}.table-footer .table-statistic{float:left;margin-left:20px;line-height:28px}.table-footer .search-list .input-control-icon-left{top:-1px}.table-actions{width:0;height:28px;visibility:hidden;opacity:0;-webkit-transition:opacity cubic-bezier(.175,.885,.32,1) .8s;-o-transition:opacity cubic-bezier(.175,.885,.32,1) .8s;transition:opacity cubic-bezier(.175,.885,.32,1) .8s}.has-row-checked .table-actions{width:auto;visibility:visible;opacity:1}.table-lg tbody>tr>td{padding:9px 10px}.table-lg tbody>tr>td .btn+.btn{margin-left:5px}.table.has-sort-head thead>tr>th>a{position:relative;display:inline-block;padding-right:16px;color:#a6aab8}.table.has-sort-head thead>tr>th>a:after,.table.has-sort-head thead>tr>th>a:before{position:absolute;top:0;right:0;font-family:ZentaoIcon;font-size:18px;font-size:14px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;line-height:30px;color:#a6aab8;text-transform:none;content:"\f0de";opacity:.5;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.table.has-sort-head thead>tr>th>a:after{content:"\f0dd"}.table.has-sort-head thead>tr>th>a.sort-down,.table.has-sort-head thead>tr>th>a.sort-up,.table.has-sort-head thead>tr>th>a:hover{color:#006af1;text-decoration:none}.table.has-sort-head thead>tr>th>a.sort-down:after,.table.has-sort-head thead>tr>th>a.sort-up:before,.table.has-sort-head thead>tr>th>a:hover:after,.table.has-sort-head thead>tr>th>a:hover:before{color:#006af1;opacity:1}.table.fixed-header-copy{z-index:10;color:#fff;background:rgba(0,0,0,.7)}.table.fixed-header-copy thead>tr>th>a{color:#cbd0db}.table.fixed-header-copy thead>tr>th>a:hover{color:#fff}.table.fixed-header-copy thead>tr>th>a.sort-down,.table.fixed-header-copy thead>tr>th>a.sort-down:after,.table.fixed-header-copy thead>tr>th>a.sort-up,.table.fixed-header-copy thead>tr>th>a.sort-up:before,.table.fixed-header-copy thead>tr>th>a:hover,.table.fixed-header-copy thead>tr>th>a:hover:after,.table.fixed-header-copy thead>tr>th>a:hover:before{color:#e9f2fb}.table-data{margin:0}.table-data tbody>tr>td,.table-data tbody>tr>th{padding:6px 8px;border:none}.table-data tbody>tr>th{width:70px;padding-left:0;font-weight:400;color:#838a9d;text-align:right}.table-data tbody>tr>td{padding-right:0}.table-fixed-head{background:#fff}.table-empty-tip{padding:80px 10px;text-align:center;background:#fff}.block-welcome .col-left{width:25%}.block-welcome .col-left>h4{margin:5px 0;line-height:30px}.block-welcome .col-left .timeline{margin:10px 0 0;font-size:12px}.block-welcome .col-right{width:75%}.block-welcome .col-right>h4{font-weight:400}.block-welcome .col-right>h4 small{display:inline-block;margin-right:8px;font-size:14px}.block-welcome .col-right .tiles{padding:10px 0 0 16px;border-left:1px solid #e5e8ec}.block-welcome .col-right .tile{width:20%}.block-welcome .panel-body{padding-top:15px}.block-welcome .user-notification-icon{position:relative;display:inline-block;margin-left:5px}.block-welcome .user-notification-icon .label-badge{position:absolute;top:1px;right:-8px;min-width:16px;padding:2px;font-size:12px;font-weight:400}.block-dynamic .timeline{margin:0}.block-flowchart{padding:10px}.block-flowchart .table{margin-bottom:0}.block-flowchart .table>tbody>tr>td,.block-flowchart .table>tbody>tr>th,.block-flowchart .table>thead>tr>th{padding:10px;font-weight:400;text-align:center}.block-flowchart .table>tbody>tr>td:first-child,.block-flowchart .table>tbody>tr>th:first-child,.block-flowchart .table>thead>tr>th:first-child{text-align:left}.block-flowchart .table>thead>tr>th{width:18%;vertical-align:top}.block-flowchart .table>thead>tr>th:first-child{width:auto;padding:10px 10px 15px 10px;background:0 0}.block-flowchart .table>thead>tr>th:first-child+th>div{background:0 0}.block-flowchart .table>thead>tr>th,.block-flowchart .table>thead>tr>th>div{padding:0;background:url(data:image/gif;base64,R0lGODlhLQAPAJEAAAAAAP///+7u7v///yH5BAEAAAMALAAAAAAtAA8AAAJPlIY5psn92jrSUGVrRFlfvHHh9JGS6aVQ2K2l+LYOO6KuCpby/No8DjvtgrfiD+gj5ozLpvMIfSanu2FyiKX1qqOsrsaNdbXCcfm8Ok1OBQA7) no-repeat;background-position:right -22px top 15px}.block-flowchart .table>thead>tr>th>div{padding:10px 10px 15px 10px;background-position:left -23px top 15px}.block-flowchart .table>thead>tr>th:last-child{background:0 0}.block-flowchart .table>tbody>tr>td{color:#838a9d}.block-flowchart .table>tbody>tr:nth-child(even)>td{background:#f7f8f9}.block-flowchart .flowchart-title{font-size:16px;font-weight:700;color:#3c4353}.block-flowchart .flowchart-step{display:inline-block;width:24px;height:24px;font-size:16px;line-height:24px;color:#fff;background-color:#00a9fc;border-radius:50%}.block-projects .c-deadline{width:100px;color:#a6aab8;text-align:center}.block-projects .c-status{width:90px}.block-projects .c-estimate{width:60px;text-align:right}.block-projects .c-consumed{width:60px;text-align:right}.block-projects .c-left{width:60px;text-align:right}.block-projects .c-progress{width:155px}.block-projects .c-spark{width:120px}.block-projects td.c-spark{padding:0}.block-stories .c-id{width:55px;color:#a6aab8}.block-stories .c-pri{width:45px;text-align:center}.block-stories .c-estimate{width:55px;color:#a6aab8}.block-stories .c-status{width:80px}.block-stories .c-stage{width:80px;color:#a6aab8}.block-stories.block-sm .c-stage,.block-stories.block-sm .c-status .status-text,.block-stories.block-sm .estimate{display:none}.block-stories.block-sm .c-status{text-align:center}.block-tasks .c-id{width:55px;color:#a6aab8}.block-tasks .c-pri{width:45px;text-align:center}.block-tasks .c-estimate{width:55px;color:#a6aab8}.block-tasks .c-deadline{width:95px;color:#a6aab8}.block-tasks .c-status{width:80px}.block-tasks.block-sm .c-deadline,.block-tasks.block-sm .c-status .status-text,.block-tasks.block-sm .estimate{display:none}.block-tasks.block-sm .c-status{text-align:center}.block-bugs .c-id{width:55px;color:#a6aab8}.block-bugs .c-level{width:50px;text-align:center}.block-bugs .c-pri{width:35px;text-align:center}.block-bugs .c-deadline{width:95px;color:#a6aab8}.block-bugs .c-status{width:80px}.block-bugs.block-sm .c-pri,.block-bugs.block-sm .c-status .status-text{display:none}.block-bugs.block-sm .c-status{text-align:center}.block-todoes .panel-body{position:relative;padding-top:42px}.block-todoes .todoes-input{position:absolute;top:-20px;right:0;left:0;padding:20px}.block-todoes .todoes-input .form-control::-webkit-input-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control::-moz-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control:-ms-input-placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes-input .form-control::placeholder{font-size:12px;line-height:20px;color:#a4a8b6}.block-todoes .todoes{padding-left:0;margin:0 -10px}.block-todoes .todoes>li{position:relative;padding:5px 10px 5px 35px;list-style:none}.block-todoes .todoes>li:hover{background-color:#e9f2fb}.block-todoes .todo-title{display:block;padding:5px}.block-todoes .todo-pri{display:inline-block;padding:0 5px;font-size:12px;color:#838a9d}.block-todoes .todo-time{display:inline-block;padding:0 5px;font-size:12px;color:#a6aab8}.block-todoes .todo-check{position:absolute;top:10px;left:10px;display:block;width:20px;height:20px;font-size:20px;color:transparent;cursor:pointer;background:#fff;border:2px solid #eee;border-radius:50%}.block-todoes .todo-check:hover{border-color:#a6aab8}.block-todoes .active>.todo-check{color:#00da88;background:0 0;border:none}.block-todoes .todoes-form{position:absolute;top:-51px;right:0;left:0;z-index:15;padding:20px;visibility:hidden;background:#fff;-webkit-box-shadow:0 0 20px 0 #bdc9d8;box-shadow:0 0 20px 0 #bdc9d8;opacity:0;-webkit-transition:.4s cubic-bezier(.175,.885,.32,1);-o-transition:.4s cubic-bezier(.175,.885,.32,1);transition:.4s cubic-bezier(.175,.885,.32,1);-webkit-transition-property:opacity,visibility;-o-transition-property:opacity,visibility;transition-property:opacity,visibility}.block-todoes .todoes-form .form-group>label{padding-left:0}.block-todoes .todoes-form .form-group>label.text-center{text-align:center!important}.block-todoes .todoes-form>.form-group:last-child{margin-bottom:0}.block-todoes .todoes-form>h3{padding:0 20px 15px;margin:0 -20px 15px;font-size:16px;line-height:20px;border-bottom:1px solid #eee}.block-todoes.show-form .todoes-form{visibility:visible;opacity:1}.block-products .c-plans{width:70px;color:#a6aab8;text-align:center}.block-products .c-publishs{width:70px;color:#a6aab8;text-align:center}.block-products .c-stories{width:80px;color:#a6aab8;text-align:center}.block-products .c-bugs{width:90px;color:#a6aab8;text-align:center}.block-products.block-sm .c-project{display:none}.article-content{color:#838a9d}.article-content img{margin-top:0}.detail{padding:20px 0;margin:0 10px}.detail+.detail{padding-top:25px;border-top:1px solid #eee}.detail-title{font-size:16px;line-height:20px}.detail-title>.pull-right{position:relative;top:-8px}h2.detail-title{margin:0;font-size:24px;font-weight:400}h2.detail-title .label,h2.detail-title .label-id{position:relative;top:-3px}.detail-content{padding:5px 0 0 20px;margin-top:10px;color:#838a9d}.detail-content em{font-style:normal;color:#3c4353}.detail-content .list-unstyled>li+li{margin-top:5px}.side-col .detail-content{padding-left:0}details.detail{padding:10px 0}details.detail summary{position:relative;cursor:pointer;outline:0}details.detail summary::-webkit-details-marker{display:none}details.detail summary:after{position:absolute;top:0;right:0;font-family:ZentaoIcon;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-transform:none;content:"\e316";opacity:.4;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}details.detail[open] summary:after{content:"\e313"}.files-list{padding-left:0;list-style:none}.files-list>li>a{display:block;line-height:24px;color:#838a9d}.files-list>li>a>.icon{display:inline-block;margin-right:5px;opacity:.7}.files-list>li>a:hover{color:#006af1}.histories-list{margin-bottom:0}.histories-list .btn-mini{position:relative;top:1px}.histories-list>li{position:relative}.histories-list>li+li{margin-top:10px}.histories-list>li strong{color:#3c4353}.histories-list .comment,.histories-list .show-form .comment-edit-form{padding:5px 5px 5px 10px;margin:5px 0 0;background-color:rgba(0,0,0,.025);border:1px solid #eee}.histories-list .btn-edit-comment{position:absolute;top:28px;right:2px}.histories-list .comment-edit-form,.histories-list .show-form .btn-edit-comment,.histories-list .show-form .comment{display:none}.histories-list .show-form .comment-edit-form{display:block;padding:10px;border:1px solid #eee}.histories .btn-mini{width:16px;min-width:16px;height:16px;overflow:hidden;line-height:16px;color:#cbd0db;vertical-align:-8%;border-radius:1px}.histories .btn-mini>.icon{position:relative;top:-2px;left:-2px}.histories .btn-mini:focus,.histories .btn-mini:hover{color:#006af1;border-color:#006af1}.histories .show-changes .btn-expand>.icon:before{content:"\e926"}.histories .btn-strip{display:none}.histories .show-changes .btn-strip{display:inline-block}.history-changes{display:none;padding:5px;margin-bottom:-5px;margin-left:5px;font-size:12px;line-height:20px;opacity:.65}.history-changes blockquote{padding:5px 5px 5px 10px;margin:5px 0 0;font-size:12px;background-color:rgba(0,0,0,.05);border-left:3px solid #eee}.history-changes blockquote.original{display:none}.show-changes .history-changes,.show-original .history-changes blockquote.original{display:block}.show-original .history-changes blockquote.textdiff{display:none}.search-list{min-width:200px;max-width:300px;min-height:55px;padding:0}.search-list .search-box{float:none;margin:10px 10px 5px}.search-list .search-box .icon-search{opacity:.5}.dropup .search-list .list-group{height:214px}.search-list .list-group{max-height:248px;padding:0 10px 5px 10px;margin:5px 0}.list-group{overflow-y:auto}.list-group>a{display:block;padding:2px 10px 2px 5px;overflow:hidden;line-height:20px;text-overflow:ellipsis;white-space:nowrap;border-radius:4px}.list-group>a+a{margin-top:5px}.list-group>a>.icon{display:inline-block;margin-right:3px;opacity:.5}.list-group>a.selected{color:#e9f2fb;background-color:#006af1}.list-group>a.active{color:#006af1;background-color:#e9f2fb}.list-group>a.active:hover,.list-group>a:hover{color:#fff;background-color:#006af1}.release-path{overflow:hidden}.release-line{display:table;width:100%;padding:0;table-layout:fixed}.release-line>li{display:table-cell;list-style:none}.release-line>li>a{position:relative;display:block}.release-line>li>a:before{position:absolute;left:0;display:block;width:13px;height:13px;content:' ';background:#fff;border:2px solid #838a9d;border-radius:50%}.release-line>li>a:after{position:absolute;left:5px;display:block;width:2px;height:30px;content:' ';background:#e9f2fb}.release-line>li>a>.icon{position:absolute;left:4px;font-size:24px}.release-line>li>a .title{display:block;color:#838a9d;white-space:nowrap}.release-line>li>a .date,.release-line>li>a .info{display:block;font-size:12px;color:#cbd0db}.release-line>li>a:hover:before{background-color:#e9f2fb}.release-line>li>a:hover:after{background-color:#a6aab8}.release-line>li>a:hover .title{color:#006af1}.release-line>li>a:hover .date,.release-line>li>a:hover .info{display:block;font-size:12px;color:#a6aab8}.release-line>li:nth-child(odd){padding-top:90px;vertical-align:top}.release-line>li:nth-child(odd)>a{padding-top:36px;border-top:5px solid #e9f2fb}.release-line>li:nth-child(odd)>a:before{top:-9px}.release-line>li:nth-child(odd)>a:after{top:6px}.release-line>li:nth-child(odd)>a>.icon{top:-26px}.release-line>li:nth-child(even){padding-bottom:90px;vertical-align:bottom}.release-line>li:nth-child(even)>a{padding-bottom:36px;border-bottom:5px solid #e9f2fb}.release-line>li:nth-child(even)>a:before{bottom:-9px}.release-line>li:nth-child(even)>a:after{bottom:6px}.release-line>li:nth-child(even)>a>.icon{bottom:-2px}.release-line>li:last-child>a{border-color:transparent}.release-line>li.active>a:before{border-color:#006af1}.release-line>li+li>a>.date,.release-line>li+li>a>.info,.release-line>li+li>a>.title{position:relative;left:-36%}#footer{position:fixed;right:0;bottom:0;left:0;z-index:1010;height:32px;background:#fff;border-top:1px solid #eff1f7}#footer .breadcrumb{padding:5px 0;margin:0}#footer .breadcrumb>.active,#footer .breadcrumb>li>a{color:#cbd0db}#footer .breadcrumb>li+li:before{content:'>'}#poweredBy{position:absolute;top:0;right:0;padding:5px 10px}#poweredBy .icon-zentao{color:#0097fd}#poweredBy a{color:#3c4353}#poweredBy a+a{margin-left:15px}#poweredBy a:hover{color:#006af1}#poweredBy a:hover .icon-zentao{color:#006af1}#poweredBy #aiux{color:#cbd0dc} \ No newline at end of file