From 07d64f72d1cd9951b374191a26f72abb9085bbd8 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Tue, 3 Jul 2018 14:06:18 +0200 Subject: Remove grid lib Remove Grid javascript library as not currently used Issue-ID: CLAMP-191 Change-Id: I0a0bbbbf598945f89827264a6c1cda47bbcd2b3d Signed-off-by: Determe, Sebastien (sd378r) --- .../resources/designer/css/ui-grid-stable.css | 1086 -- .../resources/designer/css/ui-grid-stable.min.css | 10 - .../resources/designer/css/ui-grid-unstable.css | 1330 -- .../resources/designer/css/ui-grid-unstable.eot | Bin 7992 -> 0 bytes .../designer/css/ui-grid-unstable.min.css | 13 - .../resources/designer/css/ui-grid-unstable.svg | 31 - .../resources/designer/css/ui-grid-unstable.ttf | Bin 7828 -> 0 bytes .../resources/designer/css/ui-grid-unstable.woff | Bin 4456 -> 0 bytes .../META-INF/resources/designer/css/ui-grid.css | 14 - .../META-INF/resources/designer/css/ui-grid.eot | Bin 8184 -> 0 bytes .../resources/designer/css/ui-grid.min.css | 1 - .../META-INF/resources/designer/css/ui-grid.svg | 32 - .../META-INF/resources/designer/css/ui-grid.ttf | Bin 8020 -> 0 bytes .../META-INF/resources/designer/css/ui-grid.woff | Bin 4584 -> 0 bytes .../META-INF/resources/designer/index.html | 5 - .../resources/designer/lib/ui-grid-stable.js | 13034 -------------- .../resources/designer/lib/ui-grid-stable.min.js | 7 - .../resources/designer/lib/ui-grid-unstable.js | 18014 ------------------- .../resources/designer/lib/ui-grid-unstable.min.js | 8 - .../META-INF/resources/designer/partials/grid.html | 35 - .../META-INF/resources/designer/scripts/app.js | 9 +- 21 files changed, 1 insertion(+), 33628 deletions(-) delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid-stable.css delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid-stable.min.css delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.css delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.eot delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.min.css delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.svg delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.ttf delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.woff delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid.css delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid.eot delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid.min.css delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid.svg delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid.ttf delete mode 100644 src/main/resources/META-INF/resources/designer/css/ui-grid.woff delete mode 100644 src/main/resources/META-INF/resources/designer/lib/ui-grid-stable.js delete mode 100644 src/main/resources/META-INF/resources/designer/lib/ui-grid-stable.min.js delete mode 100644 src/main/resources/META-INF/resources/designer/lib/ui-grid-unstable.js delete mode 100644 src/main/resources/META-INF/resources/designer/lib/ui-grid-unstable.min.js delete mode 100644 src/main/resources/META-INF/resources/designer/partials/grid.html diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid-stable.css b/src/main/resources/META-INF/resources/designer/css/ui-grid-stable.css deleted file mode 100644 index 409817bc..00000000 --- a/src/main/resources/META-INF/resources/designer/css/ui-grid-stable.css +++ /dev/null @@ -1,1086 +0,0 @@ -.ui-grid { - border: 1px solid #d4d4d4; - box-sizing: content-box; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - -webkit-transform: translateZ(0); - -moz-transform: translateZ(0); - -o-transform: translateZ(0); - -ms-transform: translateZ(0); - transform: translateZ(0); -} -.ui-grid-vertical-bar { - position: absolute; - right: 0; - width: 0; -} -.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar, -.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar { - width: 1px; -} -.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar { - background-color: #d4d4d4; -} -.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar { - background-color: #d4d4d4; -} -.ui-grid-header-cell:last-child .ui-grid-vertical-bar { - right: -1px; - width: 1px; - background-color: #d4d4d4; -} -.ui-grid-clearfix:before, -.ui-grid-clearfix:after { - content: ""; - display: table; -} -.ui-grid-clearfix:after { - clear: both; -} -.ui-grid-invisible { - visibility: hidden; -} -.ui-grid-top-panel-background { - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); -} -.ui-grid-top-panel { - position: relative; - border-bottom: 1px solid #d4d4d4; - overflow: hidden; - font-weight: bold; - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - -webkit-border-top-right-radius: -1px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: -1px; - -moz-border-radius-topright: -1px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: -1px; - border-top-right-radius: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: -1px; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -.ui-grid-group-panel { - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - border-bottom: 1px solid #d4d4d4; - -webkit-border-top-right-radius: -1px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: -1px; - -moz-border-radius-topright: -1px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: -1px; - border-top-right-radius: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: -1px; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; - min-height: 30px; -} -.ui-grid-header-group-panel .hidden { - display: none; -} -.ui-grid-header-viewport { - overflow: hidden; -} -.ui-grid-header-canvas { - position: relative; -} -.ui-grid-header-canvas:before, -.ui-grid-header-canvas:after { - content: ""; - display: table; - line-height: 0; -} -.ui-grid-header-canvas:after { - clear: both; -} -.ui-grid-header-cell { - position: relative; - float: left; - top: 0; - bottom: 0; - background-color: inherit; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - width: 0; -} -.ui-grid-header-cell .sortable { - cursor: pointer; -} -.ui-grid-header .ui-grid-vertical-bar { - top: 0; - bottom: 0; -} -.ui-grid-column-menu-button { - position: absolute; - right: 1px; - top: 0; -} -.ui-grid-column-menu-button .ui-grid-icon-angle-down { - vertical-align: sub; -} -.ui-grid-column-menu { - position: absolute; -} -/* Slide up/down animations */ -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-add, -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-remove { - -webkit-transition: all 0.05s linear; - -moz-transition: all 0.05s linear; - -o-transition: all 0.05s linear; - transition: all 0.05s linear; - display: block !important; -} -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-add.ng-hide-add-active, -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-remove { - -webkit-transform: translateY(-100%); - -moz-transform: translateY(-100%); - -o-transform: translateY(-100%); - -ms-transform: translateY(-100%); - transform: translateY(-100%); -} -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-add, -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-remove.ng-hide-remove-active { - -webkit-transform: translateY(0); - -moz-transform: translateY(0); - -o-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); -} -.ui-grid-filter-container { - padding: 4px 10px; - position: relative; -} -.ui-grid-filter-container .ui-grid-filter-button { - position: absolute; - top: 0; - bottom: 0; - right: 0; -} -.ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"].right { - position: absolute; - top: 50%; - line-height: 32px; - margin-top: -16px; - right: 10px; - opacity: 0.66; -} -.ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"].right:hover { - opacity: 1; -} -input[type="text"].ui-grid-filter-input { - padding: 0; - margin: 0; - border: 0; - width: 100%; - border: 1px solid #d4d4d4; - -webkit-border-top-right-radius: 0px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: 0; - -moz-border-radius-topright: 0px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: 0; - border-top-right-radius: 0px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -input[type="text"].ui-grid-filter-input:hover { - border: 1px solid #d4d4d4; -} -.ui-grid-render-container { - position: relative; - -webkit-border-top-right-radius: 0; - -webkit-border-bottom-right-radius: 0px; - -webkit-border-bottom-left-radius: 0px; - -webkit-border-top-left-radius: 0; - -moz-border-radius-topright: 0; - -moz-border-radius-bottomright: 0px; - -moz-border-radius-bottomleft: 0px; - -moz-border-radius-topleft: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 0px; - border-bottom-left-radius: 0px; - border-top-left-radius: 0; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -.ui-grid-viewport { - min-height: 20px; - position: relative; - overflow: hidden; -} -.ui-grid-viewport :focus { - outline: none; -} -.ui-grid-canvas { - position: relative; -} -.ui-grid-row:nth-child(odd) .ui-grid-cell { - background-color: #fdfdfd; -} -.ui-grid-row:nth-child(even) .ui-grid-cell { - background-color: #f3f3f3; -} -.ui-grid-row:last-child .ui-grid-cell { - border-bottom-color: #d4d4d4; - border-bottom-style: solid; -} -.ui-grid-no-row-overlay { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - margin: 10%; - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - -webkit-border-top-right-radius: 0px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: 0; - -moz-border-radius-topright: 0px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: 0; - border-top-right-radius: 0px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #d4d4d4; - font-size: 2em; - text-align: center; -} -.ui-grid-no-row-overlay > * { - position: absolute; - display: table; - margin: auto 0; - width: 100%; - top: 0; - bottom: 0; - left: 0; - right: 0; - opacity: 0.66; -} -.ui-grid-cell { - overflow: hidden; - float: left; - background-color: inherit; - border-right: 1px solid; - border-color: #d4d4d4; - box-sizing: border-box; -} -.ui-grid-cell:last-child { - border-right: 0; -} -.ui-grid-cell-contents { - padding: 5px; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - white-space: nowrap; - -ms-text-overflow: ellipsis; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; - overflow: hidden; - height: 100%; -} -.ui-grid-cell-contents-hidden { - visibility: hidden; - width: 0; - height: 0; - display: none; -} -.ui-grid-row-header-cell { - background-color: #F0F0EE !important; - border-bottom: solid 1px #d4d4d4; -} -.ui-grid-native-scrollbar { - position: absolute; - overflow: scroll; -} -.ui-grid-native-scrollbar.vertical { - top: 0; - right: 0; - height: 100%; - overflow-x: hidden; - width: 17px; -} -.ui-grid-native-scrollbar.horizontal { - bottom: 0; - left: 0; - width: 100%; - overflow-y: hidden; - height: 17px; -} -.ui-grid-footer-panel-background { - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); -} -.ui-grid-footer-panel { - position: relative; - border-bottom: 1px solid #d4d4d4; - border-top: 1px solid #d4d4d4; - overflow: hidden; - font-weight: bold; - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - -webkit-border-top-right-radius: -1px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: -1px; - -moz-border-radius-topright: -1px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: -1px; - border-top-right-radius: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: -1px; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -.ui-grid-group-panel { - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - border-bottom: 1px solid #d4d4d4; - border-top: 1px solid #d4d4d4; - -webkit-border-top-right-radius: -1px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: -1px; - -moz-border-radius-topright: -1px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: -1px; - border-top-right-radius: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: -1px; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; - min-height: 30px; -} -.ui-grid-footer-group-panel .hidden { - display: none; -} -.ui-grid-footer-viewport { - overflow: hidden; -} -.ui-grid-footer-canvas { - position: relative; -} -.ui-grid-footer-canvas:before, -.ui-grid-footer-canvas:after { - content: ""; - display: table; - line-height: 0; -} -.ui-grid-footer-canvas:after { - clear: both; -} -.ui-grid-footer-cell { - overflow: hidden; - float: left; - background-color: inherit; - border-right: 1px solid; - border-color: #d4d4d4; - box-sizing: border-box; -} -.ui-grid-footer-cell:last-child { - border-right: 0; -} -.ui-grid-footer .ui-grid-vertical-bar { - top: 0; - bottom: 0; -} -input[type="text"].ui-grid-filter-input { - padding: 0; - margin: 0; - border: 0; - width: 100%; - border: 1px solid #d4d4d4; - -webkit-border-top-right-radius: 0px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: 0; - -moz-border-radius-topright: 0px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: 0; - border-top-right-radius: 0px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -input[type="text"].ui-grid-filter-input:hover { - border: 1px solid #d4d4d4; -} -.ui-grid-menu { - z-index: 2; - position: absolute; - overflow: hidden; - padding: 0 10px 20px 10px; - cursor: default; -} -.ui-grid-menu .ui-grid-menu-inner { - background: #f3f3f3; - border: 1px solid #d4d4d4; - position: relative; - white-space: nowrap; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2); - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2); -} -.ui-grid-menu .ui-grid-menu-inner ul { - margin: 0; - padding: 0; - list-style-type: none; -} -.ui-grid-menu .ui-grid-menu-inner ul li { - padding: 8px; - cursor: pointer; -} -.ui-grid-menu .ui-grid-menu-inner ul li:hover { - -webkit-box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - -moz-box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); -} -.ui-grid-menu .ui-grid-menu-inner ul li.ui-grid-menu-item-active { - -webkit-box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - -moz-box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - background-color: #cecece; -} -.ui-grid-menu .ui-grid-menu-inner ul li:not(:last-child) { - border-bottom: 1px solid #d4d4d4; -} -.ui-grid-sortarrow { - right: 5px; - position: absolute; - width: 20px; - top: 0; - bottom: 0; - background-position: center; -} -.ui-grid-sortarrow.down { - -webkit-transform: rotate(180deg); - -moz-transform: rotate(180deg); - -o-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} -@font-face { - font-family: 'ui-grid'; - src: url('ui-grid.eot'); - src: url('ui-grid.eot#iefix') format('embedded-opentype'), url('ui-grid.woff') format('woff'), url('ui-grid.ttf?') format('truetype'), url('ui-grid.svg?#ui-grid') format('svg'); - font-weight: normal; - font-style: normal; -} -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'ui-grid'; - src: url('../font/ui-grid.svg?12312827#ui-grid') format('svg'); - } -} -*/ -[class^="ui-grid-icon"]:before, -[class*=" ui-grid-icon"]:before { - font-family: "ui-grid"; - font-style: normal; - font-weight: normal; - speak: none; - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ -} -.ui-grid-icon-blank::before { - width: 1em; - content: ' '; -} -/* -* RTL Styles -*/ -.ui-grid[dir=rtl] .ui-grid-header-cell, -.ui-grid[dir=rtl] .ui-grid-footer-cell, -.ui-grid[dir=rtl] .ui-grid-cell { - float: right !important; -} -.ui-grid[dir=rtl] .ui-grid-scrollbar-horizontal { - left: inherit; - right: 0; -} -.ui-grid[dir=rtl] .ui-grid-native-scrollbar.vertical { - left: 0; - right: inherit; -} -.ui-grid[dir=rtl] .ui-grid-column-menu-button { - position: absolute; - left: 1px; - top: 0; - right: inherit; -} -.ui-grid[dir=rtl] .ui-grid-cell:first-child, -.ui-grid[dir=rtl] .ui-grid-header-cell:first-child, -.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child { - border-right: 0; -} -.ui-grid[dir=rtl] .ui-grid-cell:last-child { - border-right: 1px solid; - border-color: #d4d4d4; -} -.ui-grid[dir=rtl] .ui-grid-header-cell:first-child .ui-grid-vertical-bar, -.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child .ui-grid-vertical-bar, -.ui-grid[dir=rtl] .ui-grid-cell:first-child .ui-grid-vertical-bar { - width: 0; -} -/* - Animation example, for spinners -*/ -.ui-grid-animate-spin { - -moz-animation: ui-grid-spin 2s infinite linear; - -o-animation: ui-grid-spin 2s infinite linear; - -webkit-animation: ui-grid-spin 2s infinite linear; - animation: ui-grid-spin 2s infinite linear; - display: inline-block; -} -@-moz-keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@-webkit-keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@-o-keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@-ms-keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/*--------------------------------------------------- - LESS Elements 0.9 - --------------------------------------------------- - A set of useful LESS mixins - More info at: http://lesselements.com - ---------------------------------------------------*/ -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-cell-contents:focus { - outline: 0; - background-color: #b3c4c7; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -div.ui-grid-cell input { - border-radius: inherit; - padding: 0; - width: 100%; - color: inherit; - height: auto; - font: inherit; - outline: none; -} -div.ui-grid-cell input:focus { - color: inherit; - outline: none; -} -div.ui-grid-cell input[type="checkbox"] { - margin: 9px 0 0 6px; - width: auto; -} -div.ui-grid-cell input.ng-invalid { - border: 1px solid #fc8f8f; -} -div.ui-grid-cell input.ng-valid { - border: 1px solid #d4d4d4; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.expandableRow .ui-grid-row:nth-child(odd) .ui-grid-cell { - background-color: #fdfdfd; -} -.expandableRow .ui-grid-row:nth-child(even) .ui-grid-cell { - background-color: #f3f3f3; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-pinned-container { - float: left; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child { - box-sizing: border-box; - border-right: 1px solid; - border-width: 1px; - border-color: #aeaeae; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:last-child { - box-sizing: border-box; - border-right: 1px solid; - border-width: 1px; - border-color: #aeaeae; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar, -.ui-grid-pinned-container .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar { - width: 1px; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar { - background-color: #d4d4d4; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar { - background-color: #aeaeae; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child .ui-grid-vertical-bar { - right: -1px; - width: 1px; - background-color: #aeaeae; -} -.ui-grid-render-container-body { - float: left; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-column-resizer { - top: 0; - bottom: 0; - width: 5px; - position: absolute; - cursor: col-resize; -} -.ui-grid-column-resizer.left { - left: 0; -} -.ui-grid-column-resizer.right { - right: 0; -} -.ui-grid.column-resizing { - cursor: col-resize; -} -.ui-grid.column-resizing .ui-grid-resize-overlay { - position: absolute; - top: 0; - height: 100%; - width: 1px; - background-color: #aeaeae; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-row-saving .ui-grid-cell { - color: #848484 !important; -} -.ui-grid-row-error .ui-grid-cell { - color: #ff0000 !important; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-row-selected .ui-grid-cell { - background-color: #c9dde1 !important; -} -.ui-grid-disable-selection { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: default; -} -.ui-grid-selection-row-header-buttons { - cursor: pointer; - opacity: 0.1; -} -.ui-grid-selection-row-header-buttons.ui-grid-row-selected { - opacity: 1; -} -.ui-grid-selection-row-header-cell { - border-bottom: solid 1px #d4d4d4; -} - -.ui-grid-icon-plus-squared:before { - content: '\c350'; -} -/* '썐' */ -.ui-grid-icon-minus-squared:before { - content: '\c351'; -} -/* '썑' */ -.ui-grid-icon-search:before { - content: '\c352'; -} -/* '썒' */ -.ui-grid-icon-cancel:before { - content: '\c353'; -} -/* '썓' */ -.ui-grid-icon-info-circled:before { - content: '\c354'; -} -/* '썔' */ -.ui-grid-icon-lock:before { - content: '\c355'; -} -/* '썕' */ -.ui-grid-icon-lock-open:before { - content: '\c356'; -} -/* '썖' */ -.ui-grid-icon-pencil:before { - content: '\c357'; -} -/* '썗' */ -.ui-grid-icon-down-dir:before { - content: '\c358'; -} -/* '썘' */ -.ui-grid-icon-up-dir:before { - content: '\c359'; -} -/* '썙' */ -.ui-grid-icon-left-dir:before { - content: '\c35a'; -} -/* '썚' */ -.ui-grid-icon-right-dir:before { - content: '\c35b'; -} -/* '썛' */ -.ui-grid-icon-left-open:before { - content: '\c35c'; -} -/* '썜' */ -.ui-grid-icon-right-open:before { - content: '\c35d'; -} -/* '썝' */ -.ui-grid-icon-angle-down:before { - content: '\c35e'; -} -/* '썞' */ -.ui-grid-icon-filter:before { - content: '\c35f'; -} -/* '썟' */ -.ui-grid-icon-sort-alt-up:before { - content: '\c360'; -} -/* '썠' */ -.ui-grid-icon-sort-alt-down:before { - content: '\c361'; -} -/* '썡' */ -.ui-grid-icon-ok:before { - content: '\e800'; -} -/* '' */ -.ui-grid-icon-spin5:before { - content: '\ea61'; -} -/* '' */ diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid-stable.min.css b/src/main/resources/META-INF/resources/designer/css/ui-grid-stable.min.css deleted file mode 100644 index f4074831..00000000 --- a/src/main/resources/META-INF/resources/designer/css/ui-grid-stable.min.css +++ /dev/null @@ -1,10 +0,0 @@ -.ui-grid{border:1px solid #d4d4d4;box-sizing:content-box;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ui-grid-vertical-bar{position:absolute;right:0;width:0}.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{width:1px}.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#d4d4d4}.ui-grid-clearfix:before,.ui-grid-clearfix:after{content:"";display:table}.ui-grid-clearfix:after{clear:both}.ui-grid-invisible{visibility:hidden}.ui-grid-top-panel-background{background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0)}.ui-grid-top-panel{position:relative;border-bottom:1px solid #d4d4d4;overflow:hidden;font-weight:bold;background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);-webkit-border-top-right-radius:-1px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:-1px;-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;border-top-right-radius:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}.ui-grid-group-panel{background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);border-bottom:1px solid #d4d4d4;-webkit-border-top-right-radius:-1px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:-1px;-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;border-top-right-radius:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;min-height:30px}.ui-grid-header-group-panel .hidden{display:none}.ui-grid-header-viewport{overflow:hidden}.ui-grid-header-canvas{position:relative}.ui-grid-header-canvas:before,.ui-grid-header-canvas:after{content:"";display:table;line-height:0}.ui-grid-header-canvas:after{clear:both}.ui-grid-header-cell{position:relative;float:left;top:0;bottom:0;background-color:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:0}.ui-grid-header-cell .sortable{cursor:pointer}.ui-grid-header .ui-grid-vertical-bar{top:0;bottom:0}.ui-grid-column-menu-button{position:absolute;right:1px;top:0}.ui-grid-column-menu-button .ui-grid-icon-angle-down{vertical-align:sub}.ui-grid-column-menu{position:absolute}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-remove{-webkit-transition:all .05s linear;-moz-transition:all .05s linear;-o-transition:all .05s linear;transition:all .05s linear;display:block !important}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-add.ng-hide-add-active,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-inner.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-filter-container{padding:4px 10px;position:relative}.ui-grid-filter-container .ui-grid-filter-button{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"].right{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:10px;opacity:0.66}.ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"].right:hover{opacity:1}input[type="text"].ui-grid-filter-input{padding:0;margin:0;border:0;width:100%;border:1px solid #d4d4d4;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}input[type="text"].ui-grid-filter-input:hover{border:1px solid #d4d4d4}.ui-grid-render-container{position:relative;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}.ui-grid-viewport{min-height:20px;position:relative;overflow:hidden}.ui-grid-viewport :focus{outline:none}.ui-grid-canvas{position:relative}.ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fdfdfd}.ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f3f3f3}.ui-grid-row:last-child .ui-grid-cell{border-bottom-color:#d4d4d4;border-bottom-style:solid}.ui-grid-no-row-overlay{position:absolute;top:0;bottom:0;left:0;right:0;margin:10%;background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #d4d4d4;font-size:2em;text-align:center}.ui-grid-no-row-overlay>*{position:absolute;display:table;margin:auto 0;width:100%;top:0;bottom:0;left:0;right:0;opacity:0.66}.ui-grid-cell{overflow:hidden;float:left;background-color:inherit;border-right:1px solid;border-color:#d4d4d4;box-sizing:border-box}.ui-grid-cell:last-child{border-right:0}.ui-grid-cell-contents{padding:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;height:100%}.ui-grid-cell-contents-hidden{visibility:hidden;width:0;height:0;display:none}.ui-grid-row-header-cell{background-color:#F0F0EE !important;border-bottom:solid 1px #d4d4d4}.ui-grid-native-scrollbar{position:absolute;overflow:scroll}.ui-grid-native-scrollbar.vertical{top:0;right:0;height:100%;overflow-x:hidden;width:17px}.ui-grid-native-scrollbar.horizontal{bottom:0;left:0;width:100%;overflow-y:hidden;height:17px}.ui-grid-footer-panel-background{background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0)}.ui-grid-footer-panel{position:relative;border-bottom:1px solid #d4d4d4;border-top:1px solid #d4d4d4;overflow:hidden;font-weight:bold;background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);-webkit-border-top-right-radius:-1px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:-1px;-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;border-top-right-radius:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}.ui-grid-group-panel{background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);border-bottom:1px solid #d4d4d4;border-top:1px solid #d4d4d4;-webkit-border-top-right-radius:-1px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:-1px;-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;border-top-right-radius:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;min-height:30px}.ui-grid-footer-group-panel .hidden{display:none}.ui-grid-footer-viewport{overflow:hidden}.ui-grid-footer-canvas{position:relative}.ui-grid-footer-canvas:before,.ui-grid-footer-canvas:after{content:"";display:table;line-height:0}.ui-grid-footer-canvas:after{clear:both}.ui-grid-footer-cell{overflow:hidden;float:left;background-color:inherit;border-right:1px solid;border-color:#d4d4d4;box-sizing:border-box}.ui-grid-footer-cell:last-child{border-right:0}.ui-grid-footer .ui-grid-vertical-bar{top:0;bottom:0}input[type="text"].ui-grid-filter-input{padding:0;margin:0;border:0;width:100%;border:1px solid #d4d4d4;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}input[type="text"].ui-grid-filter-input:hover{border:1px solid #d4d4d4}.ui-grid-menu{z-index:2;position:absolute;overflow:hidden;padding:0 10px 20px 10px;cursor:default}.ui-grid-menu .ui-grid-menu-inner{background:#f3f3f3;border:1px solid #d4d4d4;position:relative;white-space:nowrap;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2);box-shadow:0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2)}.ui-grid-menu .ui-grid-menu-inner ul{margin:0;padding:0;list-style-type:none}.ui-grid-menu .ui-grid-menu-inner ul li{padding:8px;cursor:pointer}.ui-grid-menu .ui-grid-menu-inner ul li:hover{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,0.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,0.2);box-shadow:inset 0 0 14px rgba(0,0,0,0.2)}.ui-grid-menu .ui-grid-menu-inner ul li.ui-grid-menu-item-active{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,0.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,0.2);box-shadow:inset 0 0 14px rgba(0,0,0,0.2);background-color:#cecece}.ui-grid-menu .ui-grid-menu-inner ul li:not(:last-child){border-bottom:1px solid #d4d4d4}.ui-grid-sortarrow{right:5px;position:absolute;width:20px;top:0;bottom:0;background-position:center}.ui-grid-sortarrow.down{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}@font-face{font-family:'ui-grid';src:url('ui-grid.eot');src:url('ui-grid.eot#iefix') format('embedded-opentype'),url('ui-grid.woff') format('woff'),url('ui-grid.ttf?') format('truetype'),url('ui-grid.svg?#ui-grid') format('svg');font-weight:normal;font-style:normal}[class^="ui-grid-icon"]:before,[class*=" ui-grid-icon"]:before{font-family:"ui-grid";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.ui-grid-icon-blank::before{width:1em;content:' '}.ui-grid[dir=rtl] .ui-grid-header-cell,.ui-grid[dir=rtl] .ui-grid-footer-cell,.ui-grid[dir=rtl] .ui-grid-cell{float:right !important}.ui-grid[dir=rtl] .ui-grid-scrollbar-horizontal{left:inherit;right:0}.ui-grid[dir=rtl] .ui-grid-native-scrollbar.vertical{left:0;right:inherit}.ui-grid[dir=rtl] .ui-grid-column-menu-button{position:absolute;left:1px;top:0;right:inherit}.ui-grid[dir=rtl] .ui-grid-cell:first-child,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child{border-right:0}.ui-grid[dir=rtl] .ui-grid-cell:last-child{border-right:1px solid;border-color:#d4d4d4}.ui-grid[dir=rtl] .ui-grid-header-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-cell:first-child .ui-grid-vertical-bar{width:0}.ui-grid-animate-spin{-moz-animation:ui-grid-spin 2s infinite linear;-o-animation:ui-grid-spin 2s infinite linear;-webkit-animation:ui-grid-spin 2s infinite linear;animation:ui-grid-spin 2s infinite linear;display:inline-block}@-moz-keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}} -.ui-grid-cell-contents:focus{outline:0;background-color:#b3c4c7} -div.ui-grid-cell input{border-radius:inherit;padding:0;width:100%;color:inherit;height:auto;font:inherit;outline:none}div.ui-grid-cell input:focus{color:inherit;outline:none}div.ui-grid-cell input[type="checkbox"]{margin:9px 0 0 6px;width:auto}div.ui-grid-cell input.ng-invalid{border:1px solid #fc8f8f}div.ui-grid-cell input.ng-valid{border:1px solid #d4d4d4} -.expandableRow .ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fdfdfd}.expandableRow .ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f3f3f3} - -.ui-grid-pinned-container{float:left}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child{box-sizing:border-box;border-right:1px solid;border-width:1px;border-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:last-child{box-sizing:border-box;border-right:1px solid;border-width:1px;border-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-pinned-container .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{width:1px}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#aeaeae}.ui-grid-render-container-body{float:left} -.ui-grid-column-resizer{top:0;bottom:0;width:5px;position:absolute;cursor:col-resize}.ui-grid-column-resizer.left{left:0}.ui-grid-column-resizer.right{right:0}.ui-grid.column-resizing{cursor:col-resize}.ui-grid.column-resizing .ui-grid-resize-overlay{position:absolute;top:0;height:100%;width:1px;background-color:#aeaeae} -.ui-grid-row-saving .ui-grid-cell{color:#848484 !important}.ui-grid-row-error .ui-grid-cell{color:#f00 !important} -.ui-grid-row-selected .ui-grid-cell{background-color:#c9dde1 !important}.ui-grid-disable-selection{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ui-grid-selection-row-header-buttons{cursor:pointer;opacity:0.1}.ui-grid-selection-row-header-buttons.ui-grid-row-selected{opacity:1}.ui-grid-selection-row-header-cell{border-bottom:solid 1px #d4d4d4} -.ui-grid-icon-plus-squared:before{content:'\c350'}.ui-grid-icon-minus-squared:before{content:'\c351'}.ui-grid-icon-search:before{content:'\c352'}.ui-grid-icon-cancel:before{content:'\c353'}.ui-grid-icon-info-circled:before{content:'\c354'}.ui-grid-icon-lock:before{content:'\c355'}.ui-grid-icon-lock-open:before{content:'\c356'}.ui-grid-icon-pencil:before{content:'\c357'}.ui-grid-icon-down-dir:before{content:'\c358'}.ui-grid-icon-up-dir:before{content:'\c359'}.ui-grid-icon-left-dir:before{content:'\c35a'}.ui-grid-icon-right-dir:before{content:'\c35b'}.ui-grid-icon-left-open:before{content:'\c35c'}.ui-grid-icon-right-open:before{content:'\c35d'}.ui-grid-icon-angle-down:before{content:'\c35e'}.ui-grid-icon-filter:before{content:'\c35f'}.ui-grid-icon-sort-alt-up:before{content:'\c360'}.ui-grid-icon-sort-alt-down:before{content:'\c361'}.ui-grid-icon-ok:before{content:'\e800'}.ui-grid-icon-spin5:before{content:'\ea61'} diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.css b/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.css deleted file mode 100644 index acb27bea..00000000 --- a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.css +++ /dev/null @@ -1,1330 +0,0 @@ -.ui-grid { - border: 1px solid #d4d4d4; - box-sizing: content-box; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - -webkit-transform: translateZ(0); - -moz-transform: translateZ(0); - -o-transform: translateZ(0); - -ms-transform: translateZ(0); - transform: translateZ(0); -} -.ui-grid-vertical-bar { - position: absolute; - right: 0; - width: 0; -} -.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar, -.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar { - width: 1px; -} -.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar { - background-color: #d4d4d4; -} -.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar { - background-color: #d4d4d4; -} -.ui-grid-header-cell:last-child .ui-grid-vertical-bar { - right: -1px; - width: 1px; - background-color: #d4d4d4; -} -.ui-grid-clearfix:before, -.ui-grid-clearfix:after { - content: ""; - display: table; -} -.ui-grid-clearfix:after { - clear: both; -} -.ui-grid-invisible { - visibility: hidden; -} -.ui-grid-top-panel-background { - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); -} -.ui-grid-header { - border-bottom: 1px solid #d4d4d4; - box-sizing: content-box; -} -.ui-grid-top-panel { - position: relative; - overflow: hidden; - font-weight: bold; - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - -webkit-border-top-right-radius: -1px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: -1px; - -moz-border-radius-topright: -1px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: -1px; - border-top-right-radius: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: -1px; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -.ui-grid-group-panel { - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - border-bottom: 1px solid #d4d4d4; - -webkit-border-top-right-radius: -1px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: -1px; - -moz-border-radius-topright: -1px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: -1px; - border-top-right-radius: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: -1px; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; - min-height: 30px; -} -.ui-grid-header-group-panel .hidden { - display: none; -} -.ui-grid-header-viewport { - overflow: hidden; -} -.ui-grid-header-canvas { - position: relative; -} -.ui-grid-header-canvas:before, -.ui-grid-header-canvas:after { - content: ""; - display: table; - line-height: 0; -} -.ui-grid-header-canvas:after { - clear: both; -} -.ui-grid-header-cell { - position: relative; - float: left; - top: 0; - bottom: 0; - background-color: inherit; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - width: 0; -} -.ui-grid-header-cell .sortable { - cursor: pointer; -} -.ui-grid-header .ui-grid-vertical-bar { - top: 0; - bottom: 0; -} -.ui-grid-column-menu-button { - position: absolute; - right: 1px; - top: 0; -} -.ui-grid-column-menu-button .ui-grid-icon-angle-down { - vertical-align: sub; -} -.ui-grid-column-menu { - position: absolute; -} -/* Slide up/down animations */ -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add, -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove { - -webkit-transition: all 0.05s linear; - -moz-transition: all 0.05s linear; - -o-transition: all 0.05s linear; - transition: all 0.05s linear; - display: block !important; -} -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active, -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove { - -webkit-transform: translateY(-100%); - -moz-transform: translateY(-100%); - -o-transform: translateY(-100%); - -ms-transform: translateY(-100%); - transform: translateY(-100%); -} -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add, -.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active { - -webkit-transform: translateY(0); - -moz-transform: translateY(0); - -o-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); -} -/* Slide up/down animations */ -.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add, -.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove { - -webkit-transition: all 0.05s linear; - -moz-transition: all 0.05s linear; - -o-transition: all 0.05s linear; - transition: all 0.05s linear; - display: block !important; -} -.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active, -.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove { - -webkit-transform: translateY(-100%); - -moz-transform: translateY(-100%); - -o-transform: translateY(-100%); - -ms-transform: translateY(-100%); - transform: translateY(-100%); -} -.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add, -.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active { - -webkit-transform: translateY(0); - -moz-transform: translateY(0); - -o-transform: translateY(0); - -ms-transform: translateY(0); - transform: translateY(0); -} -.ui-grid-filter-container { - padding: 4px 10px; - position: relative; -} -.ui-grid-filter-container .ui-grid-filter-button { - position: absolute; - top: 0; - bottom: 0; - right: 0; -} -.ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"] { - position: absolute; - top: 50%; - line-height: 32px; - margin-top: -16px; - right: 10px; - opacity: 0.66; -} -.ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"]:hover { - opacity: 1; -} -input[type="text"].ui-grid-filter-input { - padding: 0; - margin: 0; - border: 0; - width: 100%; - border: 1px solid #d4d4d4; - -webkit-border-top-right-radius: 0px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: 0; - -moz-border-radius-topright: 0px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: 0; - border-top-right-radius: 0px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -input[type="text"].ui-grid-filter-input:hover { - border: 1px solid #d4d4d4; -} -.ui-grid-render-container { - position: inherit; - -webkit-border-top-right-radius: 0; - -webkit-border-bottom-right-radius: 0px; - -webkit-border-bottom-left-radius: 0px; - -webkit-border-top-left-radius: 0; - -moz-border-radius-topright: 0; - -moz-border-radius-bottomright: 0px; - -moz-border-radius-bottomleft: 0px; - -moz-border-radius-topleft: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 0px; - border-bottom-left-radius: 0px; - border-top-left-radius: 0; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -.ui-grid-render-container:focus { - outline: none; -} -.ui-grid-viewport { - min-height: 20px; - position: relative; - overflow: hidden; -} -.ui-grid-viewport :focus { - outline: none; -} -.ui-grid-canvas { - position: relative; -} -.ui-grid-row:nth-child(odd) .ui-grid-cell { - background-color: #fdfdfd; -} -.ui-grid-row:nth-child(even) .ui-grid-cell { - background-color: #f3f3f3; -} -.ui-grid-row:last-child .ui-grid-cell { - border-bottom-color: #d4d4d4; - border-bottom-style: solid; -} -.ui-grid-no-row-overlay { - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - margin: 10%; - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - -webkit-border-top-right-radius: 0px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: 0; - -moz-border-radius-topright: 0px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: 0; - border-top-right-radius: 0px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #d4d4d4; - font-size: 2em; - text-align: center; -} -.ui-grid-no-row-overlay > * { - position: absolute; - display: table; - margin: auto 0; - width: 100%; - top: 0; - bottom: 0; - left: 0; - right: 0; - opacity: 0.66; -} -.ui-grid-cell { - overflow: hidden; - float: left; - background-color: inherit; - border-right: 1px solid; - border-color: #d4d4d4; - box-sizing: border-box; -} -.ui-grid-cell:last-child { - border-right: 0; -} -.ui-grid-cell-contents { - padding: 5px; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - white-space: nowrap; - -ms-text-overflow: ellipsis; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; - overflow: hidden; - height: 100%; -} -.ui-grid-cell-contents-hidden { - visibility: hidden; - width: 0; - height: 0; - display: none; -} -.ui-grid-row-header-cell { - background-color: #F0F0EE !important; - border-bottom: solid 1px #d4d4d4; -} -.ui-grid-native-scrollbar { - position: absolute; - overflow: scroll; -} -.ui-grid-native-scrollbar.vertical { - top: 0; - right: 0; - height: 100%; - overflow-x: hidden; - width: 17px; -} -.ui-grid-native-scrollbar.horizontal { - bottom: 0; - left: 0; - width: 100%; - overflow-y: hidden; - height: 17px; -} -.ui-grid-footer-panel-background { - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); -} -.ui-grid-footer-panel { - position: relative; - border-bottom: 1px solid #d4d4d4; - border-top: 1px solid #d4d4d4; - overflow: hidden; - font-weight: bold; - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - -webkit-border-top-right-radius: -1px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: -1px; - -moz-border-radius-topright: -1px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: -1px; - border-top-right-radius: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: -1px; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -.ui-grid-group-panel { - background: #f3f3f3; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(1, #ffffff)); - background: -ms-linear-gradient(bottom, #eeeeee, #ffffff); - background: -moz-linear-gradient(center bottom, #eeeeee 0%, #ffffff 100%); - background: -o-linear-gradient(#ffffff, #eeeeee); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); - border-bottom: 1px solid #d4d4d4; - border-top: 1px solid #d4d4d4; - -webkit-border-top-right-radius: -1px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: -1px; - -moz-border-radius-topright: -1px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: -1px; - border-top-right-radius: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: -1px; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; - min-height: 30px; -} -.ui-grid-footer-group-panel .hidden { - display: none; -} -.ui-grid-footer-viewport { - overflow: hidden; -} -.ui-grid-footer-canvas { - position: relative; -} -.ui-grid-footer-canvas:before, -.ui-grid-footer-canvas:after { - content: ""; - display: table; - line-height: 0; -} -.ui-grid-footer-canvas:after { - clear: both; -} -.ui-grid-footer-cell { - overflow: hidden; - float: left; - background-color: inherit; - border-right: 1px solid; - border-color: #d4d4d4; - box-sizing: border-box; -} -.ui-grid-footer-cell:last-child { - border-right: 0; -} -.ui-grid-footer .ui-grid-vertical-bar { - top: 0; - bottom: 0; -} -input[type="text"].ui-grid-filter-input { - padding: 0; - margin: 0; - border: 0; - width: 100%; - border: 1px solid #d4d4d4; - -webkit-border-top-right-radius: 0px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -webkit-border-top-left-radius: 0; - -moz-border-radius-topright: 0px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - -moz-border-radius-topleft: 0; - border-top-right-radius: 0px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-top-left-radius: 0; - -moz-background-clip: padding-box; - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -input[type="text"].ui-grid-filter-input:hover { - border: 1px solid #d4d4d4; -} -.ui-grid-menu-button { - z-index: 2; - position: absolute; - right: 0; - background: #f3f3f3; - border: 1px solid #d4d4d4; - cursor: pointer; - min-height: 27px; - font-weight: normal; -} -.ui-grid-menu-button .ui-grid-icon-container { - margin-top: 3px; -} -.ui-grid-menu-button .ui-grid-menu { - right: 0; -} -.ui-grid-menu { - z-index: 2; - position: fixed; - overflow: hidden; - padding: 0 10px 20px 10px; - cursor: pointer; - box-sizing: content-box; -} -.ui-grid-menu .ui-grid-menu-inner { - background: #f3f3f3; - border: 1px solid #d4d4d4; - position: relative; - white-space: nowrap; - -webkit-border-radius: 0px; - -moz-border-radius: 0px; - border-radius: 0px; - -webkit-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2); - box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2); -} -.ui-grid-menu .ui-grid-menu-inner ul { - margin: 0; - padding: 0; - list-style-type: none; -} -.ui-grid-menu .ui-grid-menu-inner ul li { - padding: 8px; - cursor: pointer; -} -.ui-grid-menu .ui-grid-menu-inner ul li:hover { - -webkit-box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - -moz-box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); -} -.ui-grid-menu .ui-grid-menu-inner ul li.ui-grid-menu-item-active { - -webkit-box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - -moz-box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); - background-color: #cecece; -} -.ui-grid-menu .ui-grid-menu-inner ul li:not(:last-child) { - border-bottom: 1px solid #d4d4d4; -} -.ui-grid-sortarrow { - right: 5px; - position: absolute; - width: 20px; - top: 0; - bottom: 0; - background-position: center; -} -.ui-grid-sortarrow.down { - -webkit-transform: rotate(180deg); - -moz-transform: rotate(180deg); - -o-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); -} -@font-face { - font-family: 'ui-grid'; - src: url('ui-grid.eot'); - src: url('ui-grid.eot#iefix') format('embedded-opentype'), url('ui-grid.woff') format('woff'), url('ui-grid.ttf?') format('truetype'), url('ui-grid.svg?#ui-grid') format('svg'); - font-weight: normal; - font-style: normal; -} -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'ui-grid'; - src: url('../font/ui-grid.svg?12312827#ui-grid') format('svg'); - } -} -*/ -[class^="ui-grid-icon"]:before, -[class*=" ui-grid-icon"]:before { - font-family: "ui-grid"; - font-style: normal; - font-weight: normal; - speak: none; - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ -} -.ui-grid-icon-blank::before { - width: 1em; - content: ' '; -} -/* -* RTL Styles -*/ -.ui-grid[dir=rtl] .ui-grid-header-cell, -.ui-grid[dir=rtl] .ui-grid-footer-cell, -.ui-grid[dir=rtl] .ui-grid-cell { - float: right !important; -} -.ui-grid[dir=rtl] .ui-grid-scrollbar-horizontal { - left: inherit; - right: 0; -} -.ui-grid[dir=rtl] .ui-grid-native-scrollbar.vertical { - left: 0; - right: inherit; -} -.ui-grid[dir=rtl] .ui-grid-column-menu-button { - position: absolute; - left: 1px; - top: 0; - right: inherit; -} -.ui-grid[dir=rtl] .ui-grid-cell:first-child, -.ui-grid[dir=rtl] .ui-grid-header-cell:first-child, -.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child { - border-right: 0; -} -.ui-grid[dir=rtl] .ui-grid-cell:last-child { - border-right: 1px solid; - border-color: #d4d4d4; -} -.ui-grid[dir=rtl] .ui-grid-header-cell:first-child .ui-grid-vertical-bar, -.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child .ui-grid-vertical-bar, -.ui-grid[dir=rtl] .ui-grid-cell:first-child .ui-grid-vertical-bar { - width: 0; -} -.ui-grid[dir=rtl] .ui-grid-menu-button { - z-index: 2; - position: absolute; - left: 0; - right: auto; - background: #f3f3f3; - border: 1px solid #d4d4d4; - cursor: pointer; - min-height: 27px; - font-weight: normal; -} -.ui-grid[dir=rtl] .ui-grid-menu-button .ui-grid-menu { - left: 0; - right: auto; -} -.ui-grid[dir="rtl"] .ui-grid-filter-container .ui-grid-filter-button { - right: initial; - left: 0; -} -.ui-grid[dir="rtl"] .ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"] { - right: initial; - left: 10px; -} -/* - Animation example, for spinners -*/ -.ui-grid-animate-spin { - -moz-animation: ui-grid-spin 2s infinite linear; - -o-animation: ui-grid-spin 2s infinite linear; - -webkit-animation: ui-grid-spin 2s infinite linear; - animation: ui-grid-spin 2s infinite linear; - display: inline-block; -} -@-moz-keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@-webkit-keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@-o-keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@-ms-keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -@keyframes ui-grid-spin { - 0% { - -moz-transform: rotate(0deg); - -o-transform: rotate(0deg); - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -moz-transform: rotate(359deg); - -o-transform: rotate(359deg); - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} -/*--------------------------------------------------- - LESS Elements 0.9 - --------------------------------------------------- - A set of useful LESS mixins - More info at: http://lesselements.com - ---------------------------------------------------*/ -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-cell-focus { - outline: 0; - background-color: #b3c4c7; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -div.ui-grid-cell input { - border-radius: inherit; - padding: 0; - width: 100%; - color: inherit; - height: auto; - font: inherit; - outline: none; -} -div.ui-grid-cell input:focus { - color: inherit; - outline: none; -} -div.ui-grid-cell input[type="checkbox"] { - margin: 9px 0 0 6px; - width: auto; -} -div.ui-grid-cell input.ng-invalid { - border: 1px solid #fc8f8f; -} -div.ui-grid-cell input.ng-valid { - border: 1px solid #d4d4d4; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.expandableRow .ui-grid-row:nth-child(odd) .ui-grid-cell { - background-color: #fdfdfd; -} -.expandableRow .ui-grid-row:nth-child(even) .ui-grid-cell { - background-color: #f3f3f3; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.movingColumn { - position: fixed; - border: 1px solid #d4d4d4; - box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.2); -} -.movingColumn .ui-grid-icon-angle-down { - display: none; -} - -.ui-grid-pager-panel { - position: absolute; - left: 0; - bottom: 0; - width: 100%; - padding-top: 3px; - padding-bottom: 3px; -} -.ui-grid-pager-container { - float: left; -} -.ui-grid-pager-control { - margin-right: 10px; - margin-left: 10px; - min-width: 135px; - float: left; -} -.ui-grid-pager-control button { - height: 25px; - min-width: 26px; -} -.ui-grid-pager-control input { - height: 26px; - width: 50px; - vertical-align: top; -} -.ui-grid-pager-control .first-bar { - width: 10px; - border-left: 2px solid #4d4d4d; - margin-top: -6px; - height: 12px; - margin-left: -3px; -} -.ui-grid-pager-control .first-triangle { - width: 0; - height: 0; - border-style: solid; - border-width: 5px 8.7px 5px 0; - border-color: transparent #4d4d4d transparent transparent; - margin-left: 2px; -} -.ui-grid-pager-control .next-triangle { - margin-left: 1px; -} -.ui-grid-pager-control .prev-triangle { - margin-left: 0; -} -.ui-grid-pager-control .last-triangle { - width: 0; - height: 0; - border-style: solid; - border-width: 5px 0 5px 8.7px; - border-color: transparent transparent transparent #4d4d4d; - margin-left: -1px; -} -.ui-grid-pager-control .last-bar { - width: 10px; - border-left: 2px solid #4d4d4d; - margin-top: -6px; - height: 12px; - margin-left: 1px; -} -.ui-grid-pager-row-count-picker { - float: left; -} -.ui-grid-pager-row-count-picker select { - height: 26px; - width: 60px; -} -.ui-grid-pager-row-count-picker .ui-grid-pager-row-count-label { - margin-top: 3px; -} -.ui-grid-pager-count-container { - float: right; - margin-top: 4px; - min-width: 50px; -} -.ui-grid-pager-count-container .ui-grid-pager-count { - margin-right: 10px; - margin-left: 10px; - float: right; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-pinned-container { - float: left; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child { - box-sizing: border-box; - border-right: 1px solid; - border-width: 1px; - border-color: #aeaeae; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:last-child { - box-sizing: border-box; - border-right: 1px solid; - border-width: 1px; - border-color: #aeaeae; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar, -.ui-grid-pinned-container .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar { - width: 1px; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar { - background-color: #d4d4d4; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar { - background-color: #aeaeae; -} -.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child .ui-grid-vertical-bar { - right: -1px; - width: 1px; - background-color: #aeaeae; -} -.ui-grid-render-container-body { - float: left; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-column-resizer { - top: 0; - bottom: 0; - width: 5px; - position: absolute; - cursor: col-resize; -} -.ui-grid-column-resizer.left { - left: 0; -} -.ui-grid-column-resizer.right { - right: 0; -} -.ui-grid.column-resizing { - cursor: col-resize; -} -.ui-grid.column-resizing .ui-grid-resize-overlay { - position: absolute; - top: 0; - height: 100%; - width: 1px; - background-color: #aeaeae; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-row-saving .ui-grid-cell { - color: #848484 !important; -} -.ui-grid-row-dirty .ui-grid-cell { - color: #610b38; -} -.ui-grid-row-error .ui-grid-cell { - color: #ff0000 !important; -} - -/* This file contains variable declarations (do not remove this line) */ -/*-- VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -/** -* @section Grid styles -*/ -/** -* @section Header styles -*/ -/** @description Colors for header gradient */ -/** -* @section Grid body styles -*/ -/** @description Colors used for row alternation */ -/** -* @section Sort arrow colors -*/ -/** -* @section Scrollbar styles -*/ -/** -* @section font library path -*/ -/*-- END VARIABLES (DO NOT REMOVE THESE COMMENTS) --*/ -.ui-grid-row-selected .ui-grid-cell { - background-color: #c9dde1 !important; -} -.ui-grid-disable-selection { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: default; -} -.ui-grid-selection-row-header-buttons { - cursor: pointer; - opacity: 0.1; -} -.ui-grid-selection-row-header-buttons.ui-grid-row-selected { - opacity: 1; -} -.ui-grid-selection-row-header-buttons.ui-grid-all-selected { - opacity: 1; -} - -.ui-grid-icon-plus-squared:before { - content: '\c350'; -} -/* '썐' */ -.ui-grid-icon-minus-squared:before { - content: '\c351'; -} -/* '썑' */ -.ui-grid-icon-search:before { - content: '\c352'; -} -/* '썒' */ -.ui-grid-icon-cancel:before { - content: '\c353'; -} -/* '썓' */ -.ui-grid-icon-info-circled:before { - content: '\c354'; -} -/* '썔' */ -.ui-grid-icon-lock:before { - content: '\c355'; -} -/* '썕' */ -.ui-grid-icon-lock-open:before { - content: '\c356'; -} -/* '썖' */ -.ui-grid-icon-pencil:before { - content: '\c357'; -} -/* '썗' */ -.ui-grid-icon-down-dir:before { - content: '\c358'; -} -/* '썘' */ -.ui-grid-icon-up-dir:before { - content: '\c359'; -} -/* '썙' */ -.ui-grid-icon-left-dir:before { - content: '\c35a'; -} -/* '썚' */ -.ui-grid-icon-right-dir:before { - content: '\c35b'; -} -/* '썛' */ -.ui-grid-icon-left-open:before { - content: '\c35c'; -} -/* '썜' */ -.ui-grid-icon-right-open:before { - content: '\c35d'; -} -/* '썝' */ -.ui-grid-icon-angle-down:before { - content: '\c35e'; -} -/* '썞' */ -.ui-grid-icon-filter:before { - content: '\c35f'; -} -/* '썟' */ -.ui-grid-icon-sort-alt-up:before { - content: '\c360'; -} -/* '썠' */ -.ui-grid-icon-sort-alt-down:before { - content: '\c361'; -} -/* '썡' */ -.ui-grid-icon-ok:before { - content: '\c362'; -} -/* '썢' */ -.ui-grid-icon-menu:before { - content: '\c363'; -} -/* '썣' */ -.ui-grid-icon-spin5:before { - content: '\ea61'; -} -/* '' */ diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.eot b/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.eot deleted file mode 100644 index 88b133b6..00000000 Binary files a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.eot and /dev/null differ diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.min.css b/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.min.css deleted file mode 100644 index cc065e90..00000000 --- a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.min.css +++ /dev/null @@ -1,13 +0,0 @@ -.ui-grid{border:1px solid #d4d4d4;box-sizing:content-box;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.ui-grid-vertical-bar{position:absolute;right:0;width:0}.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{width:1px}.ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#d4d4d4}.ui-grid-clearfix:before,.ui-grid-clearfix:after{content:"";display:table}.ui-grid-clearfix:after{clear:both}.ui-grid-invisible{visibility:hidden}.ui-grid-top-panel-background{background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0)}.ui-grid-header{border-bottom:1px solid #d4d4d4;box-sizing:content-box}.ui-grid-top-panel{position:relative;overflow:hidden;font-weight:bold;background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);-webkit-border-top-right-radius:-1px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:-1px;-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;border-top-right-radius:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}.ui-grid-group-panel{background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);border-bottom:1px solid #d4d4d4;-webkit-border-top-right-radius:-1px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:-1px;-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;border-top-right-radius:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;min-height:30px}.ui-grid-header-group-panel .hidden{display:none}.ui-grid-header-viewport{overflow:hidden}.ui-grid-header-canvas{position:relative}.ui-grid-header-canvas:before,.ui-grid-header-canvas:after{content:"";display:table;line-height:0}.ui-grid-header-canvas:after{clear:both}.ui-grid-header-cell{position:relative;float:left;top:0;bottom:0;background-color:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:0}.ui-grid-header-cell .sortable{cursor:pointer}.ui-grid-header .ui-grid-vertical-bar{top:0;bottom:0}.ui-grid-column-menu-button{position:absolute;right:1px;top:0}.ui-grid-column-menu-button .ui-grid-icon-angle-down{vertical-align:sub}.ui-grid-column-menu{position:absolute}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all .05s linear;-moz-transition:all .05s linear;-o-transition:all .05s linear;transition:all .05s linear;display:block !important}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-column-menu .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transition:all .05s linear;-moz-transition:all .05s linear;-o-transition:all .05s linear;transition:all .05s linear;display:block !important}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add.ng-hide-add-active,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove{-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-o-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-add,.ui-grid-menu-button .ui-grid-menu .ui-grid-menu-mid.ng-hide-remove.ng-hide-remove-active{-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.ui-grid-filter-container{padding:4px 10px;position:relative}.ui-grid-filter-container .ui-grid-filter-button{position:absolute;top:0;bottom:0;right:0}.ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"]{position:absolute;top:50%;line-height:32px;margin-top:-16px;right:10px;opacity:0.66}.ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"]:hover{opacity:1}input[type="text"].ui-grid-filter-input{padding:0;margin:0;border:0;width:100%;border:1px solid #d4d4d4;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}input[type="text"].ui-grid-filter-input:hover{border:1px solid #d4d4d4}.ui-grid-render-container{position:inherit;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}.ui-grid-render-container:focus{outline:none}.ui-grid-viewport{min-height:20px;position:relative;overflow:hidden}.ui-grid-viewport :focus{outline:none}.ui-grid-canvas{position:relative}.ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fdfdfd}.ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f3f3f3}.ui-grid-row:last-child .ui-grid-cell{border-bottom-color:#d4d4d4;border-bottom-style:solid}.ui-grid-no-row-overlay{position:absolute;top:0;bottom:0;left:0;right:0;margin:10%;background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #d4d4d4;font-size:2em;text-align:center}.ui-grid-no-row-overlay>*{position:absolute;display:table;margin:auto 0;width:100%;top:0;bottom:0;left:0;right:0;opacity:0.66}.ui-grid-cell{overflow:hidden;float:left;background-color:inherit;border-right:1px solid;border-color:#d4d4d4;box-sizing:border-box}.ui-grid-cell:last-child{border-right:0}.ui-grid-cell-contents{padding:5px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;overflow:hidden;height:100%}.ui-grid-cell-contents-hidden{visibility:hidden;width:0;height:0;display:none}.ui-grid-row-header-cell{background-color:#F0F0EE !important;border-bottom:solid 1px #d4d4d4}.ui-grid-native-scrollbar{position:absolute;overflow:scroll}.ui-grid-native-scrollbar.vertical{top:0;right:0;height:100%;overflow-x:hidden;width:17px}.ui-grid-native-scrollbar.horizontal{bottom:0;left:0;width:100%;overflow-y:hidden;height:17px}.ui-grid-footer-panel-background{background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0)}.ui-grid-footer-panel{position:relative;border-bottom:1px solid #d4d4d4;border-top:1px solid #d4d4d4;overflow:hidden;font-weight:bold;background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);-webkit-border-top-right-radius:-1px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:-1px;-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;border-top-right-radius:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}.ui-grid-group-panel{background:#f3f3f3;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(1, #fff));background:-ms-linear-gradient(bottom, #eee, #fff);background:-moz-linear-gradient(center bottom, #eee 0, #fff 100%);background:-o-linear-gradient(#fff, #eee);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);border-bottom:1px solid #d4d4d4;border-top:1px solid #d4d4d4;-webkit-border-top-right-radius:-1px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:-1px;-moz-border-radius-topright:-1px;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:-1px;border-top-right-radius:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:-1px;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box;min-height:30px}.ui-grid-footer-group-panel .hidden{display:none}.ui-grid-footer-viewport{overflow:hidden}.ui-grid-footer-canvas{position:relative}.ui-grid-footer-canvas:before,.ui-grid-footer-canvas:after{content:"";display:table;line-height:0}.ui-grid-footer-canvas:after{clear:both}.ui-grid-footer-cell{overflow:hidden;float:left;background-color:inherit;border-right:1px solid;border-color:#d4d4d4;box-sizing:border-box}.ui-grid-footer-cell:last-child{border-right:0}.ui-grid-footer .ui-grid-vertical-bar{top:0;bottom:0}input[type="text"].ui-grid-filter-input{padding:0;margin:0;border:0;width:100%;border:1px solid #d4d4d4;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;-moz-border-radius-bottomleft:0;-moz-border-radius-topleft:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-left-radius:0;-moz-background-clip:padding-box;-webkit-background-clip:padding-box;background-clip:padding-box}input[type="text"].ui-grid-filter-input:hover{border:1px solid #d4d4d4}.ui-grid-menu-button{z-index:2;position:absolute;right:0;background:#f3f3f3;border:1px solid #d4d4d4;cursor:pointer;min-height:27px;font-weight:normal}.ui-grid-menu-button .ui-grid-icon-container{margin-top:3px}.ui-grid-menu-button .ui-grid-menu{right:0}.ui-grid-menu{z-index:2;position:fixed;overflow:hidden;padding:0 10px 20px 10px;cursor:pointer;box-sizing:content-box}.ui-grid-menu .ui-grid-menu-inner{background:#f3f3f3;border:1px solid #d4d4d4;position:relative;white-space:nowrap;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2);box-shadow:0 10px 20px rgba(0, 0, 0, 0.2), inset 0 12px 12px -14px rgba(0, 0, 0, 0.2)}.ui-grid-menu .ui-grid-menu-inner ul{margin:0;padding:0;list-style-type:none}.ui-grid-menu .ui-grid-menu-inner ul li{padding:8px;cursor:pointer}.ui-grid-menu .ui-grid-menu-inner ul li:hover{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,0.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,0.2);box-shadow:inset 0 0 14px rgba(0,0,0,0.2)}.ui-grid-menu .ui-grid-menu-inner ul li.ui-grid-menu-item-active{-webkit-box-shadow:inset 0 0 14px rgba(0,0,0,0.2);-moz-box-shadow:inset 0 0 14px rgba(0,0,0,0.2);box-shadow:inset 0 0 14px rgba(0,0,0,0.2);background-color:#cecece}.ui-grid-menu .ui-grid-menu-inner ul li:not(:last-child){border-bottom:1px solid #d4d4d4}.ui-grid-sortarrow{right:5px;position:absolute;width:20px;top:0;bottom:0;background-position:center}.ui-grid-sortarrow.down{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-o-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}@font-face{font-family:'ui-grid';src:url('ui-grid.eot');src:url('ui-grid.eot#iefix') format('embedded-opentype'),url('ui-grid.woff') format('woff'),url('ui-grid.ttf?') format('truetype'),url('ui-grid.svg?#ui-grid') format('svg');font-weight:normal;font-style:normal}[class^="ui-grid-icon"]:before,[class*=" ui-grid-icon"]:before{font-family:"ui-grid";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.ui-grid-icon-blank::before{width:1em;content:' '}.ui-grid[dir=rtl] .ui-grid-header-cell,.ui-grid[dir=rtl] .ui-grid-footer-cell,.ui-grid[dir=rtl] .ui-grid-cell{float:right !important}.ui-grid[dir=rtl] .ui-grid-scrollbar-horizontal{left:inherit;right:0}.ui-grid[dir=rtl] .ui-grid-native-scrollbar.vertical{left:0;right:inherit}.ui-grid[dir=rtl] .ui-grid-column-menu-button{position:absolute;left:1px;top:0;right:inherit}.ui-grid[dir=rtl] .ui-grid-cell:first-child,.ui-grid[dir=rtl] .ui-grid-header-cell:first-child,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child{border-right:0}.ui-grid[dir=rtl] .ui-grid-cell:last-child{border-right:1px solid;border-color:#d4d4d4}.ui-grid[dir=rtl] .ui-grid-header-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-footer-cell:first-child .ui-grid-vertical-bar,.ui-grid[dir=rtl] .ui-grid-cell:first-child .ui-grid-vertical-bar{width:0}.ui-grid[dir=rtl] .ui-grid-menu-button{z-index:2;position:absolute;left:0;right:auto;background:#f3f3f3;border:1px solid #d4d4d4;cursor:pointer;min-height:27px;font-weight:normal}.ui-grid[dir=rtl] .ui-grid-menu-button .ui-grid-menu{left:0;right:auto}.ui-grid[dir="rtl"] .ui-grid-filter-container .ui-grid-filter-button{right:initial;left:0}.ui-grid[dir="rtl"] .ui-grid-filter-container .ui-grid-filter-button [class^="ui-grid-icon"]{right:initial;left:10px}.ui-grid-animate-spin{-moz-animation:ui-grid-spin 2s infinite linear;-o-animation:ui-grid-spin 2s infinite linear;-webkit-animation:ui-grid-spin 2s infinite linear;animation:ui-grid-spin 2s infinite linear;display:inline-block}@-moz-keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-o-keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-ms-keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes ui-grid-spin{0%{-moz-transform:rotate(0deg);-o-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-moz-transform:rotate(359deg);-o-transform:rotate(359deg);-webkit-transform:rotate(359deg);transform:rotate(359deg)}} -.ui-grid-cell-focus{outline:0;background-color:#b3c4c7} -div.ui-grid-cell input{border-radius:inherit;padding:0;width:100%;color:inherit;height:auto;font:inherit;outline:none}div.ui-grid-cell input:focus{color:inherit;outline:none}div.ui-grid-cell input[type="checkbox"]{margin:9px 0 0 6px;width:auto}div.ui-grid-cell input.ng-invalid{border:1px solid #fc8f8f}div.ui-grid-cell input.ng-valid{border:1px solid #d4d4d4} -.expandableRow .ui-grid-row:nth-child(odd) .ui-grid-cell{background-color:#fdfdfd}.expandableRow .ui-grid-row:nth-child(even) .ui-grid-cell{background-color:#f3f3f3} - - -.movingColumn{position:fixed;border:1px solid #d4d4d4;box-shadow:inset 0 0 14px rgba(0,0,0,0.2)}.movingColumn .ui-grid-icon-angle-down{display:none} -.ui-grid-pager-panel{position:absolute;left:0;bottom:0;width:100%;padding-top:3px;padding-bottom:3px}.ui-grid-pager-container{float:left}.ui-grid-pager-control{margin-right:10px;margin-left:10px;min-width:135px;float:left}.ui-grid-pager-control button{height:25px;min-width:26px}.ui-grid-pager-control input{height:26px;width:50px;vertical-align:top}.ui-grid-pager-control .first-bar{width:10px;border-left:2px solid #4d4d4d;margin-top:-6px;height:12px;margin-left:-3px}.ui-grid-pager-control .first-triangle{width:0;height:0;border-style:solid;border-width:5px 8.7px 5px 0;border-color:transparent #4d4d4d transparent transparent;margin-left:2px}.ui-grid-pager-control .next-triangle{margin-left:1px}.ui-grid-pager-control .prev-triangle{margin-left:0}.ui-grid-pager-control .last-triangle{width:0;height:0;border-style:solid;border-width:5px 0 5px 8.7px;border-color:transparent transparent transparent #4d4d4d;margin-left:-1px}.ui-grid-pager-control .last-bar{width:10px;border-left:2px solid #4d4d4d;margin-top:-6px;height:12px;margin-left:1px}.ui-grid-pager-row-count-picker{float:left}.ui-grid-pager-row-count-picker select{height:26px;width:60px}.ui-grid-pager-row-count-picker .ui-grid-pager-row-count-label{margin-top:3px}.ui-grid-pager-count-container{float:right;margin-top:4px;min-width:50px}.ui-grid-pager-count-container .ui-grid-pager-count{margin-right:10px;margin-left:10px;float:right} -.ui-grid-pinned-container{float:left}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child{box-sizing:border-box;border-right:1px solid;border-width:1px;border-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:last-child{box-sizing:border-box;border-right:1px solid;border-width:1px;border-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar,.ui-grid-pinned-container .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{width:1px}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#d4d4d4}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-cell:not(:last-child) .ui-grid-vertical-bar{background-color:#aeaeae}.ui-grid-pinned-container.ui-grid-pinned-container-left .ui-grid-header-cell:last-child .ui-grid-vertical-bar{right:-1px;width:1px;background-color:#aeaeae}.ui-grid-render-container-body{float:left} -.ui-grid-column-resizer{top:0;bottom:0;width:5px;position:absolute;cursor:col-resize}.ui-grid-column-resizer.left{left:0}.ui-grid-column-resizer.right{right:0}.ui-grid.column-resizing{cursor:col-resize}.ui-grid.column-resizing .ui-grid-resize-overlay{position:absolute;top:0;height:100%;width:1px;background-color:#aeaeae} -.ui-grid-row-saving .ui-grid-cell{color:#848484 !important}.ui-grid-row-dirty .ui-grid-cell{color:#610b38}.ui-grid-row-error .ui-grid-cell{color:#f00 !important} -.ui-grid-row-selected .ui-grid-cell{background-color:#c9dde1 !important}.ui-grid-disable-selection{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.ui-grid-selection-row-header-buttons{cursor:pointer;opacity:0.1}.ui-grid-selection-row-header-buttons.ui-grid-row-selected{opacity:1}.ui-grid-selection-row-header-buttons.ui-grid-all-selected{opacity:1} -.ui-grid-icon-plus-squared:before{content:'\c350'}.ui-grid-icon-minus-squared:before{content:'\c351'}.ui-grid-icon-search:before{content:'\c352'}.ui-grid-icon-cancel:before{content:'\c353'}.ui-grid-icon-info-circled:before{content:'\c354'}.ui-grid-icon-lock:before{content:'\c355'}.ui-grid-icon-lock-open:before{content:'\c356'}.ui-grid-icon-pencil:before{content:'\c357'}.ui-grid-icon-down-dir:before{content:'\c358'}.ui-grid-icon-up-dir:before{content:'\c359'}.ui-grid-icon-left-dir:before{content:'\c35a'}.ui-grid-icon-right-dir:before{content:'\c35b'}.ui-grid-icon-left-open:before{content:'\c35c'}.ui-grid-icon-right-open:before{content:'\c35d'}.ui-grid-icon-angle-down:before{content:'\c35e'}.ui-grid-icon-filter:before{content:'\c35f'}.ui-grid-icon-sort-alt-up:before{content:'\c360'}.ui-grid-icon-sort-alt-down:before{content:'\c361'}.ui-grid-icon-ok:before{content:'\c362'}.ui-grid-icon-menu:before{content:'\c363'}.ui-grid-icon-spin5:before{content:'\ea61'} diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.svg b/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.svg deleted file mode 100644 index ad8cdc63..00000000 --- a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - -Copyright (C) 2014 by original authors @ fontello.com - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.ttf b/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.ttf deleted file mode 100644 index d2dc304d..00000000 Binary files a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.ttf and /dev/null differ diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.woff b/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.woff deleted file mode 100644 index e11bc656..00000000 Binary files a/src/main/resources/META-INF/resources/designer/css/ui-grid-unstable.woff and /dev/null differ diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid.css b/src/main/resources/META-INF/resources/designer/css/ui-grid.css deleted file mode 100644 index b31f2f54..00000000 --- a/src/main/resources/META-INF/resources/designer/css/ui-grid.css +++ /dev/null @@ -1,14 +0,0 @@ -.ui-grid-header-table { - margin-bottom: 0; -} -.ui-grid-pinned.left { - float: left; -} -.ui-grid-pinned.right { - float: right; -} -.ui-grid-viewport tbody, -.ui-grid-viewport table tr:first-child, -.ui-grid-viewport table tr:first-child > td { - border-top: none; -} diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid.eot b/src/main/resources/META-INF/resources/designer/css/ui-grid.eot deleted file mode 100644 index 4d98e71c..00000000 Binary files a/src/main/resources/META-INF/resources/designer/css/ui-grid.eot and /dev/null differ diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid.min.css b/src/main/resources/META-INF/resources/designer/css/ui-grid.min.css deleted file mode 100644 index 0506679b..00000000 --- a/src/main/resources/META-INF/resources/designer/css/ui-grid.min.css +++ /dev/null @@ -1 +0,0 @@ -.ui-grid-header-table{margin-bottom:0}.ui-grid-pinned.left{float:left}.ui-grid-pinned.right{float:right}.ui-grid-viewport tbody,.ui-grid-viewport table tr:first-child,.ui-grid-viewport table tr:first-child>td{border-top:none} diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid.svg b/src/main/resources/META-INF/resources/designer/css/ui-grid.svg deleted file mode 100644 index e3138a36..00000000 --- a/src/main/resources/META-INF/resources/designer/css/ui-grid.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - -Copyright (C) 2014 by original authors @ fontello.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid.ttf b/src/main/resources/META-INF/resources/designer/css/ui-grid.ttf deleted file mode 100644 index 838611af..00000000 Binary files a/src/main/resources/META-INF/resources/designer/css/ui-grid.ttf and /dev/null differ diff --git a/src/main/resources/META-INF/resources/designer/css/ui-grid.woff b/src/main/resources/META-INF/resources/designer/css/ui-grid.woff deleted file mode 100644 index ca1a9c6e..00000000 Binary files a/src/main/resources/META-INF/resources/designer/css/ui-grid.woff and /dev/null differ diff --git a/src/main/resources/META-INF/resources/designer/index.html b/src/main/resources/META-INF/resources/designer/index.html index 85fff431..82d3d7bb 100644 --- a/src/main/resources/META-INF/resources/designer/index.html +++ b/src/main/resources/META-INF/resources/designer/index.html @@ -65,9 +65,6 @@ - - - @@ -120,8 +117,6 @@ - - diff --git a/src/main/resources/META-INF/resources/designer/lib/ui-grid-stable.js b/src/main/resources/META-INF/resources/designer/lib/ui-grid-stable.js deleted file mode 100644 index c3c3dcd7..00000000 --- a/src/main/resources/META-INF/resources/designer/lib/ui-grid-stable.js +++ /dev/null @@ -1,13034 +0,0 @@ -/*! ui-grid - v3.0.0-rc.3 - 2014-09-25 -* Copyright (c) 2014 ; License: MIT */ -(function () { - 'use strict'; - angular.module('ui.grid.i18n', []); - angular.module('ui.grid', ['ui.grid.i18n']); -})(); -(function () { - 'use strict'; - angular.module('ui.grid').constant('uiGridConstants', { - CUSTOM_FILTERS: /CUSTOM_FILTERS/g, - COL_FIELD: /COL_FIELD/g, - DISPLAY_CELL_TEMPLATE: /DISPLAY_CELL_TEMPLATE/g, - TEMPLATE_REGEXP: /<.+>/, - FUNC_REGEXP: /(\([^)]*\))?$/, - DOT_REGEXP: /\./g, - APOS_REGEXP: /'/g, - BRACKET_REGEXP: /^(.*)((?:\s*\[\s*\d+\s*\]\s*)|(?:\s*\[\s*"(?:[^"\\]|\\.)*"\s*\]\s*)|(?:\s*\[\s*'(?:[^'\\]|\\.)*'\s*\]\s*))(.*)$/, - COL_CLASS_PREFIX: 'ui-grid-col', - events: { - GRID_SCROLL: 'uiGridScroll', - COLUMN_MENU_SHOWN: 'uiGridColMenuShown', - ITEM_DRAGGING: 'uiGridItemDragStart' // For any item being dragged - }, - // copied from http://www.lsauer.com/2011/08/javascript-keymap-keycodes-in-json.html - keymap: { - TAB: 9, - STRG: 17, - CTRL: 17, - CTRLRIGHT: 18, - CTRLR: 18, - SHIFT: 16, - RETURN: 13, - ENTER: 13, - BACKSPACE: 8, - BCKSP: 8, - ALT: 18, - ALTR: 17, - ALTRIGHT: 17, - SPACE: 32, - WIN: 91, - MAC: 91, - FN: null, - UP: 38, - DOWN: 40, - LEFT: 37, - RIGHT: 39, - ESC: 27, - DEL: 46, - F1: 112, - F2: 113, - F3: 114, - F4: 115, - F5: 116, - F6: 117, - F7: 118, - F8: 119, - F9: 120, - F10: 121, - F11: 122, - F12: 123 - }, - ASC: 'asc', - DESC: 'desc', - filter: { - STARTS_WITH: 2, - ENDS_WITH: 4, - EXACT: 8, - CONTAINS: 16, - GREATER_THAN: 32, - GREATER_THAN_OR_EQUAL: 64, - LESS_THAN: 128, - LESS_THAN_OR_EQUAL: 256, - NOT_EQUAL: 512 - }, - - aggregationTypes: { - sum: 2, - count: 4, - avg: 8, - min: 16, - max: 32 - }, - - // TODO(c0bra): Create full list of these somehow. NOTE: do any allow a space before or after them? - CURRENCY_SYMBOLS: ['ƒ', '$', '£', '$', '¤', '¥', '៛', '₩', '₱', '฿', '₫'] - }); - -})(); -angular.module('ui.grid').directive('uiGridCell', ['$compile', '$log', '$parse', 'gridUtil', 'uiGridConstants', function ($compile, $log, $parse, gridUtil, uiGridConstants) { - var uiGridCell = { - priority: 0, - scope: false, - require: '?^uiGrid', - compile: function() { - return { - pre: function($scope, $elm, $attrs, uiGridCtrl) { - function compileTemplate() { - var compiledElementFn = $scope.col.compiledElementFn; - - compiledElementFn($scope, function(clonedElement, scope) { - $elm.append(clonedElement); - }); - } - - // If the grid controller is present, use it to get the compiled cell template function - if (uiGridCtrl) { - compileTemplate(); - } - // No controller, compile the element manually (for unit tests) - else { - var html = $scope.col.cellTemplate - .replace(uiGridConstants.COL_FIELD, 'grid.getCellValue(row, col)'); - var cellElement = $compile(html)($scope); - $elm.append(cellElement); - } - }, - post: function($scope, $elm, $attrs, uiGridCtrl) { - $elm.addClass($scope.col.getColClass(false)); - if ($scope.col.cellClass) { - //var contents = angular.element($elm[0].getElementsByClassName('ui-grid-cell-contents')); - var contents = $elm; - if (angular.isFunction($scope.col.cellClass)) { - contents.addClass($scope.col.cellClass($scope.grid, $scope.row, $scope.col, $scope.rowRenderIndex, $scope.colRenderIndex)); - } - else { - contents.addClass($scope.col.cellClass); - } - } - } - }; - } - }; - - return uiGridCell; -}]); - - -(function(){ - -angular.module('ui.grid').directive('uiGridColumnMenu', ['$log', '$timeout', '$window', '$document', '$injector', 'gridUtil', 'uiGridConstants', 'i18nService', function ($log, $timeout, $window, $document, $injector, gridUtil, uiGridConstants, i18nService) { - - var uiGridColumnMenu = { - priority: 0, - scope: true, - require: '?^uiGrid', - templateUrl: 'ui-grid/uiGridColumnMenu', - replace: true, - link: function ($scope, $elm, $attrs, uiGridCtrl) { - gridUtil.enableAnimations($elm); - - $scope.grid = uiGridCtrl.grid; - - var self = this; - - // Store a reference to this link/controller in the main uiGrid controller - // to allow showMenu later - uiGridCtrl.columnMenuScope = $scope; - - // Save whether we're shown or not so the columns can check - self.shown = $scope.menuShown = false; - - // Put asc and desc sort directions in scope - $scope.asc = uiGridConstants.ASC; - $scope.desc = uiGridConstants.DESC; - - // $scope.i18n = i18nService; - - // Get the grid menu element. We'll use it to calculate positioning - $scope.menu = $elm[0].querySelectorAll('.ui-grid-menu'); - - // Get the inner menu part. It's what slides up/down - $scope.inner = $elm[0].querySelectorAll('.ui-grid-menu-inner'); - - /** - * @ngdoc boolean - * @name enableSorting - * @propertyOf ui.grid.class:GridOptions.columnDef - * @description (optional) True by default. When enabled, this setting adds sort - * widgets to the column header, allowing sorting of the data in the individual column. - */ - $scope.sortable = function() { - if (uiGridCtrl.grid.options.enableSorting && typeof($scope.col) !== 'undefined' && $scope.col && $scope.col.enableSorting) { - return true; - } - else { - return false; - } - }; - - /** - * @ngdoc boolean - * @name enableFiltering - * @propertyOf ui.grid.class:GridOptions.columnDef - * @description (optional) True by default. When enabled, this setting adds filter - * widgets to the column header, allowing filtering of the data in the individual column. - */ - $scope.filterable = function() { - if (uiGridCtrl.grid.options.enableFiltering && typeof($scope.col) !== 'undefined' && $scope.col && $scope.col.enableFiltering) { - return true; - } - else { - return false; - } - }; - - var defaultMenuItems = [ - // NOTE: disabling this in favor of a little filter text box - // Column filter input - // { - // templateUrl: 'ui-grid/uiGridColumnFilter', - // action: function($event) { - // $event.stopPropagation(); - // $scope.filterColumn($event); - // }, - // cancel: function ($event) { - // $event.stopPropagation(); - - // $scope.col.filter = {}; - // }, - // shown: function () { - // return filterable(); - // } - // }, - { - title: i18nService.getSafeText('sort.ascending'), - icon: 'ui-grid-icon-sort-alt-up', - action: function($event) { - $event.stopPropagation(); - $scope.sortColumn($event, uiGridConstants.ASC); - }, - shown: function () { - return $scope.sortable(); - }, - active: function() { - return (typeof($scope.col) !== 'undefined' && typeof($scope.col.sort) !== 'undefined' && typeof($scope.col.sort.direction) !== 'undefined' && $scope.col.sort.direction === uiGridConstants.ASC); - } - }, - { - title: i18nService.getSafeText('sort.descending'), - icon: 'ui-grid-icon-sort-alt-down', - action: function($event) { - $event.stopPropagation(); - $scope.sortColumn($event, uiGridConstants.DESC); - }, - shown: function() { - return $scope.sortable(); - }, - active: function() { - return (typeof($scope.col) !== 'undefined' && typeof($scope.col.sort) !== 'undefined' && typeof($scope.col.sort.direction) !== 'undefined' && $scope.col.sort.direction === uiGridConstants.DESC); - } - }, - { - title: i18nService.getSafeText('sort.remove'), - icon: 'ui-grid-icon-cancel', - action: function ($event) { - $event.stopPropagation(); - $scope.unsortColumn(); - }, - shown: function() { - return ($scope.sortable() && typeof($scope.col) !== 'undefined' && (typeof($scope.col.sort) !== 'undefined' && typeof($scope.col.sort.direction) !== 'undefined') && $scope.col.sort.direction !== null); - } - }, - { - title: i18nService.getSafeText('column.hide'), - icon: 'ui-grid-icon-cancel', - action: function ($event) { - $event.stopPropagation(); - $scope.hideColumn(); - } - } - ]; - - // Set the menu items for use with the column menu. Let's the user specify extra menu items per column if they want. - $scope.menuItems = defaultMenuItems; - $scope.$watch('col.menuItems', function (n, o) { - if (typeof(n) !== 'undefined' && n && angular.isArray(n)) { - n.forEach(function (item) { - if (typeof(item.context) === 'undefined' || !item.context) { - item.context = {}; - } - item.context.col = $scope.col; - }); - - $scope.menuItems = defaultMenuItems.concat(n); - } - else { - $scope.menuItems = defaultMenuItems; - } - }); - - var $animate; - try { - $animate = $injector.get('$animate'); - } - catch (e) { - $log.info('$animate service not found (ngAnimate not add as a dependency?), menu animations will not occur'); - } - - // Show the menu - $scope.showMenu = function(column, $columnElement) { - // Swap to this column - // note - store a reference to this column in 'self' so the columns can check whether they're the shown column or not - self.col = $scope.col = column; - - // Remove an existing document click handler - $document.off('click', documentClick); - - /* Reposition the menu below this column's element */ - var left = $columnElement[0].offsetLeft; - var top = $columnElement[0].offsetTop; - - // Get the grid scrollLeft - var offset = 0; - if (column.grid.options.offsetLeft) { - offset = column.grid.options.offsetLeft; - } - - var height = gridUtil.elementHeight($columnElement, true); - var width = gridUtil.elementWidth($columnElement, true); - - // Flag for whether we're hidden for showing via $animate - var hidden = false; - - // Re-position the menu AFTER it's been shown, so we can calculate the width correctly. - function reposition() { - $timeout(function() { - if (hidden && $animate) { - $animate.removeClass($scope.inner, 'ng-hide'); - self.shown = $scope.menuShown = true; - $scope.$broadcast('show-menu'); - } - else if (angular.element($scope.inner).hasClass('ng-hide')) { - angular.element($scope.inner).removeClass('ng-hide'); - } - - // var containerScrollLeft = $columnelement - var containerId = column.renderContainer ? column.renderContainer : 'body'; - var renderContainer = column.grid.renderContainers[containerId]; - // var containerScrolLeft = renderContainer.prevScrollLeft; - - // It's possible that the render container of the column we're attaching to is offset from the grid (i.e. pinned containers), we - // need to get the different in the offsetLeft between the render container and the grid - var renderContainerElm = gridUtil.closestElm($columnElement, '.ui-grid-render-container'); - var renderContainerOffset = renderContainerElm.offsetLeft - $scope.grid.element[0].offsetLeft; - - var containerScrolLeft = renderContainerElm.querySelectorAll('.ui-grid-viewport')[0].scrollLeft; - - var myWidth = gridUtil.elementWidth($scope.menu, true); - - // TODO(c0bra): use padding-left/padding-right based on document direction (ltr/rtl), place menu on proper side - // Get the column menu right padding - var paddingRight = parseInt(angular.element($scope.menu).css('padding-right'), 10); - - // $log.debug('position', left + ' + ' + width + ' - ' + myWidth + ' + ' + paddingRight); - - $elm.css('left', (left + renderContainerOffset - containerScrolLeft + width - myWidth + paddingRight) + 'px'); - $elm.css('top', (top + height) + 'px'); - - // Hide the menu on a click on the document - $document.on('click', documentClick); - }); - } - - if ($scope.menuShown && $animate) { - // Animate closing the menu on the current column, then animate it opening on the other column - $animate.addClass($scope.inner, 'ng-hide', reposition); - hidden = true; - } - else { - self.shown = $scope.menuShown = true; - $scope.$broadcast('show-menu'); - reposition(); - } - }; - - // Hide the menu - $scope.hideMenu = function() { - delete self.col; - delete $scope.col; - self.shown = $scope.menuShown = false; - $scope.$broadcast('hide-menu'); - }; - - // Prevent clicks on the menu from bubbling up to the document and making it hide prematurely - // $elm.on('click', function (event) { - // event.stopPropagation(); - // }); - - function documentClick() { - $scope.$apply($scope.hideMenu); - $document.off('click', documentClick); - } - - function resizeHandler() { - $scope.$apply($scope.hideMenu); - } - angular.element($window).bind('resize', resizeHandler); - - $scope.$on('$destroy', $scope.$on(uiGridConstants.events.GRID_SCROLL, function(evt, args) { - $scope.hideMenu(); - // if (!$scope.$$phase) { $scope.$apply(); } - })); - - $scope.$on('$destroy', $scope.$on(uiGridConstants.events.ITEM_DRAGGING, function(evt, args) { - $scope.hideMenu(); - // if (!$scope.$$phase) { $scope.$apply(); } - })); - - $scope.$on('$destroy', function() { - angular.element($window).off('resize', resizeHandler); - $document.off('click', documentClick); - }); - - /* Column methods */ - $scope.sortColumn = function (event, dir) { - event.stopPropagation(); - - uiGridCtrl.grid.sortColumn($scope.col, dir, true) - .then(function () { - uiGridCtrl.grid.refresh(); - $scope.hideMenu(); - }); - }; - - $scope.unsortColumn = function () { - $scope.col.unsort(); - - uiGridCtrl.grid.refresh(); - $scope.hideMenu(); - }; - - $scope.hideColumn = function () { - $scope.col.colDef.visible = false; - - uiGridCtrl.grid.refresh(); - $scope.hideMenu(); - }; - }, - controller: ['$scope', function ($scope) { - var self = this; - - $scope.$watch('menuItems', function (n, o) { - self.menuItems = n; - }); - }] - }; - - return uiGridColumnMenu; - -}]); - -})(); -(function () { - 'use strict'; - - angular.module('ui.grid').directive('uiGridFooterCell', ['$log', '$timeout', 'gridUtil', '$compile', function ($log, $timeout, gridUtil, $compile) { - var uiGridFooterCell = { - priority: 0, - scope: { - col: '=', - row: '=', - renderIndex: '=' - }, - replace: true, - require: '^uiGrid', - compile: function compile(tElement, tAttrs, transclude) { - return { - pre: function ($scope, $elm, $attrs, uiGridCtrl) { - function compileTemplate(template) { - gridUtil.getTemplate(template).then(function (contents) { - var linkFunction = $compile(contents); - var html = linkFunction($scope); - $elm.append(html); - }); - } - - //compile the footer template - if ($scope.col.footerCellTemplate) { - //compile the custom template - compileTemplate($scope.col.footerCellTemplate); - } - else { - //use default template - compileTemplate('ui-grid/uiGridFooterCell'); - } - }, - post: function ($scope, $elm, $attrs, uiGridCtrl) { - //$elm.addClass($scope.col.getColClass(false)); - $scope.grid = uiGridCtrl.grid; - - $elm.addClass($scope.col.getColClass(false)); - } - }; - } - }; - - return uiGridFooterCell; - }]); - -})(); - -(function () { - 'use strict'; - - angular.module('ui.grid').directive('uiGridFooter', ['$log', '$templateCache', '$compile', 'uiGridConstants', 'gridUtil', '$timeout', function ($log, $templateCache, $compile, uiGridConstants, gridUtil, $timeout) { - var defaultTemplate = 'ui-grid/ui-grid-footer'; - - return { - restrict: 'EA', - replace: true, - // priority: 1000, - require: ['^uiGrid', '^uiGridRenderContainer'], - scope: true, - compile: function ($elm, $attrs) { - return { - pre: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - $scope.grid = uiGridCtrl.grid; - $scope.colContainer = containerCtrl.colContainer; - - containerCtrl.footer = $elm; - - var footerTemplate = ($scope.grid.options.footerTemplate) ? $scope.grid.options.footerTemplate : defaultTemplate; - gridUtil.getTemplate(footerTemplate) - .then(function (contents) { - var template = angular.element(contents); - - var newElm = $compile(template)($scope); - $elm.append(newElm); - - if (containerCtrl) { - // Inject a reference to the footer viewport (if it exists) into the grid controller for use in the horizontal scroll handler below - var footerViewport = $elm[0].getElementsByClassName('ui-grid-footer-viewport')[0]; - - if (footerViewport) { - containerCtrl.footerViewport = footerViewport; - } - } - }); - }, - - post: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - $log.debug('ui-grid-footer link'); - - var grid = uiGridCtrl.grid; - - // Don't animate footer cells - gridUtil.disableAnimations($elm); - - containerCtrl.footer = $elm; - - var footerViewport = $elm[0].getElementsByClassName('ui-grid-footer-viewport')[0]; - if (footerViewport) { - containerCtrl.footerViewport = footerViewport; - } - } - }; - } - }; - }]); - -})(); -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridGroupPanel', ["$compile", "uiGridConstants", "gridUtil", function($compile, uiGridConstants, gridUtil) { - var defaultTemplate = 'ui-grid/ui-grid-group-panel'; - - return { - restrict: 'EA', - replace: true, - require: '?^uiGrid', - scope: false, - compile: function($elm, $attrs) { - return { - pre: function ($scope, $elm, $attrs, uiGridCtrl) { - var groupPanelTemplate = $scope.grid.options.groupPanelTemplate || defaultTemplate; - - gridUtil.getTemplate(groupPanelTemplate) - .then(function (contents) { - var template = angular.element(contents); - - var newElm = $compile(template)($scope); - $elm.append(newElm); - }); - }, - - post: function ($scope, $elm, $attrs, uiGridCtrl) { - $elm.bind('$destroy', function() { - // scrollUnbinder(); - }); - } - }; - } - }; - }]); - -})(); -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridHeaderCell', ['$log', '$compile', '$timeout', '$window', '$document', 'gridUtil', 'uiGridConstants', - function ($log, $compile, $timeout, $window, $document, gridUtil, uiGridConstants) { - // Do stuff after mouse has been down this many ms on the header cell - var mousedownTimeout = 500; - - var uiGridHeaderCell = { - priority: 0, - scope: { - col: '=', - row: '=', - renderIndex: '=' - }, - require: '?^uiGrid', - replace: true, - compile: function() { - return { - pre: function ($scope, $elm, $attrs, uiGridCtrl) { - var cellHeader = $compile($scope.col.headerCellTemplate)($scope); - $elm.append(cellHeader); - }, - - post: function ($scope, $elm, $attrs, uiGridCtrl) { - $scope.grid = uiGridCtrl.grid; - - /** - * @ngdoc event - * @name filterChanged - * @eventOf ui.grid.core.api:PublicApi - * @description is raised after the filter is changed. The nature - * of the watch expression doesn't allow notification of what changed, - * so the receiver of this event will need to re-extract the filter - * conditions from the columns. - * - */ - if (!$scope.grid.api.core.raise.filterChanged){ - $scope.grid.api.registerEvent( 'core', 'filterChanged' ); - } - - - $elm.addClass($scope.col.getColClass(false)); - // shane - No need for watch now that we trackby col name - // $scope.$watch('col.index', function (newValue, oldValue) { - // if (newValue === oldValue) { return; } - // var className = $elm.attr('class'); - // className = className.replace(uiGridConstants.COL_CLASS_PREFIX + oldValue, uiGridConstants.COL_CLASS_PREFIX + newValue); - // $elm.attr('class', className); - // }); - - // Hide the menu by default - $scope.menuShown = false; - - // Put asc and desc sort directions in scope - $scope.asc = uiGridConstants.ASC; - $scope.desc = uiGridConstants.DESC; - - // Store a reference to menu element - var $colMenu = angular.element( $elm[0].querySelectorAll('.ui-grid-header-cell-menu') ); - - var $contentsElm = angular.element( $elm[0].querySelectorAll('.ui-grid-cell-contents') ); - - // Figure out whether this column is sortable or not - if (uiGridCtrl.grid.options.enableSorting && $scope.col.enableSorting) { - $scope.sortable = true; - } - else { - $scope.sortable = false; - } - - if (uiGridCtrl.grid.options.enableFiltering && $scope.col.enableFiltering) { - $scope.filterable = true; - } - else { - $scope.filterable = false; - } - - function handleClick(evt) { - // If the shift key is being held down, add this column to the sort - var add = false; - if (evt.shiftKey) { - add = true; - } - - // Sort this column then rebuild the grid's rows - uiGridCtrl.grid.sortColumn($scope.col, add) - .then(function () { - if (uiGridCtrl.columnMenuScope) { uiGridCtrl.columnMenuScope.hideMenu(); } - uiGridCtrl.grid.refresh(); - }); - } - - // Long-click (for mobile) - var cancelMousedownTimeout; - var mousedownStartTime = 0; - $contentsElm.on('mousedown', function(event) { - if (typeof(event.originalEvent) !== 'undefined' && event.originalEvent !== undefined) { - event = event.originalEvent; - } - - // Don't show the menu if it's not the left button - if (event.button && event.button !== 0) { - return; - } - - mousedownStartTime = (new Date()).getTime(); - - cancelMousedownTimeout = $timeout(function() { }, mousedownTimeout); - - cancelMousedownTimeout.then(function () { - uiGridCtrl.columnMenuScope.showMenu($scope.col, $elm); - }); - }); - - $contentsElm.on('mouseup', function () { - $timeout.cancel(cancelMousedownTimeout); - }); - - $scope.toggleMenu = function($event) { - $event.stopPropagation(); - - // If the menu is already showing... - if (uiGridCtrl.columnMenuScope.menuShown) { - // ... and we're the column the menu is on... - if (uiGridCtrl.columnMenuScope.col === $scope.col) { - // ... hide it - uiGridCtrl.columnMenuScope.hideMenu(); - } - // ... and we're NOT the column the menu is on - else { - // ... move the menu to our column - uiGridCtrl.columnMenuScope.showMenu($scope.col, $elm); - } - } - // If the menu is NOT showing - else { - // ... show it on our column - uiGridCtrl.columnMenuScope.showMenu($scope.col, $elm); - } - }; - - // If this column is sortable, add a click event handler - if ($scope.sortable) { - $contentsElm.on('click', function(evt) { - evt.stopPropagation(); - - $timeout.cancel(cancelMousedownTimeout); - - var mousedownEndTime = (new Date()).getTime(); - var mousedownTime = mousedownEndTime - mousedownStartTime; - - if (mousedownTime > mousedownTimeout) { - // long click, handled above with mousedown - } - else { - // short click - handleClick(evt); - } - }); - - $scope.$on('$destroy', function () { - // Cancel any pending long-click timeout - $timeout.cancel(cancelMousedownTimeout); - }); - } - - if ($scope.filterable) { - var filterDeregisters = []; - angular.forEach($scope.col.filters, function(filter, i) { - filterDeregisters.push($scope.$watch('col.filters[' + i + '].term', function(n, o) { - uiGridCtrl.grid.api.core.raise.filterChanged(); - uiGridCtrl.grid.refresh() - .then(function () { - if (uiGridCtrl.prevScrollArgs && uiGridCtrl.prevScrollArgs.y && uiGridCtrl.prevScrollArgs.y.percentage) { - uiGridCtrl.fireScrollingEvent({ y: { percentage: uiGridCtrl.prevScrollArgs.y.percentage } }); - } - // uiGridCtrl.fireEvent('force-vertical-scroll'); - }); - })); - }); - $scope.$on('$destroy', function() { - angular.forEach(filterDeregisters, function(filterDeregister) { - filterDeregister(); - }); - }); - } - } - }; - } - }; - - return uiGridHeaderCell; - }]); - -})(); - -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridHeader', ['$log', '$templateCache', '$compile', 'uiGridConstants', 'gridUtil', '$timeout', function($log, $templateCache, $compile, uiGridConstants, gridUtil, $timeout) { - var defaultTemplate = 'ui-grid/ui-grid-header'; - var emptyTemplate = 'ui-grid/ui-grid-no-header'; - - return { - restrict: 'EA', - // templateUrl: 'ui-grid/ui-grid-header', - replace: true, - // priority: 1000, - require: ['^uiGrid', '^uiGridRenderContainer'], - scope: true, - compile: function($elm, $attrs) { - return { - pre: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - $scope.grid = uiGridCtrl.grid; - $scope.colContainer = containerCtrl.colContainer; - - containerCtrl.header = $elm; - containerCtrl.colContainer.header = $elm; - - /** - * @ngdoc property - * @name hideHeader - * @propertyOf ui.grid.class:GridOptions - * @description Null by default. When set to true, this setting will replace the - * standard header template with '
', resulting in no header being shown. - */ - - var headerTemplate; - if ($scope.grid.options.hideHeader){ - headerTemplate = emptyTemplate; - } else { - headerTemplate = ($scope.grid.options.headerTemplate) ? $scope.grid.options.headerTemplate : defaultTemplate; - } - - gridUtil.getTemplate(headerTemplate) - .then(function (contents) { - var template = angular.element(contents); - - var newElm = $compile(template)($scope); - $elm.append(newElm); - - if (containerCtrl) { - // Inject a reference to the header viewport (if it exists) into the grid controller for use in the horizontal scroll handler below - var headerViewport = $elm[0].getElementsByClassName('ui-grid-header-viewport')[0]; - - if (headerViewport) { - containerCtrl.headerViewport = headerViewport; - } - } - }); - }, - - post: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - $log.debug('ui-grid-header link'); - - var grid = uiGridCtrl.grid; - - // Don't animate header cells - gridUtil.disableAnimations($elm); - - function updateColumnWidths() { - var asterisksArray = [], - percentArray = [], - manualArray = [], - asteriskNum = 0, - totalWidth = 0; - - // Get the width of the viewport - var availableWidth = containerCtrl.colContainer.getViewportWidth(); - - if (typeof(uiGridCtrl.grid.verticalScrollbarWidth) !== 'undefined' && uiGridCtrl.grid.verticalScrollbarWidth !== undefined && uiGridCtrl.grid.verticalScrollbarWidth > 0) { - availableWidth = availableWidth + uiGridCtrl.grid.verticalScrollbarWidth; - } - - // The total number of columns - // var equalWidthColumnCount = columnCount = uiGridCtrl.grid.options.columnDefs.length; - // var equalWidth = availableWidth / equalWidthColumnCount; - - // The last column we processed - var lastColumn; - - var manualWidthSum = 0; - - var canvasWidth = 0; - - var ret = ''; - - - // uiGridCtrl.grid.columns.forEach(function(column, i) { - - var columnCache = containerCtrl.colContainer.visibleColumnCache; - - columnCache.forEach(function(column, i) { - // ret = ret + ' .grid' + uiGridCtrl.grid.id + ' .col' + i + ' { width: ' + equalWidth + 'px; left: ' + left + 'px; }'; - //var colWidth = (typeof(c.width) !== 'undefined' && c.width !== undefined) ? c.width : equalWidth; - - // Skip hidden columns - if (!column.visible) { return; } - - var colWidth, - isPercent = false; - - if (!angular.isNumber(column.width)) { - isPercent = isNaN(column.width) ? gridUtil.endsWith(column.width, "%") : false; - } - - if (angular.isString(column.width) && column.width.indexOf('*') !== -1) { // we need to save it until the end to do the calulations on the remaining width. - asteriskNum = parseInt(asteriskNum + column.width.length, 10); - - asterisksArray.push(column); - } - else if (isPercent) { // If the width is a percentage, save it until the very last. - percentArray.push(column); - } - else if (angular.isNumber(column.width)) { - manualWidthSum = parseInt(manualWidthSum + column.width, 10); - - canvasWidth = parseInt(canvasWidth, 10) + parseInt(column.width, 10); - - column.drawnWidth = column.width; - - // ret = ret + ' .grid' + uiGridCtrl.grid.id + ' .col' + column.index + ' { width: ' + column.width + 'px; }'; - } - }); - - // Get the remaining width (available width subtracted by the manual widths sum) - var remainingWidth = availableWidth - manualWidthSum; - - var i, column, colWidth; - - if (percentArray.length > 0) { - // Pre-process to make sure they're all within any min/max values - for (i = 0; i < percentArray.length; i++) { - column = percentArray[i]; - - var percent = parseInt(column.width.replace(/%/g, ''), 10) / 100; - - colWidth = parseInt(percent * remainingWidth, 10); - - if (column.colDef.minWidth && colWidth < column.colDef.minWidth) { - colWidth = column.colDef.minWidth; - - remainingWidth = remainingWidth - colWidth; - - canvasWidth += colWidth; - column.drawnWidth = colWidth; - - // ret = ret + ' .grid' + uiGridCtrl.grid.id + ' .col' + column.index + ' { width: ' + colWidth + 'px; }'; - - // Remove this element from the percent array so it's not processed below - percentArray.splice(i, 1); - } - else if (column.colDef.maxWidth && colWidth > column.colDef.maxWidth) { - colWidth = column.colDef.maxWidth; - - remainingWidth = remainingWidth - colWidth; - - canvasWidth += colWidth; - column.drawnWidth = colWidth; - - // ret = ret + ' .grid' + uiGridCtrl.grid.id + ' .col' + column.index + ' { width: ' + colWidth + 'px; }'; - - // Remove this element from the percent array so it's not processed below - percentArray.splice(i, 1); - } - } - - percentArray.forEach(function(column) { - var percent = parseInt(column.width.replace(/%/g, ''), 10) / 100; - var colWidth = parseInt(percent * remainingWidth, 10); - - canvasWidth += colWidth; - - column.drawnWidth = colWidth; - - // ret = ret + ' .grid' + uiGridCtrl.grid.id + ' .col' + column.index + ' { width: ' + colWidth + 'px; }'; - }); - } - - if (asterisksArray.length > 0) { - var asteriskVal = parseInt(remainingWidth / asteriskNum, 10); - - // Pre-process to make sure they're all within any min/max values - for (i = 0; i < asterisksArray.length; i++) { - column = asterisksArray[i]; - - colWidth = parseInt(asteriskVal * column.width.length, 10); - - if (column.colDef.minWidth && colWidth < column.colDef.minWidth) { - colWidth = column.colDef.minWidth; - - remainingWidth = remainingWidth - colWidth; - asteriskNum--; - - canvasWidth += colWidth; - column.drawnWidth = colWidth; - - // ret = ret + ' .grid' + uiGridCtrl.grid.id + ' .col' + column.index + ' { width: ' + colWidth + 'px; }'; - - lastColumn = column; - - // Remove this element from the percent array so it's not processed below - asterisksArray.splice(i, 1); - } - else if (column.colDef.maxWidth && colWidth > column.colDef.maxWidth) { - colWidth = column.colDef.maxWidth; - - remainingWidth = remainingWidth - colWidth; - asteriskNum--; - - canvasWidth += colWidth; - column.drawnWidth = colWidth; - - // ret = ret + ' .grid' + uiGridCtrl.grid.id + ' .col' + column.index + ' { width: ' + colWidth + 'px; }'; - - // Remove this element from the percent array so it's not processed below - asterisksArray.splice(i, 1); - } - } - - // Redo the asterisk value, as we may have removed columns due to width constraints - asteriskVal = parseInt(remainingWidth / asteriskNum, 10); - - asterisksArray.forEach(function(column) { - var colWidth = parseInt(asteriskVal * column.width.length, 10); - - canvasWidth += colWidth; - - column.drawnWidth = colWidth; - - // ret = ret + ' .grid' + uiGridCtrl.grid.id + ' .col' + column.index + ' { width: ' + colWidth + 'px; }'; - }); - } - - // If the grid width didn't divide evenly into the column widths and we have pixels left over, dole them out to the columns one by one to make everything fit - var leftoverWidth = availableWidth - parseInt(canvasWidth, 10); - - if (leftoverWidth > 0 && canvasWidth > 0 && canvasWidth < availableWidth) { - var variableColumn = false; - // uiGridCtrl.grid.columns.forEach(function(col) { - columnCache.forEach(function(col) { - if (col.width && !angular.isNumber(col.width)) { - variableColumn = true; - } - }); - - if (variableColumn) { - var remFn = function (column) { - if (leftoverWidth > 0) { - column.drawnWidth = column.drawnWidth + 1; - canvasWidth = canvasWidth + 1; - leftoverWidth--; - } - }; - while (leftoverWidth > 0) { - columnCache.forEach(remFn); - } - } - } - - if (canvasWidth < availableWidth) { - canvasWidth = availableWidth; - } - - // Build the CSS - // uiGridCtrl.grid.columns.forEach(function (column) { - columnCache.forEach(function (column) { - ret = ret + column.getColClassDefinition(); - }); - - // Add the vertical scrollbar width back in to the canvas width, it's taken out in getCanvasWidth - if (grid.verticalScrollbarWidth) { - canvasWidth = canvasWidth + grid.verticalScrollbarWidth; - } - // canvasWidth = canvasWidth + 1; - - containerCtrl.colContainer.canvasWidth = parseInt(canvasWidth, 10); - - // Return the styles back to buildStyles which pops them into the `customStyles` scope variable - return ret; - } - - containerCtrl.header = $elm; - - var headerViewport = $elm[0].getElementsByClassName('ui-grid-header-viewport')[0]; - if (headerViewport) { - containerCtrl.headerViewport = headerViewport; - } - - //todo: remove this if by injecting gridCtrl into unit tests - if (uiGridCtrl) { - uiGridCtrl.grid.registerStyleComputation({ - priority: 5, - func: updateColumnWidths - }); - } - } - }; - } - }; - }]); - -})(); -(function(){ - -/** - * @ngdoc directive - * @name ui.grid.directive:uiGridColumnMenu - * @element style - * @restrict A - * - * @description - * Allows us to interpolate expressions in ` - I am in a box. - - - - it('should apply the right class to the element', function () { - element(by.css('.blah')).getCssValue('border') - .then(function(c) { - expect(c).toContain('1px solid'); - }); - }); - - - */ - - - angular.module('ui.grid').directive('uiGridStyle', ['$log', '$interpolate', function($log, $interpolate) { - return { - // restrict: 'A', - // priority: 1000, - // require: '?^uiGrid', - link: function($scope, $elm, $attrs, uiGridCtrl) { - $log.debug('ui-grid-style link'); - // if (uiGridCtrl === undefined) { - // $log.warn('[ui-grid-style link] uiGridCtrl is undefined!'); - // } - - var interpolateFn = $interpolate($elm.text(), true); - - if (interpolateFn) { - $scope.$watch(interpolateFn, function(value) { - $elm.text(value); - }); - } - - // uiGridCtrl.recalcRowStyles = function() { - // var offset = (scope.options.offsetTop || 0) - (scope.options.excessRows * scope.options.rowHeight); - // var rowHeight = scope.options.rowHeight; - - // var ret = ''; - // var rowStyleCount = uiGridCtrl.minRowsToRender() + (scope.options.excessRows * 2); - // for (var i = 1; i <= rowStyleCount; i++) { - // ret = ret + ' .grid' + scope.gridId + ' .ui-grid-row:nth-child(' + i + ') { top: ' + offset + 'px; }'; - // offset = offset + rowHeight; - // } - - // scope.rowStyles = ret; - // }; - - // uiGridCtrl.styleComputions.push(uiGridCtrl.recalcRowStyles); - - } - }; - }]); - -})(); -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridViewport', ['$log', 'gridUtil', - function($log, gridUtil) { - return { - replace: true, - scope: {}, - templateUrl: 'ui-grid/uiGridViewport', - require: ['^uiGrid', '^uiGridRenderContainer'], - link: function($scope, $elm, $attrs, controllers) { - $log.debug('viewport post-link'); - - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - $scope.containerCtrl = containerCtrl; - - var rowContainer = containerCtrl.rowContainer; - var colContainer = containerCtrl.colContainer; - - var grid = uiGridCtrl.grid; - - $scope.grid = uiGridCtrl.grid; - - // Put the containers in scope so we can get rows and columns from them - $scope.rowContainer = containerCtrl.rowContainer; - $scope.colContainer = containerCtrl.colContainer; - - // Register this viewport with its container - containerCtrl.viewport = $elm; - - $elm.on('scroll', function (evt) { - var newScrollTop = $elm[0].scrollTop; - // var newScrollLeft = $elm[0].scrollLeft; - var newScrollLeft = gridUtil.normalizeScrollLeft($elm); - - // Handle RTL here - - if (newScrollLeft !== colContainer.prevScrollLeft) { - var xDiff = newScrollLeft - colContainer.prevScrollLeft; - - var horizScrollLength = (colContainer.getCanvasWidth() - colContainer.getViewportWidth()); - var horizScrollPercentage = newScrollLeft / horizScrollLength; - - colContainer.adjustScrollHorizontal(newScrollLeft, horizScrollPercentage); - } - - if (newScrollTop !== rowContainer.prevScrollTop) { - var yDiff = newScrollTop - rowContainer.prevScrollTop; - - // uiGridCtrl.fireScrollingEvent({ y: { pixels: diff } }); - var vertScrollLength = (rowContainer.getCanvasHeight() - rowContainer.getViewportHeight()); - // var vertScrollPercentage = (uiGridCtrl.prevScrollTop + yDiff) / vertScrollLength; - var vertScrollPercentage = newScrollTop / vertScrollLength; - - if (vertScrollPercentage > 1) { vertScrollPercentage = 1; } - if (vertScrollPercentage < 0) { vertScrollPercentage = 0; } - - rowContainer.adjustScrollVertical(newScrollTop, vertScrollPercentage); - } - }); - } - }; - } - ]); - -})(); -(function() { - -angular.module('ui.grid') -.directive('uiGridVisible', function uiGridVisibleAction() { - return function ($scope, $elm, $attr) { - $scope.$watch($attr.uiGridVisible, function (visible) { - // $elm.css('visibility', visible ? 'visible' : 'hidden'); - $elm[visible ? 'removeClass' : 'addClass']('ui-grid-invisible'); - }); - }; -}); - -})(); -(function () { - 'use strict'; - - angular.module('ui.grid').controller('uiGridController', ['$scope', '$element', '$attrs', '$log', 'gridUtil', '$q', 'uiGridConstants', - '$templateCache', 'gridClassFactory', '$timeout', '$parse', '$compile', - function ($scope, $elm, $attrs, $log, gridUtil, $q, uiGridConstants, - $templateCache, gridClassFactory, $timeout, $parse, $compile) { - $log.debug('ui-grid controller'); - - var self = this; - - // Extend options with ui-grid attribute reference - self.grid = gridClassFactory.createGrid($scope.uiGrid); - $elm.addClass('grid' + self.grid.id); - self.grid.rtl = $elm.css('direction') === 'rtl'; - - - //add optional reference to externalScopes function to controller - //so it can be retrieved in lower elements that have isolate scope - self.getExternalScopes = $scope.getExternalScopes; - - // angular.extend(self.grid.options, ); - - //all properties of grid are available on scope - $scope.grid = self.grid; - - if ($attrs.uiGridColumns) { - $attrs.$observe('uiGridColumns', function(value) { - self.grid.options.columnDefs = value; - self.grid.buildColumns() - .then(function(){ - self.grid.preCompileCellTemplates(); - - self.grid.refreshCanvas(true); - }); - }); - } - - - var dataWatchCollectionDereg; - if (angular.isString($scope.uiGrid.data)) { - dataWatchCollectionDereg = $scope.$parent.$watchCollection($scope.uiGrid.data, dataWatchFunction); - } - else { - dataWatchCollectionDereg = $scope.$parent.$watchCollection(function() { return $scope.uiGrid.data; }, dataWatchFunction); - } - - var columnDefWatchCollectionDereg = $scope.$parent.$watchCollection(function() { return $scope.uiGrid.columnDefs; }, columnDefsWatchFunction); - - function columnDefsWatchFunction(n, o) { - if (n && n !== o) { - self.grid.options.columnDefs = n; - self.grid.buildColumns() - .then(function(){ - - self.grid.preCompileCellTemplates(); - - self.grid.refreshCanvas(true); - }); - } - } - - function dataWatchFunction(n) { - // $log.debug('dataWatch fired'); - var promises = []; - - if (n) { - if (self.grid.columns.length === 0) { - $log.debug('loading cols in dataWatchFunction'); - if (!$attrs.uiGridColumns && self.grid.options.columnDefs.length === 0) { - self.grid.buildColumnDefsFromData(n); - } - promises.push(self.grid.buildColumns() - .then(function() { - self.grid.preCompileCellTemplates();} - )); - } - $q.all(promises).then(function() { - self.grid.modifyRows(n) - .then(function () { - // if (self.viewport) { - self.grid.redrawInPlace(); - // } - - $scope.$evalAsync(function() { - self.grid.refreshCanvas(true); - }); - }); - }); - } - } - - - $scope.$on('$destroy', function() { - dataWatchCollectionDereg(); - columnDefWatchCollectionDereg(); - }); - - $scope.$watch(function () { return self.grid.styleComputations; }, function() { - self.grid.refreshCanvas(true); - }); - - - /* Event Methods */ - - //todo: throttle this event? - self.fireScrollingEvent = function(args) { - $scope.$broadcast(uiGridConstants.events.GRID_SCROLL, args); - }; - - self.fireEvent = function(eventName, args) { - // Add the grid to the event arguments if it's not there - if (typeof(args) === 'undefined' || args === undefined) { - args = {}; - } - - if (typeof(args.grid) === 'undefined' || args.grid === undefined) { - args.grid = self.grid; - } - - $scope.$broadcast(eventName, args); - }; - - self.innerCompile = function innerCompile(elm) { - $compile(elm)($scope); - }; - - }]); - -/** - * @ngdoc directive - * @name ui.grid.directive:uiGrid - * @element div - * @restrict EA - * @param {Object} uiGrid Options for the grid to use - * @param {Object=} external-scopes Add external-scopes='someScopeObjectYouNeed' attribute so you can access - * your scopes from within any custom templatedirective. You access by $scope.getExternalScopes() function - * - * @description Create a very basic grid. - * - * @example - - - var app = angular.module('app', ['ui.grid']); - - app.controller('MainCtrl', ['$scope', function ($scope) { - $scope.data = [ - { name: 'Bob', title: 'CEO' }, - { name: 'Frank', title: 'Lowly Developer' } - ]; - }]); - - -
-
-
-
-
- */ -angular.module('ui.grid').directive('uiGrid', - [ - '$log', - '$compile', - '$templateCache', - 'gridUtil', - '$window', - function( - $log, - $compile, - $templateCache, - gridUtil, - $window - ) { - return { - templateUrl: 'ui-grid/ui-grid', - scope: { - uiGrid: '=', - getExternalScopes: '&?externalScopes' //optional functionwrapper around any needed external scope instances - }, - replace: true, - transclude: true, - controller: 'uiGridController', - compile: function () { - return { - post: function ($scope, $elm, $attrs, uiGridCtrl) { - $log.debug('ui-grid postlink'); - - var grid = uiGridCtrl.grid; - - // Initialize scrollbars (TODO: move to controller??) - uiGridCtrl.scrollbars = []; - - //todo: assume it is ok to communicate that rendering is complete?? - grid.renderingComplete(); - - grid.element = $elm; - - grid.gridWidth = $scope.gridWidth = gridUtil.elementWidth($elm); - - // Default canvasWidth to the grid width, in case we don't get any column definitions to calculate it from - grid.canvasWidth = uiGridCtrl.grid.gridWidth; - - grid.gridHeight = $scope.gridHeight = gridUtil.elementHeight($elm); - - // If the grid isn't tall enough to fit a single row, it's kind of useless. Resize it to fit a minimum number of rows - if (grid.gridHeight < grid.options.rowHeight) { - // Figure out the new height - var newHeight = grid.options.minRowsToShow * grid.options.rowHeight; - - $elm.css('height', newHeight + 'px'); - - grid.gridHeight = $scope.gridHeight = gridUtil.elementHeight($elm); - } - - // Run initial canvas refresh - grid.refreshCanvas(); - - //add pinned containers for row headers support - //moved from pinning feature - var left = angular.element('
'); - $elm.prepend(left); - uiGridCtrl.innerCompile(left); - - var right = angular.element('
'); - $elm.append(right); - uiGridCtrl.innerCompile(right); - - - //if we add a left container after render, we need to watch and react - $scope.$watch(function () { return grid.hasLeftContainer();}, function (newValue, oldValue) { - if (newValue === oldValue) { - return; - } - - //todo: remove this code. it was commented out after moving from pinning because body is already float:left -// var bodyContainer = angular.element($elm[0].querySelectorAll('[container-id="body"]')); -// if (newValue){ -// bodyContainer.attr('style', 'float: left; position: inherit'); -// } -// else { -// bodyContainer.attr('style', 'float: left; position: relative'); -// } - - grid.refreshCanvas(true); - }); - - //if we add a right container after render, we need to watch and react - $scope.$watch(function () { return grid.hasRightContainer();}, function (newValue, oldValue) { - if (newValue === oldValue) { - return; - } - grid.refreshCanvas(true); - }); - - - // Resize the grid on window resize events - function gridResize($event) { - grid.gridWidth = $scope.gridWidth = gridUtil.elementWidth($elm); - grid.gridHeight = $scope.gridHeight = gridUtil.elementHeight($elm); - - grid.queueRefresh(); - } - - angular.element($window).on('resize', gridResize); - - // Unbind from window resize events when the grid is destroyed - $elm.on('$destroy', function () { - angular.element($window).off('resize', gridResize); - }); - } - }; - } - }; - } - ]); - -})(); - -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridPinnedContainer', ['$log', function ($log) { - return { - restrict: 'EA', - replace: true, - template: '
', - scope: { - side: '=uiGridPinnedContainer' - }, - require: '^uiGrid', - compile: function compile() { - return { - post: function ($scope, $elm, $attrs, uiGridCtrl) { - $log.debug('ui-grid-pinned-container ' + $scope.side + ' link'); - - var grid = uiGridCtrl.grid; - - var myWidth = 0; - - $elm.addClass('ui-grid-pinned-container-' + $scope.side); - - function updateContainerDimensions() { - // $log.debug('update ' + $scope.side + ' dimensions'); - - var ret = ''; - - // Column containers - if ($scope.side === 'left' || $scope.side === 'right') { - var cols = grid.renderContainers[$scope.side].visibleColumnCache; - var width = 0; - for (var i = 0; i < cols.length; i++) { - var col = cols[i]; - width += col.drawnWidth; - } - - myWidth = width; - - // $log.debug('myWidth', myWidth); - - // TODO(c0bra): Subtract sum of col widths from grid viewport width and update it - $elm.attr('style', null); - - var myHeight = grid.renderContainers.body.getViewportHeight(); // + grid.horizontalScrollbarHeight; - - ret += '.grid' + grid.id + ' .ui-grid-pinned-container-' + $scope.side + ', .grid' + grid.id + ' .ui-grid-pinned-container-' + $scope.side + ' .ui-grid-render-container-' + $scope.side + ' .ui-grid-viewport { width: ' + myWidth + 'px; height: ' + myHeight + 'px; } '; - } - - return ret; - } - - grid.renderContainers.body.registerViewportAdjuster(function (adjustment) { - // Subtract our own width - adjustment.width -= myWidth; - - return adjustment; - }); - - // Register style computation to adjust for columns in `side`'s render container - grid.registerStyleComputation({ - priority: 15, - func: updateContainerDimensions - }); - } - }; - } - }; - }]); -})(); -(function(){ - -angular.module('ui.grid') -.factory('Grid', ['$log', '$q', '$compile', '$parse', 'gridUtil', 'uiGridConstants', 'GridOptions', 'GridColumn', 'GridRow', 'GridApi', 'rowSorter', 'rowSearcher', 'GridRenderContainer', '$timeout', - function($log, $q, $compile, $parse, gridUtil, uiGridConstants, GridOptions, GridColumn, GridRow, GridApi, rowSorter, rowSearcher, GridRenderContainer, $timeout) { - -/** - * @ngdoc object - * @name ui.grid.core.api:PublicApi - * @description Public Api for the core grid features - * - */ - - -/** - * @ngdoc function - * @name ui.grid.class:Grid - * @description Grid is the main viewModel. Any properties or methods needed to maintain state are defined in - * * this prototype. One instance of Grid is created per Grid directive instance. - * @param {object} options Object map of options to pass into the grid. An 'id' property is expected. - */ - var Grid = function Grid(options) { - var self = this; - // Get the id out of the options, then remove it - if (options !== undefined && typeof(options.id) !== 'undefined' && options.id) { - if (!/^[_a-zA-Z0-9-]+$/.test(options.id)) { - throw new Error("Grid id '" + options.id + '" is invalid. It must follow CSS selector syntax rules.'); - } - } - else { - throw new Error('No ID provided. An ID must be given when creating a grid.'); - } - - self.id = options.id; - delete options.id; - - // Get default options - self.options = new GridOptions(); - - // Extend the default options with what we were passed in - angular.extend(self.options, options); - - self.headerHeight = self.options.headerRowHeight; - self.footerHeight = self.options.showFooter === true ? self.options.footerRowHeight : 0; - - self.rtl = false; - self.gridHeight = 0; - self.gridWidth = 0; - self.columnBuilders = []; - self.rowBuilders = []; - self.rowsProcessors = []; - self.columnsProcessors = []; - self.styleComputations = []; - self.viewportAdjusters = []; - self.rowHeaderColumns = []; - - // self.visibleRowCache = []; - - // Set of 'render' containers for self grid, which can render sets of rows - self.renderContainers = {}; - - // Create a - self.renderContainers.body = new GridRenderContainer('body', self); - - self.cellValueGetterCache = {}; - - // Cached function to use with custom row templates - self.getRowTemplateFn = null; - - - //representation of the rows on the grid. - //these are wrapped references to the actual data rows (options.data) - self.rows = []; - - //represents the columns on the grid - self.columns = []; - - /** - * @ngdoc boolean - * @name isScrollingVertically - * @propertyOf ui.grid.class:Grid - * @description set to true when Grid is scrolling vertically. Set to false via debounced method - */ - self.isScrollingVertically = false; - - /** - * @ngdoc boolean - * @name isScrollingHorizontally - * @propertyOf ui.grid.class:Grid - * @description set to true when Grid is scrolling horizontally. Set to false via debounced method - */ - self.isScrollingHorizontally = false; - - var debouncedVertical = gridUtil.debounce(function () { - self.isScrollingVertically = false; - }, 300); - - var debouncedHorizontal = gridUtil.debounce(function () { - self.isScrollingHorizontally = false; - }, 300); - - - /** - * @ngdoc function - * @name flagScrollingVertically - * @methodOf ui.grid.class:Grid - * @description sets isScrollingVertically to true and sets it to false in a debounced function - */ - self.flagScrollingVertically = function() { - self.isScrollingVertically = true; - debouncedVertical(); - }; - - /** - * @ngdoc function - * @name flagScrollingHorizontally - * @methodOf ui.grid.class:Grid - * @description sets isScrollingHorizontally to true and sets it to false in a debounced function - */ - self.flagScrollingHorizontally = function() { - self.isScrollingHorizontally = true; - debouncedHorizontal(); - }; - - - - self.api = new GridApi(self); - - /** - * @ngdoc function - * @name refresh - * @methodOf ui.grid.core.api:PublicApi - * @description Refresh the rendered grid on screen. - * - */ - self.api.registerMethod( 'core', 'refresh', this.refresh ); - - /** - * @ngdoc function - * @name refreshRows - * @methodOf ui.grid.core.api:PublicApi - * @description Refresh the rendered grid on screen? Note: not functional at present - * @returns {promise} promise that is resolved when render completes? - * - */ - self.api.registerMethod( 'core', 'refreshRows', this.refreshRows ); - - - /** - * @ngdoc function - * @name sortChanged - * @methodOf ui.grid.core.api:PublicApi - * @description The sort criteria on one or more columns has - * changed. Provides as parameters the grid and the output of - * getColumnSorting, which is an array of gridColumns - * that have sorting on them, sorted in priority order. - * - * @param {Grid} grid the grid - * @param {array} sortColumns an array of columns with - * sorts on them, in priority order - * - * @example - *
-   *      gridApi.core.on.sortChanged( grid, sortColumns );
-   * 
- */ - self.api.registerEvent( 'core', 'sortChanged' ); -}; - - /** - * @ngdoc function - * @name isRTL - * @methodOf ui.grid.class:Grid - * @description Returns true if grid is RightToLeft - */ - Grid.prototype.isRTL = function () { - return this.rtl; - }; - - - /** - * @ngdoc function - * @name registerColumnBuilder - * @methodOf ui.grid.class:Grid - * @description When the build creates columns from column definitions, the columnbuilders will be called to add - * additional properties to the column. - * @param {function(colDef, col, gridOptions)} columnsProcessor function to be called - */ - Grid.prototype.registerColumnBuilder = function registerColumnBuilder(columnBuilder) { - this.columnBuilders.push(columnBuilder); - }; - - /** - * @ngdoc function - * @name buildColumnDefsFromData - * @methodOf ui.grid.class:Grid - * @description Populates columnDefs from the provided data - * @param {function(colDef, col, gridOptions)} rowBuilder function to be called - */ - Grid.prototype.buildColumnDefsFromData = function (dataRows){ - this.options.columnDefs = gridUtil.getColumnsFromData(dataRows, this.options.excludeProperties); - }; - - /** - * @ngdoc function - * @name registerRowBuilder - * @methodOf ui.grid.class:Grid - * @description When the build creates rows from gridOptions.data, the rowBuilders will be called to add - * additional properties to the row. - * @param {function(colDef, col, gridOptions)} rowBuilder function to be called - */ - Grid.prototype.registerRowBuilder = function registerRowBuilder(rowBuilder) { - this.rowBuilders.push(rowBuilder); - }; - - /** - * @ngdoc function - * @name getColumn - * @methodOf ui.grid.class:Grid - * @description returns a grid column for the column name - * @param {string} name column name - */ - Grid.prototype.getColumn = function getColumn(name) { - var columns = this.columns.filter(function (column) { - return column.colDef.name === name; - }); - return columns.length > 0 ? columns[0] : null; - }; - - /** - * @ngdoc function - * @name getColDef - * @methodOf ui.grid.class:Grid - * @description returns a grid colDef for the column name - * @param {string} name column.field - */ - Grid.prototype.getColDef = function getColDef(name) { - var colDefs = this.options.columnDefs.filter(function (colDef) { - return colDef.name === name; - }); - return colDefs.length > 0 ? colDefs[0] : null; - }; - - /** - * @ngdoc function - * @name assignTypes - * @methodOf ui.grid.class:Grid - * @description uses the first row of data to assign colDef.type for any types not defined. - */ - /** - * @ngdoc property - * @name type - * @propertyOf ui.grid.class:GridOptions.columnDef - * @description the type of the column, used in sorting. If not provided then the - * grid will guess the type. Add this only if the grid guessing is not to your - * satisfaction. Refer to {@link ui.grid.service:GridUtil.guessType gridUtil.guessType} for - * a list of values the grid knows about. - * - */ - Grid.prototype.assignTypes = function(){ - var self = this; - self.options.columnDefs.forEach(function (colDef, index) { - - //Assign colDef type if not specified - if (!colDef.type) { - var col = new GridColumn(colDef, index, self); - var firstRow = self.rows.length > 0 ? self.rows[0] : null; - if (firstRow) { - colDef.type = gridUtil.guessType(self.getCellValue(firstRow, col)); - } - else { - $log.log('Unable to assign type from data, so defaulting to string'); - colDef.type = 'string'; - } - } - }); - }; - - /** - * @ngdoc function - * @name addRowHeaderColumn - * @methodOf ui.grid.class:Grid - * @description adds a row header column to the grid - * @param {object} column def - */ - Grid.prototype.addRowHeaderColumn = function addRowHeaderColumn(colDef) { - var self = this; - //self.createLeftContainer(); - var rowHeaderCol = new GridColumn(colDef, self.rowHeaderColumns.length + 1, self); - rowHeaderCol.isRowHeader = true; - if (self.isRTL()) { - self.createRightContainer(); - rowHeaderCol.renderContainer = 'right'; - } - else { - self.createLeftContainer(); - rowHeaderCol.renderContainer = 'left'; - } - - self.columnBuilders[0](colDef,rowHeaderCol,self.gridOptions) - .then(function(){ - rowHeaderCol.enableFiltering = false; - rowHeaderCol.enableSorting = false; - self.rowHeaderColumns.push(rowHeaderCol); - }); - }; - - /** - * @ngdoc function - * @name buildColumns - * @methodOf ui.grid.class:Grid - * @description creates GridColumn objects from the columnDefinition. Calls each registered - * columnBuilder to further process the column - * @returns {Promise} a promise to load any needed column resources - */ - Grid.prototype.buildColumns = function buildColumns() { - $log.debug('buildColumns'); - var self = this; - var builderPromises = []; - var offset = self.rowHeaderColumns.length; - - //add row header columns to the grid columns array - angular.forEach(self.rowHeaderColumns, function (rowHeaderColumn) { - offset++; - self.columns.push(rowHeaderColumn); - }); - - // Synchronize self.columns with self.options.columnDefs so that columns can also be removed. - if (self.columns.length > self.options.columnDefs.length) { - self.columns.forEach(function (column, index) { - if (!self.getColDef(column.name)) { - self.columns.splice(index, 1); - } - }); - } - - self.options.columnDefs.forEach(function (colDef, index) { - self.preprocessColDef(colDef); - var col = self.getColumn(colDef.name); - - if (!col) { - col = new GridColumn(colDef, index + offset, self); - self.columns.push(col); - } - else { - col.updateColumnDef(colDef, col.index); - } - - self.columnBuilders.forEach(function (builder) { - builderPromises.push(builder.call(self, colDef, col, self.options)); - }); - }); - - return $q.all(builderPromises); - }; - -/** - * @ngdoc function - * @name preCompileCellTemplates - * @methodOf ui.grid.class:Grid - * @description precompiles all cell templates - */ - Grid.prototype.preCompileCellTemplates = function() { - this.columns.forEach(function (col) { - var html = col.cellTemplate.replace(uiGridConstants.COL_FIELD, 'grid.getCellValue(row, col)'); - - var compiledElementFn = $compile(html); - col.compiledElementFn = compiledElementFn; - }); - }; - - /** - * @ngdoc function - * @name createLeftContainer - * @methodOf ui.grid.class:Grid - * @description creates the left render container if it doesn't already exist - */ - Grid.prototype.createLeftContainer = function() { - if (!this.hasLeftContainer()) { - this.renderContainers.left = new GridRenderContainer('left', this, { disableColumnOffset: true }); - } - }; - - /** - * @ngdoc function - * @name createRightContainer - * @methodOf ui.grid.class:Grid - * @description creates the right render container if it doesn't already exist - */ - Grid.prototype.createRightContainer = function() { - if (!this.hasRightContainer()) { - this.renderContainers.right = new GridRenderContainer('right', this, { disableColumnOffset: true }); - } - }; - - /** - * @ngdoc function - * @name hasLeftContainer - * @methodOf ui.grid.class:Grid - * @description returns true if leftContainer exists - */ - Grid.prototype.hasLeftContainer = function() { - return this.renderContainers.left !== undefined; - }; - - /** - * @ngdoc function - * @name hasLeftContainer - * @methodOf ui.grid.class:Grid - * @description returns true if rightContainer exists - */ - Grid.prototype.hasRightContainer = function() { - return this.renderContainers.right !== undefined; - }; - - - /** - * undocumented function - * @name preprocessColDef - * @methodOf ui.grid.class:Grid - * @description defaults the name property from field to maintain backwards compatibility with 2.x - * validates that name or field is present - */ - Grid.prototype.preprocessColDef = function preprocessColDef(colDef) { - if (!colDef.field && !colDef.name) { - throw new Error('colDef.name or colDef.field property is required'); - } - - //maintain backwards compatibility with 2.x - //field was required in 2.x. now name is required - if (colDef.name === undefined && colDef.field !== undefined) { - colDef.name = colDef.field; - } - - }; - - // Return a list of items that exist in the `n` array but not the `o` array. Uses optional property accessors passed as third & fourth parameters - Grid.prototype.newInN = function newInN(o, n, oAccessor, nAccessor) { - var self = this; - - var t = []; - for (var i=0; i 0 ? rows[0] : null; - }; - - - /** - * @ngdoc function - * @name modifyRows - * @methodOf ui.grid.class:Grid - * @description creates or removes GridRow objects from the newRawData array. Calls each registered - * rowBuilder to further process the row - * - * Rows are identified using the gridOptions.rowEquality function - */ - Grid.prototype.modifyRows = function modifyRows(newRawData) { - var self = this, - i, - newRow; - - if (self.rows.length === 0 && newRawData.length > 0) { - if (self.options.enableRowHashing) { - if (!self.rowHashMap) { - self.createRowHashMap(); - } - - for (i=0; i 0) { - var unfoundNewRows, unfoundOldRows, unfoundNewRowsToFind; - - // If row hashing is turned on - if (self.options.enableRowHashing) { - // Array of new rows that haven't been found in the old rowset - unfoundNewRows = []; - // Array of new rows that we explicitly HAVE to search for manually in the old row set. They cannot be looked up by their identity (because it doesn't exist). - unfoundNewRowsToFind = []; - // Map of rows that have been found in the new rowset - var foundOldRows = {}; - // Array of old rows that have NOT been found in the new rowset - unfoundOldRows = []; - - // Create the row HashMap if it doesn't exist already - if (!self.rowHashMap) { - self.createRowHashMap(); - } - var rowhash = self.rowHashMap; - - // Make sure every new row has a hash - for (i = 0; i < newRawData.length; i++) { - newRow = newRawData[i]; - - // Flag this row as needing to be manually found if it didn't come in with a $$hashKey - var mustFind = false; - if (!self.options.getRowIdentity(newRow)) { - mustFind = true; - } - - // See if the new row is already in the rowhash - var found = rowhash.get(newRow); - // If so... - if (found) { - // See if it's already being used by as GridRow - if (found.row) { - // If so, mark this new row as being found - foundOldRows[self.options.rowIdentity(newRow)] = true; - } - } - else { - // Put the row in the hashmap with the index it corresponds to - rowhash.put(newRow, { - i: i, - entity: newRow - }); - - // This row has to be searched for manually in the old row set - if (mustFind) { - unfoundNewRowsToFind.push(newRow); - } - else { - unfoundNewRows.push(newRow); - } - } - } - - // Build the list of unfound old rows - for (i = 0; i < self.rows.length; i++) { - var row = self.rows[i]; - var hash = self.options.rowIdentity(row.entity); - if (!foundOldRows[hash]) { - unfoundOldRows.push(row); - } - } - } - - // Look for new rows - var newRows = unfoundNewRows || []; - - // The unfound new rows is either `unfoundNewRowsToFind`, if row hashing is turned on, or straight `newRawData` if it isn't - var unfoundNew = (unfoundNewRowsToFind || newRawData); - - // Search for real new rows in `unfoundNew` and concat them onto `newRows` - newRows = newRows.concat(self.newInN(self.rows, unfoundNew, 'entity')); - - self.addRows(newRows); - - var deletedRows = self.getDeletedRows((unfoundOldRows || self.rows), newRawData); - - for (i = 0; i < deletedRows.length; i++) { - if (self.options.enableRowHashing) { - self.rowHashMap.remove(deletedRows[i].entity); - } - - self.rows.splice( self.rows.indexOf(deletedRows[i]), 1 ); - } - } - // Empty data set - else { - // Reset the row HashMap - self.createRowHashMap(); - - // Reset the rows length! - self.rows.length = 0; - } - - var p1 = $q.when(self.processRowsProcessors(self.rows)) - .then(function (renderableRows) { - return self.setVisibleRows(renderableRows); - }); - - var p2 = $q.when(self.processColumnsProcessors(self.columns)) - .then(function (renderableColumns) { - return self.setVisibleColumns(renderableColumns); - }); - - return $q.all([p1, p2]); - }; - - Grid.prototype.getDeletedRows = function(oldRows, newRows) { - var self = this; - - var olds = oldRows.filter(function (oldRow) { - return !newRows.some(function (newItem) { - return self.options.rowEquality(newItem, oldRow.entity); - }); - }); - // var olds = self.newInN(newRows, oldRows, null, 'entity'); - // dump('olds', olds); - return olds; - }; - - /** - * Private Undocumented Method - * @name addRows - * @methodOf ui.grid.class:Grid - * @description adds the newRawData array of rows to the grid and calls all registered - * rowBuilders. this keyword will reference the grid - */ - Grid.prototype.addRows = function addRows(newRawData) { - var self = this; - - var existingRowCount = self.rows.length; - for (var i=0; i < newRawData.length; i++) { - var newRow = self.processRowBuilders(new GridRow(newRawData[i], i + existingRowCount, self)); - - if (self.options.enableRowHashing) { - var found = self.rowHashMap.get(newRow.entity); - if (found) { - found.row = newRow; - } - } - - self.rows.push(newRow); - } - }; - - /** - * @ngdoc function - * @name processRowBuilders - * @methodOf ui.grid.class:Grid - * @description processes all RowBuilders for the gridRow - * @param {GridRow} gridRow reference to gridRow - * @returns {GridRow} the gridRow with all additional behavior added - */ - Grid.prototype.processRowBuilders = function processRowBuilders(gridRow) { - var self = this; - - self.rowBuilders.forEach(function (builder) { - builder.call(self, gridRow, self.gridOptions); - }); - - return gridRow; - }; - - /** - * @ngdoc function - * @name registerStyleComputation - * @methodOf ui.grid.class:Grid - * @description registered a styleComputation function - * - * If the function returns a value it will be appended into the grid's `
" - ); - - - $templateCache.put('ui-grid/uiGridCell', - "
{{COL_FIELD CUSTOM_FILTERS}}
" - ); - - - $templateCache.put('ui-grid/uiGridColumnFilter', - "
  •  
     
  • " - ); - - - $templateCache.put('ui-grid/uiGridColumnMenu', - "
    " - ); - - - $templateCache.put('ui-grid/uiGridFooterCell', - "
    {{ col.getAggregationValue() }}
    " - ); - - - $templateCache.put('ui-grid/uiGridHeaderCell', - "
     
    {{ col.displayName CUSTOM_FILTERS }}  
     
     
    " - ); - - - $templateCache.put('ui-grid/uiGridMenu', - "
    " - ); - - - $templateCache.put('ui-grid/uiGridMenuItem', - "
  • {{ title }}
  • " - ); - - - $templateCache.put('ui-grid/uiGridRenderContainer', - "
    " - ); - - - $templateCache.put('ui-grid/uiGridViewport', - "
    " - ); - - - $templateCache.put('ui-grid/cellEditor', - "
    " - ); - - - $templateCache.put('ui-grid/dropdownEditor', - "
    " - ); - - - $templateCache.put('ui-grid/expandableRow', - "
    " - ); - - - $templateCache.put('ui-grid/expandableRowHeader', - "
    " - ); - - - $templateCache.put('ui-grid/expandableScrollFiller', - "
    " - ); - - - $templateCache.put('ui-grid/csvLink', - "LINK_LABEL" - ); - - - $templateCache.put('ui-grid/columnResizer', - "
    " - ); - - - $templateCache.put('ui-grid/selectionRowHeader', - "
    " - ); - - - $templateCache.put('ui-grid/selectionRowHeaderButtons', - "
     
    " - ); - -}]); diff --git a/src/main/resources/META-INF/resources/designer/lib/ui-grid-stable.min.js b/src/main/resources/META-INF/resources/designer/lib/ui-grid-stable.min.js deleted file mode 100644 index 84b4ab8d..00000000 --- a/src/main/resources/META-INF/resources/designer/lib/ui-grid-stable.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! ui-grid - v3.0.0-rc.3 - 2014-09-25 -* Copyright (c) 2014 ; License: MIT */ -!function(){"use strict";angular.module("ui.grid.i18n",[]),angular.module("ui.grid",["ui.grid.i18n"])}(),function(){"use strict";angular.module("ui.grid").constant("uiGridConstants",{CUSTOM_FILTERS:/CUSTOM_FILTERS/g,COL_FIELD:/COL_FIELD/g,DISPLAY_CELL_TEMPLATE:/DISPLAY_CELL_TEMPLATE/g,TEMPLATE_REGEXP:/<.+>/,FUNC_REGEXP:/(\([^)]*\))?$/,DOT_REGEXP:/\./g,APOS_REGEXP:/'/g,BRACKET_REGEXP:/^(.*)((?:\s*\[\s*\d+\s*\]\s*)|(?:\s*\[\s*"(?:[^"\\]|\\.)*"\s*\]\s*)|(?:\s*\[\s*'(?:[^'\\]|\\.)*'\s*\]\s*))(.*)$/,COL_CLASS_PREFIX:"ui-grid-col",events:{GRID_SCROLL:"uiGridScroll",COLUMN_MENU_SHOWN:"uiGridColMenuShown",ITEM_DRAGGING:"uiGridItemDragStart"},keymap:{TAB:9,STRG:17,CTRL:17,CTRLRIGHT:18,CTRLR:18,SHIFT:16,RETURN:13,ENTER:13,BACKSPACE:8,BCKSP:8,ALT:18,ALTR:17,ALTRIGHT:17,SPACE:32,WIN:91,MAC:91,FN:null,UP:38,DOWN:40,LEFT:37,RIGHT:39,ESC:27,DEL:46,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123},ASC:"asc",DESC:"desc",filter:{STARTS_WITH:2,ENDS_WITH:4,EXACT:8,CONTAINS:16,GREATER_THAN:32,GREATER_THAN_OR_EQUAL:64,LESS_THAN:128,LESS_THAN_OR_EQUAL:256,NOT_EQUAL:512},aggregationTypes:{sum:2,count:4,avg:8,min:16,max:32},CURRENCY_SYMBOLS:["ƒ","$","£","$","¤","¥","៛","₩","₱","฿","₫"]})}(),angular.module("ui.grid").directive("uiGridCell",["$compile","$log","$parse","gridUtil","uiGridConstants",function(a,b,c,d,e){var f={priority:0,scope:!1,require:"?^uiGrid",compile:function(){return{pre:function(b,c,d,f){function g(){var a=b.col.compiledElementFn;a(b,function(a){c.append(a)})}if(f)g();else{var h=b.col.cellTemplate.replace(e.COL_FIELD,"grid.getCellValue(row, col)"),i=a(h)(b);c.append(i)}},post:function(a,b){if(b.addClass(a.col.getColClass(!1)),a.col.cellClass){var c=b;c.addClass(angular.isFunction(a.col.cellClass)?a.col.cellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.cellClass)}}}}};return f}]),function(){angular.module("ui.grid").directive("uiGridColumnMenu",["$log","$timeout","$window","$document","$injector","gridUtil","uiGridConstants","i18nService",function(a,b,c,d,e,f,g,h){var i={priority:0,scope:!0,require:"?^uiGrid",templateUrl:"ui-grid/uiGridColumnMenu",replace:!0,link:function(i,j,k,l){function m(){i.$apply(i.hideMenu),d.off("click",m)}function n(){i.$apply(i.hideMenu)}f.enableAnimations(j),i.grid=l.grid;var o=this;l.columnMenuScope=i,o.shown=i.menuShown=!1,i.asc=g.ASC,i.desc=g.DESC,i.menu=j[0].querySelectorAll(".ui-grid-menu"),i.inner=j[0].querySelectorAll(".ui-grid-menu-inner"),i.sortable=function(){return l.grid.options.enableSorting&&"undefined"!=typeof i.col&&i.col&&i.col.enableSorting?!0:!1},i.filterable=function(){return l.grid.options.enableFiltering&&"undefined"!=typeof i.col&&i.col&&i.col.enableFiltering?!0:!1};var p=[{title:h.getSafeText("sort.ascending"),icon:"ui-grid-icon-sort-alt-up",action:function(a){a.stopPropagation(),i.sortColumn(a,g.ASC)},shown:function(){return i.sortable()},active:function(){return"undefined"!=typeof i.col&&"undefined"!=typeof i.col.sort&&"undefined"!=typeof i.col.sort.direction&&i.col.sort.direction===g.ASC}},{title:h.getSafeText("sort.descending"),icon:"ui-grid-icon-sort-alt-down",action:function(a){a.stopPropagation(),i.sortColumn(a,g.DESC)},shown:function(){return i.sortable()},active:function(){return"undefined"!=typeof i.col&&"undefined"!=typeof i.col.sort&&"undefined"!=typeof i.col.sort.direction&&i.col.sort.direction===g.DESC}},{title:h.getSafeText("sort.remove"),icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),i.unsortColumn()},shown:function(){return i.sortable()&&"undefined"!=typeof i.col&&"undefined"!=typeof i.col.sort&&"undefined"!=typeof i.col.sort.direction&&null!==i.col.sort.direction}},{title:h.getSafeText("column.hide"),icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),i.hideColumn()}}];i.menuItems=p,i.$watch("col.menuItems",function(a){"undefined"!=typeof a&&a&&angular.isArray(a)?(a.forEach(function(a){"undefined"!=typeof a.context&&a.context||(a.context={}),a.context.col=i.col}),i.menuItems=p.concat(a)):i.menuItems=p});var q;try{q=e.get("$animate")}catch(r){a.info("$animate service not found (ngAnimate not add as a dependency?), menu animations will not occur")}i.showMenu=function(a,c){function e(){b(function(){p&&q?(q.removeClass(i.inner,"ng-hide"),o.shown=i.menuShown=!0,i.$broadcast("show-menu")):angular.element(i.inner).hasClass("ng-hide")&&angular.element(i.inner).removeClass("ng-hide");var b=a.renderContainer?a.renderContainer:"body",e=(a.grid.renderContainers[b],f.closestElm(c,".ui-grid-render-container")),k=e.offsetLeft-i.grid.element[0].offsetLeft,r=e.querySelectorAll(".ui-grid-viewport")[0].scrollLeft,s=f.elementWidth(i.menu,!0),t=parseInt(angular.element(i.menu).css("padding-right"),10);j.css("left",g+k-r+n-s+t+"px"),j.css("top",h+l+"px"),d.on("click",m)})}o.col=i.col=a,d.off("click",m);var g=c[0].offsetLeft,h=c[0].offsetTop,k=0;a.grid.options.offsetLeft&&(k=a.grid.options.offsetLeft);var l=f.elementHeight(c,!0),n=f.elementWidth(c,!0),p=!1;i.menuShown&&q?(q.addClass(i.inner,"ng-hide",e),p=!0):(o.shown=i.menuShown=!0,i.$broadcast("show-menu"),e())},i.hideMenu=function(){delete o.col,delete i.col,o.shown=i.menuShown=!1,i.$broadcast("hide-menu")},angular.element(c).bind("resize",n),i.$on("$destroy",i.$on(g.events.GRID_SCROLL,function(){i.hideMenu()})),i.$on("$destroy",i.$on(g.events.ITEM_DRAGGING,function(){i.hideMenu()})),i.$on("$destroy",function(){angular.element(c).off("resize",n),d.off("click",m)}),i.sortColumn=function(a,b){a.stopPropagation(),l.grid.sortColumn(i.col,b,!0).then(function(){l.grid.refresh(),i.hideMenu()})},i.unsortColumn=function(){i.col.unsort(),l.grid.refresh(),i.hideMenu()},i.hideColumn=function(){i.col.colDef.visible=!1,l.grid.refresh(),i.hideMenu()}},controller:["$scope",function(a){var b=this;a.$watch("menuItems",function(a){b.menuItems=a})}]};return i}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooterCell",["$log","$timeout","gridUtil","$compile",function(a,b,c,d){var e={priority:0,scope:{col:"=",row:"=",renderIndex:"="},replace:!0,require:"^uiGrid",compile:function(){return{pre:function(a,b){function e(e){c.getTemplate(e).then(function(c){var e=d(c),f=e(a);b.append(f)})}e(a.col.footerCellTemplate?a.col.footerCellTemplate:"ui-grid/uiGridFooterCell")},post:function(a,b,c,d){a.grid=d.grid,b.addClass(a.col.getColClass(!1))}}}};return e}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridFooter",["$log","$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){var f="ui-grid/ui-grid-footer";return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(a,b,d,g){var h=g[0],i=g[1];a.grid=h.grid,a.colContainer=i.colContainer,i.footer=b;var j=a.grid.options.footerTemplate?a.grid.options.footerTemplate:f;e.getTemplate(j).then(function(d){var e=angular.element(d),f=c(e)(a);if(b.append(f),i){var g=b[0].getElementsByClassName("ui-grid-footer-viewport")[0];g&&(i.footerViewport=g)}})},post:function(b,c,d,f){var g=f[0],h=f[1];a.debug("ui-grid-footer link");g.grid;e.disableAnimations(c),h.footer=c;var i=c[0].getElementsByClassName("ui-grid-footer-viewport")[0];i&&(h.footerViewport=i)}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridGroupPanel",["$compile","uiGridConstants","gridUtil",function(a,b,c){var d="ui-grid/ui-grid-group-panel";return{restrict:"EA",replace:!0,require:"?^uiGrid",scope:!1,compile:function(){return{pre:function(b,e){var f=b.grid.options.groupPanelTemplate||d;c.getTemplate(f).then(function(c){var d=angular.element(c),f=a(d)(b);e.append(f)})},post:function(a,b){b.bind("$destroy",function(){})}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeaderCell",["$log","$compile","$timeout","$window","$document","gridUtil","uiGridConstants",function(a,b,c,d,e,f,g){var h=500,i={priority:0,scope:{col:"=",row:"=",renderIndex:"="},require:"?^uiGrid",replace:!0,compile:function(){return{pre:function(a,c){var d=b(a.col.headerCellTemplate)(a);c.append(d)},post:function(a,b,d,e){function f(b){var c=!1;b.shiftKey&&(c=!0),e.grid.sortColumn(a.col,c).then(function(){e.columnMenuScope&&e.columnMenuScope.hideMenu(),e.grid.refresh()})}a.grid=e.grid,a.grid.api.core.raise.filterChanged||a.grid.api.registerEvent("core","filterChanged"),b.addClass(a.col.getColClass(!1)),a.menuShown=!1,a.asc=g.ASC,a.desc=g.DESC;var i=(angular.element(b[0].querySelectorAll(".ui-grid-header-cell-menu")),angular.element(b[0].querySelectorAll(".ui-grid-cell-contents")));a.sortable=e.grid.options.enableSorting&&a.col.enableSorting?!0:!1,a.filterable=e.grid.options.enableFiltering&&a.col.enableFiltering?!0:!1;var j,k=0;if(i.on("mousedown",function(d){"undefined"!=typeof d.originalEvent&&void 0!==d.originalEvent&&(d=d.originalEvent),d.button&&0!==d.button||(k=(new Date).getTime(),j=c(function(){},h),j.then(function(){e.columnMenuScope.showMenu(a.col,b)}))}),i.on("mouseup",function(){c.cancel(j)}),a.toggleMenu=function(c){c.stopPropagation(),e.columnMenuScope.menuShown&&e.columnMenuScope.col===a.col?e.columnMenuScope.hideMenu():e.columnMenuScope.showMenu(a.col,b)},a.sortable&&(i.on("click",function(a){a.stopPropagation(),c.cancel(j);var b=(new Date).getTime(),d=b-k;d>h||f(a)}),a.$on("$destroy",function(){c.cancel(j)})),a.filterable){var l=[];angular.forEach(a.col.filters,function(b,c){l.push(a.$watch("col.filters["+c+"].term",function(){e.grid.api.core.raise.filterChanged(),e.grid.refresh().then(function(){e.prevScrollArgs&&e.prevScrollArgs.y&&e.prevScrollArgs.y.percentage&&e.fireScrollingEvent({y:{percentage:e.prevScrollArgs.y.percentage}})})}))}),a.$on("$destroy",function(){angular.forEach(l,function(a){a()})})}}}}};return i}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeader",["$log","$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d,e){var f="ui-grid/ui-grid-header",g="ui-grid/ui-grid-no-header";return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(a,b,d,h){var i=h[0],j=h[1];a.grid=i.grid,a.colContainer=j.colContainer,j.header=b,j.colContainer.header=b;var k;k=a.grid.options.hideHeader?g:a.grid.options.headerTemplate?a.grid.options.headerTemplate:f,e.getTemplate(k).then(function(d){var e=angular.element(d),f=c(e)(a);if(b.append(f),j){var g=b[0].getElementsByClassName("ui-grid-header-viewport")[0];g&&(j.headerViewport=g)}})},post:function(b,c,d,f){function g(){var a=[],b=[],c=0,d=i.colContainer.getViewportWidth();"undefined"!=typeof h.grid.verticalScrollbarWidth&&void 0!==h.grid.verticalScrollbarWidth&&h.grid.verticalScrollbarWidth>0&&(d+=h.grid.verticalScrollbarWidth);var f,g=0,k=0,l="",m=i.colContainer.visibleColumnCache;m.forEach(function(d){if(d.visible){var f=!1;angular.isNumber(d.width)||(f=isNaN(d.width)?e.endsWith(d.width,"%"):!1),angular.isString(d.width)&&-1!==d.width.indexOf("*")?(c=parseInt(c+d.width.length,10),a.push(d)):f?b.push(d):angular.isNumber(d.width)&&(g=parseInt(g+d.width,10),k=parseInt(k,10)+parseInt(d.width,10),d.drawnWidth=d.width)}});var n,o,p,q=d-g;if(b.length>0){for(n=0;no.colDef.maxWidth&&(p=o.colDef.maxWidth,q-=p,k+=p,o.drawnWidth=p,b.splice(n,1))}b.forEach(function(a){var b=parseInt(a.width.replace(/%/g,""),10)/100,c=parseInt(b*q,10);k+=c,a.drawnWidth=c})}if(a.length>0){var s=parseInt(q/c,10);for(n=0;no.colDef.maxWidth&&(p=o.colDef.maxWidth,q-=p,c--,k+=p,o.drawnWidth=p,a.splice(n,1));s=parseInt(q/c,10),a.forEach(function(a){var b=parseInt(s*a.width.length,10);k+=b,a.drawnWidth=b})}var t=d-parseInt(k,10);if(t>0&&k>0&&d>k){var u=!1;if(m.forEach(function(a){a.width&&!angular.isNumber(a.width)&&(u=!0)}),u)for(var v=function(a){t>0&&(a.drawnWidth=a.drawnWidth+1,k+=1,t--)};t>0;)m.forEach(v)}return d>k&&(k=d),m.forEach(function(a){l+=a.getColClassDefinition()}),j.verticalScrollbarWidth&&(k+=j.verticalScrollbarWidth),i.colContainer.canvasWidth=parseInt(k,10),l}var h=f[0],i=f[1];a.debug("ui-grid-header link");var j=h.grid;e.disableAnimations(c),i.header=c;var k=c[0].getElementsByClassName("ui-grid-header-viewport")[0];k&&(i.headerViewport=k),h&&h.grid.registerStyleComputation({priority:5,func:g})}}}}}])}(),function(){angular.module("ui.grid").directive("uiGridMenu",["$log","$compile","$timeout","$window","$document","gridUtil",function(a,b,c,d,e,f){var g={priority:0,scope:{menuItems:"=",autoHide:"=?"},require:"?^uiGrid",templateUrl:"ui-grid/uiGridMenu",replace:!1,link:function(a,b){f.enableAnimations(b),("undefined"==typeof a.autoHide||void 0===a.autoHide)&&(a.autoHide=!0),a.autoHide&&angular.element(d).on("resize",a.hideMenu),a.$on("hide-menu",function(){a.shown=!1}),a.$on("show-menu",function(){a.shown=!0}),a.$on("$destroy",function(){angular.element(d).off("resize",a.hideMenu)})},controller:["$scope","$element","$attrs",function(a){function b(){a.$apply(function(){d.hideMenu(),angular.element(document).off("click",b)})}var d=this;d.hideMenu=a.hideMenu=function(){a.shown=!1},d.showMenu=a.showMenu=function(){a.shown=!0,angular.element(document).off("click",b),c(function(){angular.element(document).on("click",b)})},a.$on("$destroy",function(){angular.element(document).off("click",b)})}]};return g}]).directive("uiGridMenuItem",["$log","gridUtil","$compile","i18nService",function(a,b,c,d){var e={priority:0,scope:{title:"=",active:"=",action:"=",icon:"=",shown:"=",context:"=",templateUrl:"="},require:["?^uiGrid","^uiGridMenu"],templateUrl:"ui-grid/uiGridMenuItem",replace:!0,compile:function(){return{pre:function(a,d,e,f){f[0],f[1];a.templateUrl&&b.getTemplate(a.templateUrl).then(function(b){var e=angular.element(b),f=c(e)(a);d.replaceWith(f)})},post:function(b,c,e,f){var g=f[0],h=f[1];("undefined"==typeof b.shown||null===b.shown)&&(b.shown=function(){return!0}),b.itemShown=function(){var a={};return b.context&&(a.context=b.context),"undefined"!=typeof g&&g&&(a.grid=g.grid),b.shown.call(a)},b.itemAction=function(c,d){if(a.debug("itemAction"),c.stopPropagation(),"function"==typeof b.action){var e={};b.context&&(e.context=b.context),"undefined"!=typeof g&&g&&(e.grid=g.grid),b.action.call(e,c,d),h.hideMenu()}},b.i18n=d.get()}}}};return e}])}(),function(){angular.module("ui.grid").directive("uiGridNativeScrollbar",["$log","$timeout","$document","uiGridConstants","gridUtil",function(a,b,c,d,e){var f=e.getScrollbarWidth();f=f>0?f:17;var g=e.detectBrowser();return"ie"===g&&(f+=1),{scope:{type:"@"},require:["^uiGrid","^uiGridRenderContainer"],link:function(a,b,c,g){function h(){var a=n.getViewportHeight(),b=n.getCanvasHeight(),c=o.headerHeight?o.headerHeight:p.headerHeight,d=".grid"+p.id+" .ui-grid-render-container-"+m.containerId+" .ui-grid-native-scrollbar.vertical .contents { height: "+b+"px; }";return d+="\n .grid"+p.id+" .ui-grid-render-container-"+m.containerId+" .ui-grid-native-scrollbar.vertical { height: "+a+"px; top: "+c+"px}",s=b,d}function i(){var a=o.getCanvasWidth(),b=-1*f+u;p.options.showFooter&&(b-=1);var c=".grid"+p.id+" .ui-grid-render-container-"+m.containerId+" .ui-grid-native-scrollbar.horizontal { bottom: "+b+"px; }";return c+=".grid"+p.id+" .ui-grid-render-container-"+m.containerId+" .ui-grid-native-scrollbar.horizontal .contents { width: "+a+"px; }",s=a,c}function j(){if("vertical"===a.type){p.flagScrollingVertically();var c=b[0].scrollTop,d=n.getCanvasHeight()-n.getViewportHeight();p.horizontalScrollbarHeight&&p.horizontalScrollbarHeight>0&&(d-=l.grid.horizontalScrollbarHeight);var f=c/d;f>1&&(f=1),0>f&&(f=0);var g={target:b,y:{percentage:f}};a.scrollSource?a.scrollSource=null:l.fireScrollingEvent(g),r=c}else if("horizontal"===a.type){p.flagScrollingHorizontally();var h=e.normalizeScrollLeft(b),i=o.getCanvasWidth()-o.getViewportWidth(),j=h/i,k={target:b,x:{percentage:j}};a.scrollSource?a.scrollSource=null:l.fireScrollingEvent(k),r=h}}function k(c,d){if(!d.target||d.target!==b&&!angular.element(d.target).hasClass("ui-grid-native-scrollbar"))if(a.scrollSource=d.target,"vertical"===a.type){if(d.y&&"undefined"!=typeof d.y.percentage&&void 0!==d.y.percentage){p.flagScrollingVertically();var f=n.getCanvasHeight()-n.getViewportHeight(),g=Math.max(0,d.y.percentage*f);b[0].scrollTop=g}}else if("horizontal"===a.type&&d.x&&"undefined"!=typeof d.x.percentage&&void 0!==d.x.percentage){p.flagScrollingHorizontally();var h=o.getCanvasWidth()-o.getViewportWidth(),i=Math.max(0,d.x.percentage*h);b[0].scrollLeft=e.denormalizeScrollLeft(b,i)}}var l=g[0],m=g[1],n=m.rowContainer,o=m.colContainer,p=l.grid,q=angular.element('
     
    ');b.addClass("ui-grid-native-scrollbar");var r,s=0;"vertical"===a.type?(b.css("width",f+"px"),b.addClass("vertical"),p.verticalScrollbarWidth=f,o.verticalScrollbarWidth=f,r=b[0].scrollTop):"horizontal"===a.type&&(b.css("height",f+"px"),b.addClass("horizontal"),p.horizontalScrollbarHeight=f,n.horizontalScrollbarHeight=f,r=e.normalizeScrollLeft(b)),b.append(q),"vertical"===a.type?s=e.elementHeight(b):"horizontal"===a.type&&(s=e.elementWidth(b));var t=e.closestElm(b,".ui-grid"),u=e.getBorderSize(t,"bottom");"vertical"===a.type?p.registerStyleComputation({priority:6,func:h}):"horizontal"===a.type&&p.registerStyleComputation({priority:6,func:i}),a.scrollSource=null,b.on("scroll",j),b.on("$destroy",function(){b.off("scroll")});var v=a.$on(d.events.GRID_SCROLL,k);a.$on("$destroy",v)}}}])}(),function(){"use strict";var a=angular.module("ui.grid");a.directive("uiGridRenderContainer",["$log","$timeout","$document","uiGridConstants","gridUtil",function(a,b,c,d,e){return{replace:!0,transclude:!0,templateUrl:"ui-grid/uiGridRenderContainer",require:["^uiGrid","uiGridRenderContainer"],scope:{containerId:"=",rowContainerName:"=",colContainerName:"=",bindScrollHorizontal:"=",bindScrollVertical:"=",enableScrollbars:"="},controller:"uiGridRenderContainer as RenderContainer",compile:function(){return{pre:function(b,c,d,e){a.debug("render container "+b.containerId+" pre-link");var f=e[0],g=e[1],h=b.grid=f.grid;if(!b.rowContainerName)throw"No row render container name specified";if(!b.colContainerName)throw"No column render container name specified";if(!h.renderContainers[b.rowContainerName])throw"Row render container '"+b.rowContainerName+"' is not registered.";if(!h.renderContainers[b.colContainerName])throw"Column render container '"+b.colContainerName+"' is not registered.";var i=b.rowContainer=h.renderContainers[b.rowContainerName],j=b.colContainer=h.renderContainers[b.colContainerName];g.containerId=b.containerId,g.rowContainer=i,g.colContainer=j},post:function(b,f,g,h){function i(a,c){if(c.y&&b.bindScrollVertical){n.prevScrollArgs=c;var d=p.getCanvasHeight()-p.getViewportHeight();o.horizontalScrollbarHeight&&o.horizontalScrollbarHeight>0&&(d+=o.horizontalScrollbarHeight);var f,g=n.viewport[0].scrollTop;if("undefined"!=typeof c.y.percentage&&void 0!==c.y.percentage)f=c.y.percentage;else{if("undefined"==typeof c.y.pixels||void 0===c.y.pixels)throw new Error("No percentage or pixel value provided for scroll event Y axis");f=c.y.percentage=(g+c.y.pixels)/d}var h=Math.max(0,f*d);n.viewport[0].scrollTop=h,n.prevScrollArgs.y.pixels=h-g}if(c.x&&b.bindScrollHorizontal){n.prevScrollArgs=c;var i,j=q.getCanvasWidth()-q.getViewportWidth(),k=e.normalizeScrollLeft(n.viewport);if("undefined"!=typeof c.x.percentage&&void 0!==c.x.percentage)i=c.x.percentage;else{if("undefined"==typeof c.x.pixels||void 0===c.x.pixels)throw new Error("No percentage or pixel value provided for scroll event X axis");i=c.x.percentage=(k+c.x.pixels)/j}var l=Math.max(0,i*j);n.viewport[0].scrollLeft=e.denormalizeScrollLeft(n.viewport,l),n.prevScrollLeft=l,n.headerViewport&&(n.headerViewport.scrollLeft=e.denormalizeScrollLeft(n.headerViewport,l)),n.footerViewport&&(n.footerViewport.scrollLeft=e.denormalizeScrollLeft(n.footerViewport,l)),n.prevScrollArgs.x.pixels=l-k}}function j(a){a.originalEvent&&(a=a.originalEvent),a.preventDefault();var b,c,d,e;d=a.targetTouches[0].screenX,e=a.targetTouches[0].screenY,b=-(d-u),c=-(e-t),x=1>c?-1:1,y=1>b?-1:1,c*=2,b*=2;var f={target:a.target};if(0!==c){var g=(v+c)/(p.getCanvasHeight()-p.getViewportHeight());g>1?g=1:0>g&&(g=0),f.y={percentage:g,pixels:c}}if(0!==b){var h=(w+b)/(q.getCanvasWidth()-q.getViewportWidth());h>1?h=1:0>h&&(h=0),f.x={percentage:h,pixels:b}}m.fireScrollingEvent(f)}function k(a){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),c.unbind("touchmove",j),c.unbind("touchend",k),c.unbind("touchcancel",k);{var b=n.viewport[0].scrollTop,d=n.viewport[0].scrollTop;Math.abs(b-v),Math.abs(d-w),new Date-s}}function l(){var a="",c=q.getCanvasWidth(),d=q.getViewportWidth(),e=p.getCanvasHeight(),f=p.getViewportHeight(),g=q.getHeaderViewportWidth(),h=q.getHeaderViewportWidth();return a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+b.containerId+" .ui-grid-canvas { width: "+c+"px; height: "+e+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+b.containerId+" .ui-grid-header-canvas { width: "+c+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+b.containerId+" .ui-grid-viewport { width: "+d+"px; height: "+f+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+b.containerId+" .ui-grid-header-viewport { width: "+g+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+b.containerId+" .ui-grid-footer-canvas { width: "+c+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+b.containerId+" .ui-grid-footer-viewport { width: "+h+"px; }"}a.debug("render container "+b.containerId+" post-link");var m=h[0],n=h[1],o=m.grid,p=n.rowContainer,q=n.colContainer;f.addClass("ui-grid-render-container-"+b.containerId);var r;(b.bindScrollHorizontal||b.bindScrollVertical)&&(r=b.$on(d.events.GRID_SCROLL,i)),f.bind("wheel mousewheel DomMouseScroll MozMousePixelScroll",function(a){a.preventDefault();var b=e.normalizeWheelEvent(a),c={target:f};if(0!==b.deltaY){var d=-120*b.deltaY,g=(n.viewport[0].scrollTop+d)/(p.getCanvasHeight()-p.getViewportHeight());0>g?g=0:g>1&&(g=1),c.y={percentage:g,pixels:d}}if(0!==b.deltaX){var h=-120*b.deltaX,i=e.normalizeScrollLeft(n.viewport),j=(i+h)/(q.getCanvasWidth()-q.getViewportWidth());0>j?j=0:j>1&&(j=1),c.x={percentage:j,pixels:h}}m.fireScrollingEvent(c)});var s,t=0,u=0,v=0,w=0,x=1,y=1;e.isTouchEnabled()&&f.bind("touchstart",function(a){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),m.scrollbars.forEach(function(a){a.addClass("ui-grid-scrollbar-visible"),a.addClass("ui-grid-scrolling")}),s=new Date,t=a.targetTouches[0].screenY,u=a.targetTouches[0].screenX,v=n.viewport[0].scrollTop,w=n.viewport[0].scrollLeft,c.on("touchmove",j),c.on("touchend touchcancel",k)}),f.bind("$destroy",function(){r(),f.unbind("keydown"),["touchstart","touchmove","touchend","keydown","wheel","mousewheel","DomMouseScroll","MozMousePixelScroll"].forEach(function(a){f.unbind(a)})}),m.grid.registerStyleComputation({priority:6,func:l})}}}}}]),a.controller("uiGridRenderContainer",["$scope","$log",function(a){var b=this;b.rowStyle=function(c){var d=a.grid.renderContainers[a.containerId],e={};if(!d.disableRowOffset&&0===c&&0!==b.currentTopRow){var f=a.rowContainer.currentTopRow*a.rowContainer.visibleRowCache[a.rowContainer.currentTopRow].height;e["margin-top"]=f+"px"}return d.disableColumnOffset||0===a.colContainer.currentFirstColumn||(a.grid.isRTL()?e["margin-right"]=a.colContainer.columnOffset+"px":e["margin-left"]=a.colContainer.columnOffset+"px"),e},b.columnStyle=function(b){var c=a.grid.renderContainers[a.containerId];if(!c.disableColumnOffset&&0===b&&0!==a.colContainer.currentFirstColumn){var d=a.colContainer.columnOffset;return a.grid.isRTL()?{"margin-right":d+"px"}:{"margin-left":d+"px"}}return null}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridRow",["$log",function(){return{replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:{row:"=uiGridRow",rowRenderIndex:"="},compile:function(){return{pre:function(a,b,c,d){var e=d[0],f=d[1],g=e.grid;a.grid=e.grid,a.colContainer=f.colContainer,g.getRowTemplateFn.then(function(c){c(a,function(a){b.replaceWith(a)})})},post:function(a,b,c,d){{var e=d[0];d[1]}a.getExternalScopes=e.getExternalScopes}}}}}])}(),function(){angular.module("ui.grid").directive("uiGridStyle",["$log","$interpolate",function(a,b){return{link:function(c,d){a.debug("ui-grid-style link");var e=b(d.text(),!0);e&&c.$watch(e,function(a){d.text(a)})}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridViewport",["$log","gridUtil",function(a,b){return{replace:!0,scope:{},templateUrl:"ui-grid/uiGridViewport",require:["^uiGrid","^uiGridRenderContainer"],link:function(c,d,e,f){a.debug("viewport post-link");var g=f[0],h=f[1];c.containerCtrl=h;{var i=h.rowContainer,j=h.colContainer;g.grid}c.grid=g.grid,c.rowContainer=h.rowContainer,c.colContainer=h.colContainer,h.viewport=d,d.on("scroll",function(){var a=d[0].scrollTop,c=b.normalizeScrollLeft(d);if(c!==j.prevScrollLeft){var e=(c-j.prevScrollLeft,j.getCanvasWidth()-j.getViewportWidth()),f=c/e;j.adjustScrollHorizontal(c,f)}if(a!==i.prevScrollTop){var g=(a-i.prevScrollTop,i.getCanvasHeight()-i.getViewportHeight()),h=a/g;h>1&&(h=1),0>h&&(h=0),i.adjustScrollVertical(a,h)}})}}}])}(),function(){angular.module("ui.grid").directive("uiGridVisible",function(){return function(a,b,c){a.$watch(c.uiGridVisible,function(a){b[a?"removeClass":"addClass"]("ui-grid-invisible")})}})}(),function(){"use strict";angular.module("ui.grid").controller("uiGridController",["$scope","$element","$attrs","$log","gridUtil","$q","uiGridConstants","$templateCache","gridClassFactory","$timeout","$parse","$compile",function(a,b,c,d,e,f,g,h,i,j,k,l){function m(a,b){a&&a!==b&&(o.grid.options.columnDefs=a,o.grid.buildColumns().then(function(){o.grid.preCompileCellTemplates(),o.grid.refreshCanvas(!0)}))}function n(b){var e=[];b&&(0===o.grid.columns.length&&(d.debug("loading cols in dataWatchFunction"),c.uiGridColumns||0!==o.grid.options.columnDefs.length||o.grid.buildColumnDefsFromData(b),e.push(o.grid.buildColumns().then(function(){o.grid.preCompileCellTemplates()}))),f.all(e).then(function(){o.grid.modifyRows(b).then(function(){o.grid.redrawInPlace(),a.$evalAsync(function(){o.grid.refreshCanvas(!0)})})}))}d.debug("ui-grid controller");var o=this;o.grid=i.createGrid(a.uiGrid),b.addClass("grid"+o.grid.id),o.grid.rtl="rtl"===b.css("direction"),o.getExternalScopes=a.getExternalScopes,a.grid=o.grid,c.uiGridColumns&&c.$observe("uiGridColumns",function(a){o.grid.options.columnDefs=a,o.grid.buildColumns().then(function(){o.grid.preCompileCellTemplates(),o.grid.refreshCanvas(!0)})});var p;p=angular.isString(a.uiGrid.data)?a.$parent.$watchCollection(a.uiGrid.data,n):a.$parent.$watchCollection(function(){return a.uiGrid.data},n);var q=a.$parent.$watchCollection(function(){return a.uiGrid.columnDefs},m);a.$on("$destroy",function(){p(),q()}),a.$watch(function(){return o.grid.styleComputations},function(){o.grid.refreshCanvas(!0)}),o.fireScrollingEvent=function(b){a.$broadcast(g.events.GRID_SCROLL,b)},o.fireEvent=function(b,c){("undefined"==typeof c||void 0===c)&&(c={}),("undefined"==typeof c.grid||void 0===c.grid)&&(c.grid=o.grid),a.$broadcast(b,c)},o.innerCompile=function(b){l(b)(a)}}]),angular.module("ui.grid").directive("uiGrid",["$log","$compile","$templateCache","gridUtil","$window",function(a,b,c,d,e){return{templateUrl:"ui-grid/ui-grid",scope:{uiGrid:"=",getExternalScopes:"&?externalScopes"},replace:!0,transclude:!0,controller:"uiGridController",compile:function(){return{post:function(b,c,f,g){function h(){i.gridWidth=b.gridWidth=d.elementWidth(c),i.gridHeight=b.gridHeight=d.elementHeight(c),i.queueRefresh()}a.debug("ui-grid postlink");var i=g.grid;if(g.scrollbars=[],i.renderingComplete(),i.element=c,i.gridWidth=b.gridWidth=d.elementWidth(c),i.canvasWidth=g.grid.gridWidth,i.gridHeight=b.gridHeight=d.elementHeight(c),i.gridHeight');c.prepend(k),g.innerCompile(k);var l=angular.element('
    ');c.append(l),g.innerCompile(l),b.$watch(function(){return i.hasLeftContainer()},function(a,b){a!==b&&i.refreshCanvas(!0)}),b.$watch(function(){return i.hasRightContainer()},function(a,b){a!==b&&i.refreshCanvas(!0)}),angular.element(e).on("resize",h),c.on("$destroy",function(){angular.element(e).off("resize",h)})}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridPinnedContainer",["$log",function(a){return{restrict:"EA",replace:!0,template:'
    ',scope:{side:"=uiGridPinnedContainer"},require:"^uiGrid",compile:function(){return{post:function(b,c,d,e){function f(){var a="";if("left"===b.side||"right"===b.side){for(var d=g.renderContainers[b.side].visibleColumnCache,e=0,f=0;f0?b[0]:null},p.prototype.getColDef=function(a){var b=this.options.columnDefs.filter(function(b){return b.name===a});return b.length>0?b[0]:null},p.prototype.assignTypes=function(){var b=this;b.options.columnDefs.forEach(function(c,d){if(!c.type){var f=new h(c,d,b),g=b.rows.length>0?b.rows[0]:null;g?c.type=e.guessType(b.getCellValue(g,f)):(a.log("Unable to assign type from data, so defaulting to string"),c.type="string")}})},p.prototype.addRowHeaderColumn=function(a){var b=this,c=new h(a,b.rowHeaderColumns.length+1,b);c.isRowHeader=!0,b.isRTL()?(b.createRightContainer(),c.renderContainer="right"):(b.createLeftContainer(),c.renderContainer="left"),b.columnBuilders[0](a,c,b.gridOptions).then(function(){c.enableFiltering=!1,c.enableSorting=!1,b.rowHeaderColumns.push(c)})},p.prototype.buildColumns=function(){a.debug("buildColumns");var c=this,d=[],e=c.rowHeaderColumns.length;return angular.forEach(c.rowHeaderColumns,function(a){e++,c.columns.push(a)}),c.columns.length>c.options.columnDefs.length&&c.columns.forEach(function(a,b){c.getColDef(a.name)||c.columns.splice(b,1)}),c.options.columnDefs.forEach(function(a,b){c.preprocessColDef(a);var f=c.getColumn(a.name);f?f.updateColumnDef(a,f.index):(f=new h(a,b+e,c),c.columns.push(f)),c.columnBuilders.forEach(function(b){d.push(b.call(c,a,f,c.options))})}),b.all(d)},p.prototype.preCompileCellTemplates=function(){this.columns.forEach(function(a){var b=a.cellTemplate.replace(f.COL_FIELD,"grid.getCellValue(row, col)"),d=c(b);a.compiledElementFn=d})},p.prototype.createLeftContainer=function(){this.hasLeftContainer()||(this.renderContainers.left=new m("left",this,{disableColumnOffset:!0}))},p.prototype.createRightContainer=function(){this.hasRightContainer()||(this.renderContainers.right=new m("right",this,{disableColumnOffset:!0}))},p.prototype.hasLeftContainer=function(){return void 0!==this.renderContainers.left},p.prototype.hasRightContainer=function(){return void 0!==this.renderContainers.right},p.prototype.preprocessColDef=function(a){if(!a.field&&!a.name)throw new Error("colDef.name or colDef.field property is required");void 0===a.name&&void 0!==a.field&&(a.name=a.field)},p.prototype.newInN=function(a,b,c,d){for(var e=this,f=[],g=0;g0?b[0]:null},p.prototype.modifyRows=function(a){var c,d,e=this;if(0===e.rows.length&&a.length>0){if(e.options.enableRowHashing)for(e.rowHashMap||e.createRowHashMap(),c=0;c0){var f,g,h;if(e.options.enableRowHashing){f=[],h=[];var i={};g=[],e.rowHashMap||e.createRowHashMap();var j=e.rowHashMap;for(c=0;cd)d+=e.drawnWidth,c++;else{for(var g=0,h=f;h>=f-c;h--)g+=a.columns[h].drawnWidth;b>g&&c++}}),c},p.prototype.getBodyHeight=function(){var a=this.getViewportHeight();return"undefined"!=typeof this.horizontalScrollbarHeight&&void 0!==this.horizontalScrollbarHeight&&this.horizontalScrollbarHeight>0&&(a+=this.horizontalScrollbarHeight),a},p.prototype.getViewportHeight=function(){var a=this,b=this.gridHeight-this.headerHeight-this.footerHeight;"undefined"!=typeof this.horizontalScrollbarHeight&&void 0!==this.horizontalScrollbarHeight&&this.horizontalScrollbarHeight>0&&(b-=this.horizontalScrollbarHeight);var c=a.getViewportAdjustment();return b+=c.height},p.prototype.getViewportWidth=function(){var a=this,b=this.gridWidth;"undefined"!=typeof this.verticalScrollbarWidth&&void 0!==this.verticalScrollbarWidth&&this.verticalScrollbarWidth>0&&(b-=this.verticalScrollbarWidth);var c=a.getViewportAdjustment();return b+=c.width},p.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return"undefined"!=typeof this.verticalScrollbarWidth&&void 0!==this.verticalScrollbarWidth&&this.verticalScrollbarWidth>0&&(a+=this.verticalScrollbarWidth),a},p.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},p.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);"undefined"!=typeof b&&void 0!==b&&this.viewportAdjusters.splice(b,1)},p.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},p.prototype.getVisibleRowCount=function(){return this.renderContainers.body.visibleRowCache.length},p.prototype.getVisibleRows=function(){return this.renderContainers.body.visibleRowCache},p.prototype.getVisibleColumnCount=function(){return this.renderContainers.body.visibleColumnCache.length},p.prototype.searchRows=function(a){return l.search(this,a,this.columns)},p.prototype.sortByColumn=function(a){return k.sort(this,a,this.columns)},p.prototype.getCellValue=function(a,b){var c=this;return c.cellValueGetterCache[b.colDef.name]||(c.cellValueGetterCache[b.colDef.name]=d(a.getEntityQualifiedColField(b))),c.cellValueGetterCache[b.colDef.name](a)},p.prototype.getNextColumnSortPriority=function(){var a=this,b=0;return a.columns.forEach(function(a){a.sort&&a.sort.priority&&a.sort.priority>b&&(b=a.sort.priority)}),b+1},p.prototype.resetColumnSorting=function(a){var b=this;b.columns.forEach(function(b){b!==a&&(b.sort={})})},p.prototype.getColumnSorting=function(){var a,b=this,c=[];return a=b.columns.slice(0),a.sort(k.prioritySort).forEach(function(a){a.sort&&"undefined"!=typeof a.sort.direction&&a.sort.direction&&(a.sort.direction===f.ASC||a.sort.direction===f.DESC)&&c.push(a)}),c},p.prototype.sortColumn=function(a,c,d){var e=this,g=null;if("undefined"==typeof a||!a)throw new Error("No column parameter provided");return"boolean"==typeof c?d=c:g=c,d?a.sort.priority=e.getNextColumnSortPriority():(e.resetColumnSorting(a),a.sort.priority=0),a.sort.direction=g?g:a.sort.direction&&a.sort.direction===f.ASC?f.DESC:a.sort.direction&&a.sort.direction===f.DESC?null:f.ASC,e.api.core.raise.sortChanged(e,e.getColumnSorting()),b.when(a)},p.prototype.renderingComplete=function(){angular.isFunction(this.options.onRegisterApi)&&this.options.onRegisterApi(this.api),this.api.core.raise.renderingComplete(this.api)},p.prototype.createRowHashMap=function(){var a=this,b=new o;b.grid=a,a.rowHashMap=b},p.prototype.refresh=function(){a.debug("grid refresh");var c=this,d=c.processRowsProcessors(c.rows).then(function(a){c.setVisibleRows(a)}),e=c.processColumnsProcessors(c.columns).then(function(a){c.setVisibleColumns(a)});return b.all([d,e]).then(function(){c.redrawInPlace(),c.refreshCanvas(!0)})},p.prototype.refreshRows=function(){var a=this;return a.processRowsProcessors(a.rows).then(function(b){a.setVisibleRows(b),a.redrawRows(),a.refreshCanvas()})},p.prototype.refreshCanvas=function(a){var c=this;a&&c.buildStyles();var d=b.defer(),f=[];for(var g in c.renderContainers)if(c.renderContainers.hasOwnProperty(g)){var h=c.renderContainers[g];h.header&&f.push(h)}return n(f.length>0?function(){for(var b=!1,g=0;gc&&e>=0;e--)c+=a.visibleRowCache[e].height,b++;return b},c.prototype.minColumnsToRender=function(){for(var a=this,b=this.getViewportWidth(),c=0,d=0,e=0;ed)d+=f.drawnWidth,c++;else{for(var g=0,h=e;h>=e-c;h--)g+=a.visibleColumnCache[h].drawnWidth;b>g&&c++}}return c},c.prototype.getVisibleRowCount=function(){return this.visibleRowCache.length},c.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},c.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);"undefined"!=typeof b&&void 0!==b&&this.viewportAdjusters.splice(b,1)},c.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},c.prototype.getViewportHeight=function(){var a=this,b=a.headerHeight?a.headerHeight:a.grid.headerHeight,c=a.grid.gridHeight-b-a.grid.footerHeight;"undefined"!=typeof a.horizontalScrollbarHeight&&void 0!==a.horizontalScrollbarHeight&&a.horizontalScrollbarHeight>0&&(c-=a.horizontalScrollbarHeight);var d=a.getViewportAdjustment();return c+=d.height},c.prototype.getViewportWidth=function(){var a=this,b=a.grid.gridWidth;"undefined"!=typeof a.grid.verticalScrollbarWidth&&void 0!==a.grid.verticalScrollbarWidth&&a.grid.verticalScrollbarWidth>0&&(b-=a.grid.verticalScrollbarWidth);var c=a.getViewportAdjustment();return b+=c.width},c.prototype.getHeaderViewportWidth=function(){var a=this,b=this.getViewportWidth();return"undefined"!=typeof a.grid.verticalScrollbarWidth&&void 0!==a.grid.verticalScrollbarWidth&&a.grid.verticalScrollbarWidth>0&&(b+=a.grid.verticalScrollbarWidth),b},c.prototype.getCanvasHeight=function(){var a=this,b=0;return a.visibleRowCache.forEach(function(a){b+=a.height}),"undefined"!=typeof a.grid.horizontalScrollbarHeight&&void 0!==a.grid.horizontalScrollbarHeight&&a.grid.horizontalScrollbarHeight>0&&(b-=a.grid.horizontalScrollbarHeight),b},c.prototype.getCanvasWidth=function(){var a=this,b=a.canvasWidth;return"undefined"!=typeof a.verticalScrollbarWidth&&void 0!==a.verticalScrollbarWidth&&a.verticalScrollbarWidth>0&&(b-=a.verticalScrollbarWidth),b},c.prototype.setRenderedRows=function(a){this.renderedRows.length=a.length;for(var b=0;bf&&(g=f);var h=[];if(e.length>c.grid.options.virtualizationThreshold){if(c.prevScrollTopg)return;if(c.prevScrollTop>a&&g>c.prevRowScrollIndex-c.grid.options.scrollThreshold&&f>g)return;var i=Math.max(0,g-c.grid.options.excessRows),j=Math.min(e.length,g+d+c.grid.options.excessRows);h=[i,j]}else{var k=c.visibleRowCache.length;h=[0,Math.max(k,d+c.grid.options.excessRows)]}c.updateViewableRowRange(h),c.prevRowScrollIndex=g},c.prototype.adjustColumns=function(a,b){var c=this,d=c.minColumnsToRender(),e=c.visibleColumnCache,f=e.length-d;"undefined"!=typeof b&&null!==b||!a||(b=a/c.getCanvasWidth());var g=Math.ceil(Math.min(f,f*b));g>f&&(g=f);var h=[];if(e.length>c.grid.options.columnVirtualizationThreshold&&c.getCanvasWidth()>c.getViewportWidth()){if(c.prevScrollLeftg)return;if(c.prevScrollLeft>a&&g>c.prevColumnScrollIndex-c.grid.options.horizontalScrollThreshold&&f>g)return;var i=Math.max(0,g-c.grid.options.excessColumns),j=Math.min(e.length,g+d+c.grid.options.excessColumns);h=[i,j]}else{var k=c.visibleColumnCache.length;h=[0,Math.max(k,d+c.grid.options.excessColumns)]}c.updateViewableColumnRange(h),c.prevColumnScrollIndex=g},c.prototype.updateViewableRowRange=function(a){var b=this.visibleRowCache.slice(a[0],a[1]);this.currentTopRow=a[0],this.setRenderedRows(b)},c.prototype.updateViewableColumnRange=function(a){var b=this.visibleColumnCache.slice(a[0],a[1]);this.currentFirstColumn=a[0],this.setRenderedColumns(b)},c.prototype.rowStyle=function(a){var b=this,c={};if(0===a&&0!==b.currentTopRow){var d=b.currentTopRow*b.grid.options.rowHeight;c["margin-top"]=d+"px"}return 0!==b.currentFirstColumn&&(b.grid.isRTL()?c["margin-right"]=b.columnOffset+"px":c["margin-left"]=b.columnOffset+"px"),c},c.prototype.columnStyle=function(a){var b=this;if(0===a&&0!==b.currentFirstColumn){var c=b.columnOffset;return b.grid.isRTL()?{"margin-right":c+"px"}:{"margin-left":c+"px"}}return null},c.prototype.updateColumnWidths=function(){var a=this,c=[],d=[],e=0,f=a.getViewportWidth();"undefined"!=typeof a.grid.verticalScrollbarWidth&&void 0!==a.grid.verticalScrollbarWidth&&a.grid.verticalScrollbarWidth>0&&(f+=a.grid.verticalScrollbarWidth);var g,h=0,i=0,j="",k=a.visibleColumnCache;k.forEach(function(a){if(a.visible){var f=!1;angular.isNumber(a.width)||(f=isNaN(a.width)?b.endsWith(a.width,"%"):!1),angular.isString(a.width)&&-1!==a.width.indexOf("*")?(e=parseInt(e+a.width.length,10),c.push(a)):f?d.push(a):angular.isNumber(a.width)&&(h=parseInt(h+a.width,10),i=parseInt(i,10)+parseInt(a.width,10),a.drawnWidth=a.width)}});var l,m,n,o=f-h;if(d.length>0){for(l=0;lm.colDef.maxWidth&&(n=m.colDef.maxWidth,o-=n,i+=n,m.drawnWidth=n,d.splice(l,1))}d.forEach(function(a){var b=parseInt(a.width.replace(/%/g,""),10)/100,c=parseInt(b*o,10);i+=c,a.drawnWidth=c})}if(c.length>0){var q=parseInt(o/e,10);for(l=0;lm.colDef.maxWidth&&(n=m.colDef.maxWidth,o-=n,e--,i+=n,m.drawnWidth=n,c.splice(l,1));q=parseInt(o/e,10),c.forEach(function(a){var b=parseInt(q*a.width.length,10);i+=b,a.drawnWidth=b})}var r=f-parseInt(i,10);if(r>0&&i>0&&f>i){var s=!1;if(k.forEach(function(a){a.width&&!angular.isNumber(a.width)&&(s=!0)}),s)for(var t=function(a){r>0&&(a.drawnWidth=a.drawnWidth+1,i+=1,r--)};r>0;)k.forEach(t)}f>i&&(i=f),k.forEach(function(a){j+=a.getColClassDefinition()}),a.grid.verticalScrollbarWidth&&(i+=a.grid.verticalScrollbarWidth),a.canvasWidth=parseInt(i,10),this.columnStyles=j},c}])}(),function(){angular.module("ui.grid").factory("GridRow",["gridUtil",function(a){function b(b,c,d){this.grid=d,this.entity=b,this.index=c,this.uid=a.nextUid(),this.visible=!0,this.height=d.options.rowHeight,this.grid.api.core.setRowInvisible||this.grid.api.registerMethod("core","setRowInvisible",this.setRowInvisible),this.grid.api.core.clearRowInvisible||this.grid.api.registerMethod("core","clearRowInvisible",this.clearRowInvisible),this.grid.api.core.getVisibleRows||this.grid.api.registerMethod("core","getVisibleRows",this.getVisibleRows),this.grid.api.core.raise.rowsVisibleChanged||this.grid.api.registerEvent("core","rowsVisibleChanged")}return b.prototype.getQualifiedColField=function(a){return"row."+this.getEntityQualifiedColField(a)},b.prototype.getEntityQualifiedColField=function(b){return a.preEval("entity."+b.field)},b.prototype.setRowInvisible=function(a){null!==a&&(a.forceInvisible=!0,a.visible&&(a.visible=!1,a.grid.refresh(),a.grid.api.core.raise.rowsVisibleChanged()))},b.prototype.clearRowInvisible=function(a){null!==a&&(a.forceInvisible=!1,a.visible||(a.visible=!0,a.grid.refresh(),a.grid.api.core.raise.rowsVisibleChanged()))},b.prototype.getVisibleRows=function(a){return a.rows.filter(function(a){return a.visible})},b}])}(),function(){"use strict";angular.module("ui.grid").service("gridClassFactory",["gridUtil","$q","$compile","$templateCache","uiGridConstants","$log","Grid","GridColumn","GridRow",function(a,b,c,d,e,f,g){var h={createGrid:function(d){d="undefined"!=typeof d?d:{},d.id=a.newId();var e=new g(d);if(e.options.rowTemplate){var f=b.defer();e.getRowTemplateFn=f.promise,a.getTemplate(e.options.rowTemplate).then(function(a){var b=c(a);f.resolve(b)},function(){throw new Error("Couldn't fetch/use row template '"+e.options.rowTemplate+"'")})}return e.registerColumnBuilder(h.defaultColumnBuilder),e.registerRowsProcessor(function(a){return a.forEach(function(a){a.visible=!a.forceInvisible}),a}),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.visible=!0}),a}),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.colDef.visible===!1&&(a.visible=!1)}),a}),e.options.enableFiltering&&e.registerRowsProcessor(e.searchRows),e.registerRowsProcessor(e.options.externalSort&&angular.isFunction(e.options.externalSort)?e.options.externalSort:e.sortByColumn),e},defaultColumnBuilder:function(c,d){var f=[];return c.headerCellTemplate||(c.headerCellTemplate="ui-grid/uiGridHeaderCell"),c.cellTemplate||(c.cellTemplate="ui-grid/uiGridCell"),f.push(a.getTemplate(c.cellTemplate).then(function(a){d.cellTemplate=a.replace(e.CUSTOM_FILTERS,d.cellFilter?"|"+d.cellFilter:"")},function(){throw new Error("Couldn't fetch/use colDef.cellTemplate '"+c.cellTemplate+"'")})),f.push(a.getTemplate(c.headerCellTemplate).then(function(a){d.headerCellTemplate=a.replace(e.CUSTOM_FILTERS,d.headerCellFilter?"|"+d.headerCellFilter:"")},function(){throw new Error("Couldn't fetch/use colDef.headerCellTemplate '"+c.headerCellTemplate+"'")})),b.all(f)}};return h}])}(),function(){function a(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function b(){var a=function(b,c){return b&&a.cache[b]?a.cache[b]:b&&c?(a.cache[b]=c,a.cache[b]):void 0};return a.cache={},a.clear=function(){a.cache={}},a}var c=angular.module("ui.grid");c.service("rowSearcher",["$log","uiGridConstants",function(c,d){var e=d.filter.STARTS_WITH,f={};return f.getTerm=function(a){if("undefined"==typeof a.term)return a.term;var b=a.term;return"string"==typeof b&&(b=b.trim()),b},f.stripTerm=function(b){var c=f.getTerm(b);return"string"==typeof c?a(c.replace(/(^\*|\*$)/g,"")):c},f.guessCondition=function(a){if("undefined"==typeof a.term||!a.term)return e;var b=f.getTerm(a);if(/\*/.test(b)){var c="";a.flags&&a.flags.caseSensitive||(c+="i");var d=b.replace(/(\\)?\*/g,function(a,b){return b?a:"[\\s\\S]*?"});return new RegExp("^"+d+"$",c)}return e},f.runColumnFilter=function(a,b,c,e,g,h){var i=typeof h.condition;"undefined"!==i&&h.condition||(h.condition=d.filter.CONTAINS);var j=f.stripTerm(h);if(null===j||void 0===j||""===j)return!0;var k=a.getCellValue(b,c),l="";h.flags&&h.flags.caseSensitive||(l+="i");var m=c.field+g;if(h.condition instanceof RegExp){if(!h.condition.test(k))return!1}else{if("function"===i)return h.condition(j,k,b,c);if(h.condition===d.filter.STARTS_WITH){var n=e(m)?e(m):e(m,new RegExp("^"+j,l));if(!n.test(k))return!1}else if(h.condition===d.filter.ENDS_WITH){var o=e(m)?e(m):e(m,new RegExp(j+"$",l));if(!o.test(k))return!1}else if(h.condition===d.filter.CONTAINS){var p=e(m)?e(m):e(m,new RegExp(j,l));if(!p.test(k))return!1}else if(h.condition===d.filter.EXACT){var q=e(m)?e(m):e(m,new RegExp("^"+j+"$",l));if(!q.test(k))return!1}else if(h.condition===d.filter.GREATER_THAN){if(j>=k)return!1}else if(h.condition===d.filter.GREATER_THAN_OR_EQUAL){if(j>k)return!1}else if(h.condition===d.filter.LESS_THAN){if(k>=j)return!1}else if(h.condition===d.filter.LESS_THAN_OR_EQUAL){if(k>j)return!1}else if(h.condition===d.filter.NOT_EQUAL&&!angular.equals(k,j))return!1}return!0},f.searchColumn=function(a,b,c,d){var e=[];if(a.options.useExternalFiltering)return!0;if(!("undefined"!=typeof c.filters&&c.filters&&c.filters.length>0))return!0;e=c.filters;for(var g in e){var h=e[g];if(!h.condition){var i="cond-"+c.field+"-"+h.term,j=d(i)?d(i):d(i,f.guessCondition(h));h={term:h.term,condition:j,flags:angular.extend({caseSensitive:!1},h.flags)}}var k=f.runColumnFilter(a,b,c,d,g,h);if(!k)return!1}return!0},f.search=function(a,c,d){if(c){var e=new b,g=[];return d.forEach(function(a){"undefined"!=typeof a.filters&&a.filters.length>0?g.push(a):"undefined"!=typeof a.filter&&a.filter&&"undefined"!=typeof a.filter.term&&a.filter.term&&g.push(a)}),g.length>0&&(g.forEach(function(b){c.forEach(function(c){(c.forceInvisible||!f.searchColumn(a,c,b,e))&&(c.visible=!1)})}),a.api.core.raise.rowsVisibleChanged()),e.clear(),c -}},f}])}(),function(){var a=angular.module("ui.grid");a.service("rowSorter",["$parse","uiGridConstants",function(a,b){var c="("+b.CURRENCY_SYMBOLS.map(function(a){return"\\"+a}).join("|")+")?",d=(new RegExp("^[-+]?"+c+"[\\d,.]+"+c+"%?$"),{colSortFnCache:[]});return d.guessSortFn=function(a){switch(a){case"number":return d.sortNumber;case"boolean":return d.sortBool;case"string":return d.sortAlpha;case"date":return d.sortDate;case"object":return d.basicSort;default:throw new Error("No sorting function found for type:"+a)}},d.basicSort=function(a,b){return a===b?0:b>a?-1:1},d.sortNumber=function(a,b){return a-b},d.sortNumberStr=function(a,b){var c,d,e=!1,f=!1;return c=parseFloat(a.replace(/[^0-9.-]/g,"")),isNaN(c)&&(e=!0),d=parseFloat(b.replace(/[^0-9.-]/g,"")),isNaN(d)&&(f=!0),e&&f?0:e?1:f?-1:c-d},d.sortAlpha=function(a,b){var c=a.toLowerCase(),d=b.toLowerCase();return c===d?0:d>c?-1:1},d.sortDate=function(a,b){var c=a.getTime(),d=b.getTime();return c===d?0:d>c?-1:1},d.sortBool=function(a,b){return a&&b?0:a||b?a?1:-1:0},d.getSortFn=function(a,b){var c;return d.colSortFnCache[b.colDef.name]?c=d.colSortFnCache[b.colDef.name]:void 0!==b.sortingAlgorithm?(c=b.sortingAlgorithm,d.colSortFnCache[b.colDef.name]=b.sortingAlgorithm):(c=d.guessSortFn(b.colDef.type),c?d.colSortFnCache[b.colDef.name]=c:c=d.sortAlpha),c},d.prioritySort=function(a,b){return void 0!==a.sort.priority&&void 0!==b.sort.priority?a.sort.priorityf;f+=2){var i=h[f];if("margin"===c){var j=parseFloat(e[c+i]);isNaN(j)||(g+=j)}if(d){if("content"===c){var k=parseFloat(e["padding"+i]);isNaN(k)||(g-=k)}if("margin"!==c){var l=parseFloat(e["border"+i+"Width"]);isNaN(l)||(g-=l)}}else{var m=parseFloat(e["padding"+i]);if(isNaN(m)||(g+=m),"padding"!==c){var n=parseFloat(e["border"+i+"Width"]);isNaN(n)||(g+=n)}}}return g}function c(c,d,f){var g=!0,h="width"===d?c.offsetWidth:c.offsetHeight,i=a(c),j="border-box"===i.boxSizing;if(0>=h||null==h){if(h=i[d],(0>h||null==h)&&(h=c.style[d]),e.test(h))return h;g=j&&!0,h=parseFloat(h)||0}var k=h+b(c,d,f||(j?"border":"content"),g,i);return k}var d=angular.module("ui.grid"),e=new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i"),f=/^(block|none|table(?!-c[ea]).+)/,g={position:"absolute",visibility:"hidden",display:"block"},h=["0","0","0"],i="uiGrid-";d.service("gridUtil",["$log","$window","$document","$http","$templateCache","$timeout","$injector","$q","uiGridConstants",function(b,d,e,j,k,l,m,n,o){var p={createBoundedWrapper:function(a,b){return function(){return b.apply(a,arguments)}},readableColumnName:function(a){return"undefined"==typeof a||void 0===a||null===a?a:("string"!=typeof a&&(a=String(a)),a.replace(/_+/g," ").replace(/^[A-Z]+$/,function(a){return angular.lowercase(angular.uppercase(a.charAt(0))+a.slice(1))}).replace(/(\w+)/g,function(a){return angular.uppercase(a.charAt(0))+a.slice(1)}).replace(/(\w+?(?=[A-Z]))/g,"$1 "))},getColumnsFromData:function(a,b){var c=[];if(!a||"undefined"==typeof a[0]||void 0===a[0])return[];angular.isUndefined(b)&&(b=[]);var d=a[0];return angular.forEach(d,function(a,d){-1===b.indexOf(d)&&c.push({name:d})}),c},newId:function(){var a=(new Date).getTime();return function(){return a+=1}}(),getTemplate:function(a){if(k.get(a))return n.when(k.get(a));if(a.hasOwnProperty("then"))return a;try{if(angular.element(a).length>0)return n.when(a)}catch(c){}return b.debug("Fetching url",a),j({method:"GET",url:a}).then(function(b){var c=b.data.trim();return k.put(a,c),c},function(b){throw new Error("Could not get template "+a+": "+b)})},guessType:function(a){var b=typeof a;switch(b){case"number":case"boolean":case"string":return b;default:return angular.isDate(a)?"date":"object"}},elementWidth:function(){},elementHeight:function(){},getScrollbarWidth:function(){var a=document.createElement("div");a.style.visibility="hidden",a.style.width="100px",a.style.msOverflowStyle="scrollbar",document.body.appendChild(a);var b=a.offsetWidth;a.style.overflow="scroll";var c=document.createElement("div");c.style.width="100%",a.appendChild(c);var d=c.offsetWidth;return a.parentNode.removeChild(a),b-d},swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},fakeElement:function(a,b,c){var d,e,f=angular.element(a).clone()[0];for(e in b)f.style[e]=b[e];return angular.element(document.body).append(f),d=c.call(f,f),angular.element(f).remove(),d},normalizeWheelEvent:function(a){var b,c,d,e=a||window.event,f=([].slice.call(arguments,1),0),g=0,h=0,i=0,j=0;return e.originalEvent&&(e=e.originalEvent),e.wheelDelta&&(f=e.wheelDelta),e.detail&&(f=-1*e.detail),h=f,void 0!==e.axis&&e.axis===e.HORIZONTAL_AXIS&&(h=0,g=-1*f),e.deltaY&&(h=-1*e.deltaY,f=h),e.deltaX&&(g=e.deltaX,f=-1*g),void 0!==e.wheelDeltaY&&(h=e.wheelDeltaY),void 0!==e.wheelDeltaX&&(g=e.wheelDeltaX),i=Math.abs(f),(!b||b>i)&&(b=i),j=Math.max(Math.abs(h),Math.abs(g)),(!c||c>j)&&(c=j),d=f>0?"floor":"ceil",f=Math[d](f/b),g=Math[d](g/c),h=Math[d](h/c),{delta:f,deltaX:g,deltaY:h}},isTouchEnabled:function(){var a;return("ontouchstart"in d||d.DocumentTouch&&e instanceof DocumentTouch)&&(a=!0),a},isNullOrUndefined:function(a){return void 0===a||null===a?!0:!1},endsWith:function(a,b){return a&&b&&"string"==typeof a?-1!==a.indexOf(b,a.length-b.length):!1},requestAnimationFrame:d.requestAnimationFrame&&d.requestAnimationFrame.bind(d)||d.webkitRequestAnimationFrame&&d.webkitRequestAnimationFrame.bind(d)||function(a){return l(a,10,!1)},numericAndNullSort:function(a,b){return null===a?1:null===b?-1:null===a&&null===b?0:a-b},disableAnimations:function(a){var b;try{b=m.get("$animate"),b.enabled(!1,a)}catch(c){}},enableAnimations:function(a){var b;try{b=m.get("$animate"),b.enabled(!0,a)}catch(c){}},nextUid:function(){for(var a,b=h.length;b;){if(b--,a=h[b].charCodeAt(0),57===a)return h[b]="A",i+h.join("");if(90!==a)return h[b]=String.fromCharCode(a+1),i+h.join("");h[b]="0"}return h.unshift("0"),i+h.join("")},hashKey:function(a){var b,c=typeof a;return"object"===c&&null!==a?"function"==typeof(b=a.$$hashKey)?b=a.$$hashKey():"undefined"!=typeof a.$$hashKey&&a.$$hashKey?b=a.$$hashKey:void 0===b&&(b=a.$$hashKey=p.nextUid()):b=a,c+":"+b}};return["width","height"].forEach(function(b){var d=angular.uppercase(b.charAt(0))+b.substr(1);p["element"+d]=function(d,e){var h=d;if("undefined"!=typeof h.length&&h.length&&(h=d[0]),h){var i=a(h);return 0===h.offsetWidth&&f.test(i.display)?p.fakeElement(h,g,function(a){return c(a,b,e)}):c(h,b,e)}return null},p["outerElement"+d]=function(a,b){return a?p["element"+d].call(this,a,b?"margin":"border"):null}}),p.closestElm=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c;["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"].some(function(a){return"function"==typeof document.body[a]?(c=a,!0):!1});for(var d;null!==a;){if(d=a.parentElement,null!==d&&d[c](b))return d;a=d}return null},p.type=function(a){var b=Function.prototype.toString.call(a.constructor);return b.match(/function (.*?)\(/)[1]},p.getBorderSize=function(b,c){"undefined"!=typeof b.length&&b.length&&(b=b[0]);var d=a(b);c=c?"border-"+c:"border";var e=parseInt(d[c],10);return isNaN(e)?0:e},p.detectBrowser=function(){var a=d.navigator.userAgent,b={chrome:/chrome/i,safari:/safari/i,firefox:/firefox/i,ie:/internet explorer|trident\//i};for(var c in b)if(b[c].test(a))return c;return"unknown"},p.normalizeScrollLeft=function(a){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var b=p.detectBrowser(),c=a.scrollLeft,d=angular.element(a).css("direction");if("ie"===b)return c;if("chrome"===b){if("rtl"===d){var e=a.scrollWidth-a.clientWidth;return e-c}return c}return"firefox"===b?Math.abs(c):c},p.denormalizeScrollLeft=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c=p.detectBrowser(),d=angular.element(a).css("direction");if("ie"===c)return b;if("chrome"===c){if("rtl"===d){var e=a.scrollWidth-a.clientWidth;return e-b}return b}return"firefox"===c&&"rtl"===d?-1*b:b},p.preEval=function(a){var b=o.BRACKET_REGEXP.exec(a);if(b)return(b[1]?p.preEval(b[1]):b[1])+b[2]+(b[3]?p.preEval(b[3]):b[3]);a=a.replace(o.APOS_REGEXP,"\\'");var c=a.split(o.DOT_REGEXP),d=[c.shift()];return angular.forEach(c,function(a){d.push(a.replace(o.FUNC_REGEXP,"']$1"))}),d.join("['")},p.debounce=function(a,b,c){function d(){g=this,f=arguments;var d=function(){e=null,c||(h=a.apply(g,f))},i=c&&!e;return e&&l.cancel(e),e=l(d,b),i&&(h=a.apply(g,f)),h}var e,f,g,h;return d.cancel=function(){l.cancel(e),e=null},d},p}]),d.filter("px",function(){return function(a){return a.match(/^[\d\.]+$/)?a+"px":a}})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("da",{aggregate:{label:"artikler"},groupPanel:{description:"Grupér rækker udfra en kolonne ved at trække dens overskift hertil."},search:{placeholder:"Søg...",showingItems:"Viste rækker:",selectedItems:"Valgte rækker:",totalItems:"Rækker totalt:",size:"Side størrelse:",first:"Første side",next:"Næste side",previous:"Forrige side",last:"Sidste side"},menu:{text:"Vælg kolonner:"},column:{hide:"Skjul kolonne"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("de",{aggregate:{label:"eintrag"},groupPanel:{description:"Ziehen Sie eine Spaltenüberschrift hierhin um nach dieser Spalte zu gruppieren."},search:{placeholder:"Suche...",showingItems:"Zeige Einträge:",selectedItems:"Ausgewählte Einträge:",totalItems:"Einträge gesamt:",size:"Einträge pro Seite:",first:"Erste Seite",next:"Nächste Seite",previous:"Vorherige Seite",last:"Letzte Seite"},menu:{text:"Spalten auswählen:"},column:{hide:"Spalte ausblenden"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("en",{aggregate:{label:"items"},groupPanel:{description:"Drag a column header here and drop it to group by that column."},search:{placeholder:"Search...",showingItems:"Showing Items:",selectedItems:"Selected Items:",totalItems:"Total Items:",size:"Page Size:",first:"First Page",next:"Next Page",previous:"Previous Page",last:"Last Page"},menu:{text:"Choose Columns:"},sort:{ascending:"Sort Ascending",descending:"Sort Descending",remove:"Remove Sort"},column:{hide:"Hide Column"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("es",{aggregate:{label:"Artículos"},groupPanel:{description:"Arrastre un encabezado de columna aquí y soltarlo para agrupar por esa columna."},search:{placeholder:"Buscar...",showingItems:"Artículos Mostrando:",selectedItems:"Artículos Seleccionados:",totalItems:"Artículos Totales:",size:"Tamaño de Página:",first:"Primera Página",next:"Página Siguiente",previous:"Página Anterior",last:"Última Página"},menu:{text:"Elegir columnas:"},column:{hide:"Ocultar la columna"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fa",{aggregate:{label:"موردها"},groupPanel:{description:"یک عنوان ستون اینجا را بردار و به گروهی از آن ستون بیانداز."},search:{placeholder:"جستجو...",showingItems:"نمایش موردها:",selectedItems:"موردهای انتخاب‌شده:",totalItems:"همهٔ موردها:",size:"اندازهٔ صفحه:",first:"صفحهٔ اول",next:"صفحهٔ بعد",previous:"صفحهٔ قبل",last:"آخرین صفحه"},menu:{text:"انتخاب ستون‌ها:"},column:{hide:"ستون پنهان کن"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fr",{aggregate:{label:"articles"},groupPanel:{description:"Faites glisser un en-tête de colonne ici et déposez-le vers un groupe par cette colonne."},search:{placeholder:"Recherche...",showingItems:"Articles Affichage des:",selectedItems:"Éléments Articles:",totalItems:"Nombre total d'articles:",size:"Taille de page:",first:"Première page",next:"Page Suivante",previous:"Page précédente",last:"Dernière page"},menu:{text:"Choisir des colonnes:"},column:{hide:"Colonne de peau"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("he",{aggregate:{label:"items"},groupPanel:{description:"גרור עמודה לכאן ושחרר בכדי לקבץ עמודה זו."},search:{placeholder:"חפש...",showingItems:"מציג:",selectedItems:'סה"כ נבחרו:',totalItems:'סה"כ רשומות:',size:"תוצאות בדף:",first:"דף ראשון",next:"דף הבא",previous:"דף קודם",last:"דף אחרון"},menu:{text:"בחר עמודות:"},sort:{ascending:"סדר עולה",descending:"סדר יורד",remove:"בטל"},column:{hide:"טור הסתר"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("nl",{aggregate:{label:"items"},groupPanel:{description:"Sleep hier een kolomnaam heen om op te groeperen."},search:{placeholder:"Zoeken...",showingItems:"Getoonde items:",selectedItems:"Geselecteerde items:",totalItems:"Totaal aantal items:",size:"Items per pagina:",first:"Eerste pagina",next:"Volgende pagina",previous:"Vorige pagina",last:"Laatste pagina"},menu:{text:"Kies kolommen:"},sort:{ascending:"Sorteer oplopend",descending:"Sorteer aflopend",remove:"Verwijder sortering"},column:{hide:"Kolom te verbergen"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt-br",{aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Items Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},column:{hide:"Esconder coluna"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ru",{aggregate:{label:"элементы"},groupPanel:{description:"Для группировки по столбцу перетащите сюда его название."},search:{placeholder:"Поиск...",showingItems:"Показать элементы:",selectedItems:"Выбранные элементы:",totalItems:"Всего элементов:",size:"Размер страницы:",first:"Первая страница",next:"Следующая страница",previous:"Предыдущая страница",last:"Последняя страница"},menu:{text:"Выбрать столбцы:"},sort:{ascending:"По возрастанию",descending:"По убыванию",remove:"Убрать сортировку"},column:{hide:"спрятать столбец"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sk",{aggregate:{label:"items"},groupPanel:{description:"Pretiahni sem názov stĺpca pre zoskupenie podľa toho stĺpca."},search:{placeholder:"Hľadaj...",showingItems:"Zobrazujem položky:",selectedItems:"Vybraté položky:",totalItems:"Počet položiek:",size:"Počet:",first:"Prvá strana",next:"Ďalšia strana",previous:"Predchádzajúca strana",last:"Posledná strana"},menu:{text:"Vyberte stĺpce:"},sort:{ascending:"Zotriediť vzostupne",descending:"Zotriediť zostupne",remove:"Vymazať triedenie"}}),a}])}])}(),function(){var a=["uiT","uiTranslate"],b=["t","uiTranslate"],c=angular.module("ui.grid.i18n");c.constant("i18nConstants",{MISSING:"[MISSING]",UPDATE_EVENT:"$uiI18n",LOCALE_DIRECTIVE_ALIAS:"uiI18n",DEFAULT_LANG:"en"}),c.service("i18nService",["$log","i18nConstants","$rootScope",function(a,b,c){var d={_langs:{},current:null,get:function(a){return this._langs[a.toLowerCase()]},add:function(a,b){var c=a.toLowerCase();this._langs[c]||(this._langs[c]={}),angular.extend(this._langs[c],b)},getAllLangs:function(){var a=[];if(!this._langs)return a;for(var b in this._langs)a.push(b);return a},setCurrent:function(a){this.current=a.toLowerCase()},getCurrentLang:function(){return this.current}},e={add:function(a,b){"object"==typeof a?angular.forEach(a,function(a){a&&d.add(a,b)}):d.add(a,b)},getAllLangs:function(){return d.getAllLangs()},get:function(a){var b=a?a:e.getCurrentLang();return d.get(b)},getSafeText:function(a,c){var f=c?c:e.getCurrentLang(),g=d.get(f);if(!g)return b.MISSING;for(var h=a.split("."),i=g,j=0;je.index?0===d.index?new a(d,c[g]):new a(b[d.index-1],c[g]):new a(d,c[g])},getRowColRight:function(b,c,d,e){var g=f.getNextColIndexRight(c,e);return ga.length-1&&(c=0);return c},getRowColUp:function(b,c,d,e){var g=e.colDef.allowCellFocus?e.index:f.getNextColIndexRight(c,e);return 0===d.index?new a(d,c[g]):new a(b[d.index-1],c[g])},getRowColDown:function(b,c,d,e){var g=e.colDef.allowCellFocus?e.index:f.getNextColIndexRight(c,e);return d.index===b.length-1?new a(d,c[g]):new a(b[d.index+1],c[g])},cellNavColumnBuilder:function(a){var b=[];return a.allowCellFocus=void 0===a.allowCellFocus?!0:a.allowCellFocus,e.all(b)},scrollTo:function(a,b,d,e){var f={};if(null!==d){var g=a.getRow(d);g&&(f.y={percentage:g.index/a.renderContainers.body.visibleRowCache.length})}if(null!==e){var h=a.getColumn(e.name?e.name:e.field);h&&(f.x={percentage:this.getLeftWidth(a,h.index)/this.getLeftWidth(a,a.renderContainers.body.visibleColumnCache.length-1)})}(f.y||f.x)&&b.$broadcast(c.events.GRID_SCROLL,f)},getLeftWidth:function(a,b){var c=0;if(b){for(var d=0;b>=d;d++)a.renderContainers.body.visibleColumnCache[d].drawnWidth&&(c+=a.renderContainers.body.visibleColumnCache[d].drawnWidth);return c}}};return f}]),b.directive("uiGridCellnav",["$log","uiGridCellNavService","uiGridCellNavConstants",function(b,c,d){return{replace:!0,priority:-150,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(b,e,f,g){var h=g.grid;c.initializeGrid(h),g.cellNav={},g.cellNav.broadcastCellNav=function(a){b.$broadcast(d.CELL_NAV_EVENT,a),g.cellNav.broadcastFocus(a.row,a.col)},g.cellNav.broadcastFocus=function(b,c){if(null===h.cellNav.lastRowCol||h.cellNav.lastRowCol.row!==b||h.cellNav.lastRowCol.col!==c){var d=new a(b,c);h.api.cellNav.raise.navigate(d,h.cellNav.lastRowCol),h.cellNav.lastRowCol=d}}},post:function(){}}}}}]),b.directive("uiGridCell",["uiGridCellNavService","$log","uiGridCellNavConstants",function(a,b,c){return{priority:-150,restrict:"A",require:"^uiGrid",scope:!1,link:function(b,d,e,f){function g(){d.find("div").attr("tabindex",-1)}function h(){var a=d.find("div");a[0].focus(),a.attr("tabindex",0)}b.col.colDef.allowCellFocus&&(g(),d.on("keydown",function(c){var d=a.getDirection(c);if(null===d)return!0;var e=a.getNextRowCol(d,b.grid,b.row,b.col);return f.cellNav.broadcastCellNav(e),g(),!1}),d.find("div").on("focus",function(){f.cellNav.broadcastFocus(b.row,b.col)}),b.$on(c.CELL_NAV_EVENT,function(a,c){c.row===b.row&&c.col===b.col&&h()}))}}}])}(),function(){"use strict";var a=angular.module("ui.grid.edit",["ui.grid"]);a.constant("uiGridEditConstants",{EDITABLE_CELL_TEMPLATE:/EDITABLE_CELL_TEMPLATE/g,EDITABLE_CELL_DIRECTIVE:/editable_cell_directive/g,events:{BEGIN_CELL_EDIT:"uiGridEventBeginCellEdit",END_CELL_EDIT:"uiGridEventEndCellEdit",CANCEL_CELL_EDIT:"uiGridEventCancelCellEdit"}}),a.service("uiGridEditService",["$log","$q","$templateCache","uiGridConstants","gridUtil",function(a,b,c,d,e){var f={initializeGrid:function(a){f.defaultGridOptions(a.options),a.registerColumnBuilder(f.editColumnBuilder);var b={events:{edit:{afterCellEdit:function(){},beginCellEdit:function(){},cancelCellEdit:function(){}}},methods:{edit:{}}};a.api.registerEventsFromObject(b.events)},defaultGridOptions:function(a){a.cellEditableCondition=void 0===a.cellEditableCondition?!0:a.cellEditableCondition,a.enableCellEditOnFocus=void 0===a.enableCellEditOnFocus?!1:a.enableCellEditOnFocus},editColumnBuilder:function(a,c,d){var f=[];return a.enableCellEdit=void 0===a.enableCellEdit?void 0===d.enableCellEdit?"object"!==a.type:d.enableCellEdit:a.enableCellEdit,a.cellEditableCondition=void 0===a.cellEditableCondition?d.cellEditableCondition:a.cellEditableCondition,a.enableCellEdit&&(a.editableCellTemplate=a.editableCellTemplate||d.editableCellTemplate||"ui-grid/cellEditor",f.push(e.getTemplate(a.editableCellTemplate).then(function(a){c.editableCellTemplate=a},function(){throw new Error("Couldn't fetch/use colDef.editableCellTemplate '"+a.editableCellTemplate+"'")}))),a.enableCellEditOnFocus=void 0===a.enableCellEditOnFocus?d.enableCellEditOnFocus:a.enableCellEditOnFocus,b.all(f)},isStartEditKey:function(a){return a.keyCode===d.keymap.LEFT||a.keyCode===d.keymap.TAB&&a.shiftKey||a.keyCode===d.keymap.RIGHT||a.keyCode===d.keymap.TAB||a.keyCode===d.keymap.UP||a.keyCode===d.keymap.ENTER&&a.shiftKey||a.keyCode===d.keymap.DOWN||a.keyCode===d.keymap.ENTER?!1:!0}};return f}]),a.directive("uiGridEdit",["$log","uiGridEditService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(){}}}}}]),a.directive("uiGridCell",["$compile","uiGridConstants","uiGridEditConstants","$log","$parse","uiGridEditService",function(a,b,c,d,e,f){return{priority:-100,restrict:"A",scope:!1,link:function(d,g){function h(){g.on("dblclick",m),g.on("keydown",k),d.col.colDef.enableCellEditOnFocus&&g.find("div").on("focus",j)}function i(){g.off("dblclick",m),g.off("keydown",k),d.col.colDef.enableCellEditOnFocus&&g.find("div").off("focus",j)}function j(a){a.stopPropagation(),m()}function k(a){f.isStartEditKey(a)&&m()}function l(a,b){return!b.isSaving&&(angular.isFunction(a.colDef.cellEditableCondition)?a.colDef.cellEditableCondition(d):a.colDef.cellEditableCondition)}function m(){if(l(d.col,d.row)){r=e(d.row.getQualifiedColField(d.col)),q=r(d),p=d.col.editableCellTemplate,p=p.replace(b.COL_FIELD,d.row.getQualifiedColField(d.col));var f=d.col.colDef.editDropdownFilter?"|"+d.col.colDef.editDropdownFilter:"";switch(p=p.replace(b.CUSTOM_FILTERS,f),d.inputType="text",d.col.colDef.type){case"boolean":d.inputType="checkbox";break;case"number":d.inputType="number";break;case"date":d.inputType="date"}d.editDropdownOptionsArray=d.col.colDef.editDropdownOptionsArray,d.editDropdownIdLabel=d.col.colDef.editDropdownIdLabel?d.col.colDef.editDropdownIdLabel:"id",d.editDropdownValueLabel=d.col.colDef.editDropdownValueLabel?d.col.colDef.editDropdownValueLabel:"value";var h;d.$apply(function(){s=!0,i(),h=a(p)(d.$new());var b=angular.element(g.children()[0]);t=b.hasClass(":focus"),b.addClass("ui-grid-cell-contents-hidden"),g.append(h)});var j=d.$on(b.events.GRID_SCROLL,function(){n(!0),d.grid.api.edit.raise.afterCellEdit(d.row.entity,d.col.colDef,r(d),q),j()}),k=d.$on(c.events.END_CELL_EDIT,function(a,b){n(b),d.grid.api.edit.raise.afterCellEdit(d.row.entity,d.col.colDef,r(d),q),k()}),m=d.$on(c.events.CANCEL_CELL_EDIT,function(){o(),m()});d.$broadcast(c.events.BEGIN_CELL_EDIT),d.grid.api.edit.raise.beginCellEdit(d.row.entity,d.col.colDef)}}function n(a){if(s){var b=angular.element(g.children()[0]);angular.element(g.children()[1]).remove(),b.removeClass("ui-grid-cell-contents-hidden"),a&&t&&b.focus(),t=!1,s=!1,h()}}function o(){s&&(r.assign(d,q),d.$apply(),d.grid.api.edit.raise.cancelCellEdit(d.row.entity,d.col.colDef),n(!0))}if(d.col.colDef.enableCellEdit){var p,q,r,s=!1,t=!1;h()}}}}]),a.directive("uiGridEditor",["uiGridConstants","uiGridEditConstants",function(a,b){return{scope:!0,compile:function(){return{pre:function(){},post:function(c,d){c.$on(b.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].select(),d.on("blur",function(a){c.stopEdit(a)})}),c.deepEdit=!1,c.stopEdit=function(a){c.inputForm&&!c.inputForm.$valid?(a.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT)):c.$emit(b.events.END_CELL_EDIT),c.deepEdit=!1},d.on("click",function(){c.deepEdit=!0}),d.on("keydown",function(d){switch(d.keyCode){case a.keymap.ESC:d.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT);break;case a.keymap.ENTER:c.stopEdit(d);break;case a.keymap.TAB:c.stopEdit(d)}if(c.deepEdit)switch(d.keyCode){case a.keymap.LEFT:d.stopPropagation();break;case a.keymap.RIGHT:d.stopPropagation();break;case a.keymap.UP:d.stopPropagation();break;case a.keymap.DOWN:d.stopPropagation()}return!0})}}}}}]),a.directive("input",["$filter",function(a){function b(a){if("undefined"==typeof a||""===a)return null;var b=a.split("-");if(3!==b.length)return null;var c=parseInt(b[0],10),d=parseInt(b[1],10),e=parseInt(b[2],10);return 1>d||1>c||1>e?null:new Date(c,d-1,e)}return{restrict:"E",require:"?ngModel",link:function(c,d,e,f){2===angular.version.minor&&e.type&&"date"===e.type&&f&&(f.$formatters.push(function(b){return f.$setValidity(null,!b||!isNaN(b.getTime())),a("date")(b,"yyyy-MM-dd")}),f.$parsers.push(function(a){if(a&&a.length>0){var c=b(a);return f.$setValidity(null,c&&!isNaN(c.getTime())),c}return f.$setValidity(null,!0),null}))}}}]),a.directive("uiGridEditDropdown",["uiGridConstants","uiGridEditConstants",function(a,b){return{scope:!0,compile:function(){return{pre:function(){},post:function(c,d){c.$on(b.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].style.width=d[0].parentElement.offsetWidth-1+"px",d.on("blur",function(a){c.stopEdit(a)})}),c.stopEdit=function(){c.$emit(b.events.END_CELL_EDIT)},d.on("keydown",function(d){switch(d.keyCode){case a.keymap.ESC:d.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT);break;case a.keymap.ENTER:c.stopEdit(d);break;case a.keymap.LEFT:c.stopEdit(d);break;case a.keymap.RIGHT:c.stopEdit(d);break;case a.keymap.UP:d.stopPropagation();break;case a.keymap.DOWN:d.stopPropagation();break;case a.keymap.TAB:c.stopEdit(d)}return!0})}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.expandable",["ui.grid"]);a.service("uiGridExpandableService",["gridUtil","$log","$compile",function(){var a={initializeGrid:function(b){var c={events:{expandable:{rowExpandedStateChanged:function(){}}},methods:{expandable:{toggleRowExpansion:function(c){var d=b.getRow(c);null!==d&&a.toggleRowExpansion(b,d)},expandAllRows:function(){a.expandAllRows(b)},collapseAllRows:function(){a.collapseAllRows(b)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods)},toggleRowExpansion:function(a,b){b.isExpanded=!b.isExpanded,b.height=b.isExpanded?b.grid.options.rowHeight+a.options.expandable.expandableRowHeight:b.grid.options.rowHeight,a.api.expandable.raise.rowExpandedStateChanged(b)},expandAllRows:function(b){angular.forEach(b.renderContainers.body.visibleRowCache,function(c){c.isExpanded||a.toggleRowExpansion(b,c)}),b.refresh()},collapseAllRows:function(b){angular.forEach(b.renderContainers.body.visibleRowCache,function(c){c.isExpanded&&a.toggleRowExpansion(b,c)}),b.refresh()}};return a}]),a.directive("uiGridExpandable",["$log","uiGridExpandableService","$templateCache",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,d,e,f){var g={name:"expandableButtons",width:40}; -g.cellTemplate=c.get("ui-grid/expandableRowHeader"),f.grid.addRowHeaderColumn(g),b.initializeGrid(f.grid)},post:function(){}}}}}]),a.directive("uiGridExpandableRow",["uiGridExpandableService","$timeout","$log","$compile","uiGridConstants","gridUtil","$interval",function(a,b,c,d,e,f){return{replace:!1,priority:0,scope:!1,compile:function(){return{pre:function(a,b){f.getTemplate(a.grid.options.expandable.rowExpandableTemplate).then(function(c){var e=d(c)(a);b.append(e),a.row.expandedRendered=!0})},post:function(a){a.$on("$destroy",function(){a.row.expandedRendered=!1})}}}}}]),a.directive("uiGridRow",["$compile","$log","$templateCache",function(){return{priority:-200,scope:!1,compile:function(){return{pre:function(a){a.expandableRow={},a.expandableRow.shouldRenderExpand=function(){var b="body"===a.colContainer.name&&a.row.isExpanded&&(!a.grid.isScrollingVertically||a.row.expandedRendered);return b},a.expandableRow.shouldRenderFiller=function(){var b=a.row.isExpanded&&("body"!==a.colContainer.name||a.grid.isScrollingVertically&&!a.row.expandedRendered);return b}},post:function(){}}}}}]),a.directive("uiGridViewport",["$compile","$log","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a){var b=angular.element(a.children().children()[0]),d=c.get("ui-grid/expandableScrollFiller"),e=c.get("ui-grid/expandableRow");return b.append(e),b.append(d),{pre:function(){},post:function(){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.exporter",["ui.grid"]);a.constant("uiGridExporterConstants",{featureName:"exporter",ALL:"all",VISIBLE:"visible",SELECTED:"selected",CSV_CONTENT:"CSV_CONTENT",LINK_LABEL:"LINK_LABEL",BUTTON_LABEL:"BUTTON_LABEL"}),a.service("uiGridExporterService",["$log","$q","uiGridExporterConstants","gridUtil","$compile",function(a,b,c,d,e){var f={initializeGrid:function(a){a.exporter={},this.defaultGridOptions(a.options);var b={events:{exporter:{}},methods:{exporter:{csvExport:function(b,c,d){f.csvExport(a,b,c,d)},pdfExport:function(b,c){f.pdfExport(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},defaultGridOptions:function(a){a.exporterSuppressButton=a.exporterSuppressButton===!0,a.exporterLinkTemplate=a.exporterLinkTemplate?a.exporterLinkTemplate:"ui-grid/csvLink",a.exporterHeaderTemplate=a.exporterHeaderTemplate?a.exporterHeaderTemplate:"ui-grid/exporterHeader",a.exporterLinkLabel=a.exporterLinkLabel?a.exporterLinkLabel:"Download CSV",a.exporterButtonLabel=a.exporterButtonLabel?a.exporterButtonLabel:"Export",a.exporterPdfDefaultStyle=a.exporterPdfDefaultStyle?a.exporterPdfDefaultStyle:{fontSize:11},a.exporterPdfTableStyle=a.exporterPdfTableStyle?a.exporterPdfTableStyle:{margin:[0,5,0,15]},a.exporterPdfTableHeaderStyle=a.exporterPdfTableHeaderStyle?a.exporterPdfTableHeaderStyle:{bold:!0,fontSize:12,color:"black"},a.exporterPdfOrientation=a.exporterPdfOrientation?a.exporterPdfOrientation:"landscape",a.exporterPdfPageSize=a.exporterPdfPageSize?a.exporterPdfPageSize:"A4",a.exporterPdfMaxGridWidth=a.exporterPdfMaxGridWidth?a.exporterPdfMaxGridWidth:720},showMenu:function(a){a.exporter.$scope.menuItems=[{title:"Export all data as csv",action:function(){this.grid.api.exporter.csvExport(c.ALL,c.ALL)}},{title:"Export visible data as csv",action:function(){this.grid.api.exporter.csvExport(c.VISIBLE,c.VISIBLE)}},{title:"Export selected data as csv",action:function(){this.grid.api.exporter.csvExport(c.SELECTED,c.VISIBLE)}},{title:"Export all data as pdf",action:function(){this.grid.api.exporter.pdfExport(c.ALL,c.ALL)}},{title:"Export visible data as pdf",action:function(){this.grid.api.exporter.pdfExport(c.VISIBLE,c.VISIBLE)}},{title:"Export selected data as pdf",action:function(){this.grid.api.exporter.pdfExport(c.SELECTED,c.VISIBLE)}}],a.exporter.$scope.$broadcast("toggleExporterMenu")},csvExport:function(a,b,c,d){var e=this.getColumnHeaders(a,c),f=this.getData(a,b,c),g=this.formatAsCsv(e,f);this.renderCsvLink(a,g,d)},getColumnHeaders:function(a,b){var d=[];return angular.forEach(a.columns,function(a){(a.visible||b===c.ALL)&&d.push({name:a.field,displayName:a.displayName,width:a.drawnWidth?a.drawnWidth:a.width,align:"number"===a.colDef.type?"right":"left"})}),d},getData:function(b,d,e){var f,g=[];switch(d){case c.ALL:f=b.rows;break;case c.VISIBLE:f=b.getVisibleRows();break;case c.SELECTED:b.api.selection?f=b.api.selection.getSelectedGridRows():a.error("selection feature must be enabled to allow selected rows to be exported")}return c.ALL?(angular.forEach(f,function(a){var d=[];angular.forEach(b.columns,function(f){(f.visible||e===c.ALL)&&d.push(b.getCellValue(a,f))}),g.push(d)}),g):void 0},formatAsCsv:function(a,b){var c=this,d=a.map(function(a){return a.displayName}),e=c.formatRowAsCsv(this)(d)+"\n";return e+=b.map(this.formatRowAsCsv(this)).join("\n")},formatRowAsCsv:function(a){return function(b){return b.map(a.formatFieldAsCsv).join(",")}},formatFieldAsCsv:function(a){return null==a?"":"number"==typeof a?a:"boolean"==typeof a?a?"TRUE":"FALSE":"string"==typeof a?'"'+a.replace(/"/g,'""')+'"':JSON.stringify(a)},renderCsvLink:function(a,b,f){var g=f?f:angular.element(a.exporter.gridElm[0].querySelectorAll(".ui-grid-exporter-csv-link"));angular.element(g[0].querySelectorAll(".ui-grid-exporter-csv-link-span"))&&angular.element(g[0].querySelectorAll(".ui-grid-exporter-csv-link-span")).remove();d.getTemplate(a.options.exporterLinkTemplate).then(function(d){d=d.replace(c.LINK_LABEL,a.options.exporterLinkLabel),d=d.replace(c.CSV_CONTENT,encodeURIComponent(b));var f=angular.element(d),h=e(f)(a.exporter.$scope);g.append(h)})},pdfExport:function(a,b,c){var d=this.getColumnHeaders(a,c),e=this.getData(a,b,c),f=this.prepareAsPdf(a,d,e);pdfMake.createPdf(f).open()},prepareAsPdf:function(a,b,c){var d=this.calculatePdfHeaderWidths(a,b),e=b.map(function(a){return{text:a.displayName,style:"tableHeader"}}),f=c.map(this.formatRowAsPdf(this)),g=[e].concat(f),h={pageOrientation:a.options.exporterPdfOrientation,content:[{style:"tableStyle",table:{headerRows:1,widths:d,body:g}}],styles:{tableStyle:a.options.exporterPdfTableStyle,tableHeader:a.options.exporterPdfTableHeaderStyle},defaultStyle:a.options.exporterPdfDefaultStyle};return a.options.exporterPdfLayout&&(h.layout=a.options.exporterPdfLayout),h},calculatePdfHeaderWidths:function(a,b){var c=0;angular.forEach(b,function(a){"number"==typeof a.width&&(c+=a.width)});var d=0;angular.forEach(b,function(a){if("*"===a.width&&(d+=100),"string"==typeof a.width&&a.width.match(/(\d)*%/)){var b=parseInt(a.width.match(/(\d)*%/)[0]);a.width=c*b/100,d+=a.width}});var e=c+d;return b.map(function(b){return"*"===b.width?b.width:b.width*a.options.exporterPdfMaxGridWidth/e})},formatRowAsPdf:function(a){return function(b){return b.map(a.formatFieldAsPdfString)}},formatFieldAsPdfString:function(a){return null==a?"":"number"==typeof a?a.toString():"boolean"==typeof a?a?"TRUE":"FALSE":"string"==typeof a?a.replace(/"/g,'""'):JSON.stringify(a).replace(/^"/,"").replace(/"$/,"")}};return f}]),a.directive("uiGridExporter",["$log","uiGridExporterConstants","uiGridExporterService","gridUtil","$compile",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,b,d,e){c.initializeGrid(e.grid),e.grid.exporter.$scope=a},post:function(){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.infiniteScroll",["ui.grid"]);a.service("uiGridInfiniteScrollService",["gridUtil","$log","$compile","$timeout",function(){var a={initializeGrid:function(a){var b={events:{infiniteScroll:{needLoadMoreData:function(){}}},methods:{infiniteScroll:{dataLoaded:function(){a.options.loadTimout=!1}}}};a.options.loadTimout=!1,a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},loadData:function(a){a.api.infiniteScroll.raise.needLoadMoreData(),a.options.loadTimout=!0},checkScroll:function(a,b){var c=a.options.infiniteScrollPercentage?a.options.infiniteScrollPercentage:20;return!a.options.loadTimout&&c>=b?(this.loadData(a),!0):!1}};return a}]),a.directive("uiGridInfiniteScroll",["$log","uiGridInfiniteScrollService",function(a,b){return{priority:-200,scope:!1,require:"^uiGrid",compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(){}}}}}]),a.directive("uiGridViewport",["$compile","$log","uiGridInfiniteScrollService","uiGridConstants",function(a,b,c,d){return{priority:-200,scope:!1,link:function(a){a.$on(d.events.GRID_SCROLL,function(b,d){var e=100-100*d.y.percentage;c.checkScroll(a.grid,e)})}}}])}(),function(){"use strict";var a=angular.module("ui.grid.pinning",["ui.grid"]);a.config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("en",{pinning:{pinLeft:"Pin Left",pinRight:"Pin Right",unpin:"Unpin"}}),a}])}]),a.service("uiGridPinningService",["$log","GridRenderContainer","i18nService",function(a,b,c){var d={initializeGrid:function(a){d.defaultGridOptions(a.options),a.registerColumnBuilder(d.pinningColumnBuilder)},defaultGridOptions:function(a){a.enablePinning=a.enablePinning!==!1},pinningColumnBuilder:function(a,b,d){if(a.enablePinning=void 0===a.enablePinning?d.enablePinning:a.enablePinning,a.pinnedLeft?(b.renderContainer="left",b.grid.createLeftContainer()):a.pinnedRight&&(b.renderContainer="right",b.grid.createRightContainer()),a.enablePinning){var e={title:c.get().pinning.pinLeft,icon:"ui-grid-icon-left-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"left"!==this.context.col.renderContainer},action:function(){this.context.col.renderContainer="left",this.context.col.grid.createLeftContainer(),b.grid.refresh().then(function(){b.grid.refresh()})}},f={title:c.get().pinning.pinRight,icon:"ui-grid-icon-right-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"right"!==this.context.col.renderContainer},action:function(){this.context.col.renderContainer="right",this.context.col.grid.createRightContainer(),b.grid.refresh().then(function(){b.grid.refresh()})}},g={title:c.get().pinning.unpin,icon:"ui-grid-icon-cancel",shown:function(){return"undefined"!=typeof this.context.col.renderContainer&&null!==this.context.col.renderContainer&&"body"!==this.context.col.renderContainer},action:function(){this.context.col.renderContainer=null,b.grid.refresh().then(function(){b.grid.refresh()})}};b.menuItems.push(e),b.menuItems.push(f),b.menuItems.push(g)}}};return d}]),a.directive("uiGridPinning",["$log","uiGridPinningService",function(a,b){return{require:"uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.resizeColumns",["ui.grid"]);a.constant("columnBounds",{minWidth:35}),a.service("uiGridResizeColumnsService",["$log","$q",function(a,b){var c={defaultGridOptions:function(a){a.enableColumnResizing=a.enableColumnResizing!==!1,a.enableColumnResize===!1&&(a.enableColumnResizing=!1)},colResizerColumnBuilder:function(a,c,d){var e=[];return a.enableColumnResizing=void 0===a.enableColumnResizing?d.enableColumnResizing:a.enableColumnResizing,a.enableColumnResize===!1&&(a.enableColumnResizing=!1),b.all(e)}};return c}]),a.directive("uiGridResizeColumns",["$log","uiGridResizeColumnsService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.defaultGridOptions(e.grid.options),e.grid.registerColumnBuilder(b.colResizerColumnBuilder)},post:function(){}}}}}]),a.directive("uiGridHeaderCell",["$log","$templateCache","$compile","$q",function(a,b,c,d){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,e,f,g){if(g.grid.options.enableColumnResizing){var h=d.defer();f.$observe("renderIndex",function(b){a.renderIndex=a.$eval(b),h.resolve()}),h.promise.then(function(){var d=b.get("ui-grid/columnResizer"),f=angular.element(d).clone(),g=angular.element(d).clone();f.attr("position","left"),g.attr("position","right");var h=a.col,i=h.getRenderContainer(),j=i.renderedColumns[a.renderIndex-1];j&&0!==a.col.index&&j.colDef.enableColumnResizing!==!1&&e.prepend(f),a.col.colDef.enableColumnResizing!==!1&&e.append(g),c(f)(a),c(g)(a)})}}}}}}]),a.directive("uiGridColumnResizer",["$log","$document","gridUtil","uiGridConstants","columnBounds",function(a,b,c,d,e){var f=angular.element('
    '),g={priority:0,scope:{col:"=",position:"@",renderIndex:"="},require:"?^uiGrid",link:function(a,g,h,i){function j(a){var b=a.getRenderContainer();b.visibleColumnCache.forEach(function(b){if(b.index!==a.index){var c=b.colDef;(!c.width||angular.isString(c.width)&&(-1!==c.width.indexOf("*")||-1!==c.width.indexOf("%")))&&(c.width=b.drawnWidth)}})}function k(){i.grid.buildColumns().then(function(){i.grid.refreshCanvas(!0)})}function l(b){b.originalEvent&&(b=b.originalEvent),b.preventDefault(),o=b.clientX-p,0>o?o=0:o>i.grid.gridWidth&&(o=i.grid.gridWidth);var c,g=a.col,h=g.getRenderContainer();if("left"===a.position?(g=h.renderedColumns[a.renderIndex-1],c=a.col):"right"===a.position&&(c=h.renderedColumns[a.renderIndex+1]),g.colDef.enableColumnResizing!==!1){i.grid.element.hasClass("column-resizing")||i.grid.element.addClass("column-resizing");var j=o-n,k=g.drawnWidth+j;g.colDef.minWidth&&kg.colDef.maxWidth&&(o+=g.colDef.maxWidth-k),f.css({left:o+"px"}),i.fireEvent(d.events.ITEM_DRAGGING)}}function m(c){c.originalEvent&&(c=c.originalEvent),c.preventDefault(),i.grid.element.removeClass("column-resizing"),f.remove(),o=c.clientX-p;var d=o-n;if(0===d)return b.off("mouseup",m),void b.off("mousemove",l);var g,h=a.col,q=h.getRenderContainer();if("left"===a.position?(h=q.renderedColumns[a.renderIndex-1],g=a.col):"right"===a.position&&(g=q.renderedColumns[a.renderIndex+1]),h.colDef.enableColumnResizing!==!1){var r=h.drawnWidth+d;h.colDef.minWidth&&rh.colDef.maxWidth&&(r=h.colDef.maxWidth),h.colDef.width=r,j(h),k(d),b.off("mouseup",m),b.off("mousemove",l)}}var n=0,o=0,p=0;"left"===a.position?g.addClass("left"):"right"===a.position&&g.addClass("right"),g.on("mousedown",function(a){a.originalEvent&&(a=a.originalEvent),a.stopPropagation(),p=i.grid.element[0].getBoundingClientRect().left,n=a.clientX-p,i.grid.element.append(f),f.css({left:n}),b.on("mouseup",m),b.on("mousemove",l)}),g.on("dblclick",function(b){b.stopPropagation();var f,h,i=a.col,l=i.getRenderContainer();"left"===a.position?(i=l.renderedColumns[a.renderIndex-1],f=a.col,h=1):"right"===a.position&&(f=l.renderedColumns[a.renderIndex+1],f=l.renderedColumns[a.renderIndex+1],h=-1);var m=0,n=0,o=c.closestElm(g,".ui-grid-render-container"),p=o.querySelectorAll("."+d.COL_CLASS_PREFIX+i.index+" .ui-grid-cell-contents");Array.prototype.forEach.call(p,function(a){var b;angular.element(a).parent().hasClass("ui-grid-header-cell")&&(b=angular.element(a).parent()[0].querySelectorAll(".ui-grid-column-menu-button")),c.fakeElement(a,{},function(a){var d=angular.element(a);d.attr("style","float: left");var e=c.elementWidth(d);if(b){var f=c.elementWidth(b);e+=f}e>m&&(m=e,n=m-e)})}),i.colDef.minWidth&&mi.colDef.maxWidth&&(m=i.colDef.maxWidth),i.colDef.width=m,j(i),k(n)}),g.on("$destroy",function(){g.off("mousedown"),g.off("dblclick"),b.off("mousemove",l),b.off("mouseup",m)})}};return g}])}(),function(){"use strict";var a=angular.module("ui.grid.rowEdit",["ui.grid","ui.grid.edit","ui.grid.cellNav"]);a.constant("uiGridRowEditConstants",{}),a.service("uiGridRowEditService",["$interval","$log","$q","uiGridConstants","uiGridRowEditConstants","gridUtil",function(a,b,c){var d={initializeGrid:function(a,b){var c={events:{rowEdit:{saveRow:function(){}}},methods:{rowEdit:{setSavePromise:function(a,b,c){d.setSavePromise(a,b,c)},getDirtyRows:function(a){return a.rowEditDirtyRows},getErrorRows:function(a){return a.rowEditErrorRows},flushDirtyRows:function(a){return d.flushDirtyRows(a)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.api.core.on.renderingComplete(a,function(){b.api.edit.on.afterCellEdit(a,d.endEditCell),b.api.edit.on.beginCellEdit(a,d.beginEditCell),b.api.edit.on.cancelCellEdit(a,d.cancelEditCell),b.api.cellNav&&b.api.cellNav.on.navigate(a,d.navigate)})},defaultGridOptions:function(){},saveRow:function(a,c){var d=this;return function(){c.isSaving=!0;var e=a.api.rowEdit.raise.saveRow(c.entity);return c.rowEditSavePromise?c.rowEditSavePromise.then(d.processSuccessPromise(a,c),d.processErrorPromise(a,c)):b.log("A promise was not returned when saveRow event was raised, either nobody is listening to event, or event handler did not return a promise"),e}},setSavePromise:function(a,b,c){var d=a.getRow(b);d.rowEditSavePromise=c},processSuccessPromise:function(a,b){var c=this;return function(){delete b.isSaving,delete b.isDirty,delete b.isError,delete b.rowEditSaveTimer,c.removeRow(a.rowEditErrorRows,b),c.removeRow(a.rowEditDirtyRows,b)}},processErrorPromise:function(a,b){return function(){delete b.isSaving,delete b.rowEditSaveTimer,b.isError=!0,a.rowEditErrorRows||(a.rowEditErrorRows=[]),a.rowEditErrorRows.push(b)}},removeRow:function(a,b){angular.forEach(a,function(c,d){c.uid===b.uid&&a.splice(d,1)})},flushDirtyRows:function(a){var b=[];return angular.forEach(a.rowEditDirtyRows,function(c){d.saveRow(a,c)(),b.push(c.rowEditSavePromise)}),c.all(b)},endEditCell:function(a,c,e,f){var g=this.grid,h=g.getRow(a);return h?void((e!==f||h.isDirty)&&(g.rowEditDirtyRows||(g.rowEditDirtyRows=[]),h.isDirty||(h.isDirty=!0,g.rowEditDirtyRows.push(h)),delete h.isError,d.considerSetTimer(g,h))):void b.log("Unable to find rowEntity in grid data, dirty flag cannot be set")},beginEditCell:function(a){var c=this.grid,e=c.getRow(a);return e?void d.cancelTimer(c,e):void b.log("Unable to find rowEntity in grid data, timer cannot be cancelled")},cancelEditCell:function(a){var c=this.grid,e=c.getRow(a);return e?void d.considerSetTimer(c,e):void b.log("Unable to find rowEntity in grid data, timer cannot be set")},navigate:function(a,b){var c=this.grid;a.row.rowEditSaveTimer&&d.cancelTimer(c,a.row),b&&b.row&&b.row!==a.row&&d.considerSetTimer(c,b.row)},considerSetTimer:function(b,c){if(d.cancelTimer(b,c),c.isDirty&&!c.isSaving){var e=b.options.rowEditWaitInterval?b.options.rowEditWaitInterval:2e3;c.rowEditSaveTimer=a(d.saveRow(b,c),e,1)}},cancelTimer:function(b,c){c.rowEditSaveTimer&&!c.isSaving&&(a.cancel(c.rowEditSaveTimer),delete c.rowEditSaveTimer)}};return d}]),a.directive("uiGridRowEdit",["$log","uiGridRowEditService","uiGridEditConstants",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(){}}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","$log","$parse",function(){return{priority:-200,scope:!1,compile:function(a){var b=angular.element(a.children().children()[0]);return b.attr("ng-class","{'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}"),{pre:function(){},post:function(){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.selection",["ui.grid"]);a.constant("uiGridSelectionConstants",{featureName:"selection"}),a.service("uiGridSelectionService",["$log","$q","$templateCache","uiGridSelectionConstants","gridUtil",function(){var a={initializeGrid:function(b){b.selection={},b.selection.lastSelectedRow=null,a.defaultGridOptions(b.options);var c={events:{selection:{rowSelectionChanged:function(){}}},methods:{selection:{toggleRowSelection:function(c){var d=b.getRow(c);null!==d&&a.toggleRowSelection(b,d,b.options.multiSelect)},selectRow:function(c){var d=b.getRow(c);null===d||d.isSelected||a.toggleRowSelection(b,d,b.options.multiSelect)},unSelectRow:function(c){var d=b.getRow(c);null!==d&&d.isSelected&&a.toggleRowSelection(b,d,b.options.multiSelect)},selectAllRows:function(){b.options.multiSelect!==!1&&b.rows.forEach(function(a){a.isSelected=!0})},selectAllVisibleRows:function(){b.options.multiSelect!==!1&&b.rows.forEach(function(a){a.isSelected=a.visible?!0:!1})},clearSelectedRows:function(){a.clearSelectedRows(b)},getSelectedRows:function(){return a.getSelectedRows(b).map(function(a){return a.entity})},getSelectedGridRows:function(){return a.getSelectedRows(b)},setMultiSelect:function(a){b.options.multiSelect=a}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableRowSelection=a.enableRowSelection!==!1,a.multiSelect=a.multiSelect!==!1,a.enableRowHeaderSelection=a.enableRowHeaderSelection!==!1},toggleRowSelection:function(b,c,d){var e=c.isSelected;d||e||a.clearSelectedRows(b),c.isSelected=!e,c.isSelected===!0&&(b.selection.lastSelectedRow=c),b.api.selection.raise.rowSelectionChanged(c)},shiftSelect:function(b,c,d){if(d){var e=a.getSelectedRows(b),f=e.length>0?b.renderContainers.body.visibleRowCache.indexOf(b.selection.lastSelectedRow):0,g=b.renderContainers.body.visibleRowCache.indexOf(c);if(f>g){var h=f;f=g,g=h}for(var i=f;g>=i;i++){var j=b.renderContainers.body.visibleRowCache[i];j&&(j.isSelected=!0,b.selection.lastSelectedRow=j,b.api.selection.raise.rowSelectionChanged(j))}}},getSelectedRows:function(a){return a.rows.filter(function(a){return a.isSelected})},clearSelectedRows:function(b){a.getSelectedRows(b).forEach(function(a){a.isSelected=!1,b.api.selection.raise.rowSelectionChanged(a)})}};return a}]),a.directive("uiGridSelection",["$log","uiGridSelectionConstants","uiGridSelectionService","$templateCache",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,b,d,e){if(c.initializeGrid(e.grid),e.grid.options.enableRowHeaderSelection){var f="ui-grid/selectionRowHeader",g={name:"selectionRowHeaderCol",displayName:"",width:30,cellTemplate:f};e.grid.addRowHeaderColumn(g)}},post:function(){}}}}}]),a.directive("uiGridSelectionRowHeaderButtons",["$log","$templateCache","uiGridSelectionService",function(a,b,c){return{replace:!0,restrict:"E",template:b.get("ui-grid/selectionRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,b,d,e){var f=e.grid;a.selectButtonClick=function(a,b){b.shiftKey?c.shiftSelect(f,a,f.options.multiSelect):c.toggleRowSelection(f,a,f.options.multiSelect)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","uiGridSelectionConstants","$log","$parse","uiGridSelectionService",function(){return{priority:-200,scope:!1,compile:function(a){var b=angular.element(a.children().children()[0]);return b.attr("ng-class","{'ui-grid-row-selected': row.isSelected}"),{pre:function(){},post:function(){}}}}}]),a.directive("uiGridCell",["$compile","uiGridConstants","uiGridSelectionConstants","$log","$parse","uiGridSelectionService",function(a,b,c,d,e,f){return{priority:-200,restrict:"A",scope:!1,link:function(a,b){function c(){b.on("click",function(b){b.shiftKey?f.shiftSelect(a.grid,a.row,a.grid.options.multiSelect):f.toggleRowSelection(a.grid,a.row,a.grid.options.multiSelect),a.$apply()})}a.grid.options.enableRowSelection&&!a.grid.options.enableRowHeaderSelection&&(b.addClass("ui-grid-disable-selection"),c())}}}])}(),angular.module("ui.grid").run(["$templateCache",function(a){"use strict";a.put("ui-grid/ui-grid-footer",''),a.put("ui-grid/ui-grid-group-panel",'
    • {{group.displayName}} x
    '),a.put("ui-grid/ui-grid-header",'
    '),a.put("ui-grid/ui-grid-no-header",'
    '),a.put("ui-grid/ui-grid-row",'
    '),a.put("ui-grid/ui-grid",'
    '),a.put("ui-grid/uiGridCell",'
    {{COL_FIELD CUSTOM_FILTERS}}
    '),a.put("ui-grid/uiGridColumnFilter",'
  •  
     
  • '),a.put("ui-grid/uiGridColumnMenu",'
    '),a.put("ui-grid/uiGridFooterCell",'
    {{ col.getAggregationValue() }}
    '),a.put("ui-grid/uiGridHeaderCell",'
     
    {{ col.displayName CUSTOM_FILTERS }}  
     
     
    '),a.put("ui-grid/uiGridMenu",'
    '),a.put("ui-grid/uiGridMenuItem",'
  • {{ title }}
  • '),a.put("ui-grid/uiGridRenderContainer",'
    '),a.put("ui-grid/uiGridViewport",'
    '),a.put("ui-grid/cellEditor",'
    '),a.put("ui-grid/dropdownEditor",'
    '),a.put("ui-grid/expandableRow",'
    '),a.put("ui-grid/expandableRowHeader",'
    '),a.put("ui-grid/expandableScrollFiller",'
    '),a.put("ui-grid/csvLink",'LINK_LABEL'),a.put("ui-grid/columnResizer",'
    '),a.put("ui-grid/selectionRowHeader",'
    '),a.put("ui-grid/selectionRowHeaderButtons",'
     
    ') -}]); \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/designer/lib/ui-grid-unstable.js b/src/main/resources/META-INF/resources/designer/lib/ui-grid-unstable.js deleted file mode 100644 index 6bec9360..00000000 --- a/src/main/resources/META-INF/resources/designer/lib/ui-grid-unstable.js +++ /dev/null @@ -1,18014 +0,0 @@ -/*! ui-grid - v3.0.0-rc.16-234dd76 - 2014-11-22 -* Copyright (c) 2014 ; License: MIT */ -(function () { - 'use strict'; - angular.module('ui.grid.i18n', []); - angular.module('ui.grid', ['ui.grid.i18n']); -})(); -(function () { - 'use strict'; - angular.module('ui.grid').constant('uiGridConstants', { - LOG_DEBUG_MESSAGES: true, - LOG_WARN_MESSAGES: true, - LOG_ERROR_MESSAGES: true, - CUSTOM_FILTERS: /CUSTOM_FILTERS/g, - COL_FIELD: /COL_FIELD/g, - MODEL_COL_FIELD: /MODEL_COL_FIELD/g, - DISPLAY_CELL_TEMPLATE: /DISPLAY_CELL_TEMPLATE/g, - TEMPLATE_REGEXP: /<.+>/, - FUNC_REGEXP: /(\([^)]*\))?$/, - DOT_REGEXP: /\./g, - APOS_REGEXP: /'/g, - BRACKET_REGEXP: /^(.*)((?:\s*\[\s*\d+\s*\]\s*)|(?:\s*\[\s*"(?:[^"\\]|\\.)*"\s*\]\s*)|(?:\s*\[\s*'(?:[^'\\]|\\.)*'\s*\]\s*))(.*)$/, - COL_CLASS_PREFIX: 'ui-grid-col', - events: { - GRID_SCROLL: 'uiGridScroll', - COLUMN_MENU_SHOWN: 'uiGridColMenuShown', - ITEM_DRAGGING: 'uiGridItemDragStart' // For any item being dragged - }, - // copied from http://www.lsauer.com/2011/08/javascript-keymap-keycodes-in-json.html - keymap: { - TAB: 9, - STRG: 17, - CTRL: 17, - CTRLRIGHT: 18, - CTRLR: 18, - SHIFT: 16, - RETURN: 13, - ENTER: 13, - BACKSPACE: 8, - BCKSP: 8, - ALT: 18, - ALTR: 17, - ALTRIGHT: 17, - SPACE: 32, - WIN: 91, - MAC: 91, - FN: null, - UP: 38, - DOWN: 40, - LEFT: 37, - RIGHT: 39, - ESC: 27, - DEL: 46, - F1: 112, - F2: 113, - F3: 114, - F4: 115, - F5: 116, - F6: 117, - F7: 118, - F8: 119, - F9: 120, - F10: 121, - F11: 122, - F12: 123 - }, - ASC: 'asc', - DESC: 'desc', - filter: { - STARTS_WITH: 2, - ENDS_WITH: 4, - EXACT: 8, - CONTAINS: 16, - GREATER_THAN: 32, - GREATER_THAN_OR_EQUAL: 64, - LESS_THAN: 128, - LESS_THAN_OR_EQUAL: 256, - NOT_EQUAL: 512 - }, - - aggregationTypes: { - sum: 2, - count: 4, - avg: 8, - min: 16, - max: 32 - }, - - // TODO(c0bra): Create full list of these somehow. NOTE: do any allow a space before or after them? - CURRENCY_SYMBOLS: ['ƒ', '$', '£', '$', '¤', '¥', '៛', '₩', '₱', '฿', '₫'], - - dataChange: { - ALL: 'all', - EDIT: 'edit', - ROW: 'row', - COLUMN: 'column' - }, - scrollbars: { - NEVER: 0, - ALWAYS: 1, - WHEN_NEEDED: 2 - } - }); - -})(); -angular.module('ui.grid').directive('uiGridCell', ['$compile', '$parse', 'gridUtil', 'uiGridConstants', function ($compile, $parse, gridUtil, uiGridConstants) { - var uiGridCell = { - priority: 0, - scope: false, - require: '?^uiGrid', - compile: function() { - return { - pre: function($scope, $elm, $attrs, uiGridCtrl) { - function compileTemplate() { - var compiledElementFn = $scope.col.compiledElementFn; - - compiledElementFn($scope, function(clonedElement, scope) { - $elm.append(clonedElement); - }); - } - - // If the grid controller is present, use it to get the compiled cell template function - if (uiGridCtrl && $scope.col.compiledElementFn) { - compileTemplate(); - } - // No controller, compile the element manually (for unit tests) - else { - if ( uiGridCtrl && !$scope.col.compiledElementFn ){ - // gridUtil.logError('Render has been called before precompile. Please log a ui-grid issue'); - - $scope.col.getCompiledElementFn() - .then(function (compiledElementFn) { - compiledElementFn($scope, function(clonedElement, scope) { - $elm.append(clonedElement); - }); - }); - } - else { - var html = $scope.col.cellTemplate - .replace(uiGridConstants.MODEL_COL_FIELD, 'row.entity.' + gridUtil.preEval($scope.col.field)) - .replace(uiGridConstants.COL_FIELD, 'grid.getCellValue(row, col)'); - - var cellElement = $compile(html)($scope); - $elm.append(cellElement); - } - } - }, - post: function($scope, $elm, $attrs, uiGridCtrl) { - $elm.addClass($scope.col.getColClass(false)); - - var classAdded; - var updateClass = function( grid ){ - var contents = $elm; - if ( classAdded ){ - contents.removeClass( classAdded ); - classAdded = null; - } - - if (angular.isFunction($scope.col.cellClass)) { - classAdded = $scope.col.cellClass($scope.grid, $scope.row, $scope.col, $scope.rowRenderIndex, $scope.colRenderIndex); - } - else { - classAdded = $scope.col.cellClass; - } - contents.addClass(classAdded); - }; - - if ($scope.col.cellClass) { - updateClass(); - } - - // Register a data change watch that would get triggered whenever someone edits a cell or modifies column defs - var watchUid = $scope.grid.registerDataChangeCallback( updateClass, [uiGridConstants.dataChange.COLUMN, uiGridConstants.dataChange.EDIT]); - - var deregisterFunction = function() { - $scope.grid.deregisterDataChangeCallback( watchUid ); - }; - - $scope.$on( '$destroy', deregisterFunction ); - } - }; - } - }; - - return uiGridCell; -}]); - - -(function(){ - -angular.module('ui.grid') -.service('uiGridColumnMenuService', [ 'i18nService', 'uiGridConstants', 'gridUtil', -function ( i18nService, uiGridConstants, gridUtil ) { -/** - * @ngdoc service - * @name ui.grid.service:uiGridColumnMenuService - * - * @description Services for working with column menus, factored out - * to make the code easier to understand - */ - - var service = { - /** - * @ngdoc method - * @methodOf ui.grid.service:uiGridColumnMenuService - * @name initialize - * @description Sets defaults, puts a reference to the $scope on - * the uiGridController - * @param {$scope} $scope the $scope from the uiGridColumnMenu - * @param {controller} uiGridCtrl the uiGridController for the grid - * we're on - * - */ - initialize: function( $scope, uiGridCtrl ){ - $scope.grid = uiGridCtrl.grid; - - // Store a reference to this link/controller in the main uiGrid controller - // to allow showMenu later - uiGridCtrl.columnMenuScope = $scope; - - // Save whether we're shown or not so the columns can check - $scope.menuShown = false; - }, - - - /** - * @ngdoc method - * @methodOf ui.grid.service:uiGridColumnMenuService - * @name setColMenuItemWatch - * @description Setup a watch on $scope.col.menuItems, and update - * menuItems based on this. $scope.col needs to be set by the column - * before calling the menu. - * @param {$scope} $scope the $scope from the uiGridColumnMenu - * @param {controller} uiGridCtrl the uiGridController for the grid - * we're on - * - */ - setColMenuItemWatch: function ( $scope ){ - var deregFunction = $scope.$watch('col.menuItems', function (n, o) { - if (typeof(n) !== 'undefined' && n && angular.isArray(n)) { - n.forEach(function (item) { - if (typeof(item.context) === 'undefined' || !item.context) { - item.context = {}; - } - item.context.col = $scope.col; - }); - - $scope.menuItems = $scope.defaultMenuItems.concat(n); - } - else { - $scope.menuItems = $scope.defaultMenuItems; - } - }); - - $scope.$on( '$destroy', deregFunction ); - }, - - - /** - * @ngdoc boolean - * @name enableSorting - * @propertyOf ui.grid.class:GridOptions.columnDef - * @description (optional) True by default. When enabled, this setting adds sort - * widgets to the column header, allowing sorting of the data in the individual column. - */ - /** - * @ngdoc method - * @methodOf ui.grid.service:uiGridColumnMenuService - * @name sortable - * @description determines whether this column is sortable - * @param {$scope} $scope the $scope from the uiGridColumnMenu - * - */ - sortable: function( $scope ) { - if ( $scope.grid.options.enableSorting && typeof($scope.col) !== 'undefined' && $scope.col && $scope.col.enableSorting) { - return true; - } - else { - return false; - } - }, - - /** - * @ngdoc method - * @methodOf ui.grid.service:uiGridColumnMenuService - * @name isActiveSort - * @description determines whether the requested sort direction is current active, to - * allow highlighting in the menu - * @param {$scope} $scope the $scope from the uiGridColumnMenu - * @param {string} direction the direction that we'd have selected for us to be active - * - */ - isActiveSort: function( $scope, direction ){ - return (typeof($scope.col) !== 'undefined' && typeof($scope.col.sort) !== 'undefined' && - typeof($scope.col.sort.direction) !== 'undefined' && $scope.col.sort.direction === direction); - - }, - - /** - * @ngdoc boolean - * @name suppressRemoveSort - * @propertyOf ui.grid.class:GridOptions.columnDef - * @description (optional) False by default. When enabled, this setting hides the removeSort option - * in the menu. - */ - /** - * @ngdoc method - * @methodOf ui.grid.service:uiGridColumnMenuService - * @name suppressRemoveSort - * @description determines whether we should suppress the removeSort option - * @param {$scope} $scope the $scope from the uiGridColumnMenu - * - */ - suppressRemoveSort: function( $scope ) { - if ($scope.col && $scope.col.colDef && $scope.col.colDef.suppressRemoveSort) { - return true; - } - else { - return false; - } - }, - - - /** - * @ngdoc boolean - * @name enableHiding - * @propertyOf ui.grid.class:GridOptions.columnDef - * @description (optional) True by default. When set to false, this setting prevents a user from hiding the column - * using the column menu or the grid menu. - */ - /** - * @ngdoc method - * @methodOf ui.grid.service:uiGridColumnMenuService - * @name hideable - * @description determines whether a column can be hidden, by checking the enableHiding columnDef option - * @param {$scope} $scope the $scope from the uiGridColumnMenu - * - */ - hideable: function( $scope ) { - if (typeof($scope.col) !== 'undefined' && $scope.col && $scope.col.colDef && $scope.col.colDef.enableHiding === false ) { - return false; - } - else { - return true; - } - }, - - - /** - * @ngdoc method - * @methodOf ui.grid.service:uiGridColumnMenuService - * @name getDefaultMenuItems - * @description returns the default menu items for a column menu - * @param {$scope} $scope the $scope from the uiGridColumnMenu - * - */ - getDefaultMenuItems: function( $scope ){ - return [ - { - title: i18nService.getSafeText('sort.ascending'), - icon: 'ui-grid-icon-sort-alt-up', - action: function($event) { - $event.stopPropagation(); - $scope.sortColumn($event, uiGridConstants.ASC); - }, - shown: function () { - return service.sortable( $scope ); - }, - active: function() { - return service.isActiveSort( $scope, uiGridConstants.ASC); - } - }, - { - title: i18nService.getSafeText('sort.descending'), - icon: 'ui-grid-icon-sort-alt-down', - action: function($event) { - $event.stopPropagation(); - $scope.sortColumn($event, uiGridConstants.DESC); - }, - shown: function() { - return service.sortable( $scope ); - }, - active: function() { - return service.isActiveSort( $scope, uiGridConstants.DESC); - } - }, - { - title: i18nService.getSafeText('sort.remove'), - icon: 'ui-grid-icon-cancel', - action: function ($event) { - $event.stopPropagation(); - $scope.unsortColumn(); - }, - shown: function() { - return service.sortable( $scope ) && - typeof($scope.col) !== 'undefined' && (typeof($scope.col.sort) !== 'undefined' && - typeof($scope.col.sort.direction) !== 'undefined') && $scope.col.sort.direction !== null && - !service.suppressRemoveSort( $scope ); - } - }, - { - title: i18nService.getSafeText('column.hide'), - icon: 'ui-grid-icon-cancel', - shown: function() { - return service.hideable( $scope ); - }, - action: function ($event) { - $event.stopPropagation(); - $scope.hideColumn(); - } - } - ]; - }, - - - /** - * @ngdoc method - * @methodOf ui.grid.service:uiGridColumnMenuService - * @name getColumnElementPosition - * @description gets the position information needed to place the column - * menu below the column header - * @param {$scope} $scope the $scope from the uiGridColumnMenu - * @param {GridCol} column the column we want to position below - * @param {element} $columnElement the column element we want to position below - * @returns {hash} containing left, top, offset, height, width - * - */ - getColumnElementPosition: function( $scope, column, $columnElement ){ - var positionData = {}; - positionData.left = $columnElement[0].offsetLeft; - positionData.top = $columnElement[0].offsetTop; - - // Get the grid scrollLeft - positionData.offset = 0; - if (column.grid.options.offsetLeft) { - positionData.offset = column.grid.options.offsetLeft; - } - - positionData.height = gridUtil.elementHeight($columnElement, true); - positionData.width = gridUtil.elementWidth($columnElement, true); - - return positionData; - }, - - - /** - * @ngdoc method - * @methodOf ui.grid.service:uiGridColumnMenuService - * @name repositionMenu - * @description Reposition the menu below the new column. If the menu has no child nodes - * (i.e. it's not currently visible) then we guess it's width at 100, we'll be called again - * later to fix it - * @param {$scope} $scope the $scope from the uiGridColumnMenu - * @param {GridCol} column the column we want to position below - * @param {hash} positionData a hash containing left, top, offset, height, width - * @param {element} $elm the column menu element that we want to reposition - * @param {element} $columnElement the column element that we want to reposition underneath - * - */ - repositionMenu: function( $scope, column, positionData, $elm, $columnElement ) { - var menu = $elm[0].querySelectorAll('.ui-grid-menu'); - var containerId = column.renderContainer ? column.renderContainer : 'body'; - var renderContainer = column.grid.renderContainers[containerId]; - - // It's possible that the render container of the column we're attaching to is - // offset from the grid (i.e. pinned containers), we need to get the difference in the offsetLeft - // between the render container and the grid - var renderContainerElm = gridUtil.closestElm($columnElement, '.ui-grid-render-container'); - var renderContainerOffset = renderContainerElm.getBoundingClientRect().left - $scope.grid.element[0].getBoundingClientRect().left; - - var containerScrollLeft = renderContainerElm.querySelectorAll('.ui-grid-viewport')[0].scrollLeft; - - // default value the last width for _this_ column, otherwise last width for _any_ column, otherwise default to 170 - var myWidth = column.lastMenuWidth ? column.lastMenuWidth : ( $scope.lastMenuWidth ? $scope.lastMenuWidth : 170); - var paddingRight = column.lastMenuPaddingRight ? column.lastMenuPaddingRight : ( $scope.lastMenuPaddingRight ? $scope.lastMenuPaddingRight : 10); - - if ( menu.length !== 0 ){ - var mid = menu[0].querySelectorAll('.ui-grid-menu-mid'); - if ( mid.length !== 0 && !angular.element(mid).hasClass('ng-hide') ) { - myWidth = gridUtil.elementWidth(menu, true); - $scope.lastMenuWidth = myWidth; - column.lastMenuWidth = myWidth; - - // TODO(c0bra): use padding-left/padding-right based on document direction (ltr/rtl), place menu on proper side - // Get the column menu right padding - paddingRight = parseInt(gridUtil.getStyles(angular.element(menu)[0])['paddingRight'], 10); - $scope.lastMenuPaddingRight = paddingRight; - column.lastMenuPaddingRight = paddingRight; - } - } - - var left = positionData.left + renderContainerOffset - containerScrollLeft + positionData.width - myWidth + paddingRight; - if (left < positionData.offset){ - left = positionData.offset; - } - - $elm.css('left', left + 'px'); - $elm.css('top', (positionData.top + positionData.height) + 'px'); - } - - }; - - return service; -}]) - - -.directive('uiGridColumnMenu', ['$timeout', 'gridUtil', 'uiGridConstants', 'uiGridColumnMenuService', -function ($timeout, gridUtil, uiGridConstants, uiGridColumnMenuService) { -/** - * @ngdoc directive - * @name ui.grid.directive:uiGridColumnMenu - * @description Provides the column menu framework, leverages uiGridMenu underneath - * - */ - - var uiGridColumnMenu = { - priority: 0, - scope: true, - require: '?^uiGrid', - templateUrl: 'ui-grid/uiGridColumnMenu', - replace: true, - link: function ($scope, $elm, $attrs, uiGridCtrl) { - var self = this; - - uiGridColumnMenuService.initialize( $scope, uiGridCtrl ); - - $scope.defaultMenuItems = uiGridColumnMenuService.getDefaultMenuItems( $scope ); - - // Set the menu items for use with the column menu. The user can later add additional items via the watch - $scope.menuItems = $scope.defaultMenuItems; - uiGridColumnMenuService.setColMenuItemWatch( $scope ); - - - /** - * @ngdoc method - * @methodOf ui.grid.directive:uiGridColumnMenu - * @name showMenu - * @description Shows the column menu. If the menu is already displayed it - * calls the menu to ask it to hide (it will animate), then it repositions the menu - * to the right place whilst hidden (it will make an assumption on menu width), - * then it asks the menu to show (it will animate), then it repositions the menu again - * once we can calculate it's size. - * @param {GridCol} column the column we want to position below - * @param {element} $columnElement the column element we want to position below - */ - $scope.showMenu = function(column, $columnElement, event) { - // Swap to this column - $scope.col = column; - - // Get the position information for the column element - var colElementPosition = uiGridColumnMenuService.getColumnElementPosition( $scope, column, $columnElement ); - - if ($scope.menuShown) { - // we want to hide, then reposition, then show, but we want to wait for animations - // we set a variable, and then rely on the menu-hidden event to call the reposition and show - $scope.colElement = $columnElement; - $scope.colElementPosition = colElementPosition; - $scope.hideThenShow = true; - - $scope.$broadcast('hide-menu', { originalEvent: event }); - } else { - self.shown = $scope.menuShown = true; - uiGridColumnMenuService.repositionMenu( $scope, column, colElementPosition, $elm, $columnElement ); - - $scope.colElement = $columnElement; - $scope.colElementPosition = colElementPosition; - $scope.$broadcast('show-menu', { originalEvent: event }); - } - - }; - - - /** - * @ngdoc method - * @methodOf ui.grid.directive:uiGridColumnMenu - * @name hideMenu - * @description Hides the column menu. - * @param {boolean} broadcastTrigger true if we were triggered by a broadcast - * from the menu itself - in which case don't broadcast again as we'll get - * an infinite loop - */ - $scope.hideMenu = function( broadcastTrigger ) { - // delete $scope.col; - $scope.menuShown = false; - - if ( !broadcastTrigger ){ - $scope.$broadcast('hide-menu'); - } - }; - - - $scope.$on('menu-hidden', function() { - if ( $scope.hideThenShow ){ - delete $scope.hideThenShow; - - uiGridColumnMenuService.repositionMenu( $scope, $scope.col, $scope.colElementPosition, $elm, $scope.colElement ); - $scope.$broadcast('show-menu'); - - $scope.menuShown = true; - } else { - $scope.hideMenu( true ); - } - }); - - $scope.$on('menu-shown', function() { - $timeout( function() { - uiGridColumnMenuService.repositionMenu( $scope, $scope.col, $scope.colElementPosition, $elm, $scope.colElement ); - delete $scope.colElementPosition; - delete $scope.columnElement; - }, 200); - }); - - - /* Column methods */ - $scope.sortColumn = function (event, dir) { - event.stopPropagation(); - - $scope.grid.sortColumn($scope.col, dir, true) - .then(function () { - $scope.grid.refresh(); - $scope.hideMenu(); - }); - }; - - $scope.unsortColumn = function () { - $scope.col.unsort(); - - $scope.grid.refresh(); - $scope.hideMenu(); - }; - - $scope.hideColumn = function () { - $scope.col.colDef.visible = false; - - $scope.grid.refresh(); - $scope.hideMenu(); - }; - }, - - - - controller: ['$scope', function ($scope) { - var self = this; - - $scope.$watch('menuItems', function (n, o) { - self.menuItems = n; - }); - }] - }; - - return uiGridColumnMenu; - -}]); - -})(); -(function () { - 'use strict'; - - angular.module('ui.grid').directive('uiGridFooterCell', ['$timeout', 'gridUtil', 'uiGridConstants', '$compile', - function ($timeout, gridUtil, uiGridConstants, $compile) { - var uiGridFooterCell = { - priority: 0, - scope: { - col: '=', - row: '=', - renderIndex: '=' - }, - replace: true, - require: '^uiGrid', - compile: function compile(tElement, tAttrs, transclude) { - return { - pre: function ($scope, $elm, $attrs, uiGridCtrl) { - function compileTemplate(template) { - gridUtil.getTemplate(template).then(function (contents) { - var linkFunction = $compile(contents); - var html = linkFunction($scope); - $elm.append(html); - }); - } - - //compile the footer template - if ($scope.col.footerCellTemplate) { - //compile the custom template - compileTemplate($scope.col.footerCellTemplate); - } - else { - //use default template - compileTemplate('ui-grid/uiGridFooterCell'); - } - }, - post: function ($scope, $elm, $attrs, uiGridCtrl) { - //$elm.addClass($scope.col.getColClass(false)); - $scope.grid = uiGridCtrl.grid; - $scope.getExternalScopes = uiGridCtrl.getExternalScopes; - - $elm.addClass($scope.col.getColClass(false)); - - // apply any footerCellClass - var classAdded; - var updateClass = function( grid ){ - var contents = $elm; - if ( classAdded ){ - contents.removeClass( classAdded ); - classAdded = null; - } - - if (angular.isFunction($scope.col.footerCellClass)) { - classAdded = $scope.col.footerCellClass($scope.grid, $scope.row, $scope.col, $scope.rowRenderIndex, $scope.colRenderIndex); - } - else { - classAdded = $scope.col.footerCellClass; - } - contents.addClass(classAdded); - }; - - if ($scope.col.footerCellClass) { - updateClass(); - } - - // Register a data change watch that would get triggered whenever someone edits a cell or modifies column defs - var watchUid = $scope.grid.registerDataChangeCallback( updateClass, [uiGridConstants.dataChange.COLUMN]); - - $scope.$on( '$destroy', function() { - $scope.grid.deregisterDataChangeCallback( watchUid ); - }); - } - }; - } - }; - - return uiGridFooterCell; - }]); - -})(); - -(function () { - 'use strict'; - - angular.module('ui.grid').directive('uiGridFooter', ['$templateCache', '$compile', 'uiGridConstants', 'gridUtil', '$timeout', function ($templateCache, $compile, uiGridConstants, gridUtil, $timeout) { - var defaultTemplate = 'ui-grid/ui-grid-footer'; - - return { - restrict: 'EA', - replace: true, - // priority: 1000, - require: ['^uiGrid', '^uiGridRenderContainer'], - scope: true, - compile: function ($elm, $attrs) { - return { - pre: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - $scope.grid = uiGridCtrl.grid; - $scope.colContainer = containerCtrl.colContainer; - $scope.getExternalScopes = uiGridCtrl.getExternalScopes; - - containerCtrl.footer = $elm; - - var footerTemplate = ($scope.grid.options.footerTemplate) ? $scope.grid.options.footerTemplate : defaultTemplate; - gridUtil.getTemplate(footerTemplate) - .then(function (contents) { - var template = angular.element(contents); - - var newElm = $compile(template)($scope); - $elm.append(newElm); - - if (containerCtrl) { - // Inject a reference to the footer viewport (if it exists) into the grid controller for use in the horizontal scroll handler below - var footerViewport = $elm[0].getElementsByClassName('ui-grid-footer-viewport')[0]; - - if (footerViewport) { - containerCtrl.footerViewport = footerViewport; - } - } - }); - }, - - post: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - // gridUtil.logDebug('ui-grid-footer link'); - - var grid = uiGridCtrl.grid; - - // Don't animate footer cells - gridUtil.disableAnimations($elm); - - containerCtrl.footer = $elm; - - var footerViewport = $elm[0].getElementsByClassName('ui-grid-footer-viewport')[0]; - if (footerViewport) { - containerCtrl.footerViewport = footerViewport; - } - } - }; - } - }; - }]); - -})(); -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridGroupPanel', ["$compile", "uiGridConstants", "gridUtil", function($compile, uiGridConstants, gridUtil) { - var defaultTemplate = 'ui-grid/ui-grid-group-panel'; - - return { - restrict: 'EA', - replace: true, - require: '?^uiGrid', - scope: false, - compile: function($elm, $attrs) { - return { - pre: function ($scope, $elm, $attrs, uiGridCtrl) { - var groupPanelTemplate = $scope.grid.options.groupPanelTemplate || defaultTemplate; - - gridUtil.getTemplate(groupPanelTemplate) - .then(function (contents) { - var template = angular.element(contents); - - var newElm = $compile(template)($scope); - $elm.append(newElm); - }); - }, - - post: function ($scope, $elm, $attrs, uiGridCtrl) { - $elm.bind('$destroy', function() { - // scrollUnbinder(); - }); - } - }; - } - }; - }]); - -})(); -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridHeaderCell', ['$compile', '$timeout', '$window', '$document', 'gridUtil', 'uiGridConstants', - function ($compile, $timeout, $window, $document, gridUtil, uiGridConstants) { - // Do stuff after mouse has been down this many ms on the header cell - var mousedownTimeout = 500; - - var uiGridHeaderCell = { - priority: 0, - scope: { - col: '=', - row: '=', - renderIndex: '=' - }, - require: ['?^uiGrid', '^uiGridRenderContainer'], - replace: true, - compile: function() { - return { - pre: function ($scope, $elm, $attrs) { - var cellHeader = $compile($scope.col.headerCellTemplate)($scope); - $elm.append(cellHeader); - }, - - post: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - var renderContainerCtrl = controllers[1]; - - $scope.grid = uiGridCtrl.grid; - $scope.getExternalScopes = uiGridCtrl.getExternalScopes; - - $scope.renderContainer = uiGridCtrl.grid.renderContainers[renderContainerCtrl.containerId]; - - $elm.addClass($scope.col.getColClass(false)); - - // Hide the menu by default - $scope.menuShown = false; - - // Put asc and desc sort directions in scope - $scope.asc = uiGridConstants.ASC; - $scope.desc = uiGridConstants.DESC; - - // Store a reference to menu element - var $colMenu = angular.element( $elm[0].querySelectorAll('.ui-grid-header-cell-menu') ); - - var $contentsElm = angular.element( $elm[0].querySelectorAll('.ui-grid-cell-contents') ); - - - // apply any headerCellClass - var classAdded; - var updateClass = function( grid ){ - var contents = $elm; - if ( classAdded ){ - contents.removeClass( classAdded ); - classAdded = null; - } - - if (angular.isFunction($scope.col.headerCellClass)) { - classAdded = $scope.col.headerCellClass($scope.grid, $scope.row, $scope.col, $scope.rowRenderIndex, $scope.colRenderIndex); - } - else { - classAdded = $scope.col.headerCellClass; - } - contents.addClass(classAdded); - }; - - if ($scope.col.headerCellClass) { - updateClass(); - } - - // Register a data change watch that would get triggered whenever someone edits a cell or modifies column defs - var watchUid = $scope.grid.registerDataChangeCallback( updateClass, [uiGridConstants.dataChange.COLUMN]); - - var deregisterFunction = function() { - $scope.grid.deregisterDataChangeCallback( watchUid ); - }; - - $scope.$on( '$destroy', deregisterFunction ); - - - // Figure out whether this column is sortable or not - if (uiGridCtrl.grid.options.enableSorting && $scope.col.enableSorting) { - $scope.sortable = true; - } - else { - $scope.sortable = false; - } - - if (uiGridCtrl.grid.options.enableFiltering && $scope.col.enableFiltering) { - $scope.filterable = true; - } - else { - $scope.filterable = false; - } - - function handleClick(evt) { - // If the shift key is being held down, add this column to the sort - var add = false; - if (evt.shiftKey) { - add = true; - } - - // Sort this column then rebuild the grid's rows - uiGridCtrl.grid.sortColumn($scope.col, add) - .then(function () { - if (uiGridCtrl.columnMenuScope) { uiGridCtrl.columnMenuScope.hideMenu(); } - uiGridCtrl.grid.refresh(); - }); - } - - /** - * @ngdoc property - * @name enableColumnMenu - * @propertyOf ui.grid.class:GridOptions.columnDef - * @description if column menus are enabled, controls the column menus for this specific - * column (i.e. if gridOptions.enableColumnMenus, then you can control column menus - * using this option. If gridOptions.enableColumnMenus === false then you get no column - * menus irrespective of the value of this option ). Defaults to true. - * - */ - /** - * @ngdoc property - * @name enableColumnMenus - * @propertyOf ui.grid.class:GridOptions.columnDef - * @description Override for column menus everywhere - if set to false then you get no - * column menus. Defaults to true. - * - */ - - // Long-click (for mobile) - var cancelMousedownTimeout; - var mousedownStartTime = 0; - $contentsElm.on('mousedown touchstart', function(event) { - if (typeof(event.originalEvent) !== 'undefined' && event.originalEvent !== undefined) { - event = event.originalEvent; - } - - // Don't show the menu if it's not the left button - if (event.button && event.button !== 0) { - return; - } - - mousedownStartTime = (new Date()).getTime(); - - cancelMousedownTimeout = $timeout(function() { }, mousedownTimeout); - - cancelMousedownTimeout.then(function () { - if ($scope.col.grid.options && $scope.col.grid.options.enableColumnMenus !== false && - $scope.col.colDef && $scope.col.colDef.enableColumnMenu !== false) { - uiGridCtrl.columnMenuScope.showMenu($scope.col, $elm, event); - } - }); - }); - - $contentsElm.on('mouseup touchend', function () { - $timeout.cancel(cancelMousedownTimeout); - }); - - $scope.$on('$destroy', function () { - $contentsElm.off('mousedown touchstart'); - }); - - - $scope.toggleMenu = function($event) { - $event.stopPropagation(); - - // If the menu is already showing... - if (uiGridCtrl.columnMenuScope.menuShown) { - // ... and we're the column the menu is on... - if (uiGridCtrl.columnMenuScope.col === $scope.col) { - // ... hide it - uiGridCtrl.columnMenuScope.hideMenu(); - } - // ... and we're NOT the column the menu is on - else { - // ... move the menu to our column - uiGridCtrl.columnMenuScope.showMenu($scope.col, $elm); - } - } - // If the menu is NOT showing - else { - // ... show it on our column - uiGridCtrl.columnMenuScope.showMenu($scope.col, $elm); - } - }; - - // If this column is sortable, add a click event handler - if ($scope.sortable) { - $contentsElm.on('click touchend', function(evt) { - evt.stopPropagation(); - - $timeout.cancel(cancelMousedownTimeout); - - var mousedownEndTime = (new Date()).getTime(); - var mousedownTime = mousedownEndTime - mousedownStartTime; - - if (mousedownTime > mousedownTimeout) { - // long click, handled above with mousedown - } - else { - // short click - handleClick(evt); - } - }); - - $scope.$on('$destroy', function () { - // Cancel any pending long-click timeout - $timeout.cancel(cancelMousedownTimeout); - }); - } - - if ($scope.filterable) { - var filterDeregisters = []; - angular.forEach($scope.col.filters, function(filter, i) { - filterDeregisters.push($scope.$watch('col.filters[' + i + '].term', function(n, o) { - if (n !== o) { - uiGridCtrl.grid.api.core.raise.filterChanged(); - uiGridCtrl.grid.refresh() - .then(function () { - if (uiGridCtrl.prevScrollArgs && uiGridCtrl.prevScrollArgs.y && uiGridCtrl.prevScrollArgs.y.percentage) { - uiGridCtrl.fireScrollingEvent({ y: { percentage: uiGridCtrl.prevScrollArgs.y.percentage } }); - } - // uiGridCtrl.fireEvent('force-vertical-scroll'); - }); - } - })); - }); - $scope.$on('$destroy', function() { - angular.forEach(filterDeregisters, function(filterDeregister) { - filterDeregister(); - }); - }); - } - } - }; - } - }; - - return uiGridHeaderCell; - }]); - -})(); - -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridHeader', ['$templateCache', '$compile', 'uiGridConstants', 'gridUtil', '$timeout', function($templateCache, $compile, uiGridConstants, gridUtil, $timeout) { - var defaultTemplate = 'ui-grid/ui-grid-header'; - var emptyTemplate = 'ui-grid/ui-grid-no-header'; - - return { - restrict: 'EA', - // templateUrl: 'ui-grid/ui-grid-header', - replace: true, - // priority: 1000, - require: ['^uiGrid', '^uiGridRenderContainer'], - scope: true, - compile: function($elm, $attrs) { - return { - pre: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - $scope.grid = uiGridCtrl.grid; - $scope.colContainer = containerCtrl.colContainer; - $scope.getExternalScopes = uiGridCtrl.getExternalScopes; - - containerCtrl.header = $elm; - containerCtrl.colContainer.header = $elm; - - /** - * @ngdoc property - * @name hideHeader - * @propertyOf ui.grid.class:GridOptions - * @description Null by default. When set to true, this setting will replace the - * standard header template with '
    ', resulting in no header being shown. - */ - - var headerTemplate; - if ($scope.grid.options.hideHeader){ - headerTemplate = emptyTemplate; - } else { - headerTemplate = ($scope.grid.options.headerTemplate) ? $scope.grid.options.headerTemplate : defaultTemplate; - } - - gridUtil.getTemplate(headerTemplate) - .then(function (contents) { - var template = angular.element(contents); - - var newElm = $compile(template)($scope); - $elm.replaceWith(newElm); - - // Replace the reference to the container's header element with this new element - containerCtrl.header = newElm; - containerCtrl.colContainer.header = newElm; - - // And update $elm to be the new element - $elm = newElm; - - if (containerCtrl) { - // Inject a reference to the header viewport (if it exists) into the grid controller for use in the horizontal scroll handler below - var headerViewport = $elm[0].getElementsByClassName('ui-grid-header-viewport')[0]; - - if (headerViewport) { - containerCtrl.headerViewport = headerViewport; - } - } - }); - }, - - post: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - // gridUtil.logDebug('ui-grid-header link'); - - var grid = uiGridCtrl.grid; - - // Don't animate header cells - gridUtil.disableAnimations($elm); - - function updateColumnWidths() { - // Get the width of the viewport - var availableWidth = containerCtrl.colContainer.getViewportWidth(); - - if (typeof(uiGridCtrl.grid.verticalScrollbarWidth) !== 'undefined' && uiGridCtrl.grid.verticalScrollbarWidth !== undefined && uiGridCtrl.grid.verticalScrollbarWidth > 0) { - availableWidth = availableWidth + uiGridCtrl.grid.verticalScrollbarWidth; - } - - // The total number of columns - // var equalWidthColumnCount = columnCount = uiGridCtrl.grid.options.columnDefs.length; - // var equalWidth = availableWidth / equalWidthColumnCount; - - var columnCache = containerCtrl.colContainer.visibleColumnCache, - canvasWidth = 0, - asteriskNum = 0, - oneAsterisk = 0, - leftoverWidth = availableWidth, - hasVariableWidth = false; - - var getColWidth = function(column){ - if (column.widthType === "manual"){ - return +column.width; - } - else if (column.widthType === "percent"){ - return parseInt(column.width.replace(/%/g, ''), 10) * availableWidth / 100; - } - else if (column.widthType === "auto"){ - // leftOverWidth is subtracted from after each call to this - // function so we need to calculate oneAsterisk size only once - if (oneAsterisk === 0) { - oneAsterisk = parseInt(leftoverWidth / asteriskNum, 10); - } - return column.width.length * oneAsterisk; - } - }; - - // Populate / determine column width types: - columnCache.forEach(function(column){ - column.widthType = null; - if (isFinite(+column.width)){ - column.widthType = "manual"; - } - else if (gridUtil.endsWith(column.width, "%")){ - column.widthType = "percent"; - hasVariableWidth = true; - } - else if (angular.isString(column.width) && column.width.indexOf('*') !== -1){ - column.widthType = "auto"; - asteriskNum += column.width.length; - hasVariableWidth = true; - } - }); - - // For sorting, calculate width from first to last: - var colWidthPriority = ["manual", "percent", "auto"]; - columnCache.filter(function(column){ - // Only draw visible items with a widthType - return (column.visible && column.widthType); - }).sort(function(a,b){ - // Calculate widths in order, so that manual comes first, etc. - return colWidthPriority.indexOf(a.widthType) - colWidthPriority.indexOf(b.widthType); - }).forEach(function(column){ - // Calculate widths: - var colWidth = getColWidth(column); - if (column.minWidth){ - colWidth = Math.max(colWidth, column.minWidth); - } - if (column.maxWidth){ - colWidth = Math.min(colWidth, column.maxWidth); - } - column.drawnWidth = Math.floor(colWidth); - canvasWidth += column.drawnWidth; - leftoverWidth -= column.drawnWidth; - }); - - // If the grid width didn't divide evenly into the column widths and we have pixels left over, dole them out to the columns one by one to make everything fit - if (hasVariableWidth && leftoverWidth > 0 && canvasWidth > 0 && canvasWidth < availableWidth) { - var remFn = function (column) { - if (leftoverWidth > 0 && (column.widthType === "auto" || column.widthType === "percent")) { - column.drawnWidth = column.drawnWidth + 1; - canvasWidth = canvasWidth + 1; - leftoverWidth--; - } - }; - var prevLeftover = 0; - do { - prevLeftover = leftoverWidth; - columnCache.forEach(remFn); - } while (leftoverWidth > 0 && leftoverWidth !== prevLeftover ); - } - canvasWidth = Math.max(canvasWidth, availableWidth); - - // Build the CSS - // uiGridCtrl.grid.columns.forEach(function (column) { - var ret = ''; - columnCache.forEach(function (column) { - ret = ret + column.getColClassDefinition(); - }); - - // Add the vertical scrollbar width back in to the canvas width, it's taken out in getViewportWidth - if (grid.verticalScrollbarWidth) { - canvasWidth = canvasWidth + grid.verticalScrollbarWidth; - } - // canvasWidth = canvasWidth + 1; - - // if we have a grid menu, then we prune the width of the last column header - // to allow room for the button whilst still getting to the column menu - if (columnCache.length > 0) { // && grid.options.enableGridMenu) { - columnCache[columnCache.length - 1].headerWidth = columnCache[columnCache.length - 1].drawnWidth - 30; - } - - containerCtrl.colContainer.canvasWidth = parseInt(canvasWidth, 10); - - // Return the styles back to buildStyles which pops them into the `customStyles` scope variable - return ret; - } - - containerCtrl.header = $elm; - - var headerViewport = $elm[0].getElementsByClassName('ui-grid-header-viewport')[0]; - if (headerViewport) { - containerCtrl.headerViewport = headerViewport; - } - - //todo: remove this if by injecting gridCtrl into unit tests - if (uiGridCtrl) { - uiGridCtrl.grid.registerStyleComputation({ - priority: 5, - func: updateColumnWidths - }); - } - } - }; - } - }; - }]); - -})(); - -(function(){ - -angular.module('ui.grid') -.service('uiGridGridMenuService', [ 'gridUtil', 'i18nService', function( gridUtil, i18nService ) { - /** - * @ngdoc service - * @name ui.grid.gridMenuService - * - * @description Methods for working with the grid menu - */ - - var service = { - /** - * @ngdoc method - * @methodOf ui.grid.gridMenuService - * @name initialize - * @description Sets up the gridMenu. Most importantly, sets our - * scope onto the grid object as grid.gridMenuScope, allowing us - * to operate when passed only the grid. Second most importantly, - * we register the 'addToGridMenu' and 'removeFromGridMenu' methods - * on the core api. - * @param {$scope} $scope the scope of this gridMenu - * @param {Grid} grid the grid to which this gridMenu is associated - */ - initialize: function( $scope, grid ){ - grid.gridMenuScope = $scope; - $scope.grid = grid; - $scope.registeredMenuItems = []; - - // not certain this is needed, but would be bad to create a memory leak - $scope.$on('$destroy', function() { - if ( $scope.grid && $scope.grid.gridMenuScope ){ - $scope.grid.gridMenuScope = null; - } - if ( $scope.grid ){ - $scope.grid = null; - } - if ( $scope.registeredMenuItems ){ - $scope.registeredMenuItems = null; - } - }); - - $scope.registeredMenuItems = []; - - /** - * @ngdoc function - * @name addToGridMenu - * @methodOf ui.grid.core.api:PublicApi - * @description add items to the grid menu. Used by features - * to add their menu items if they are enabled, can also be used by - * end users to add menu items. This method has the advantage of allowing - * remove again, which can simplify management of which items are included - * in the menu when. (Noting that in most cases the shown and active functions - * provide a better way to handle visibility of menu items) - * @param {Grid} grid the grid on which we are acting - * @param {array} items menu items in the format as described in the tutorial, with - * the added note that if you want to use remove you must also specify an `id` field, - * which is provided when you want to remove an item. The id should be unique. - * - */ - grid.api.registerMethod( 'core', 'addToGridMenu', service.addToGridMenu ); - - /** - * @ngdoc function - * @name removeFromGridMenu - * @methodOf ui.grid.core.api:PublicApi - * @description Remove an item from the grid menu based on a provided id. Assumes - * that the id is unique, removes only the last instance of that id. Does nothing if - * the specified id is not found - * @param {Grid} grid the grid on which we are acting - * @param {string} id the id we'd like to remove from the menu - * - */ - grid.api.registerMethod( 'core', 'removeFromGridMenu', service.removeFromGridMenu ); - }, - - - /** - * @ngdoc function - * @name addToGridMenu - * @propertyOf ui.grid.class:GridOptions - * @description add items to the grid menu. Used by features - * to add their menu items if they are enabled, can also be used by - * end users to add menu items. This method has the advantage of allowing - * remove again, which can simplify management of which items are included - * in the menu when. (Noting that in most cases the shown and active functions - * provide a better way to handle visibility of menu items) - * @param {Grid} grid the grid on which we are acting - * @param {array} items menu items in the format as described in the tutorial, with - * the added note that if you want to use remove you must also specify an `id` field, - * which is provided when you want to remove an item. The id should be unique. - * - */ - addToGridMenu: function( grid, menuItems ) { - if ( !angular.isArray( menuItems ) ) { - gridUtil.logError( 'addToGridMenu: menuItems must be an array, and is not, not adding any items'); - } else { - if ( grid.gridMenuScope ){ - grid.gridMenuScope.registeredMenuItems = grid.gridMenuScope.registeredMenuItems ? grid.gridMenuScope.registeredMenuItems : []; - grid.gridMenuScope.registeredMenuItems = grid.gridMenuScope.registeredMenuItems.concat( menuItems ); - } else { - gridUtil.logError( 'Asked to addToGridMenu, but gridMenuScope not present. Timing issue? Please log issue with ui-grid'); - } - } - }, - - - /** - * @ngdoc function - * @name removeFromGridMenu - * @methodOf ui.grid.core.api:PublicApi - * @description Remove an item from the grid menu based on a provided id. Assumes - * that the id is unique, removes only the last instance of that id. Does nothing if - * the specified id is not found. If there is no gridMenuScope or registeredMenuItems - * then do nothing silently - the desired result is those menu items not be present and they - * aren't. - * @param {Grid} grid the grid on which we are acting - * @param {string} id the id we'd like to remove from the menu - * - */ - removeFromGridMenu: function( grid, id ){ - var foundIndex = -1; - - if ( grid && grid.gridMenuScope ){ - grid.gridMenuScope.registeredMenuItems.forEach( function( value, index ) { - if ( value.id === id ){ - if (foundIndex > -1) { - gridUtil.logError( 'removeFromGridMenu: found multiple items with the same id, removing only the last' ); - } else { - - foundIndex = index; - } - } - }); - } - - if ( foundIndex > -1 ){ - grid.gridMenuScope.registeredMenuItems.splice( foundIndex, 1 ); - } - }, - - - /** - * @ngdoc array - * @name gridMenuCustomItems - * @propertyOf ui.grid.class:GridOptions - * @description (optional) An array of menu items that should be added to - * the gridMenu. Follow the format documented in the tutorial for column - * menu customisation. The context provided to the action function will - * include context.grid. An alternative if working with dynamic menus is to use the - * provided api - core.addToGridMenu and core.removeFromGridMenu, which handles - * some of the management of items for you. - * - */ - /** - * @ngdoc boolean - * @name gridMenuShowHideColumns - * @propertyOf ui.grid.class:GridOptions - * @description true by default, whether the grid menu should allow hide/show - * of columns - * - */ - /** - * @ngdoc method - * @methodOf ui.grid.gridMenuService - * @name getMenuItems - * @description Decides the menu items to show in the menu. This is a - * combination of: - * - * - the default menu items that are always included, - * - any menu items that have been provided through the addMenuItem api. These - * are typically added by features within the grid - * - any menu items included in grid.options.gridMenuCustomItems. These can be - * changed dynamically, as they're always recalculated whenever we show the - * menu - * @param {$scope} $scope the scope of this gridMenu, from which we can find all - * the information that we need - * @returns {array} an array of menu items that can be shown - */ - getMenuItems: function( $scope ) { - var menuItems = [ - // this is where we add any menu items we want to always include - ]; - - if ( $scope.grid.options.gridMenuCustomItems ){ - if ( !angular.isArray( $scope.grid.options.gridMenuCustomItems ) ){ - gridUtil.logError( 'gridOptions.gridMenuCustomItems must be an array, and is not'); - } else { - menuItems = menuItems.concat( $scope.grid.options.gridMenuCustomItems ); - } - } - - menuItems = menuItems.concat( $scope.registeredMenuItems ); - - if ( $scope.grid.options.gridMenuShowHideColumns !== false ){ - menuItems = menuItems.concat( service.showHideColumns( $scope ) ); - } - - return menuItems; - }, - - - /** - * @ngdoc array - * @name gridMenuTitleFilter - * @propertyOf ui.grid.class:GridOptions - * @description (optional) A function that takes a title string - * (usually the col.displayName), and converts it into a display value. The function - * must return either a string or a promise. - * - * Used for internationalization of the grid menu column names - for angular-translate - * you can pass $translate as the function, for i18nService you can pass getSafeText as the - * function - * @example - *
    -     *   gridOptions = {
    -     *     gridMenuTitleFilter: $translate
    -     *   }
    -     * 
    - */ - /** - * @ngdoc method - * @methodOf ui.grid.gridMenuService - * @name showHideColumns - * @description Adds two menu items for each of the columns in columnDefs. One - * menu item for hide, one menu item for show. Each is visible when appropriate - * (show when column is not visible, hide when column is visible). Each toggles - * the visible property on the columnDef using toggleColumnVisibility - * @param {$scope} $scope of a gridMenu, which contains a reference to the grid - */ - showHideColumns: function( $scope ){ - var showHideColumns = []; - if ( !$scope.grid.options.columnDefs || $scope.grid.options.columnDefs.length === 0 || $scope.grid.columns.length === 0 ) { - return showHideColumns; - } - - // add header for columns - showHideColumns.push({ - title: i18nService.getSafeText('gridMenu.columns') - }); - - $scope.grid.options.gridMenuTitleFilter = $scope.grid.options.gridMenuTitleFilter ? $scope.grid.options.gridMenuTitleFilter : function( title ) { return title; }; - - $scope.grid.options.columnDefs.forEach( function( colDef, index ){ - if ( colDef.enableHiding !== false ){ - // add hide menu item - shows an OK icon as we only show when column is already visible - var menuItem = { - icon: 'ui-grid-icon-ok', - action: function($event) { - $event.stopPropagation(); - service.toggleColumnVisibility( this.context.gridCol ); - }, - shown: function() { - return this.context.gridCol.colDef.visible === true || this.context.gridCol.colDef.visible === undefined; - }, - context: { gridCol: $scope.grid.getColumn(colDef.name || colDef.field) } - }; - service.setMenuItemTitle( menuItem, colDef, $scope.grid ); - showHideColumns.push( menuItem ); - - // add show menu item - shows no icon as we only show when column is invisible - menuItem = { - icon: 'ui-grid-icon-cancel', - action: function($event) { - $event.stopPropagation(); - service.toggleColumnVisibility( this.context.gridCol ); - }, - shown: function() { - return !(this.context.gridCol.colDef.visible === true || this.context.gridCol.colDef.visible === undefined); - }, - context: { gridCol: $scope.grid.getColumn(colDef.name || colDef.field) } - }; - service.setMenuItemTitle( menuItem, colDef, $scope.grid ); - showHideColumns.push( menuItem ); - } - }); - return showHideColumns; - }, - - - /** - * @ngdoc method - * @methodOf ui.grid.gridMenuService - * @name setMenuItemTitle - * @description Handles the response from gridMenuTitleFilter, adding it directly to the menu - * item if it returns a string, otherwise waiting for the promise to resolve or reject then - * putting the result into the title - * @param {object} menuItem the menuItem we want to put the title on - * @param {object} colDef the colDef from which we can get displayName, name or field - * @param {Grid} grid the grid, from which we can get the options.gridMenuTitleFilter - * - */ - setMenuItemTitle: function( menuItem, colDef, grid ){ - var title = grid.options.gridMenuTitleFilter( colDef.displayName || colDef.name || colDef.field ); - - if ( typeof(title) === 'string' ){ - menuItem.title = title; - } else if ( title.then ){ - // must be a promise - menuItem.title = ""; - title.then( function( successValue ) { - menuItem.title = successValue; - }, function( errorValue ) { - menuItem.title = errorValue; - }); - } else { - gridUtil.logError('Expected gridMenuTitleFilter to return a string or a promise, it has returned neither, bad config'); - menuItem.title = 'badconfig'; - } - }, - - /** - * @ngdoc method - * @methodOf ui.grid.gridMenuService - * @name toggleColumnVisibility - * @description Toggles the visibility of an individual column. Expects to be - * provided a context that has on it a gridColumn, which is the column that - * we'll operate upon. We change the visibility, and refresh the grid as appropriate - * @param {GridCol} gridCol the column that we want to toggle - * - */ - toggleColumnVisibility: function( gridCol ) { - gridCol.colDef.visible = !( gridCol.colDef.visible === true || gridCol.colDef.visible === undefined ); - - gridCol.grid.refresh(); - } - }; - - return service; -}]) - - - -.directive('uiGridMenuButton', ['gridUtil', 'uiGridConstants', 'uiGridGridMenuService', -function (gridUtil, uiGridConstants, uiGridGridMenuService) { - - return { - priority: 0, - scope: true, - require: ['?^uiGrid'], - templateUrl: 'ui-grid/ui-grid-menu-button', - replace: true, - - - link: function ($scope, $elm, $attrs, controllers) { - var uiGridCtrl = controllers[0]; - - uiGridGridMenuService.initialize($scope, uiGridCtrl.grid); - - $scope.shown = false; - - $scope.toggleMenu = function () { - if ( $scope.shown ){ - $scope.$broadcast('hide-menu'); - $scope.shown = false; - } else { - $scope.menuItems = uiGridGridMenuService.getMenuItems( $scope ); - $scope.$broadcast('show-menu'); - $scope.shown = true; - } - }; - - $scope.$on('menu-hidden', function() { - $scope.shown = false; - }); - } - }; - -}]); - -})(); -(function(){ - -/** - * @ngdoc directive - * @name ui.grid.directive:uiGridColumnMenu - * @element style - * @restrict A - * - * @description - * Allows us to interpolate expressions in ` - I am in a box. - - - - it('should apply the right class to the element', function () { - element(by.css('.blah')).getCssValue('border') - .then(function(c) { - expect(c).toContain('1px solid'); - }); - }); - - - */ - - - angular.module('ui.grid').directive('uiGridStyle', ['gridUtil', '$interpolate', function(gridUtil, $interpolate) { - return { - // restrict: 'A', - // priority: 1000, - // require: '?^uiGrid', - link: function($scope, $elm, $attrs, uiGridCtrl) { - // gridUtil.logDebug('ui-grid-style link'); - // if (uiGridCtrl === undefined) { - // gridUtil.logWarn('[ui-grid-style link] uiGridCtrl is undefined!'); - // } - - var interpolateFn = $interpolate($elm.text(), true); - - if (interpolateFn) { - $scope.$watch(interpolateFn, function(value) { - $elm.text(value); - }); - } - - // uiGridCtrl.recalcRowStyles = function() { - // var offset = (scope.options.offsetTop || 0) - (scope.options.excessRows * scope.options.rowHeight); - // var rowHeight = scope.options.rowHeight; - - // var ret = ''; - // var rowStyleCount = uiGridCtrl.minRowsToRender() + (scope.options.excessRows * 2); - // for (var i = 1; i <= rowStyleCount; i++) { - // ret = ret + ' .grid' + scope.gridId + ' .ui-grid-row:nth-child(' + i + ') { top: ' + offset + 'px; }'; - // offset = offset + rowHeight; - // } - - // scope.rowStyles = ret; - // }; - - // uiGridCtrl.styleComputions.push(uiGridCtrl.recalcRowStyles); - - } - }; - }]); - -})(); -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridViewport', ['gridUtil', - function(gridUtil) { - return { - replace: true, - scope: {}, - templateUrl: 'ui-grid/uiGridViewport', - require: ['^uiGrid', '^uiGridRenderContainer'], - link: function($scope, $elm, $attrs, controllers) { - // gridUtil.logDebug('viewport post-link'); - - var uiGridCtrl = controllers[0]; - var containerCtrl = controllers[1]; - - $scope.containerCtrl = containerCtrl; - - var rowContainer = containerCtrl.rowContainer; - var colContainer = containerCtrl.colContainer; - - var grid = uiGridCtrl.grid; - - $scope.grid = uiGridCtrl.grid; - - // Put the containers in scope so we can get rows and columns from them - $scope.rowContainer = containerCtrl.rowContainer; - $scope.colContainer = containerCtrl.colContainer; - - // Register this viewport with its container - containerCtrl.viewport = $elm; - - $elm.on('scroll', function (evt) { - var newScrollTop = $elm[0].scrollTop; - // var newScrollLeft = $elm[0].scrollLeft; - var newScrollLeft = gridUtil.normalizeScrollLeft($elm); - var horizScrollPercentage = -1; - var vertScrollPercentage = -1; - - // Handle RTL here - - if (newScrollLeft !== colContainer.prevScrollLeft) { - var xDiff = newScrollLeft - colContainer.prevScrollLeft; - - var horizScrollLength = (colContainer.getCanvasWidth() - colContainer.getViewportWidth()); - horizScrollPercentage = newScrollLeft / horizScrollLength; - - colContainer.adjustScrollHorizontal(newScrollLeft, horizScrollPercentage); - } - - if (newScrollTop !== rowContainer.prevScrollTop) { - var yDiff = newScrollTop - rowContainer.prevScrollTop; - - // uiGridCtrl.fireScrollingEvent({ y: { pixels: diff } }); - var vertScrollLength = (rowContainer.getCanvasHeight() - rowContainer.getViewportHeight()); - // var vertScrollPercentage = (uiGridCtrl.prevScrollTop + yDiff) / vertScrollLength; - vertScrollPercentage = newScrollTop / vertScrollLength; - - if (vertScrollPercentage > 1) { vertScrollPercentage = 1; } - if (vertScrollPercentage < 0) { vertScrollPercentage = 0; } - - rowContainer.adjustScrollVertical(newScrollTop, vertScrollPercentage); - } - - if ( !$scope.grid.isScrollingVertically && !$scope.grid.isScrollingHorizontally ){ - // viewport scroll that didn't come from fireScrollEvent, so fire a scroll to keep - // the header in sync - var args = {}; - if ( horizScrollPercentage > -1 ){ - args.x = { percentage: horizScrollPercentage }; - } - - if ( vertScrollPercentage > -1 ){ - args.y = { percentage: vertScrollPercentage }; - } - uiGridCtrl.fireScrollingEvent(args); - } - }); - } - }; - } - ]); - -})(); -(function() { - -angular.module('ui.grid') -.directive('uiGridVisible', function uiGridVisibleAction() { - return function ($scope, $elm, $attr) { - $scope.$watch($attr.uiGridVisible, function (visible) { - // $elm.css('visibility', visible ? 'visible' : 'hidden'); - $elm[visible ? 'removeClass' : 'addClass']('ui-grid-invisible'); - }); - }; -}); - -})(); -(function () { - 'use strict'; - - angular.module('ui.grid').controller('uiGridController', ['$scope', '$element', '$attrs', 'gridUtil', '$q', 'uiGridConstants', - '$templateCache', 'gridClassFactory', '$timeout', '$parse', '$compile', - function ($scope, $elm, $attrs, gridUtil, $q, uiGridConstants, - $templateCache, gridClassFactory, $timeout, $parse, $compile) { - // gridUtil.logDebug('ui-grid controller'); - - var self = this; - - // Extend options with ui-grid attribute reference - self.grid = gridClassFactory.createGrid($scope.uiGrid); - $elm.addClass('grid' + self.grid.id); - self.grid.rtl = gridUtil.getStyles($elm[0])['direction'] === 'rtl'; - - - //add optional reference to externalScopes function to controller - //so it can be retrieved in lower elements that have isolate scope - self.getExternalScopes = $scope.getExternalScopes; - - // angular.extend(self.grid.options, ); - - //all properties of grid are available on scope - $scope.grid = self.grid; - - if ($attrs.uiGridColumns) { - $attrs.$observe('uiGridColumns', function(value) { - self.grid.options.columnDefs = value; - self.grid.buildColumns() - .then(function(){ - self.grid.preCompileCellTemplates(); - - self.grid.refreshCanvas(true); - }); - }); - } - - - var dataWatchCollectionDereg; - if (angular.isString($scope.uiGrid.data)) { - dataWatchCollectionDereg = $scope.$parent.$watchCollection($scope.uiGrid.data, dataWatchFunction); - } - else { - dataWatchCollectionDereg = $scope.$parent.$watchCollection(function() { return $scope.uiGrid.data; }, dataWatchFunction); - } - - var columnDefWatchCollectionDereg = $scope.$parent.$watchCollection(function() { return $scope.uiGrid.columnDefs; }, columnDefsWatchFunction); - - function columnDefsWatchFunction(n, o) { - if (n && n !== o) { - self.grid.options.columnDefs = n; - self.grid.buildColumns() - .then(function(){ - - self.grid.preCompileCellTemplates(); - - self.grid.callDataChangeCallbacks(uiGridConstants.dataChange.COLUMN); - }); - } - } - - function dataWatchFunction(newData) { - // gridUtil.logDebug('dataWatch fired'); - var promises = []; - - if (newData) { - if ( - // If we have no columns (i.e. columns length is either 0 or equal to the number of row header columns, which don't count because they're created automatically) - self.grid.columns.length === (self.grid.rowHeaderColumns ? self.grid.rowHeaderColumns.length : 0) && - // ... and we don't have a ui-grid-columns attribute, which would define columns for us - !$attrs.uiGridColumns && - // ... and we have no pre-defined columns - self.grid.options.columnDefs.length === 0 && - // ... but we DO have data - newData.length > 0 - ) { - // ... then build the column definitions from the data that we have - self.grid.buildColumnDefsFromData(newData); - } - - // If we either have some columns defined, or some data defined - if (self.grid.options.columnDefs.length > 0 || newData.length > 0) { - // Build the column set, then pre-compile the column cell templates - promises.push(self.grid.buildColumns() - .then(function() { - self.grid.preCompileCellTemplates(); - })); - } - - $q.all(promises).then(function() { - self.grid.modifyRows(newData) - .then(function () { - // if (self.viewport) { - self.grid.redrawInPlace(); - // } - - $scope.$evalAsync(function() { - self.grid.refreshCanvas(true); - self.grid.callDataChangeCallbacks(uiGridConstants.dataChange.ROW); - }); - }); - }); - } - } - - - $scope.$on('$destroy', function() { - dataWatchCollectionDereg(); - columnDefWatchCollectionDereg(); - }); - - $scope.$watch(function () { return self.grid.styleComputations; }, function() { - self.grid.refreshCanvas(true); - }); - - - /* Event Methods */ - - self.fireScrollingEvent = gridUtil.throttle(function(args) { - $scope.$broadcast(uiGridConstants.events.GRID_SCROLL, args); - }, self.grid.options.scrollThrottle, {trailing: true}); - - self.fireEvent = function(eventName, args) { - // Add the grid to the event arguments if it's not there - if (typeof(args) === 'undefined' || args === undefined) { - args = {}; - } - - if (typeof(args.grid) === 'undefined' || args.grid === undefined) { - args.grid = self.grid; - } - - $scope.$broadcast(eventName, args); - }; - - self.innerCompile = function innerCompile(elm) { - $compile(elm)($scope); - }; - - }]); - -/** - * @ngdoc directive - * @name ui.grid.directive:uiGrid - * @element div - * @restrict EA - * @param {Object} uiGrid Options for the grid to use - * @param {Object=} external-scopes Add external-scopes='someScopeObjectYouNeed' attribute so you can access - * your scopes from within any custom templatedirective. You access by $scope.getExternalScopes() function - * - * @description Create a very basic grid. - * - * @example - - - var app = angular.module('app', ['ui.grid']); - - app.controller('MainCtrl', ['$scope', function ($scope) { - $scope.data = [ - { name: 'Bob', title: 'CEO' }, - { name: 'Frank', title: 'Lowly Developer' } - ]; - }]); - - -
    -
    -
    -
    -
    - */ -angular.module('ui.grid').directive('uiGrid', - [ - '$compile', - '$templateCache', - 'gridUtil', - '$window', - function( - $compile, - $templateCache, - gridUtil, - $window - ) { - return { - templateUrl: 'ui-grid/ui-grid', - scope: { - uiGrid: '=', - getExternalScopes: '&?externalScopes' //optional functionwrapper around any needed external scope instances - }, - replace: true, - transclude: true, - controller: 'uiGridController', - compile: function () { - return { - post: function ($scope, $elm, $attrs, uiGridCtrl) { - // gridUtil.logDebug('ui-grid postlink'); - - var grid = uiGridCtrl.grid; - - // Initialize scrollbars (TODO: move to controller??) - uiGridCtrl.scrollbars = []; - - //todo: assume it is ok to communicate that rendering is complete?? - grid.renderingComplete(); - - grid.element = $elm; - - grid.gridWidth = $scope.gridWidth = gridUtil.elementWidth($elm); - - // Default canvasWidth to the grid width, in case we don't get any column definitions to calculate it from - grid.canvasWidth = uiGridCtrl.grid.gridWidth; - - grid.gridHeight = $scope.gridHeight = gridUtil.elementHeight($elm); - - // If the grid isn't tall enough to fit a single row, it's kind of useless. Resize it to fit a minimum number of rows - if (grid.gridHeight < grid.options.rowHeight) { - // Figure out the new height - var contentHeight = grid.options.minRowsToShow * grid.options.rowHeight; - var headerHeight = grid.options.hideHeader ? 0 : grid.options.headerRowHeight; - var footerHeight = grid.options.showFooter ? grid.options.footerRowHeight : 0; - var scrollbarHeight = grid.options.enableScrollbars ? gridUtil.getScrollbarWidth() : 0; - - var maxNumberOfFilters = 0; - // Calculates the maximum number of filters in the columns - angular.forEach(grid.options.columnDefs, function(col) { - if (col.hasOwnProperty('filter')) { - if (maxNumberOfFilters < 1) { - maxNumberOfFilters = 1; - } - } - else if (col.hasOwnProperty('filters')) { - if (maxNumberOfFilters < col.filters.length) { - maxNumberOfFilters = col.filters.length; - } - } - }); - var filterHeight = maxNumberOfFilters * headerHeight; - - var newHeight = headerHeight + contentHeight + footerHeight + scrollbarHeight + filterHeight; - - $elm.css('height', newHeight + 'px'); - - grid.gridHeight = $scope.gridHeight = gridUtil.elementHeight($elm); - } - - // Run initial canvas refresh - grid.refreshCanvas(); - - //add pinned containers for row headers support - //moved from pinning feature - var left = angular.element('
    '); - $elm.prepend(left); - uiGridCtrl.innerCompile(left); - - var right = angular.element('
    '); - $elm.append(right); - uiGridCtrl.innerCompile(right); - - - //if we add a left container after render, we need to watch and react - $scope.$watch(function () { return grid.hasLeftContainer();}, function (newValue, oldValue) { - if (newValue === oldValue) { - return; - } - - //todo: remove this code. it was commented out after moving from pinning because body is already float:left -// var bodyContainer = angular.element($elm[0].querySelectorAll('[container-id="body"]')); -// if (newValue){ -// bodyContainer.attr('style', 'float: left; position: inherit'); -// } -// else { -// bodyContainer.attr('style', 'float: left; position: relative'); -// } - - grid.refreshCanvas(true); - }); - - //if we add a right container after render, we need to watch and react - $scope.$watch(function () { return grid.hasRightContainer();}, function (newValue, oldValue) { - if (newValue === oldValue) { - return; - } - grid.refreshCanvas(true); - }); - - - // Resize the grid on window resize events - function gridResize($event) { - grid.gridWidth = $scope.gridWidth = gridUtil.elementWidth($elm); - grid.gridHeight = $scope.gridHeight = gridUtil.elementHeight($elm); - - grid.queueRefresh(); - } - - angular.element($window).on('resize', gridResize); - - // Unbind from window resize events when the grid is destroyed - $elm.on('$destroy', function () { - angular.element($window).off('resize', gridResize); - }); - } - }; - } - }; - } - ]); - -})(); - -(function(){ - 'use strict'; - - angular.module('ui.grid').directive('uiGridPinnedContainer', ['gridUtil', function (gridUtil) { - return { - restrict: 'EA', - replace: true, - template: '
    ', - scope: { - side: '=uiGridPinnedContainer' - }, - require: '^uiGrid', - compile: function compile() { - return { - post: function ($scope, $elm, $attrs, uiGridCtrl) { - // gridUtil.logDebug('ui-grid-pinned-container ' + $scope.side + ' link'); - - var grid = uiGridCtrl.grid; - - var myWidth = 0; - - $elm.addClass('ui-grid-pinned-container-' + $scope.side); - - function updateContainerWidth() { - if ($scope.side === 'left' || $scope.side === 'right') { - var cols = grid.renderContainers[$scope.side].visibleColumnCache; - var width = 0; - for (var i = 0; i < cols.length; i++) { - var col = cols[i]; - width += col.drawnWidth; - } - - myWidth = width; - } - } - - function updateContainerDimensions() { - // gridUtil.logDebug('update ' + $scope.side + ' dimensions'); - - var ret = ''; - - // Column containers - if ($scope.side === 'left' || $scope.side === 'right') { - updateContainerWidth(); - - // gridUtil.logDebug('myWidth', myWidth); - - // TODO(c0bra): Subtract sum of col widths from grid viewport width and update it - $elm.attr('style', null); - - var myHeight = grid.renderContainers.body.getViewportHeight(); // + grid.horizontalScrollbarHeight; - - ret += '.grid' + grid.id + ' .ui-grid-pinned-container-' + $scope.side + ', .grid' + grid.id + ' .ui-grid-pinned-container-' + $scope.side + ' .ui-grid-render-container-' + $scope.side + ' .ui-grid-viewport { width: ' + myWidth + 'px; height: ' + myHeight + 'px; } '; - } - - return ret; - } - - grid.renderContainers.body.registerViewportAdjuster(function (adjustment) { - if ( myWidth === 0 ){ - updateContainerWidth(); - } - // Subtract our own width - adjustment.width -= myWidth; - - return adjustment; - }); - - // Register style computation to adjust for columns in `side`'s render container - grid.registerStyleComputation({ - priority: 15, - func: updateContainerDimensions - }); - } - }; - } - }; - }]); -})(); -(function(){ - -angular.module('ui.grid') -.factory('Grid', ['$q', '$compile', '$parse', 'gridUtil', 'uiGridConstants', 'GridOptions', 'GridColumn', 'GridRow', 'GridApi', 'rowSorter', 'rowSearcher', 'GridRenderContainer', '$timeout', - function($q, $compile, $parse, gridUtil, uiGridConstants, GridOptions, GridColumn, GridRow, GridApi, rowSorter, rowSearcher, GridRenderContainer, $timeout) { - -/** - * @ngdoc object - * @name ui.grid.core.api:PublicApi - * @description Public Api for the core grid features - * - */ - -/** - * @ngdoc function - * @name ui.grid.class:Grid - * @description Grid is the main viewModel. Any properties or methods needed to maintain state are defined in - * * this prototype. One instance of Grid is created per Grid directive instance. - * @param {object} options Object map of options to pass into the grid. An 'id' property is expected. - */ - var Grid = function Grid(options) { - var self = this; - // Get the id out of the options, then remove it - if (options !== undefined && typeof(options.id) !== 'undefined' && options.id) { - if (!/^[_a-zA-Z0-9-]+$/.test(options.id)) { - throw new Error("Grid id '" + options.id + '" is invalid. It must follow CSS selector syntax rules.'); - } - } - else { - throw new Error('No ID provided. An ID must be given when creating a grid.'); - } - - self.id = options.id; - delete options.id; - - // Get default options - self.options = GridOptions.initialize( options ); - - self.headerHeight = self.options.headerRowHeight; - self.footerHeight = self.options.showFooter === true ? self.options.footerRowHeight : 0; - - self.rtl = false; - self.gridHeight = 0; - self.gridWidth = 0; - self.columnBuilders = []; - self.rowBuilders = []; - self.rowsProcessors = []; - self.columnsProcessors = []; - self.styleComputations = []; - self.viewportAdjusters = []; - self.rowHeaderColumns = []; - self.dataChangeCallbacks = {}; - - // self.visibleRowCache = []; - - // Set of 'render' containers for self grid, which can render sets of rows - self.renderContainers = {}; - - // Create a - self.renderContainers.body = new GridRenderContainer('body', self); - - self.cellValueGetterCache = {}; - - // Cached function to use with custom row templates - self.getRowTemplateFn = null; - - - //representation of the rows on the grid. - //these are wrapped references to the actual data rows (options.data) - self.rows = []; - - //represents the columns on the grid - self.columns = []; - - /** - * @ngdoc boolean - * @name isScrollingVertically - * @propertyOf ui.grid.class:Grid - * @description set to true when Grid is scrolling vertically. Set to false via debounced method - */ - self.isScrollingVertically = false; - - /** - * @ngdoc boolean - * @name isScrollingHorizontally - * @propertyOf ui.grid.class:Grid - * @description set to true when Grid is scrolling horizontally. Set to false via debounced method - */ - self.isScrollingHorizontally = false; - - var debouncedVertical = gridUtil.debounce(function () { - self.isScrollingVertically = false; - }, 300); - - var debouncedHorizontal = gridUtil.debounce(function () { - self.isScrollingHorizontally = false; - }, 300); - - - /** - * @ngdoc function - * @name flagScrollingVertically - * @methodOf ui.grid.class:Grid - * @description sets isScrollingVertically to true and sets it to false in a debounced function - */ - self.flagScrollingVertically = function() { - self.isScrollingVertically = true; - debouncedVertical(); - }; - - /** - * @ngdoc function - * @name flagScrollingHorizontally - * @methodOf ui.grid.class:Grid - * @description sets isScrollingHorizontally to true and sets it to false in a debounced function - */ - self.flagScrollingHorizontally = function() { - self.isScrollingHorizontally = true; - debouncedHorizontal(); - }; - - - - self.api = new GridApi(self); - - /** - * @ngdoc function - * @name refresh - * @methodOf ui.grid.core.api:PublicApi - * @description Refresh the rendered grid on screen. - * - */ - self.api.registerMethod( 'core', 'refresh', this.refresh ); - - /** - * @ngdoc function - * @name refreshRows - * @methodOf ui.grid.core.api:PublicApi - * @description Refresh the rendered grid on screen? Note: not functional at present - * @returns {promise} promise that is resolved when render completes? - * - */ - self.api.registerMethod( 'core', 'refreshRows', this.refreshRows ); - - /** - * @ngdoc function - * @name handleWindowResize - * @methodOf ui.grid.core.api:PublicApi - * @description Trigger a grid resize, normally this would be picked - * up by a watch on window size, but in some circumstances it is necessary - * to call this manually - * @returns {promise} promise that is resolved when render completes? - * - */ - self.api.registerMethod( 'core', 'handleWindowResize', this.handleWindowResize ); - - - /** - * @ngdoc function - * @name addRowHeaderColumn - * @methodOf ui.grid.core.api:PublicApi - * @description adds a row header column to the grid - * @param {object} column def - * - */ - self.api.registerMethod( 'core', 'addRowHeaderColumn', this.addRowHeaderColumn ); - - - /** - * @ngdoc function - * @name sortHandleNulls - * @methodOf ui.grid.core.api:PublicApi - * @description A null handling method that can be used when building custom sort - * functions - * @example - *
    -   *   mySortFn = function(a, b) {
    -   *   var nulls = $scope.gridApi.core.sortHandleNulls(a, b);
    -   *   if ( nulls !== null ){
    -   *     return nulls;
    -   *   } else {
    -   *     // your code for sorting here
    -   *   };
    -   * 
    - * @param {object} a sort value a - * @param {object} b sort value b - * @returns {number} null if there were no nulls/undefineds, otherwise returns - * a sort value that should be passed back from the sort function - * - */ - self.api.registerMethod( 'core', 'sortHandleNulls', rowSorter.handleNulls ); - - - /** - * @ngdoc function - * @name sortChanged - * @methodOf ui.grid.core.api:PublicApi - * @description The sort criteria on one or more columns has - * changed. Provides as parameters the grid and the output of - * getColumnSorting, which is an array of gridColumns - * that have sorting on them, sorted in priority order. - * - * @param {Grid} grid the grid - * @param {array} sortColumns an array of columns with - * sorts on them, in priority order - * - * @example - *
    -   *      gridApi.core.on.sortChanged( grid, sortColumns );
    -   * 
    - */ - self.api.registerEvent( 'core', 'sortChanged' ); - - /** - * @ngdoc method - * @name notifyDataChange - * @methodOf ui.grid.core.api:PublicApi - * @description Notify the grid that a data or config change has occurred, - * where that change isn't something the grid was otherwise noticing. This - * might be particularly relevant where you've changed values within the data - * and you'd like cell classes to be re-evaluated, or changed config within - * the columnDef and you'd like headerCellClasses to be re-evaluated. - * @param {Grid} grid the grid - * @param {string} type one of the - * uiGridConstants.dataChange values (ALL, ROW, EDIT, COLUMN), which tells - * us which refreshes to fire. - * - */ - self.api.registerMethod( 'core', 'notifyDataChange', this.notifyDataChange ); - - self.registerDataChangeCallback( self.columnRefreshCallback, [uiGridConstants.dataChange.COLUMN]); - self.registerDataChangeCallback( self.processRowsCallback, [uiGridConstants.dataChange.EDIT]); -}; - - /** - * @ngdoc function - * @name isRTL - * @methodOf ui.grid.class:Grid - * @description Returns true if grid is RightToLeft - */ - Grid.prototype.isRTL = function () { - return this.rtl; - }; - - - /** - * @ngdoc function - * @name registerColumnBuilder - * @methodOf ui.grid.class:Grid - * @description When the build creates columns from column definitions, the columnbuilders will be called to add - * additional properties to the column. - * @param {function(colDef, col, gridOptions)} columnsProcessor function to be called - */ - Grid.prototype.registerColumnBuilder = function registerColumnBuilder(columnBuilder) { - this.columnBuilders.push(columnBuilder); - }; - - /** - * @ngdoc function - * @name buildColumnDefsFromData - * @methodOf ui.grid.class:Grid - * @description Populates columnDefs from the provided data - * @param {function(colDef, col, gridOptions)} rowBuilder function to be called - */ - Grid.prototype.buildColumnDefsFromData = function (dataRows){ - this.options.columnDefs = gridUtil.getColumnsFromData(dataRows, this.options.excludeProperties); - }; - - /** - * @ngdoc function - * @name registerRowBuilder - * @methodOf ui.grid.class:Grid - * @description When the build creates rows from gridOptions.data, the rowBuilders will be called to add - * additional properties to the row. - * @param {function(row, gridOptions)} rowBuilder function to be called - */ - Grid.prototype.registerRowBuilder = function registerRowBuilder(rowBuilder) { - this.rowBuilders.push(rowBuilder); - }; - - - /** - * @ngdoc function - * @name registerDataChangeCallback - * @methodOf ui.grid.class:Grid - * @description When a data change occurs, the data change callbacks of the specified type - * will be called. The rules are: - * - * - when the data watch fires, that is considered a ROW change (the data watch only notices - * added or removed rows) - * - when the api is called to inform us of a change, the declared type of that change is used - * - when a cell edit completes, the EDIT callbacks are triggered - * - when the columnDef watch fires, the COLUMN callbacks are triggered - * - * For a given event: - * - ALL calls ROW, EDIT, COLUMN and ALL callbacks - * - ROW calls ROW and ALL callbacks - * - EDIT calls EDIT and ALL callbacks - * - COLUMN calls COLUMN and ALL callbacks - * - * @param {function(grid)} callback function to be called - * @param {array} types the types of data change you want to be informed of. Values from - * the uiGridConstants.dataChange values ( ALL, EDIT, ROW, COLUMN ). Optional and defaults to - * ALL - * @returns {string} uid of the callback, can be used to deregister it again - */ - Grid.prototype.registerDataChangeCallback = function registerDataChangeCallback(callback, types) { - var uid = gridUtil.nextUid(); - if ( !types ){ - types = [uiGridConstants.dataChange.ALL]; - } - if ( !Array.isArray(types)){ - gridUtil.logError("Expected types to be an array or null in registerDataChangeCallback, value passed was: " + types ); - } - this.dataChangeCallbacks[uid] = { callback: callback, types: types }; - return uid; - }; - - /** - * @ngdoc function - * @name deregisterDataChangeCallback - * @methodOf ui.grid.class:Grid - * @description Delete the callback identified by the id. - * @param {string} uid the uid of the function that is to be deregistered - */ - Grid.prototype.deregisterDataChangeCallback = function deregisterDataChangeCallback(uid) { - delete this.dataChangeCallbacks[uid]; - }; - - /** - * @ngdoc function - * @name callDataChangeCallbacks - * @methodOf ui.grid.class:Grid - * @description Calls the callbacks based on the type of data change that - * has occurred. Always calls the ALL callbacks, calls the ROW, EDIT, and COLUMN callbacks if the - * event type is matching, or if the type is ALL. - * @param {number} type the type of event that occurred - one of the - * uiGridConstants.dataChange values (ALL, ROW, EDIT, COLUMN) - */ - Grid.prototype.callDataChangeCallbacks = function callDataChangeCallbacks(type, options) { - angular.forEach( this.dataChangeCallbacks, function( callback, uid ){ - if ( callback.types.indexOf( uiGridConstants.dataChange.ALL ) !== -1 || - callback.types.indexOf( type ) !== -1 || - type === uiGridConstants.dataChange.ALL ) { - callback.callback( this ); - } - }, this); - }; - - /** - * @ngdoc function - * @name notifyDataChange - * @methodOf ui.grid.class:Grid - * @description Notifies us that a data change has occurred, used in the public - * api for users to tell us when they've changed data or some other event that - * our watches cannot pick up - * @param {Grid} grid the grid - * @param {string} type the type of event that occurred - one of the - * uiGridConstants.dataChange values (ALL, ROW, EDIT, COLUMN) - */ - Grid.prototype.notifyDataChange = function notifyDataChange(grid, type) { - var constants = uiGridConstants.dataChange; - if ( type === constants.ALL || - type === constants.COLUMN || - type === constants.EDIT || - type === constants.ROW ){ - grid.callDataChangeCallbacks( type ); - } else { - gridUtil.logError("Notified of a data change, but the type was not recognised, so no action taken, type was: " + type); - } - }; - - - /** - * @ngdoc function - * @name columnRefreshCallback - * @methodOf ui.grid.class:Grid - * @description refreshes the grid when a column refresh - * is notified, which triggers handling of the visible flag. - * This is called on uiGridConstants.dataChange.COLUMN, and is - * registered as a dataChangeCallback in grid.js - * @param {string} name column name - */ - Grid.prototype.columnRefreshCallback = function columnRefreshCallback( grid ){ - grid.refresh(); - }; - - - /** - * @ngdoc function - * @name processRowsCallback - * @methodOf ui.grid.class:Grid - * @description calls the row processors, specifically - * intended to reset the sorting when an edit is called, - * registered as a dataChangeCallback on uiGridConstants.dataChange.EDIT - * @param {string} name column name - */ - Grid.prototype.processRowsCallback = function processRowsCallback( grid ){ - grid.refreshRows(); - }; - - - /** - * @ngdoc function - * @name getColumn - * @methodOf ui.grid.class:Grid - * @description returns a grid column for the column name - * @param {string} name column name - */ - Grid.prototype.getColumn = function getColumn(name) { - var columns = this.columns.filter(function (column) { - return column.colDef.name === name; - }); - return columns.length > 0 ? columns[0] : null; - }; - - /** - * @ngdoc function - * @name getColDef - * @methodOf ui.grid.class:Grid - * @description returns a grid colDef for the column name - * @param {string} name column.field - */ - Grid.prototype.getColDef = function getColDef(name) { - var colDefs = this.options.columnDefs.filter(function (colDef) { - return colDef.name === name; - }); - return colDefs.length > 0 ? colDefs[0] : null; - }; - - /** - * @ngdoc function - * @name assignTypes - * @methodOf ui.grid.class:Grid - * @description uses the first row of data to assign colDef.type for any types not defined. - */ - /** - * @ngdoc property - * @name type - * @propertyOf ui.grid.class:GridOptions.columnDef - * @description the type of the column, used in sorting. If not provided then the - * grid will guess the type. Add this only if the grid guessing is not to your - * satisfaction. Refer to {@link ui.grid.service:GridUtil.guessType gridUtil.guessType} for - * a list of values the grid knows about. - * - */ - Grid.prototype.assignTypes = function(){ - var self = this; - self.options.columnDefs.forEach(function (colDef, index) { - - //Assign colDef type if not specified - if (!colDef.type) { - var col = new GridColumn(colDef, index, self); - var firstRow = self.rows.length > 0 ? self.rows[0] : null; - if (firstRow) { - colDef.type = gridUtil.guessType(self.getCellValue(firstRow, col)); - } - else { - gridUtil.logWarn('Unable to assign type from data, so defaulting to string'); - colDef.type = 'string'; - } - } - }); - }; - - /** - * @ngdoc function - * @name addRowHeaderColumn - * @methodOf ui.grid.class:Grid - * @description adds a row header column to the grid - * @param {object} column def - */ - Grid.prototype.addRowHeaderColumn = function addRowHeaderColumn(colDef) { - var self = this; - //self.createLeftContainer(); - var rowHeaderCol = new GridColumn(colDef, self.rowHeaderColumns.length, self); - rowHeaderCol.isRowHeader = true; - if (self.isRTL()) { - self.createRightContainer(); - rowHeaderCol.renderContainer = 'right'; - } - else { - self.createLeftContainer(); - rowHeaderCol.renderContainer = 'left'; - } - - // relies on the default column builder being first in array, as it is instantiated - // as part of grid creation - self.columnBuilders[0](colDef,rowHeaderCol,self.options) - .then(function(){ - rowHeaderCol.enableFiltering = false; - rowHeaderCol.enableSorting = false; - rowHeaderCol.enableHiding = false; - self.rowHeaderColumns.push(rowHeaderCol); - self.buildColumns() - .then( function() { - self.preCompileCellTemplates(); - self.handleWindowResize(); - }); - }); - }; - - /** - * @ngdoc function - * @name buildColumns - * @methodOf ui.grid.class:Grid - * @description creates GridColumn objects from the columnDefinition. Calls each registered - * columnBuilder to further process the column - * @returns {Promise} a promise to load any needed column resources - */ - Grid.prototype.buildColumns = function buildColumns() { - // gridUtil.logDebug('buildColumns'); - var self = this; - var builderPromises = []; - var headerOffset = self.rowHeaderColumns.length; - var i; - - // Remove any columns for which a columnDef cannot be found - // Deliberately don't use forEach, as it doesn't like splice being called in the middle - // Also don't cache columns.length, as it will change during this operation - for (i = 0; i < self.columns.length; i++){ - if (!self.getColDef(self.columns[i].name)) { - self.columns.splice(i, 1); - i--; - } - } - - //add row header columns to the grid columns array _after_ columns without columnDefs have been removed - self.rowHeaderColumns.forEach(function (rowHeaderColumn) { - self.columns.unshift(rowHeaderColumn); - }); - - - // look at each column def, and update column properties to match. If the column def - // doesn't have a column, then splice in a new gridCol - self.options.columnDefs.forEach(function (colDef, index) { - self.preprocessColDef(colDef); - var col = self.getColumn(colDef.name); - - if (!col) { - col = new GridColumn(colDef, gridUtil.nextUid(), self); - self.columns.splice(index + headerOffset, 0, col); - } - else { - col.updateColumnDef(colDef); - } - - self.columnBuilders.forEach(function (builder) { - builderPromises.push(builder.call(self, colDef, col, self.options)); - }); - }); - - return $q.all(builderPromises); - }; - -/** - * @ngdoc function - * @name preCompileCellTemplates - * @methodOf ui.grid.class:Grid - * @description precompiles all cell templates - */ - Grid.prototype.preCompileCellTemplates = function() { - var self = this; - this.columns.forEach(function (col) { - var html = col.cellTemplate.replace(uiGridConstants.MODEL_COL_FIELD, self.getQualifiedColField(col)); - html = html.replace(uiGridConstants.COL_FIELD, 'grid.getCellValue(row, col)'); - - - var compiledElementFn = $compile(html); - col.compiledElementFn = compiledElementFn; - - if (col.compiledElementFnDefer) { - col.compiledElementFnDefer.resolve(col.compiledElementFn); - } - }); - }; - - /** - * @ngdoc function - * @name getGridQualifiedColField - * @methodOf ui.grid.class:Grid - * @description Returns the $parse-able accessor for a column within its $scope - * @param {GridColumn} col col object - */ - Grid.prototype.getQualifiedColField = function (col) { - return 'row.entity.' + gridUtil.preEval(col.field); - }; - - /** - * @ngdoc function - * @name createLeftContainer - * @methodOf ui.grid.class:Grid - * @description creates the left render container if it doesn't already exist - */ - Grid.prototype.createLeftContainer = function() { - if (!this.hasLeftContainer()) { - this.renderContainers.left = new GridRenderContainer('left', this, { disableColumnOffset: true }); - } - }; - - /** - * @ngdoc function - * @name createRightContainer - * @methodOf ui.grid.class:Grid - * @description creates the right render container if it doesn't already exist - */ - Grid.prototype.createRightContainer = function() { - if (!this.hasRightContainer()) { - this.renderContainers.right = new GridRenderContainer('right', this, { disableColumnOffset: true }); - } - }; - - /** - * @ngdoc function - * @name hasLeftContainer - * @methodOf ui.grid.class:Grid - * @description returns true if leftContainer exists - */ - Grid.prototype.hasLeftContainer = function() { - return this.renderContainers.left !== undefined; - }; - - /** - * @ngdoc function - * @name hasLeftContainer - * @methodOf ui.grid.class:Grid - * @description returns true if rightContainer exists - */ - Grid.prototype.hasRightContainer = function() { - return this.renderContainers.right !== undefined; - }; - - - /** - * undocumented function - * @name preprocessColDef - * @methodOf ui.grid.class:Grid - * @description defaults the name property from field to maintain backwards compatibility with 2.x - * validates that name or field is present - */ - Grid.prototype.preprocessColDef = function preprocessColDef(colDef) { - if (!colDef.field && !colDef.name) { - throw new Error('colDef.name or colDef.field property is required'); - } - - //maintain backwards compatibility with 2.x - //field was required in 2.x. now name is required - if (colDef.name === undefined && colDef.field !== undefined) { - colDef.name = colDef.field; - } - - }; - - // Return a list of items that exist in the `n` array but not the `o` array. Uses optional property accessors passed as third & fourth parameters - Grid.prototype.newInN = function newInN(o, n, oAccessor, nAccessor) { - var self = this; - - var t = []; - for (var i = 0; i < n.length; i++) { - var nV = nAccessor ? n[i][nAccessor] : n[i]; - - var found = false; - for (var j = 0; j < o.length; j++) { - var oV = oAccessor ? o[j][oAccessor] : o[j]; - if (self.options.rowEquality(nV, oV)) { - found = true; - break; - } - } - if (!found) { - t.push(nV); - } - } - - return t; - }; - - /** - * @ngdoc function - * @name getRow - * @methodOf ui.grid.class:Grid - * @description returns the GridRow that contains the rowEntity - * @param {object} rowEntity the gridOptions.data array element instance - */ - Grid.prototype.getRow = function getRow(rowEntity) { - var rows = this.rows.filter(function (row) { - return row.entity === rowEntity; - }); - return rows.length > 0 ? rows[0] : null; - }; - - - /** - * @ngdoc function - * @name modifyRows - * @methodOf ui.grid.class:Grid - * @description creates or removes GridRow objects from the newRawData array. Calls each registered - * rowBuilder to further process the row - * - * Rows are identified using the gridOptions.rowEquality function - */ - Grid.prototype.modifyRows = function modifyRows(newRawData) { - var self = this, - i, - rowhash, - found, - newRow; - if ((self.options.useExternalSorting || self.getColumnSorting().length === 0) && newRawData.length > 0) { - var oldRowHash = self.rowHashMap; - if (!oldRowHash) { - oldRowHash = {get: function(){return null;}}; - } - self.createRowHashMap(); - rowhash = self.rowHashMap; - var wasEmpty = self.rows.length === 0; - self.rows.length = 0; - for (i = 0; i < newRawData.length; i++) { - var newRawRow = newRawData[i]; - found = oldRowHash.get(newRawRow); - if (found) { - newRow = found.row; - } - else { - newRow = self.processRowBuilders(new GridRow(newRawRow, i, self)); - } - self.rows.push(newRow); - rowhash.put(newRawRow, { - i: i, - entity: newRawRow, - row:newRow - }); - } - //now that we have data, it is save to assign types to colDefs - if (wasEmpty) { - self.assignTypes(); - } - } else { - if (self.rows.length === 0 && newRawData.length > 0) { - if (self.options.enableRowHashing) { - if (!self.rowHashMap) { - self.createRowHashMap(); - } - - for (i = 0; i < newRawData.length; i++) { - newRow = newRawData[i]; - - self.rowHashMap.put(newRow, { - i: i, - entity: newRow - }); - } - } - - self.addRows(newRawData); - //now that we have data, it is save to assign types to colDefs - self.assignTypes(); - } - else if (newRawData.length > 0) { - var unfoundNewRows, unfoundOldRows, unfoundNewRowsToFind; - - // If row hashing is turned on - if (self.options.enableRowHashing) { - // Array of new rows that haven't been found in the old rowset - unfoundNewRows = []; - // Array of new rows that we explicitly HAVE to search for manually in the old row set. They cannot be looked up by their identity (because it doesn't exist). - unfoundNewRowsToFind = []; - // Map of rows that have been found in the new rowset - var foundOldRows = {}; - // Array of old rows that have NOT been found in the new rowset - unfoundOldRows = []; - - // Create the row HashMap if it doesn't exist already - if (!self.rowHashMap) { - self.createRowHashMap(); - } - rowhash = self.rowHashMap; - - // Make sure every new row has a hash - for (i = 0; i < newRawData.length; i++) { - newRow = newRawData[i]; - - // Flag this row as needing to be manually found if it didn't come in with a $$hashKey - var mustFind = false; - if (!self.options.getRowIdentity(newRow)) { - mustFind = true; - } - - // See if the new row is already in the rowhash - found = rowhash.get(newRow); - // If so... - if (found) { - // See if it's already being used by as GridRow - if (found.row) { - // If so, mark this new row as being found - foundOldRows[self.options.rowIdentity(newRow)] = true; - } - } - else { - // Put the row in the hashmap with the index it corresponds to - rowhash.put(newRow, { - i: i, - entity: newRow - }); - - // This row has to be searched for manually in the old row set - if (mustFind) { - unfoundNewRowsToFind.push(newRow); - } - else { - unfoundNewRows.push(newRow); - } - } - } - - // Build the list of unfound old rows - for (i = 0; i < self.rows.length; i++) { - var row = self.rows[i]; - var hash = self.options.rowIdentity(row.entity); - if (!foundOldRows[hash]) { - unfoundOldRows.push(row); - } - } - } - - // Look for new rows - var newRows = unfoundNewRows || []; - - // The unfound new rows is either `unfoundNewRowsToFind`, if row hashing is turned on, or straight `newRawData` if it isn't - var unfoundNew = (unfoundNewRowsToFind || newRawData); - - // Search for real new rows in `unfoundNew` and concat them onto `newRows` - newRows = newRows.concat(self.newInN(self.rows, unfoundNew, 'entity')); - - self.addRows(newRows); - - var deletedRows = self.getDeletedRows((unfoundOldRows || self.rows), newRawData); - - for (i = 0; i < deletedRows.length; i++) { - if (self.options.enableRowHashing) { - self.rowHashMap.remove(deletedRows[i].entity); - } - - self.rows.splice( self.rows.indexOf(deletedRows[i]), 1 ); - } - } - // Empty data set - else { - // Reset the row HashMap - self.createRowHashMap(); - - // Reset the rows length! - self.rows.length = 0; - } - } - - var p1 = $q.when(self.processRowsProcessors(self.rows)) - .then(function (renderableRows) { - return self.setVisibleRows(renderableRows); - }); - - var p2 = $q.when(self.processColumnsProcessors(self.columns)) - .then(function (renderableColumns) { - return self.setVisibleColumns(renderableColumns); - }); - - return $q.all([p1, p2]); - }; - - Grid.prototype.getDeletedRows = function(oldRows, newRows) { - var self = this; - - var olds = oldRows.filter(function (oldRow) { - return !newRows.some(function (newItem) { - return self.options.rowEquality(newItem, oldRow.entity); - }); - }); - // var olds = self.newInN(newRows, oldRows, null, 'entity'); - // dump('olds', olds); - return olds; - }; - - /** - * Private Undocumented Method - * @name addRows - * @methodOf ui.grid.class:Grid - * @description adds the newRawData array of rows to the grid and calls all registered - * rowBuilders. this keyword will reference the grid - */ - Grid.prototype.addRows = function addRows(newRawData) { - var self = this; - - var existingRowCount = self.rows.length; - for (var i = 0; i < newRawData.length; i++) { - var newRow = self.processRowBuilders(new GridRow(newRawData[i], i + existingRowCount, self)); - - if (self.options.enableRowHashing) { - var found = self.rowHashMap.get(newRow.entity); - if (found) { - found.row = newRow; - } - } - - self.rows.push(newRow); - } - }; - - /** - * @ngdoc function - * @name processRowBuilders - * @methodOf ui.grid.class:Grid - * @description processes all RowBuilders for the gridRow - * @param {GridRow} gridRow reference to gridRow - * @returns {GridRow} the gridRow with all additional behavior added - */ - Grid.prototype.processRowBuilders = function processRowBuilders(gridRow) { - var self = this; - - self.rowBuilders.forEach(function (builder) { - builder.call(self, gridRow, self.options); - }); - - return gridRow; - }; - - /** - * @ngdoc function - * @name registerStyleComputation - * @methodOf ui.grid.class:Grid - * @description registered a styleComputation function - * - * If the function returns a value it will be appended into the grid's `
    " - ); - - - $templateCache.put('ui-grid/uiGridCell', - "
    {{COL_FIELD CUSTOM_FILTERS}}
    " - ); - - - $templateCache.put('ui-grid/uiGridColumnFilter', - "
  •  
     
  • " - ); - - - $templateCache.put('ui-grid/uiGridColumnMenu', - "
    " - ); - - - $templateCache.put('ui-grid/uiGridFooterCell', - "
    {{ col.getAggregationValue() }}
    " - ); - - - $templateCache.put('ui-grid/uiGridHeaderCell', - "
     
    {{ col.displayName CUSTOM_FILTERS }}  
     
     
    " - ); - - - $templateCache.put('ui-grid/uiGridMenu', - "
    " - ); - - - $templateCache.put('ui-grid/uiGridMenuItem', - "
  • {{ title }}
  • " - ); - - - $templateCache.put('ui-grid/uiGridRenderContainer', - "
    " - ); - - - $templateCache.put('ui-grid/uiGridViewport', - "
    " - ); - - - $templateCache.put('ui-grid/cellEditor', - "
    " - ); - - - $templateCache.put('ui-grid/dropdownEditor', - "
    " - ); - - - $templateCache.put('ui-grid/expandableRow', - "
    " - ); - - - $templateCache.put('ui-grid/expandableRowHeader', - "
    " - ); - - - $templateCache.put('ui-grid/expandableScrollFiller', - "
    " - ); - - - $templateCache.put('ui-grid/csvLink', - "LINK_LABEL" - ); - - - $templateCache.put('ui-grid/importerMenuItem', - "
  • " - ); - - - $templateCache.put('ui-grid/importerMenuItemContainer', - "
    " - ); - - - $templateCache.put('ui-grid/ui-grid-paging', - "
    0\">/ {{currentMaxPages}}
     {{sizesLabel}}
    0\">{{showingLow}} - {{showingHigh}} of {{grid.options.totalItems}} {{totalItemsLabel}}
    " - ); - - - $templateCache.put('ui-grid/columnResizer', - "
    " - ); - - - $templateCache.put('ui-grid/selectionHeaderCell', - "
     
    " - ); - - - $templateCache.put('ui-grid/selectionRowHeader', - "
    " - ); - - - $templateCache.put('ui-grid/selectionRowHeaderButtons', - "
     
    " - ); - - - $templateCache.put('ui-grid/selectionSelectAllButtons', - "
     
    " - ); - -}]); diff --git a/src/main/resources/META-INF/resources/designer/lib/ui-grid-unstable.min.js b/src/main/resources/META-INF/resources/designer/lib/ui-grid-unstable.min.js deleted file mode 100644 index 680a65a9..00000000 --- a/src/main/resources/META-INF/resources/designer/lib/ui-grid-unstable.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! ui-grid - v3.0.0-rc.16-234dd76 - 2014-11-22 -* Copyright (c) 2014 ; License: MIT */ -!function(){"use strict";angular.module("ui.grid.i18n",[]),angular.module("ui.grid",["ui.grid.i18n"])}(),function(){"use strict";angular.module("ui.grid").constant("uiGridConstants",{LOG_DEBUG_MESSAGES:!0,LOG_WARN_MESSAGES:!0,LOG_ERROR_MESSAGES:!0,CUSTOM_FILTERS:/CUSTOM_FILTERS/g,COL_FIELD:/COL_FIELD/g,MODEL_COL_FIELD:/MODEL_COL_FIELD/g,DISPLAY_CELL_TEMPLATE:/DISPLAY_CELL_TEMPLATE/g,TEMPLATE_REGEXP:/<.+>/,FUNC_REGEXP:/(\([^)]*\))?$/,DOT_REGEXP:/\./g,APOS_REGEXP:/'/g,BRACKET_REGEXP:/^(.*)((?:\s*\[\s*\d+\s*\]\s*)|(?:\s*\[\s*"(?:[^"\\]|\\.)*"\s*\]\s*)|(?:\s*\[\s*'(?:[^'\\]|\\.)*'\s*\]\s*))(.*)$/,COL_CLASS_PREFIX:"ui-grid-col",events:{GRID_SCROLL:"uiGridScroll",COLUMN_MENU_SHOWN:"uiGridColMenuShown",ITEM_DRAGGING:"uiGridItemDragStart"},keymap:{TAB:9,STRG:17,CTRL:17,CTRLRIGHT:18,CTRLR:18,SHIFT:16,RETURN:13,ENTER:13,BACKSPACE:8,BCKSP:8,ALT:18,ALTR:17,ALTRIGHT:17,SPACE:32,WIN:91,MAC:91,FN:null,UP:38,DOWN:40,LEFT:37,RIGHT:39,ESC:27,DEL:46,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123},ASC:"asc",DESC:"desc",filter:{STARTS_WITH:2,ENDS_WITH:4,EXACT:8,CONTAINS:16,GREATER_THAN:32,GREATER_THAN_OR_EQUAL:64,LESS_THAN:128,LESS_THAN_OR_EQUAL:256,NOT_EQUAL:512},aggregationTypes:{sum:2,count:4,avg:8,min:16,max:32},CURRENCY_SYMBOLS:["ƒ","$","£","$","¤","¥","៛","₩","₱","฿","₫"],dataChange:{ALL:"all",EDIT:"edit",ROW:"row",COLUMN:"column"},scrollbars:{NEVER:0,ALWAYS:1,WHEN_NEEDED:2}})}(),angular.module("ui.grid").directive("uiGridCell",["$compile","$parse","gridUtil","uiGridConstants",function(a,b,c,d){var e={priority:0,scope:!1,require:"?^uiGrid",compile:function(){return{pre:function(b,e,f,g){function h(){var a=b.col.compiledElementFn;a(b,function(a){e.append(a)})}if(g&&b.col.compiledElementFn)h();else if(g&&!b.col.compiledElementFn)b.col.getCompiledElementFn().then(function(a){a(b,function(a){e.append(a)})});else{var i=b.col.cellTemplate.replace(d.MODEL_COL_FIELD,"row.entity."+c.preEval(b.col.field)).replace(d.COL_FIELD,"grid.getCellValue(row, col)"),j=a(i)(b);e.append(j)}},post:function(a,b){b.addClass(a.col.getColClass(!1));var c,e=function(){var d=b;c&&(d.removeClass(c),c=null),c=angular.isFunction(a.col.cellClass)?a.col.cellClass(a.grid,a.row,a.col,a.rowRenderIndex,a.colRenderIndex):a.col.cellClass,d.addClass(c)};a.col.cellClass&&e();var f=a.grid.registerDataChangeCallback(e,[d.dataChange.COLUMN,d.dataChange.EDIT]),g=function(){a.grid.deregisterDataChangeCallback(f)};a.$on("$destroy",g)}}}};return e}]),function(){angular.module("ui.grid").service("uiGridColumnMenuService",["i18nService","uiGridConstants","gridUtil",function(a,b,c){var d={initialize:function(a,b){a.grid=b.grid,b.columnMenuScope=a,a.menuShown=!1},setColMenuItemWatch:function(a){var b=a.$watch("col.menuItems",function(b){"undefined"!=typeof b&&b&&angular.isArray(b)?(b.forEach(function(b){"undefined"!=typeof b.context&&b.context||(b.context={}),b.context.col=a.col}),a.menuItems=a.defaultMenuItems.concat(b)):a.menuItems=a.defaultMenuItems});a.$on("$destroy",b)},sortable:function(a){return a.grid.options.enableSorting&&"undefined"!=typeof a.col&&a.col&&a.col.enableSorting?!0:!1},isActiveSort:function(a,b){return"undefined"!=typeof a.col&&"undefined"!=typeof a.col.sort&&"undefined"!=typeof a.col.sort.direction&&a.col.sort.direction===b},suppressRemoveSort:function(a){return a.col&&a.col.colDef&&a.col.colDef.suppressRemoveSort?!0:!1},hideable:function(a){return"undefined"!=typeof a.col&&a.col&&a.col.colDef&&a.col.colDef.enableHiding===!1?!1:!0},getDefaultMenuItems:function(c){return[{title:a.getSafeText("sort.ascending"),icon:"ui-grid-icon-sort-alt-up",action:function(a){a.stopPropagation(),c.sortColumn(a,b.ASC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.ASC)}},{title:a.getSafeText("sort.descending"),icon:"ui-grid-icon-sort-alt-down",action:function(a){a.stopPropagation(),c.sortColumn(a,b.DESC)},shown:function(){return d.sortable(c)},active:function(){return d.isActiveSort(c,b.DESC)}},{title:a.getSafeText("sort.remove"),icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),c.unsortColumn()},shown:function(){return d.sortable(c)&&"undefined"!=typeof c.col&&"undefined"!=typeof c.col.sort&&"undefined"!=typeof c.col.sort.direction&&null!==c.col.sort.direction&&!d.suppressRemoveSort(c)}},{title:a.getSafeText("column.hide"),icon:"ui-grid-icon-cancel",shown:function(){return d.hideable(c)},action:function(a){a.stopPropagation(),c.hideColumn()}}]},getColumnElementPosition:function(a,b,d){var e={};return e.left=d[0].offsetLeft,e.top=d[0].offsetTop,e.offset=0,b.grid.options.offsetLeft&&(e.offset=b.grid.options.offsetLeft),e.height=c.elementHeight(d,!0),e.width=c.elementWidth(d,!0),e},repositionMenu:function(a,b,d,e,f){var g=e[0].querySelectorAll(".ui-grid-menu"),h=b.renderContainer?b.renderContainer:"body",i=(b.grid.renderContainers[h],c.closestElm(f,".ui-grid-render-container")),j=i.getBoundingClientRect().left-a.grid.element[0].getBoundingClientRect().left,k=i.querySelectorAll(".ui-grid-viewport")[0].scrollLeft,l=b.lastMenuWidth?b.lastMenuWidth:a.lastMenuWidth?a.lastMenuWidth:170,m=b.lastMenuPaddingRight?b.lastMenuPaddingRight:a.lastMenuPaddingRight?a.lastMenuPaddingRight:10;if(0!==g.length){var n=g[0].querySelectorAll(".ui-grid-menu-mid");0===n.length||angular.element(n).hasClass("ng-hide")||(l=c.elementWidth(g,!0),a.lastMenuWidth=l,b.lastMenuWidth=l,m=parseInt(c.getStyles(angular.element(g)[0]).paddingRight,10),a.lastMenuPaddingRight=m,b.lastMenuPaddingRight=m)}var o=d.left+j-k+d.width-l+m;og||h(a)}),a.$on("$destroy",function(){b.cancel(p)})),a.filterable){var r=[];angular.forEach(a.col.filters,function(b,c){r.push(a.$watch("col.filters["+c+"].term",function(a,b){a!==b&&(i.grid.api.core.raise.filterChanged(),i.grid.refresh().then(function(){i.prevScrollArgs&&i.prevScrollArgs.y&&i.prevScrollArgs.y.percentage&&i.fireScrollingEvent({y:{percentage:i.prevScrollArgs.y.percentage}})}))}))}),a.$on("$destroy",function(){angular.forEach(r,function(a){a()})})}}}}};return h}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridHeader",["$templateCache","$compile","uiGridConstants","gridUtil","$timeout",function(a,b,c,d){var e="ui-grid/ui-grid-header",f="ui-grid/ui-grid-no-header";return{restrict:"EA",replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:!0,compile:function(){return{pre:function(a,c,g,h){var i=h[0],j=h[1];a.grid=i.grid,a.colContainer=j.colContainer,a.getExternalScopes=i.getExternalScopes,j.header=c,j.colContainer.header=c;var k;k=a.grid.options.hideHeader?f:a.grid.options.headerTemplate?a.grid.options.headerTemplate:e,d.getTemplate(k).then(function(d){var e=angular.element(d),f=b(e)(a);if(c.replaceWith(f),j.header=f,j.colContainer.header=f,c=f,j){var g=c[0].getElementsByClassName("ui-grid-header-viewport")[0];g&&(j.headerViewport=g)}})},post:function(a,b,c,e){function f(){var a=h.colContainer.getViewportWidth();"undefined"!=typeof g.grid.verticalScrollbarWidth&&void 0!==g.grid.verticalScrollbarWidth&&g.grid.verticalScrollbarWidth>0&&(a+=g.grid.verticalScrollbarWidth);var b=h.colContainer.visibleColumnCache,c=0,e=0,f=0,j=a,k=!1,l=function(b){return"manual"===b.widthType?+b.width:"percent"===b.widthType?parseInt(b.width.replace(/%/g,""),10)*a/100:"auto"===b.widthType?(0===f&&(f=parseInt(j/e,10)),b.width.length*f):void 0};b.forEach(function(a){a.widthType=null,isFinite(+a.width)?a.widthType="manual":d.endsWith(a.width,"%")?(a.widthType="percent",k=!0):angular.isString(a.width)&&-1!==a.width.indexOf("*")&&(a.widthType="auto",e+=a.width.length,k=!0)});var m=["manual","percent","auto"];if(b.filter(function(a){return a.visible&&a.widthType}).sort(function(a,b){return m.indexOf(a.widthType)-m.indexOf(b.widthType)}).forEach(function(a){var b=l(a);a.minWidth&&(b=Math.max(b,a.minWidth)),a.maxWidth&&(b=Math.min(b,a.maxWidth)),a.drawnWidth=Math.floor(b),c+=a.drawnWidth,j-=a.drawnWidth}),k&&j>0&&c>0&&a>c){var n=function(a){j>0&&("auto"===a.widthType||"percent"===a.widthType)&&(a.drawnWidth=a.drawnWidth+1,c+=1,j--)},o=0;do o=j,b.forEach(n);while(j>0&&j!==o)}c=Math.max(c,a);var p="";return b.forEach(function(a){p+=a.getColClassDefinition()}),i.verticalScrollbarWidth&&(c+=i.verticalScrollbarWidth),b.length>0&&(b[b.length-1].headerWidth=b[b.length-1].drawnWidth-30),h.colContainer.canvasWidth=parseInt(c,10),p}var g=e[0],h=e[1],i=g.grid;d.disableAnimations(b),h.header=b;var j=b[0].getElementsByClassName("ui-grid-header-viewport")[0];j&&(h.headerViewport=j),g&&g.grid.registerStyleComputation({priority:5,func:f})}}}}}])}(),function(){angular.module("ui.grid").service("uiGridGridMenuService",["gridUtil","i18nService",function(a,b){var c={initialize:function(a,b){b.gridMenuScope=a,a.grid=b,a.registeredMenuItems=[],a.$on("$destroy",function(){a.grid&&a.grid.gridMenuScope&&(a.grid.gridMenuScope=null),a.grid&&(a.grid=null),a.registeredMenuItems&&(a.registeredMenuItems=null)}),a.registeredMenuItems=[],b.api.registerMethod("core","addToGridMenu",c.addToGridMenu),b.api.registerMethod("core","removeFromGridMenu",c.removeFromGridMenu)},addToGridMenu:function(b,c){angular.isArray(c)?b.gridMenuScope?(b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems?b.gridMenuScope.registeredMenuItems:[],b.gridMenuScope.registeredMenuItems=b.gridMenuScope.registeredMenuItems.concat(c)):a.logError("Asked to addToGridMenu, but gridMenuScope not present. Timing issue? Please log issue with ui-grid"):a.logError("addToGridMenu: menuItems must be an array, and is not, not adding any items")},removeFromGridMenu:function(b,c){var d=-1;b&&b.gridMenuScope&&b.gridMenuScope.registeredMenuItems.forEach(function(b,e){b.id===c&&(d>-1?a.logError("removeFromGridMenu: found multiple items with the same id, removing only the last"):d=e)}),d>-1&&b.gridMenuScope.registeredMenuItems.splice(d,1)},getMenuItems:function(b){var d=[];return b.grid.options.gridMenuCustomItems&&(angular.isArray(b.grid.options.gridMenuCustomItems)?d=d.concat(b.grid.options.gridMenuCustomItems):a.logError("gridOptions.gridMenuCustomItems must be an array, and is not")),d=d.concat(b.registeredMenuItems),b.grid.options.gridMenuShowHideColumns!==!1&&(d=d.concat(c.showHideColumns(b))),d},showHideColumns:function(a){var d=[];return a.grid.options.columnDefs&&0!==a.grid.options.columnDefs.length&&0!==a.grid.columns.length?(d.push({title:b.getSafeText("gridMenu.columns")}),a.grid.options.gridMenuTitleFilter=a.grid.options.gridMenuTitleFilter?a.grid.options.gridMenuTitleFilter:function(a){return a},a.grid.options.columnDefs.forEach(function(b){if(b.enableHiding!==!1){var e={icon:"ui-grid-icon-ok",action:function(a){a.stopPropagation(),c.toggleColumnVisibility(this.context.gridCol)},shown:function(){return this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible},context:{gridCol:a.grid.getColumn(b.name||b.field)}};c.setMenuItemTitle(e,b,a.grid),d.push(e),e={icon:"ui-grid-icon-cancel",action:function(a){a.stopPropagation(),c.toggleColumnVisibility(this.context.gridCol)},shown:function(){return!(this.context.gridCol.colDef.visible===!0||void 0===this.context.gridCol.colDef.visible)},context:{gridCol:a.grid.getColumn(b.name||b.field)}},c.setMenuItemTitle(e,b,a.grid),d.push(e)}}),d):d},setMenuItemTitle:function(b,c,d){var e=d.options.gridMenuTitleFilter(c.displayName||c.name||c.field);"string"==typeof e?b.title=e:e.then?(b.title="",e.then(function(a){b.title=a},function(a){b.title=a})):(a.logError("Expected gridMenuTitleFilter to return a string or a promise, it has returned neither, bad config"),b.title="badconfig")},toggleColumnVisibility:function(a){a.colDef.visible=!(a.colDef.visible===!0||void 0===a.colDef.visible),a.grid.refresh()}};return c}]).directive("uiGridMenuButton",["gridUtil","uiGridConstants","uiGridGridMenuService",function(a,b,c){return{priority:0,scope:!0,require:["?^uiGrid"],templateUrl:"ui-grid/ui-grid-menu-button",replace:!0,link:function(a,b,d,e){var f=e[0];c.initialize(a,f.grid),a.shown=!1,a.toggleMenu=function(){a.shown?(a.$broadcast("hide-menu"),a.shown=!1):(a.menuItems=c.getMenuItems(a),a.$broadcast("show-menu"),a.shown=!0)},a.$on("menu-hidden",function(){a.shown=!1})}}}])}(),function(){angular.module("ui.grid").directive("uiGridMenu",["$compile","$timeout","$window","$document","gridUtil","uiGridConstants",function(a,b,c,d,e,f){var g={priority:0,scope:{menuItems:"=",autoHide:"=?"},require:"?^uiGrid",templateUrl:"ui-grid/uiGridMenu",replace:!1,link:function(a){var d=this;d.showMenu=a.showMenu=function(c,d){a.shown?a.shownMid||(a.shownMid=!0,a.$emit("menu-shown")):(a.shown=!0,b(function(){a.shownMid=!0,a.$emit("menu-shown")}));var f="click";d&&d.originalEvent&&d.originalEvent.type&&"touchstart"===d.originalEvent.type&&(f=d.originalEvent.type),angular.element(document).off("click touchstart",e),b(function(){angular.element(document).on(f,e)})},d.hideMenu=a.hideMenu=function(){a.shown&&(a.shownMid=!1,b(function(){a.shownMid||(a.shown=!1,a.$emit("menu-hidden"))},200)),angular.element(document).off("click touchstart",e)},a.$on("hide-menu",function(b,c){a.hideMenu(b,c)}),a.$on("show-menu",function(b,c){a.showMenu(b,c)});var e=function(){a.shown&&a.$apply(function(){a.hideMenu()})};("undefined"==typeof a.autoHide||void 0===a.autoHide)&&(a.autoHide=!0),a.autoHide&&angular.element(c).on("resize",e),a.$on("$destroy",function(){angular.element(document).off("click touchstart",e)}),a.$on("$destroy",function(){angular.element(c).off("resize",e)}),a.$on("$destroy",a.$on(f.events.GRID_SCROLL,e)),a.$on("$destroy",a.$on(f.events.ITEM_DRAGGING,e))},controller:["$scope","$element","$attrs",function(){}]};return g}]).directive("uiGridMenuItem",["gridUtil","$compile","i18nService",function(a,b,c){var d={priority:0,scope:{title:"=",active:"=",action:"=",icon:"=",shown:"=",context:"=",templateUrl:"="},require:["?^uiGrid","^uiGridMenu"],templateUrl:"ui-grid/uiGridMenuItem",replace:!0,compile:function(){return{pre:function(c,d,e,f){f[0],f[1];c.templateUrl&&a.getTemplate(c.templateUrl).then(function(a){var e=angular.element(a),f=b(e)(c);d.replaceWith(f)})},post:function(a,b,d,e){{var f=e[0];e[1]}("undefined"==typeof a.shown||null===a.shown)&&(a.shown=function(){return!0}),a.itemShown=function(){var b={};return a.context&&(b.context=a.context),"undefined"!=typeof f&&f&&(b.grid=f.grid),a.shown.call(b)},a.itemAction=function(b,c){if(b.stopPropagation(),"function"==typeof a.action){var d={};a.context&&(d.context=a.context),"undefined"!=typeof f&&f&&(d.grid=f.grid),a.action.call(d,b,c),a.$emit("hide-menu")}},a.i18n=c.get()}}}};return d}])}(),function(){angular.module("ui.grid").directive("uiGridNativeScrollbar",["$timeout","$document","uiGridConstants","gridUtil",function(a,b,c,d){var e=d.getScrollbarWidth();angular.isNumber(e)||(e=0);var f=d.detectBrowser();return"ie"===f&&(e+=1),{scope:{type:"@"},require:["^uiGrid","^uiGridRenderContainer"],link:function(a,b,f,g){function h(){var a=n.getViewportHeight(),b=n.getCanvasHeight(),d=o.headerHeight?o.headerHeight:p.headerHeight,e=p.options.enableVerticalScrollbar===c.scrollbars.WHEN_NEEDED?"overflow-y:auto;":"",f=".grid"+p.id+" .ui-grid-render-container-"+m.containerId+" .ui-grid-native-scrollbar.vertical .contents { height: "+b+"px; }";return f+="\n .grid"+p.id+" .ui-grid-render-container-"+m.containerId+" .ui-grid-native-scrollbar.vertical { height: "+a+"px; top: "+d+"px;"+e+"}",s=b,f}function i(){var a=o.getCanvasWidth(),b=u;p.options.showFooter&&(b-=1);var d=o.getViewportAdjustment();b-=d.height;var e=p.options.enableHorizontalScrollbar===c.scrollbars.WHEN_NEEDED?"overflow-x:auto":"",f=".grid"+p.id+" .ui-grid-render-container-"+m.containerId+" .ui-grid-native-scrollbar.horizontal { bottom: "+b+"px;"+e+" }";return f+=".grid"+p.id+" .ui-grid-render-container-"+m.containerId+" .ui-grid-native-scrollbar.horizontal .contents { width: "+a+"px; }",s=a,f}function j(){if("vertical"===a.type){p.flagScrollingVertically();var c=b[0].scrollTop,e=n.getCanvasHeight()-n.getViewportHeight();p.horizontalScrollbarHeight&&p.horizontalScrollbarHeight>0&&(e-=l.grid.horizontalScrollbarHeight);var f=c/e;f>1&&(f=1),0>f&&(f=0);var g={target:b,y:{percentage:f}};a.scrollSource?a.scrollSource=null:l.fireScrollingEvent(g),r=c}else if("horizontal"===a.type){p.flagScrollingHorizontally();var h=d.normalizeScrollLeft(b),i=o.getCanvasWidth()-o.getViewportWidth(),j=h/i,k={target:b,x:{percentage:j}};a.scrollSource?a.scrollSource=null:l.fireScrollingEvent(k),r=h}}function k(c,e){if(!e.target||e.target!==b&&!angular.element(e.target).hasClass("ui-grid-native-scrollbar"))if(a.scrollSource=e.target,"vertical"===a.type){if(e.y&&"undefined"!=typeof e.y.percentage&&void 0!==e.y.percentage){p.flagScrollingVertically();var f=n.getCanvasHeight()-n.getViewportHeight(),g=Math.max(0,e.y.percentage*f);b[0].scrollTop=g}}else if("horizontal"===a.type&&e.x&&"undefined"!=typeof e.x.percentage&&void 0!==e.x.percentage){p.flagScrollingHorizontally();var h=o.getCanvasWidth()-o.getViewportWidth(),i=Math.max(0,e.x.percentage*h);b[0].scrollLeft=d.denormalizeScrollLeft(b,i)}}var l=g[0],m=g[1],n=m.rowContainer,o=m.colContainer,p=l.grid,q=angular.element('
     
    ');b.addClass("ui-grid-native-scrollbar");var r,s=0;"vertical"===a.type?(b.css("width",e+"px"),b.addClass("vertical"),p.verticalScrollbarWidth=p.options.enableVerticalScrollbar===c.scrollbars.WHEN_NEEDED?0:e,o.verticalScrollbarWidth=p.verticalScrollbarWidth,r=b[0].scrollTop):"horizontal"===a.type&&(b.css("height",e+"px"),b.addClass("horizontal"),p.horizontalScrollbarHeight=p.options.enableHorizontalScrollbar===c.scrollbars.WHEN_NEEDED?0:e,n.horizontalScrollbarHeight=p.horizontalScrollbarHeight,r=d.normalizeScrollLeft(b)),b.append(q),"vertical"===a.type?s=d.elementHeight(b):"horizontal"===a.type&&(s=d.elementWidth(b));var t=d.closestElm(b,".ui-grid"),u=d.getBorderSize(t,"bottom");"vertical"===a.type?p.registerStyleComputation({priority:6,func:h}):"horizontal"===a.type&&p.registerStyleComputation({priority:6,func:i}),a.scrollSource=null,b.on("scroll",j),b.on("$destroy",function(){b.off("scroll")});var v=a.$on(c.events.GRID_SCROLL,k);a.$on("$destroy",v)}}}])}(),function(){"use strict";var a=angular.module("ui.grid");a.directive("uiGridRenderContainer",["$timeout","$document","uiGridConstants","gridUtil",function(a,b,c,d){return{replace:!0,transclude:!0,templateUrl:"ui-grid/uiGridRenderContainer",require:["^uiGrid","uiGridRenderContainer"],scope:{containerId:"=",rowContainerName:"=",colContainerName:"=",bindScrollHorizontal:"=",bindScrollVertical:"=",enableVerticalScrollbar:"=",enableHorizontalScrollbar:"="},controller:"uiGridRenderContainer as RenderContainer",compile:function(){return{pre:function(a,b,c,d){var e=d[0],f=d[1],g=a.grid=e.grid;if(!a.rowContainerName)throw"No row render container name specified";if(!a.colContainerName)throw"No column render container name specified";if(!g.renderContainers[a.rowContainerName])throw"Row render container '"+a.rowContainerName+"' is not registered.";if(!g.renderContainers[a.colContainerName])throw"Column render container '"+a.colContainerName+"' is not registered.";var h=a.rowContainer=g.renderContainers[a.rowContainerName],i=a.colContainer=g.renderContainers[a.colContainerName];f.containerId=a.containerId,f.rowContainer=h,f.colContainer=i},post:function(e,f,g,h){function i(a,b){if(b.y&&e.bindScrollVertical){n.prevScrollArgs=b;var c=p.getCanvasHeight()-p.getViewportHeight();o.horizontalScrollbarHeight&&o.horizontalScrollbarHeight>0&&(c+=o.horizontalScrollbarHeight);var f,g=n.viewport[0].scrollTop;if("undefined"!=typeof b.y.percentage&&void 0!==b.y.percentage)f=b.y.percentage;else{if("undefined"==typeof b.y.pixels||void 0===b.y.pixels)throw new Error("No percentage or pixel value provided for scroll event Y axis");f=b.y.percentage=(g+b.y.pixels)/c}var h=Math.max(0,f*c);n.viewport[0].scrollTop=h,n.prevScrollArgs.y.pixels=h-g}if(b.x&&e.bindScrollHorizontal){n.prevScrollArgs=b;var i,j=q.getCanvasWidth()-q.getViewportWidth(),k=d.normalizeScrollLeft(n.viewport);if("undefined"!=typeof b.x.percentage&&void 0!==b.x.percentage)i=b.x.percentage;else{if("undefined"==typeof b.x.pixels||void 0===b.x.pixels)throw new Error("No percentage or pixel value provided for scroll event X axis");i=b.x.percentage=(k+b.x.pixels)/j}var l=Math.max(0,i*j);n.viewport[0].scrollLeft=d.denormalizeScrollLeft(n.viewport,l),n.prevScrollLeft=l,n.headerViewport&&(n.headerViewport.scrollLeft=d.denormalizeScrollLeft(n.headerViewport,l)),n.footerViewport&&(n.footerViewport.scrollLeft=d.denormalizeScrollLeft(n.footerViewport,l)),n.prevScrollArgs.x.pixels=l-k}}function j(a){a.originalEvent&&(a=a.originalEvent),a.preventDefault();var b,c,d,e;d=a.targetTouches[0].screenX,e=a.targetTouches[0].screenY,b=-(d-v),c=-(e-u),y=1>c?-1:1,z=1>b?-1:1,c*=2,b*=2;var f={target:a.target};if(0!==c){var g=(w+c)/(p.getCanvasHeight()-p.getViewportHeight());g>1?g=1:0>g&&(g=0),f.y={percentage:g,pixels:c}}if(0!==b){var h=(x+b)/(q.getCanvasWidth()-q.getViewportWidth());h>1?h=1:0>h&&(h=0),f.x={percentage:h,pixels:b}}m.fireScrollingEvent(f)}function k(c){function d(){a(function(){var a={target:c.target};if(0!==u){var b=(n.viewport[0].scrollTop+u)/(p.getCanvasHeight()-p.getViewportHeight());a.y={percentage:b,pixels:u}}if(0!==v){var e=(n.viewport[0].scrollLeft+v)/(q.getCanvasWidth()-q.getViewportWidth());a.x={percentage:e,pixels:v}}m.fireScrollingEvent(a),s-=1,u/=2,v/=2,s>0?d():m.scrollbars.forEach(function(a){a.removeClass("ui-grid-scrollbar-visible"),a.removeClass("ui-grid-scrolling")})},r)}c.originalEvent&&(c=c.originalEvent),c.preventDefault(),b.unbind("touchmove",j),b.unbind("touchend",k),b.unbind("touchcancel",k);var e=n.viewport[0].scrollTop,f=n.viewport[0].scrollTop,g=Math.abs(e-w),h=Math.abs(f-x),i=new Date-t,l=g/i,o=h/i,r=63,s=8,u=120*y*l,v=120*z*o;d()}function l(){var a="",b=q.getCanvasWidth(),c=q.getViewportWidth(),d=p.getCanvasHeight(),f=p.getViewportHeight(),g=q.getHeaderViewportWidth(),h=q.getHeaderViewportWidth();return a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+e.containerId+" .ui-grid-canvas { width: "+b+"px; height: "+d+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+e.containerId+" .ui-grid-header-canvas { width: "+b+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+e.containerId+" .ui-grid-viewport { width: "+c+"px; height: "+f+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+e.containerId+" .ui-grid-header-viewport { width: "+g+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+e.containerId+" .ui-grid-footer-canvas { width: "+b+"px; }",a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+e.containerId+" .ui-grid-footer-viewport { width: "+h+"px; }",void 0!==r.explicitHeaderHeight&&null!==r.explicitHeaderHeight&&r.explicitHeaderHeight>0?a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+e.containerId+" .ui-grid-header-cell { height: "+r.explicitHeaderHeight+"px; }":void 0!==r.innerHeaderHeight&&null!==r.innerHeaderHeight&&r.innerHeaderHeight>0&&(a+="\n .grid"+m.grid.id+" .ui-grid-render-container-"+e.containerId+" .ui-grid-header-cell { height: "+r.innerHeaderHeight+"px; }"),a}var m=h[0],n=h[1],o=m.grid,p=n.rowContainer,q=n.colContainer,r=o.renderContainers[e.containerId];f.addClass("ui-grid-render-container-"+e.containerId);var s;(e.bindScrollHorizontal||e.bindScrollVertical)&&(s=e.$on(c.events.GRID_SCROLL,i)),f.bind("wheel mousewheel DomMouseScroll MozMousePixelScroll",function(a){a.preventDefault();var b=d.normalizeWheelEvent(a),c={target:f};if(0!==b.deltaY){var e=-120*b.deltaY,g=(n.viewport[0].scrollTop+e)/(p.getCanvasHeight()-p.getViewportHeight());0>g?g=0:g>1&&(g=1),c.y={percentage:g,pixels:e}}if(0!==b.deltaX){var h=-120*b.deltaX,i=d.normalizeScrollLeft(n.viewport),j=(i+h)/(q.getCanvasWidth()-q.getViewportWidth());0>j?j=0:j>1&&(j=1),c.x={percentage:j,pixels:h}}m.fireScrollingEvent(c)});var t,u=0,v=0,w=0,x=0,y=1,z=1;d.isTouchEnabled()&&f.bind("touchstart",function(a){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),m.scrollbars.forEach(function(a){a.addClass("ui-grid-scrollbar-visible"),a.addClass("ui-grid-scrolling")}),t=new Date,u=a.targetTouches[0].screenY,v=a.targetTouches[0].screenX,w=n.viewport[0].scrollTop,x=n.viewport[0].scrollLeft,b.on("touchmove",j),b.on("touchend touchcancel",k)}),f.bind("$destroy",function(){s(),f.unbind("keydown"),["touchstart","touchmove","touchend","keydown","wheel","mousewheel","DomMouseScroll","MozMousePixelScroll"].forEach(function(a){f.unbind(a)})}),m.grid.registerStyleComputation({priority:6,func:l})}}}}}]),a.controller("uiGridRenderContainer",["$scope","gridUtil",function(a){var b=this;b.rowStyle=function(c){var d=a.grid.renderContainers[a.containerId],e={};if(!d.disableRowOffset&&0===c&&0!==b.currentTopRow){var f=a.rowContainer.currentTopRow*a.rowContainer.visibleRowCache[a.rowContainer.currentTopRow].height;e["margin-top"]=f+"px"}return d.disableColumnOffset||0===a.colContainer.currentFirstColumn||(a.grid.isRTL()?e["margin-right"]=a.colContainer.columnOffset+"px":e["margin-left"]=a.colContainer.columnOffset+"px"),e},b.columnStyle=function(b){var c=a.grid.renderContainers[a.containerId];if(!c.disableColumnOffset&&0===b&&0!==a.colContainer.currentFirstColumn){var d=a.colContainer.columnOffset;return a.grid.isRTL()?{"margin-right":d+"px"}:{"margin-left":d+"px"}}return null}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridRow",["gridUtil",function(){return{replace:!0,require:["^uiGrid","^uiGridRenderContainer"],scope:{row:"=uiGridRow",rowRenderIndex:"="},compile:function(){return{pre:function(a,b,c,d){var e=d[0],f=d[1],g=e.grid;a.grid=e.grid,a.colContainer=f.colContainer,g.getRowTemplateFn.then(function(c){c(a,function(a){b.replaceWith(a)})})},post:function(a,b,c,d){{var e=d[0];d[1]}a.getExternalScopes=e.getExternalScopes}}}}}])}(),function(){angular.module("ui.grid").directive("uiGridStyle",["gridUtil","$interpolate",function(a,b){return{link:function(a,c){var d=b(c.text(),!0);d&&a.$watch(d,function(a){c.text(a)})}}}])}(),function(){"use strict"; -angular.module("ui.grid").directive("uiGridViewport",["gridUtil",function(a){return{replace:!0,scope:{},templateUrl:"ui-grid/uiGridViewport",require:["^uiGrid","^uiGridRenderContainer"],link:function(b,c,d,e){var f=e[0],g=e[1];b.containerCtrl=g;{var h=g.rowContainer,i=g.colContainer;f.grid}b.grid=f.grid,b.rowContainer=g.rowContainer,b.colContainer=g.colContainer,g.viewport=c,c.on("scroll",function(){var d=c[0].scrollTop,e=a.normalizeScrollLeft(c),g=-1,j=-1;if(e!==i.prevScrollLeft){var k=(e-i.prevScrollLeft,i.getCanvasWidth()-i.getViewportWidth());g=e/k,i.adjustScrollHorizontal(e,g)}if(d!==h.prevScrollTop){var l=(d-h.prevScrollTop,h.getCanvasHeight()-h.getViewportHeight());j=d/l,j>1&&(j=1),0>j&&(j=0),h.adjustScrollVertical(d,j)}if(!b.grid.isScrollingVertically&&!b.grid.isScrollingHorizontally){var m={};g>-1&&(m.x={percentage:g}),j>-1&&(m.y={percentage:j}),f.fireScrollingEvent(m)}})}}}])}(),function(){angular.module("ui.grid").directive("uiGridVisible",function(){return function(a,b,c){a.$watch(c.uiGridVisible,function(a){b[a?"removeClass":"addClass"]("ui-grid-invisible")})}})}(),function(){"use strict";angular.module("ui.grid").controller("uiGridController",["$scope","$element","$attrs","gridUtil","$q","uiGridConstants","$templateCache","gridClassFactory","$timeout","$parse","$compile",function(a,b,c,d,e,f,g,h,i,j,k){function l(a,b){a&&a!==b&&(n.grid.options.columnDefs=a,n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates(),n.grid.callDataChangeCallbacks(f.dataChange.COLUMN)}))}function m(b){var d=[];b&&(n.grid.columns.length===(n.grid.rowHeaderColumns?n.grid.rowHeaderColumns.length:0)&&!c.uiGridColumns&&0===n.grid.options.columnDefs.length&&b.length>0&&n.grid.buildColumnDefsFromData(b),(n.grid.options.columnDefs.length>0||b.length>0)&&d.push(n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates()})),e.all(d).then(function(){n.grid.modifyRows(b).then(function(){n.grid.redrawInPlace(),a.$evalAsync(function(){n.grid.refreshCanvas(!0),n.grid.callDataChangeCallbacks(f.dataChange.ROW)})})}))}var n=this;n.grid=h.createGrid(a.uiGrid),b.addClass("grid"+n.grid.id),n.grid.rtl="rtl"===d.getStyles(b[0]).direction,n.getExternalScopes=a.getExternalScopes,a.grid=n.grid,c.uiGridColumns&&c.$observe("uiGridColumns",function(a){n.grid.options.columnDefs=a,n.grid.buildColumns().then(function(){n.grid.preCompileCellTemplates(),n.grid.refreshCanvas(!0)})});var o;o=angular.isString(a.uiGrid.data)?a.$parent.$watchCollection(a.uiGrid.data,m):a.$parent.$watchCollection(function(){return a.uiGrid.data},m);var p=a.$parent.$watchCollection(function(){return a.uiGrid.columnDefs},l);a.$on("$destroy",function(){o(),p()}),a.$watch(function(){return n.grid.styleComputations},function(){n.grid.refreshCanvas(!0)}),n.fireScrollingEvent=d.throttle(function(b){a.$broadcast(f.events.GRID_SCROLL,b)},n.grid.options.scrollThrottle,{trailing:!0}),n.fireEvent=function(b,c){("undefined"==typeof c||void 0===c)&&(c={}),("undefined"==typeof c.grid||void 0===c.grid)&&(c.grid=n.grid),a.$broadcast(b,c)},n.innerCompile=function(b){k(b)(a)}}]),angular.module("ui.grid").directive("uiGrid",["$compile","$templateCache","gridUtil","$window",function(a,b,c,d){return{templateUrl:"ui-grid/ui-grid",scope:{uiGrid:"=",getExternalScopes:"&?externalScopes"},replace:!0,transclude:!0,controller:"uiGridController",compile:function(){return{post:function(a,b,e,f){function g(){h.gridWidth=a.gridWidth=c.elementWidth(b),h.gridHeight=a.gridHeight=c.elementHeight(b),h.queueRefresh()}var h=f.grid;if(f.scrollbars=[],h.renderingComplete(),h.element=b,h.gridWidth=a.gridWidth=c.elementWidth(b),h.canvasWidth=f.grid.gridWidth,h.gridHeight=a.gridHeight=c.elementHeight(b),h.gridHeightm&&(m=1):a.hasOwnProperty("filters")&&m');b.prepend(p),f.innerCompile(p);var q=angular.element('
    ');b.append(q),f.innerCompile(q),a.$watch(function(){return h.hasLeftContainer()},function(a,b){a!==b&&h.refreshCanvas(!0)}),a.$watch(function(){return h.hasRightContainer()},function(a,b){a!==b&&h.refreshCanvas(!0)}),angular.element(d).on("resize",g),b.on("$destroy",function(){angular.element(d).off("resize",g)})}}}}}])}(),function(){"use strict";angular.module("ui.grid").directive("uiGridPinnedContainer",["gridUtil",function(){return{restrict:"EA",replace:!0,template:'
    ',scope:{side:"=uiGridPinnedContainer"},require:"^uiGrid",compile:function(){return{post:function(a,b,c,d){function e(){if("left"===a.side||"right"===a.side){for(var b=g.renderContainers[a.side].visibleColumnCache,c=0,d=0;d0?b[0]:null},o.prototype.getColDef=function(a){var b=this.options.columnDefs.filter(function(b){return b.name===a});return b.length>0?b[0]:null},o.prototype.assignTypes=function(){var a=this;a.options.columnDefs.forEach(function(b,c){if(!b.type){var e=new g(b,c,a),f=a.rows.length>0?a.rows[0]:null;f?b.type=d.guessType(a.getCellValue(f,e)):(d.logWarn("Unable to assign type from data, so defaulting to string"),b.type="string")}})},o.prototype.addRowHeaderColumn=function(a){var b=this,c=new g(a,b.rowHeaderColumns.length,b);c.isRowHeader=!0,b.isRTL()?(b.createRightContainer(),c.renderContainer="right"):(b.createLeftContainer(),c.renderContainer="left"),b.columnBuilders[0](a,c,b.options).then(function(){c.enableFiltering=!1,c.enableSorting=!1,c.enableHiding=!1,b.rowHeaderColumns.push(c),b.buildColumns().then(function(){b.preCompileCellTemplates(),b.handleWindowResize()})})},o.prototype.buildColumns=function(){var b,c=this,e=[],f=c.rowHeaderColumns.length;for(b=0;b0?b[0]:null},o.prototype.modifyRows=function(b){var c,d,e,f,g=this;if((g.options.useExternalSorting||0===g.getColumnSorting().length)&&b.length>0){var i=g.rowHashMap;i||(i={get:function(){return null}}),g.createRowHashMap(),d=g.rowHashMap;var j=0===g.rows.length;for(g.rows.length=0,c=0;c0){if(g.options.enableRowHashing)for(g.rowHashMap||g.createRowHashMap(),c=0;c0){var l,m,n;if(g.options.enableRowHashing){l=[],n=[];var o={};for(m=[],g.rowHashMap||g.createRowHashMap(),d=g.rowHashMap,c=0;cd)d+=e.drawnWidth,c++;else{for(var g=0,h=f;h>=f-c;h--)g+=a.columns[h].drawnWidth;b>g&&c++}}),c},o.prototype.getBodyHeight=function(){var a=this.getViewportHeight();return"undefined"!=typeof this.horizontalScrollbarHeight&&void 0!==this.horizontalScrollbarHeight&&this.horizontalScrollbarHeight>0&&(a+=this.horizontalScrollbarHeight),a},o.prototype.getViewportHeight=function(){var a=this,b=this.gridHeight-this.headerHeight-this.footerHeight;"undefined"!=typeof this.horizontalScrollbarHeight&&void 0!==this.horizontalScrollbarHeight&&this.horizontalScrollbarHeight>0&&(b-=this.horizontalScrollbarHeight);var c=a.getViewportAdjustment();return b+=c.height},o.prototype.getViewportWidth=function(){var a=this,b=this.gridWidth;"undefined"!=typeof this.verticalScrollbarWidth&&void 0!==this.verticalScrollbarWidth&&this.verticalScrollbarWidth>0&&(b-=this.verticalScrollbarWidth);var c=a.getViewportAdjustment();return b+=c.width},o.prototype.getHeaderViewportWidth=function(){var a=this.getViewportWidth();return"undefined"!=typeof this.verticalScrollbarWidth&&void 0!==this.verticalScrollbarWidth&&this.verticalScrollbarWidth>0&&(a+=this.verticalScrollbarWidth),a},o.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},o.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);"undefined"!=typeof b&&void 0!==b&&this.viewportAdjusters.splice(b,1)},o.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},o.prototype.getVisibleRowCount=function(){return this.renderContainers.body.visibleRowCache.length},o.prototype.getVisibleRows=function(){return this.renderContainers.body.visibleRowCache},o.prototype.getVisibleColumnCount=function(){return this.renderContainers.body.visibleColumnCache.length},o.prototype.searchRows=function(a){return k.search(this,a,this.columns)},o.prototype.sortByColumn=function(a){return j.sort(this,a,this.columns)},o.prototype.getCellValue=function(a,b){var d=this;return d.cellValueGetterCache[b.colDef.name]||(d.cellValueGetterCache[b.colDef.name]=c(a.getEntityQualifiedColField(b))),d.cellValueGetterCache[b.colDef.name](a)},o.prototype.getNextColumnSortPriority=function(){var a=this,b=0;return a.columns.forEach(function(a){a.sort&&a.sort.priority&&a.sort.priority>b&&(b=a.sort.priority)}),b+1},o.prototype.resetColumnSorting=function(a){var b=this;b.columns.forEach(function(b){b!==a&&(b.sort={})})},o.prototype.getColumnSorting=function(){var a,b=this,c=[];return a=b.columns.slice(0),a.sort(j.prioritySort).forEach(function(a){a.sort&&"undefined"!=typeof a.sort.direction&&a.sort.direction&&(a.sort.direction===e.ASC||a.sort.direction===e.DESC)&&c.push(a)}),c},o.prototype.sortColumn=function(b,c,d){var f=this,g=null;if("undefined"==typeof b||!b)throw new Error("No column parameter provided");return"boolean"==typeof c?d=c:g=c,d?b.sort.priority=f.getNextColumnSortPriority():(f.resetColumnSorting(b),b.sort.priority=0),b.sort.direction=g?g:b.sort.direction&&b.sort.direction===e.ASC?e.DESC:b.sort.direction&&b.sort.direction===e.DESC?b.colDef&&b.colDef.suppressRemoveSort?e.ASC:null:e.ASC,f.api.core.raise.sortChanged(f,f.getColumnSorting()),a.when(b)},o.prototype.renderingComplete=function(){angular.isFunction(this.options.onRegisterApi)&&this.options.onRegisterApi(this.api),this.api.core.raise.renderingComplete(this.api)},o.prototype.createRowHashMap=function(){var a=this,b=new n;b.grid=a,a.rowHashMap=b},o.prototype.refresh=function(){d.logDebug("grid refresh");var b=this,c=b.processRowsProcessors(b.rows).then(function(a){b.setVisibleRows(a)}),e=b.processColumnsProcessors(b.columns).then(function(a){b.setVisibleColumns(a)});return a.all([c,e]).then(function(){b.redrawInPlace(),b.refreshCanvas(!0)})},o.prototype.refreshRows=function(){var a=this;return a.processRowsProcessors(a.rows).then(function(b){a.setVisibleRows(b),a.redrawInPlace(),a.refreshCanvas(!0)})},o.prototype.refreshCanvas=function(b){var c=this;b&&c.buildStyles();var e=a.defer(),f=[];for(var g in c.renderContainers)if(c.renderContainers.hasOwnProperty(g)){var h=c.renderContainers[g];if(null===h.canvasWidth||isNaN(h.canvasWidth))continue;h.header&&f.push(h)}return m(f.length>0?function(){var a,g,h=!1,i=0;for(a=0;an?0:n,g.innerHeaderHeight=n,n>i&&(i=n)}for(a=0;ac&&e>=0;e--)c+=a.visibleRowCache[e].height,b++;return b},b.prototype.minColumnsToRender=function(){for(var a=this,b=this.getViewportWidth(),c=0,d=0,e=0;ed)d+=f.drawnWidth?f.drawnWidth:0,c++;else{for(var g=0,h=e;h>=e-c;h--)g+=a.visibleColumnCache[h].drawnWidth?a.visibleColumnCache[h].drawnWidth:0;b>g&&c++}}return c},b.prototype.getVisibleRowCount=function(){return this.visibleRowCache.length -},b.prototype.registerViewportAdjuster=function(a){this.viewportAdjusters.push(a)},b.prototype.removeViewportAdjuster=function(a){var b=this.viewportAdjusters.indexOf(a);"undefined"!=typeof b&&void 0!==b&&this.viewportAdjusters.splice(b,1)},b.prototype.getViewportAdjustment=function(){var a=this,b={height:0,width:0};return a.viewportAdjusters.forEach(function(a){b=a.call(this,b)}),b},b.prototype.getViewportHeight=function(){var a=this,b=a.headerHeight?a.headerHeight:a.grid.headerHeight,c=a.grid.gridHeight-b-a.grid.footerHeight;"undefined"!=typeof a.horizontalScrollbarHeight&&void 0!==a.horizontalScrollbarHeight&&a.horizontalScrollbarHeight>0&&(c-=a.horizontalScrollbarHeight);var d=a.getViewportAdjustment();return c+=d.height},b.prototype.getViewportWidth=function(){var a=this,b=a.grid.gridWidth;"undefined"!=typeof a.grid.verticalScrollbarWidth&&void 0!==a.grid.verticalScrollbarWidth&&a.grid.verticalScrollbarWidth>0&&(b-=a.grid.verticalScrollbarWidth);var c=a.getViewportAdjustment();return b+=c.width},b.prototype.getHeaderViewportWidth=function(){var a=this,b=this.getViewportWidth();return"undefined"!=typeof a.grid.verticalScrollbarWidth&&void 0!==a.grid.verticalScrollbarWidth&&a.grid.verticalScrollbarWidth>0&&(b+=a.grid.verticalScrollbarWidth),b},b.prototype.getCanvasHeight=function(){var a=this,b=0;return a.visibleRowCache.forEach(function(a){b+=a.height}),"undefined"!=typeof a.grid.horizontalScrollbarHeight&&void 0!==a.grid.horizontalScrollbarHeight&&a.grid.horizontalScrollbarHeight>0&&(b-=a.grid.horizontalScrollbarHeight),b},b.prototype.getCanvasWidth=function(){var a=this,b=a.canvasWidth;return"undefined"!=typeof a.verticalScrollbarWidth&&void 0!==a.verticalScrollbarWidth&&a.verticalScrollbarWidth>0&&(b-=a.verticalScrollbarWidth),b},b.prototype.setRenderedRows=function(a){this.renderedRows.length=a.length;for(var b=0;bf&&(g=f);var h=[];if(e.length>c.grid.options.virtualizationThreshold){if(c.prevScrollTopg)return;if(c.prevScrollTop>a&&g>c.prevRowScrollIndex-c.grid.options.scrollThreshold&&f>g)return;var i=Math.max(0,g-c.grid.options.excessRows),j=Math.min(e.length,g+d+c.grid.options.excessRows);h=[i,j]}else{var k=c.visibleRowCache.length;h=[0,Math.max(k,d+c.grid.options.excessRows)]}c.updateViewableRowRange(h),c.prevRowScrollIndex=g},b.prototype.adjustColumns=function(a,b){var c=this,d=c.minColumnsToRender(),e=c.visibleColumnCache,f=e.length-d;"undefined"!=typeof b&&null!==b||!a||(b=a/c.getCanvasWidth());var g=Math.ceil(Math.min(f,f*b));g>f&&(g=f);var h=[];if(e.length>c.grid.options.columnVirtualizationThreshold&&c.getCanvasWidth()>c.getViewportWidth()){if(c.prevScrollLeftg)return;if(c.prevScrollLeft>a&&g>c.prevColumnScrollIndex-c.grid.options.horizontalScrollThreshold&&f>g)return;var i=Math.max(0,g-c.grid.options.excessColumns),j=Math.min(e.length,g+d+c.grid.options.excessColumns);h=[i,j]}else{var k=c.visibleColumnCache.length;h=[0,Math.max(k,d+c.grid.options.excessColumns)]}c.updateViewableColumnRange(h),c.prevColumnScrollIndex=g},b.prototype.updateViewableRowRange=function(a){var b=this.visibleRowCache.slice(a[0],a[1]);this.currentTopRow=a[0],this.setRenderedRows(b)},b.prototype.updateViewableColumnRange=function(a){var b=this.visibleColumnCache.slice(a[0],a[1]);this.currentFirstColumn=a[0],this.setRenderedColumns(b)},b.prototype.rowStyle=function(a){var b=this,c={};if(0===a&&0!==b.currentTopRow){var d=b.currentTopRow*b.grid.options.rowHeight;c["margin-top"]=d+"px"}return 0!==b.currentFirstColumn&&(b.grid.isRTL()?c["margin-right"]=b.columnOffset+"px":c["margin-left"]=b.columnOffset+"px"),c},b.prototype.columnStyle=function(a){var b=this;if(0===a&&0!==b.currentFirstColumn){var c=b.columnOffset;return b.grid.isRTL()?{"margin-right":c+"px"}:{"margin-left":c+"px"}}return null},b.prototype.updateColumnWidths=function(){var b=this,c=[],d=[],e=0,f=b.getViewportWidth();"undefined"!=typeof b.grid.verticalScrollbarWidth&&void 0!==b.grid.verticalScrollbarWidth&&b.grid.verticalScrollbarWidth>0&&(f+=b.grid.verticalScrollbarWidth);var g,h=0,i=0,j="",k=b.visibleColumnCache;k.forEach(function(b){if(b.visible){var f=!1;angular.isNumber(b.width)||(f=isNaN(b.width)&&a.endsWith(b.width,"%")),angular.isString(b.width)&&-1!==b.width.indexOf("*")?(e=parseInt(e+b.width.length,10),c.push(b)):f?d.push(b):angular.isNumber(b.width)&&(h=parseInt(h+b.width,10),i=parseInt(i,10)+parseInt(b.width,10),b.drawnWidth=b.width)}});var l,m,n,o=f-h;if(d.length>0){for(l=0;lm.colDef.maxWidth&&(n=m.colDef.maxWidth,o-=n,i+=n,m.drawnWidth=n,d.splice(l,1))}d.forEach(function(a){var b=parseInt(a.width.replace(/%/g,""),10)/100,c=parseInt(b*o,10);i+=c,a.drawnWidth=c})}if(c.length>0){var q=parseInt(o/e,10);for(l=0;lm.colDef.maxWidth&&(n=m.colDef.maxWidth,o-=n,e--,i+=n,m.drawnWidth=n,c.splice(l,1));q=parseInt(o/e,10),c.forEach(function(a){var b=parseInt(q*a.width.length,10);i+=b,a.drawnWidth=b})}var r=f-parseInt(i,10);if(r>0&&i>0&&f>i){var s=!1;if(k.forEach(function(a){a.width&&!angular.isNumber(a.width)&&(s=!0)}),s)for(var t=function(a){r>0&&(a.drawnWidth=a.drawnWidth+1,i+=1,r--)};r>0;)k.forEach(t)}f>i&&(i=f),k.forEach(function(a){j+=a.getColClassDefinition()}),b.grid.verticalScrollbarWidth&&(i+=b.grid.verticalScrollbarWidth),b.canvasWidth=parseInt(i,10),this.columnStyles=j},b}])}(),function(){angular.module("ui.grid").factory("GridRow",["gridUtil",function(a){function b(b,c,d){this.grid=d,this.entity=b,this.uid=a.nextUid(),this.visible=!0,this.height=d.options.rowHeight}return b.prototype.getQualifiedColField=function(a){return"row."+this.getEntityQualifiedColField(a)},b.prototype.getEntityQualifiedColField=function(b){return a.preEval("entity."+b.field)},b.prototype.setRowInvisible=function(a){null!==a&&(a.forceInvisible=!0,a.visible&&(a.visible=!1,a.grid.refresh(),a.grid.api.core.raise.rowsVisibleChanged()))},b.prototype.clearRowInvisible=function(a){null!==a&&(a.forceInvisible=!1,a.visible||(a.visible=!0,a.grid.refresh(),a.grid.api.core.raise.rowsVisibleChanged()))},b}])}(),function(){"use strict";angular.module("ui.grid").service("gridClassFactory",["gridUtil","$q","$compile","$templateCache","uiGridConstants","Grid","GridColumn","GridRow",function(a,b,c,d,e,f){var g={createGrid:function(d){d="undefined"!=typeof d?d:{},d.id=a.newId();var e=new f(d);if(e.options.rowTemplate){var h=b.defer();e.getRowTemplateFn=h.promise,a.getTemplate(e.options.rowTemplate).then(function(a){var b=c(a);h.resolve(b)},function(){throw new Error("Couldn't fetch/use row template '"+e.options.rowTemplate+"'")})}return e.registerColumnBuilder(g.defaultColumnBuilder),e.registerRowsProcessor(function(a){return a.forEach(function(a){a.visible=!a.forceInvisible}),a}),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.visible=!0}),a}),e.registerColumnsProcessor(function(a){return a.forEach(function(a){a.colDef.visible===!1&&(a.visible=!1)}),a}),e.options.enableFiltering&&e.registerRowsProcessor(e.searchRows),e.registerRowsProcessor(e.options.externalSort&&angular.isFunction(e.options.externalSort)?e.options.externalSort:e.sortByColumn),e},defaultColumnBuilder:function(c,d){var f=[];return d.providedHeaderCellTemplate=c.headerCellTemplate?c.headerCellTemplate:"ui-grid/uiGridHeaderCell",d.providedCellTemplate=c.cellTemplate?c.cellTemplate:"ui-grid/uiGridCell",d.cellTemplatePromise=a.getTemplate(d.providedCellTemplate),f.push(d.cellTemplatePromise.then(function(a){d.cellTemplate=a.replace(e.CUSTOM_FILTERS,d.cellFilter?"|"+d.cellFilter:"")},function(){throw new Error("Couldn't fetch/use colDef.cellTemplate '"+c.cellTemplate+"'")})),f.push(a.getTemplate(d.providedHeaderCellTemplate).then(function(a){d.headerCellTemplate=a.replace(e.CUSTOM_FILTERS,d.headerCellFilter?"|"+d.headerCellFilter:"")},function(){throw new Error("Couldn't fetch/use colDef.headerCellTemplate '"+c.headerCellTemplate+"'")})),d.compiledElementFnDefer=b.defer(),b.all(f)}};return g}])}(),function(){function a(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function b(){var a=function(b,c){return b&&a.cache[b]?a.cache[b]:b&&c?(a.cache[b]=c,a.cache[b]):void 0};return a.cache={},a.clear=function(){a.cache={}},a}var c=angular.module("ui.grid");c.service("rowSearcher",["gridUtil","uiGridConstants",function(c,d){var e=d.filter.STARTS_WITH,f={};return f.getTerm=function(a){if("undefined"==typeof a.term)return a.term;var b=a.term;return"string"==typeof b&&(b=b.trim()),b},f.stripTerm=function(b){var c=f.getTerm(b);return"string"==typeof c?a(c.replace(/(^\*|\*$)/g,"")):c},f.guessCondition=function(a){if("undefined"==typeof a.term||!a.term)return e;var b=f.getTerm(a);if(/\*/.test(b)){var c="";a.flags&&a.flags.caseSensitive||(c+="i");var d=b.replace(/(\\)?\*/g,function(a,b){return b?a:"[\\s\\S]*?"});return new RegExp("^"+d+"$",c)}return e},f.runColumnFilter=function(a,b,c,e,g,h){var i=typeof h.condition;"undefined"!==i&&h.condition||(h.condition=d.filter.CONTAINS);var j=f.stripTerm(h);if(null===j||void 0===j||""===j)return!0;var k=a.getCellValue(b,c),l="";h.flags&&h.flags.caseSensitive||(l+="i");var m=c.field+g;if(h.condition instanceof RegExp){if(!h.condition.test(k))return!1}else{if("function"===i)return h.condition(j,k,b,c);if(h.condition===d.filter.STARTS_WITH){var n=e(m)?e(m):e(m,new RegExp("^"+j,l));if(!n.test(k))return!1}else if(h.condition===d.filter.ENDS_WITH){var o=e(m)?e(m):e(m,new RegExp(j+"$",l));if(!o.test(k))return!1}else if(h.condition===d.filter.CONTAINS){var p=e(m)?e(m):e(m,new RegExp(j,l));if(!p.test(k))return!1}else if(h.condition===d.filter.EXACT){var q=e(m)?e(m):e(m,new RegExp("^"+j+"$",l));if(!q.test(k))return!1}else if(h.condition===d.filter.GREATER_THAN){if(j>=k)return!1}else if(h.condition===d.filter.GREATER_THAN_OR_EQUAL){if(j>k)return!1}else if(h.condition===d.filter.LESS_THAN){if(k>=j)return!1}else if(h.condition===d.filter.LESS_THAN_OR_EQUAL){if(k>j)return!1}else if(h.condition===d.filter.NOT_EQUAL&&!angular.equals(k,j))return!1}return!0},f.searchColumn=function(a,b,c,d){var e=[];if(a.options.useExternalFiltering)return!0;if(!("undefined"!=typeof c.filters&&c.filters&&c.filters.length>0))return!0;e=c.filters;for(var g in e){var h=e[g];if(!h.condition){var i="cond-"+c.field+"-"+h.term,j=d(i)?d(i):d(i,f.guessCondition(h));h={term:h.term,condition:j,flags:angular.extend({caseSensitive:!1},h.flags)}}var k=f.runColumnFilter(a,b,c,d,g,h);if(!k)return!1}return!0},f.search=function(a,c,d){if(c){var e=new b,g=[];return d.forEach(function(a){"undefined"!=typeof a.filters&&a.filters.length>0?g.push(a):"undefined"!=typeof a.filter&&a.filter&&"undefined"!=typeof a.filter.term&&a.filter.term&&g.push(a)}),g.length>0&&(g.forEach(function(b){c.forEach(function(c){(c.forceInvisible||!f.searchColumn(a,c,b,e))&&(c.visible=!1)})}),a.api.core.raise.rowsVisibleChanged&&a.api.core.raise.rowsVisibleChanged()),e.clear(),c}},f}])}(),function(){var a=angular.module("ui.grid");a.service("rowSorter",["$parse","uiGridConstants",function(a,b){var c="("+b.CURRENCY_SYMBOLS.map(function(a){return"\\"+a}).join("|")+")?",d=(new RegExp("^[-+]?"+c+"[\\d,.]+"+c+"%?$"),{colSortFnCache:[]});return d.guessSortFn=function(a){switch(a){case"number":return d.sortNumber;case"boolean":return d.sortBool;case"string":return d.sortAlpha;case"date":return d.sortDate;case"object":return d.basicSort;default:throw new Error("No sorting function found for type:"+a)}},d.handleNulls=function(a,b){if(!a&&0!==a&&a!==!1||!b&&0!==b&&b!==!1){if(!a&&0!==a&&a!==!1&&!b&&0!==b&&b!==!1)return 0;if(!a&&0!==a&&a!==!1)return 1;if(!b&&0!==b&&b!==!1)return-1}return null},d.basicSort=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a===b?0:b>a?-1:1},d.sortNumber=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a-b},d.sortNumberStr=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e,f,g=!1,h=!1;return e=parseFloat(a.replace(/[^0-9.-]/g,"")),isNaN(e)&&(g=!0),f=parseFloat(b.replace(/[^0-9.-]/g,"")),isNaN(f)&&(h=!0),g&&h?0:g?1:h?-1:e-f},d.sortAlpha=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e=a.toLowerCase(),f=b.toLowerCase();return e===f?0:f>e?-1:1},d.sortDate=function(a,b){var c=d.handleNulls(a,b);if(null!==c)return c;var e=a.getTime(),f=b.getTime();return e===f?0:f>e?-1:1},d.sortBool=function(a,b){var c=d.handleNulls(a,b);return null!==c?c:a&&b?0:a||b?a?1:-1:0},d.getSortFn=function(a,b){var c;return d.colSortFnCache[b.colDef.name]?c=d.colSortFnCache[b.colDef.name]:void 0!==b.sortingAlgorithm?(c=b.sortingAlgorithm,d.colSortFnCache[b.colDef.name]=b.sortingAlgorithm):(c=d.guessSortFn(b.colDef.type),c?d.colSortFnCache[b.colDef.name]=c:c=d.sortAlpha),c},d.prioritySort=function(a,b){return void 0!==a.sort.priority&&void 0!==b.sort.priority?a.sort.priorityf;f+=2){var i=h[f];if("margin"===c){var j=parseFloat(e[c+i]);isNaN(j)||(g+=j)}if(d){if("content"===c){var k=parseFloat(e["padding"+i]);isNaN(k)||(g-=k)}if("margin"!==c){var l=parseFloat(e["border"+i+"Width"]);isNaN(l)||(g-=l)}}else{var m=parseFloat(e["padding"+i]);if(isNaN(m)||(g+=m),"padding"!==c){var n=parseFloat(e["border"+i+"Width"]);isNaN(n)||(g+=n)}}}return g}function c(c,d,f){var g,h=!0,i=a(c),j="border-box"===i.boxSizing;if(0>=g||null==g){if(g=i[d],(0>g||null==g)&&(g=c.style[d]),e.test(g))return g;h=j&&!0,g=parseFloat(g)||0}var k=g+b(c,d,f||(j?"border":"content"),h,i);return k}var d=angular.module("ui.grid"),e=new RegExp("^("+/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source+")(?!px)[a-z%]+$","i"),f=/^(block|none|table(?!-c[ea]).+)/,g={position:"absolute",visibility:"hidden",display:"block"},h=["0","0","0"],i="uiGrid-";d.service("gridUtil",["$log","$window","$document","$http","$templateCache","$timeout","$injector","$q","$interpolate","uiGridConstants",function(b,d,e,j,k,l,m,n,o,p){var q={getStyles:a,createBoundedWrapper:function(a,b){return function(){return b.apply(a,arguments)}},readableColumnName:function(a){return"undefined"==typeof a||void 0===a||null===a?a:("string"!=typeof a&&(a=String(a)),a.replace(/_+/g," ").replace(/^[A-Z]+$/,function(a){return angular.lowercase(angular.uppercase(a.charAt(0))+a.slice(1))}).replace(/(\w+)/g,function(a){return angular.uppercase(a.charAt(0))+a.slice(1)}).replace(/(\w+?(?=[A-Z]))/g,"$1 "))},getColumnsFromData:function(a,b){var c=[];if(!a||"undefined"==typeof a[0]||void 0===a[0])return[];angular.isUndefined(b)&&(b=[]);var d=a[0];return angular.forEach(d,function(a,d){-1===b.indexOf(d)&&c.push({name:d})}),c},newId:function(){var a=(new Date).getTime();return function(){return a+=1}}(),getTemplate:function(a){if(k.get(a))return q.postProcessTemplate(k.get(a));if(a.hasOwnProperty("then"))return a.then(q.postProcessTemplate);try{if(angular.element(a).length>0)return n.when(a).then(q.postProcessTemplate)}catch(b){}return q.logDebug("fetching url",a),j({method:"GET",url:a}).then(function(b){var c=b.data.trim();return k.put(a,c),c},function(b){throw new Error("Could not get template "+a+": "+b)}).then(q.postProcessTemplate)},postProcessTemplate:function(a){var b=o.startSymbol(),c=o.endSymbol();return("{{"!==b||"}}"!==c)&&(a=a.replace(/\{\{/g,b),a=a.replace(/\}\}/g,c)),n.when(a)},guessType:function(a){var b=typeof a;switch(b){case"number":case"boolean":case"string":return b;default:return angular.isDate(a)?"date":"object"}},elementWidth:function(){},elementHeight:function(){},getScrollbarWidth:function(){var a=document.createElement("div");a.style.visibility="hidden",a.style.width="100px",a.style.msOverflowStyle="scrollbar",document.body.appendChild(a);var b=a.offsetWidth;a.style.overflow="scroll";var c=document.createElement("div");c.style.width="100%",a.appendChild(c);var d=c.offsetWidth;return a.parentNode.removeChild(a),b-d},swap:function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},fakeElement:function(a,b,c){var d,e,f=angular.element(a).clone()[0];for(e in b)f.style[e]=b[e];return angular.element(document.body).append(f),d=c.call(f,f),angular.element(f).remove(),d},normalizeWheelEvent:function(a){var b,c,d,e=a||window.event,f=([].slice.call(arguments,1),0),g=0,h=0,i=0,j=0;return e.originalEvent&&(e=e.originalEvent),e.wheelDelta&&(f=e.wheelDelta),e.detail&&(f=-1*e.detail),h=f,void 0!==e.axis&&e.axis===e.HORIZONTAL_AXIS&&(h=0,g=-1*f),e.deltaY&&(h=-1*e.deltaY,f=h),e.deltaX&&(g=e.deltaX,f=-1*g),void 0!==e.wheelDeltaY&&(h=e.wheelDeltaY),void 0!==e.wheelDeltaX&&(g=e.wheelDeltaX),i=Math.abs(f),(!b||b>i)&&(b=i),j=Math.max(Math.abs(h),Math.abs(g)),(!c||c>j)&&(c=j),d=f>0?"floor":"ceil",f=Math[d](f/b),g=Math[d](g/c),h=Math[d](h/c),{delta:f,deltaX:g,deltaY:h}},isTouchEnabled:function(){var a;return("ontouchstart"in d||d.DocumentTouch&&e instanceof DocumentTouch)&&(a=!0),a},isNullOrUndefined:function(a){return void 0===a||null===a?!0:!1},endsWith:function(a,b){return a&&b&&"string"==typeof a?-1!==a.indexOf(b,a.length-b.length):!1},arrayContainsObjectWithProperty:function(a,b,c){var d=!1;return angular.forEach(a,function(a){a[b]===c&&(d=!0)}),d},requestAnimationFrame:d.requestAnimationFrame&&d.requestAnimationFrame.bind(d)||d.webkitRequestAnimationFrame&&d.webkitRequestAnimationFrame.bind(d)||function(a){return l(a,10,!1)},numericAndNullSort:function(a,b){return null===a?1:null===b?-1:null===a&&null===b?0:a-b},disableAnimations:function(a){var b;try{b=m.get("$animate"),b.enabled(!1,a)}catch(c){}},enableAnimations:function(a){var b;try{return b=m.get("$animate"),b.enabled(!0,a),b}catch(c){}},nextUid:function(){for(var a,b=h.length;b;){if(b--,a=h[b].charCodeAt(0),57===a)return h[b]="A",i+h.join("");if(90!==a)return h[b]=String.fromCharCode(a+1),i+h.join("");h[b]="0"}return h.unshift("0"),i+h.join("")},hashKey:function(a){var b,c=typeof a;return"object"===c&&null!==a?"function"==typeof(b=a.$$hashKey)?b=a.$$hashKey():"undefined"!=typeof a.$$hashKey&&a.$$hashKey?b=a.$$hashKey:void 0===b&&(b=a.$$hashKey=q.nextUid()):b=a,c+":"+b},resetUids:function(){h=["0","0","0"]},logError:function(a){p.LOG_ERROR_MESSAGES&&b.error(a)},logWarn:function(a){p.LOG_WARN_MESSAGES&&b.warn(a)},logDebug:function(){p.LOG_DEBUG_MESSAGES&&b.debug.apply(b,arguments)}};return["width","height"].forEach(function(b){var d=angular.uppercase(b.charAt(0))+b.substr(1);q["element"+d]=function(d,e){var h=d;if(h&&"undefined"!=typeof h.length&&h.length&&(h=d[0]),h){var i=a(h);return 0===h.offsetWidth&&f.test(i.display)?q.fakeElement(h,g,function(a){return c(a,b,e)}):c(h,b,e)}return null},q["outerElement"+d]=function(a,b){return a?q["element"+d].call(this,a,b?"margin":"border"):null}}),q.closestElm=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c;["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"].some(function(a){return"function"==typeof document.body[a]?(c=a,!0):!1});for(var d;null!==a;){if(d=a.parentElement,null!==d&&d[c](b))return d;a=d}return null},q.type=function(a){var b=Function.prototype.toString.call(a.constructor);return b.match(/function (.*?)\(/)[1]},q.getBorderSize=function(b,c){"undefined"!=typeof b.length&&b.length&&(b=b[0]);var d=a(b);c=c?"border"+c.charAt(0).toUpperCase()+c.slice(1):"border",c+="Width";var e=parseInt(d[c],10);return isNaN(e)?0:e},q.detectBrowser=function(){var a=d.navigator.userAgent,b={chrome:/chrome/i,safari:/safari/i,firefox:/firefox/i,ie:/internet explorer|trident\//i};for(var c in b)if(b[c].test(a))return c;return"unknown"},q.normalizeScrollLeft=function(a){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var b=q.detectBrowser(),c=a.scrollLeft,d=q.getStyles(a).direction;if("ie"===b)return c;if("chrome"===b){if("rtl"===d){var e=a.scrollWidth-a.clientWidth;return e-c}return c}return"firefox"===b?Math.abs(c):c},q.denormalizeScrollLeft=function(a,b){"undefined"!=typeof a.length&&a.length&&(a=a[0]);var c=q.detectBrowser(),d=q.getStyles(a).direction;if("ie"===c)return b;if("chrome"===c){if("rtl"===d){var e=a.scrollWidth-a.clientWidth;return e-b}return b}return"firefox"===c&&"rtl"===d?-1*b:b},q.preEval=function(a){var b=p.BRACKET_REGEXP.exec(a);if(b)return(b[1]?q.preEval(b[1]):b[1])+b[2]+(b[3]?q.preEval(b[3]):b[3]);a=a.replace(p.APOS_REGEXP,"\\'");var c=a.split(p.DOT_REGEXP),d=[c.shift()];return angular.forEach(c,function(a){d.push(a.replace(p.FUNC_REGEXP,"']$1"))}),d.join("['")},q.debounce=function(a,b,c){function d(){g=this,f=arguments;var d=function(){e=null,c||(h=a.apply(g,f))},i=c&&!e;return e&&l.cancel(e),e=l(d,b),i&&(h=a.apply(g,f)),h}var e,f,g,h;return d.cancel=function(){l.cancel(e),e=null},d},q.throttle=function(a,b,c){function d(){g=+new Date,a.apply(e,f),l(function(){h=null},0)}c=c||{};var e,f,g=0,h=null;return function(){if(e=this,f=arguments,null===h){var a=+new Date-g;a>b?d():c.trailing&&(h=l(d,b-a))}}},q}]),d.filter("px",function(){return function(a){return a.match(/^[\d\.]+$/)?a+"px":a}})}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("da",{aggregate:{label:"artikler"},groupPanel:{description:"Grupér rækker udfra en kolonne ved at trække dens overskift hertil."},search:{placeholder:"Søg...",showingItems:"Viste rækker:",selectedItems:"Valgte rækker:",totalItems:"Rækker totalt:",size:"Side størrelse:",first:"Første side",next:"Næste side",previous:"Forrige side",last:"Sidste side"},menu:{text:"Vælg kolonner:"},column:{hide:"Skjul kolonne"},aggregation:{count:"samlede rækker: ",sum:"smalede: ",avg:"gns: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("de",{aggregate:{label:"eintrag"},groupPanel:{description:"Ziehen Sie eine Spaltenüberschrift hierhin, um nach dieser Spalte zu gruppieren."},search:{placeholder:"Suche...",showingItems:"Zeige Einträge:",selectedItems:"Ausgewählte Einträge:",totalItems:"Einträge gesamt:",size:"Einträge pro Seite:",first:"Erste Seite",next:"Nächste Seite",previous:"Vorherige Seite",last:"Letzte Seite"},menu:{text:"Spalten auswählen:"},sort:{ascending:"aufsteigend sortieren",descending:"absteigend sortieren",remove:"Sortierung zurücksetzen"},column:{hide:"Spalte ausblenden"},aggregation:{count:"Zeilen insgesamt: ",sum:"gesamt: ",avg:"Durchschnitt: ",min:"min: ",max:"max: "},gridMenu:{columns:"Spalten:",importerTitle:"Datei importieren",exporterAllAsCsv:"Alle Daten als CSV exportieren",exporterVisibleAsCsv:"sichtbare Daten als CSV exportieren",exporterSelectedAsCsv:"markierte Daten als CSV exportieren",exporterAllAsPdf:"Alle Daten als PDF exportieren",exporterVisibleAsPdf:"sichtbare Daten als PDF exportieren",exporterSelectedAsPdf:"markierte Daten als CSV exportieren"},importer:{noHeaders:"Es konnten keine Spaltennamen ermittelt werden. Sind in der Datei Spaltendefinitionen enthalten?",noObjects:"Es konnten keine Zeileninformationen gelesen werden, Sind in der Datei außer den Spaltendefinitionen auch Daten enthalten?",invalidCsv:"Die Datei konnte nicht eingelesen werden, ist es eine gültige CSV-Datei?",invalidJson:"Die Datei konnte nicht eingelesen werden. Enthält sie gültiges JSON?",jsonNotArray:"Die importierte JSON-Datei muß ein Array enthalten. Breche Import ab."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("en",{aggregate:{label:"items"},groupPanel:{description:"Drag a column header here and drop it to group by that column."},search:{placeholder:"Search...",showingItems:"Showing Items:",selectedItems:"Selected Items:",totalItems:"Total Items:",size:"Page Size:",first:"First Page",next:"Next Page",previous:"Previous Page",last:"Last Page"},menu:{text:"Choose Columns:"},sort:{ascending:"Sort Ascending",descending:"Sort Descending",remove:"Remove Sort"},column:{hide:"Hide Column"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Pin Left",pinRight:"Pin Right",unpin:"Unpin"},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."},paging:{sizes:"items per page",totalItems:"items"}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("es",{aggregate:{label:"Artículos"},groupPanel:{description:"Arrastre un encabezado de columna aquí y suéltelo para agrupar por esa columna."},search:{placeholder:"Buscar...",showingItems:"Artículos Mostrados:",selectedItems:"Artículos Seleccionados:",totalItems:"Artículos Totales:",size:"Tamaño de Página:",first:"Primera Página",next:"Página Siguiente",previous:"Página Anterior",last:"Última Página"},menu:{text:"Elegir columnas:"},sort:{ascending:"Orden Ascendente",descending:"Orden Descendente",remove:"Sin Ordenar"},column:{hide:"Ocultar la columna"},aggregation:{count:"filas totales: ",sum:"total: ",avg:"media: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fijar a la Izquierda",pinRight:"Fijar a la Derecha",unpin:"Quitar Fijación"},gridMenu:{columns:"Columnas:",importerTitle:"Importar archivo",exporterAllAsCsv:"Exportar todo como csv",exporterVisibleAsCsv:"Exportar vista como csv",exporterSelectedAsCsv:"Exportar selección como csv",exporterAllAsPdf:"Exportar todo como pdf",exporterVisibleAsPdf:"Exportar vista como pdf",exporterSelectedAsPdf:"Exportar selección como pdf"},importer:{noHeaders:"No fue posible derivar los nombres de las columnas, ¿tiene encabezados el archivo?",noObjects:"No fue posible obtener registros, ¿contiene datos el archivo, aparte de los encabezados?",invalidCsv:"No fue posible procesar el archivo, ¿es un CSV válido?",invalidJson:"No fue posible procesar el archivo, ¿es un Json válido?",jsonNotArray:"El archivo json importado debe contener un array, abortando."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fa",{aggregate:{label:"موردها"},groupPanel:{description:"یک عنوان ستون اینجا را بردار و به گروهی از آن ستون بیانداز."},search:{placeholder:"جستجو...",showingItems:"نمایش موردها:",selectedItems:"موردهای انتخاب‌شده:",totalItems:"همهٔ موردها:",size:"اندازهٔ صفحه:",first:"صفحهٔ اول",next:"صفحهٔ بعد",previous:"صفحهٔ قبل",last:"آخرین صفحه"},menu:{text:"انتخاب ستون‌ها:"},column:{hide:"ستون پنهان کن"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fi",{aggregate:{label:"rivit"},groupPanel:{description:"Raahaa ja pudota otsikko tähän ryhmittääksesi sarakkeen mukaan."},search:{placeholder:"Hae...",showingItems:"Näytetään rivejä:",selectedItems:"Valitut rivit:",totalItems:"Rivejä yht.:",size:"Näytä:",first:"Ensimmäinen sivu",next:"Seuraava sivu",previous:"Edellinen sivu",last:"Viimeinen sivu"},menu:{text:"Valitse sarakkeet:"},sort:{ascending:"Järjestä nouseva",descending:"Järjestä laskeva",remove:"Poista järjestys"},column:{hide:"Piilota sarake"},aggregation:{count:"Rivejä yht.: ",sum:"Summa: ",avg:"K.a.: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Lukitse vasemmalle",pinRight:"Lukitse oikealle",unpin:"Poista lukitus"},gridMenu:{columns:"Sarakkeet:",importerTitle:"Tuo tiedosto",exporterAllAsCsv:"Vie tiedot csv-muodossa",exporterVisibleAsCsv:"Vie näkyvä tieto csv-muodossa",exporterSelectedAsCsv:"Vie valittu tieto csv-muodossa",exporterAllAsPdf:"Vie tiedot pdf-muodossa",exporterVisibleAsPdf:"Vie näkyvä tieto pdf-muodossa",exporterSelectedAsPdf:"Vie valittu tieto pdf-muodossa"},importer:{noHeaders:"Sarakkeen nimiä ei voitu päätellä, onko tiedostossa otsikkoriviä?",noObjects:"Tietoja ei voitu lukea, onko tiedostossa muuta kuin otsikkot?",invalidCsv:"Tiedostoa ei voitu käsitellä, oliko se CSV-muodossa?",invalidJson:"Tiedostoa ei voitu käsitellä, oliko se JSON-muodossa?",jsonNotArray:"Tiedosto ei sisältänyt taulukkoa, lopetetaan."}}),a -}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("fr",{aggregate:{label:"articles"},groupPanel:{description:"Faites glisser un en-tête de colonne ici et déposez-le vers un groupe par cette colonne."},search:{placeholder:"Recherche...",showingItems:"Articles Affichage des:",selectedItems:"Éléments Articles:",totalItems:"Nombre total d'articles:",size:"Taille de page:",first:"Première page",next:"Page Suivante",previous:"Page précédente",last:"Dernière page"},menu:{text:"Choisir des colonnes:"},sort:{ascending:"Trier par ordre croissant",descending:"Trier par ordre décroissant",remove:"Enlever le tri"},column:{hide:"Cacher la colonne"},aggregation:{count:"total lignes: ",sum:"total: ",avg:"moy: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Épingler à gauche",pinRight:"Épingler à droite",unpin:"Détacher"},gridMenu:{columns:"Colonnes:",importerTitle:"Importer un fichier",exporterAllAsCsv:"Exporter toutes les données en CSV",exporterVisibleAsCsv:"Exporter les données visibles en CSV",exporterSelectedAsCsv:"Exporter les données sélectionnées en CSV",exporterAllAsPdf:"Exporter toutes les données en PDF",exporterVisibleAsPdf:"Exporter les données visibles en PDF",exporterSelectedAsPdf:"Exporter les données sélectionnées en PDF"},importer:{noHeaders:"Impossible de déterminer le nom des colonnes, le fichier possède-t-il un en-tête ?",noObjects:"Aucun objet trouvé, le fichier possède-t-il des données autres que l'en-tête ?",invalidCsv:"Le fichier n'a pas pu être traité, le CSV est-il valide ?",invalidJson:"Le fichier n'a pas pu être traité, le JSON est-il valide ?",jsonNotArray:"Le fichier JSON importé doit contenir un tableau. Abandon."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("he",{aggregate:{label:"items"},groupPanel:{description:"גרור עמודה לכאן ושחרר בכדי לקבץ עמודה זו."},search:{placeholder:"חפש...",showingItems:"מציג:",selectedItems:'סה"כ נבחרו:',totalItems:'סה"כ רשומות:',size:"תוצאות בדף:",first:"דף ראשון",next:"דף הבא",previous:"דף קודם",last:"דף אחרון"},menu:{text:"בחר עמודות:"},sort:{ascending:"סדר עולה",descending:"סדר יורד",remove:"בטל"},column:{hide:"טור הסתר"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("it",{aggregate:{label:"elementi"},groupPanel:{description:"Trascina un'intestazione all'interno del gruppo della colonna."},search:{placeholder:"Ricerca...",showingItems:"Mostra:",selectedItems:"Selezionati:",totalItems:"Totali:",size:"Tot Pagine:",first:"Prima",next:"Prossima",previous:"Precedente",last:"Ultima"},menu:{text:"Scegli le colonne:"},sort:{ascending:"Asc.",descending:"Desc.",remove:"Annulla ordinamento"},column:{hide:"Nascondi"},aggregation:{count:"righe totali: ",sum:"tot: ",avg:"media: ",min:"minimo: ",max:"massimo: "},pinning:{pinLeft:"Blocca a sx",pinRight:"Blocca a dx",unpin:"Blocca in alto"},gridMenu:{columns:"Colonne:",importerTitle:"Importa",exporterAllAsCsv:"Esporta tutti i dati in CSV",exporterVisibleAsCsv:"Esporta i dati visibili in CSV",exporterSelectedAsCsv:"Esporta i dati selezionati in CSV",exporterAllAsPdf:"Esporta tutti i dati in PDF",exporterVisibleAsPdf:"Esporta i dati visibili in PDF",exporterSelectedAsPdf:"Esporta i dati selezionati in PDF"},importer:{noHeaders:"Impossibile reperire i nomi delle colonne, sicuro che siano indicati all'interno del file?",noObjects:"Impossibile reperire gli oggetti, sicuro che siano indicati all'interno del file?",invalidCsv:"Impossibile elaborare il file, sicuro che sia un CSV?",invalidJson:"Impossibile elaborare il file, sicuro che sia un JSON valido?",jsonNotArray:"Errore! Il file JSON da importare deve contenere un array."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("nl",{aggregate:{label:"items"},groupPanel:{description:"Sleep hier een kolomnaam heen om op te groeperen."},search:{placeholder:"Zoeken...",showingItems:"Getoonde items:",selectedItems:"Geselecteerde items:",totalItems:"Totaal aantal items:",size:"Items per pagina:",first:"Eerste pagina",next:"Volgende pagina",previous:"Vorige pagina",last:"Laatste pagina"},menu:{text:"Kies kolommen:"},sort:{ascending:"Sorteer oplopend",descending:"Sorteer aflopend",remove:"Verwijder sortering"},column:{hide:"Verberg kolom"},aggregation:{count:"Aantal rijen: ",sum:"Som: ",avg:"Gemiddelde: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Zet links vast",pinRight:"Zet rechts vast",unpin:"Maak los"},gridMenu:{columns:"Kolommen:",importerTitle:"Importeer bestand",exporterAllAsCsv:"Exporteer alle data als csv",exporterVisibleAsCsv:"Exporteer zichtbare data als csv",exporterSelectedAsCsv:"Exporteer geselecteerde data als csv",exporterAllAsPdf:"Exporteer alle data als pdf",exporterVisibleAsPdf:"Exporteer zichtbare data als pdf",exporterSelectedAsPdf:"Exporteer geselecteerde data als pdf"},importer:{noHeaders:"Kolomnamen kunnen niet worden afgeleid. Heeft het bestand een header?",noObjects:"Objecten kunnen niet worden afgeleid. Bevat het bestand data naast de headers?",invalidCsv:"Het bestand kan niet verwerkt worden. Is het een valide csv bestand?",invalidJson:"Het bestand kan niet verwerkt worden. Is het valide json?",jsonNotArray:"Het json bestand moet een array bevatten. De actie wordt geannuleerd."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("pt-br",{aggregate:{label:"itens"},groupPanel:{description:"Arraste e solte uma coluna aqui para agrupar por essa coluna"},search:{placeholder:"Procurar...",showingItems:"Mostrando os Itens:",selectedItems:"Items Selecionados:",totalItems:"Total de Itens:",size:"Tamanho da Página:",first:"Primeira Página",next:"Próxima Página",previous:"Página Anterior",last:"Última Página"},menu:{text:"Selecione as colunas:"},sort:{ascending:"Ordenar Ascendente",descending:"Ordenar Descendente",remove:"Remover Ordenação"},column:{hide:"Esconder coluna"},aggregation:{count:"total de linhas: ",sum:"total: ",avg:"med: ",min:"min: ",max:"max: "},pinning:{pinLeft:"Fixar Esquerda",pinRight:"Fixar Direita",unpin:"Desprender"},gridMenu:{columns:"Colunas:",exporterAllAsCsv:"Exportar todos os dados como csv",exporterVisibleAsCsv:"Exportar dados visíveis como csv",exporterSelectedAsCsv:"Exportar dados selecionados como csv",exporterAllAsPdf:"Exportar todos os dados como pdf",exporterVisibleAsPdf:"Exportar dados visíveis como pdf",exporterSelectedAsPdf:"Exportar dados selecionados como pdf"},importer:{noHeaders:"Nomes de colunas não puderam ser derivados. O arquivo tem um cabeçalho?",noObjects:"Objetos não puderam ser derivados. Havia dados no arquivo, além dos cabeçalhos?",invalidCsv:"Arquivo não pode ser processado. É um CSV válido?",invalidJson:"Arquivo não pode ser processado. É um Json válido?",jsonNotArray:"Arquivo json importado tem que conter um array. Abortando."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("ru",{aggregate:{label:"элементы"},groupPanel:{description:"Для группировки по столбцу перетащите сюда его название."},search:{placeholder:"Поиск...",showingItems:"Показать элементы:",selectedItems:"Выбранные элементы:",totalItems:"Всего элементов:",size:"Размер страницы:",first:"Первая страница",next:"Следующая страница",previous:"Предыдущая страница",last:"Последняя страница"},menu:{text:"Выбрать столбцы:"},sort:{ascending:"По возрастанию",descending:"По убыванию",remove:"Убрать сортировку"},column:{hide:"спрятать столбец"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sk",{aggregate:{label:"items"},groupPanel:{description:"Pretiahni sem názov stĺpca pre zoskupenie podľa toho stĺpca."},search:{placeholder:"Hľadaj...",showingItems:"Zobrazujem položky:",selectedItems:"Vybraté položky:",totalItems:"Počet položiek:",size:"Počet:",first:"Prvá strana",next:"Ďalšia strana",previous:"Predchádzajúca strana",last:"Posledná strana"},menu:{text:"Vyberte stĺpce:"},sort:{ascending:"Zotriediť vzostupne",descending:"Zotriediť zostupne",remove:"Vymazať triedenie"},aggregation:{count:"total rows: ",sum:"total: ",avg:"avg: ",min:"min: ",max:"max: "},gridMenu:{columns:"Columns:",importerTitle:"Import file",exporterAllAsCsv:"Export all data as csv",exporterVisibleAsCsv:"Export visible data as csv",exporterSelectedAsCsv:"Export selected data as csv",exporterAllAsPdf:"Export all data as pdf",exporterVisibleAsPdf:"Export visible data as pdf",exporterSelectedAsPdf:"Export selected data as pdf"},importer:{noHeaders:"Column names were unable to be derived, does the file have a header?",noObjects:"Objects were not able to be derived, was there data in the file other than headers?",invalidCsv:"File was unable to be processed, is it valid CSV?",invalidJson:"File was unable to be processed, is it valid Json?",jsonNotArray:"Imported json file must contain an array, aborting."}}),a}])}])}(),function(){angular.module("ui.grid").config(["$provide",function(a){a.decorator("i18nService",["$delegate",function(a){return a.add("sv",{aggregate:{label:"Artiklar"},groupPanel:{description:"Dra en kolumnrubrik hit och släpp den för att gruppera efter den kolumnen."},search:{placeholder:"Sök...",showingItems:"Visar artiklar:",selectedItems:"Valda artiklar:",totalItems:"Antal artiklar:",size:"Sidstorlek:",first:"Första sidan",next:"Nästa sida",previous:"Föregående sida",last:"Sista sidan"},menu:{text:"Välj kolumner:"},sort:{ascending:"Sortera stigande",descending:"Sortera fallande",remove:"Inaktivera sortering"},column:{hide:"Göm kolumn"},aggregation:{count:"Antal rader: ",sum:"Summa: ",avg:"Genomsnitt: ",min:"Min: ",max:"Max: "},pinning:{pinLeft:"Fäst vänster",pinRight:"Fäst höger",unpin:"Lösgör"},gridMenu:{columns:"Kolumner:",importerTitle:"Importera fil",exporterAllAsCsv:"Exportera all data som CSV",exporterVisibleAsCsv:"Exportera synlig data som CSV",exporterSelectedAsCsv:"Exportera markerad data som CSV",exporterAllAsPdf:"Exportera all data som PDF",exporterVisibleAsPdf:"Exportera synlig data som PDF",exporterSelectedAsPdf:"Exportera markerad data som PDF"},importer:{noHeaders:"Kolumnnamn kunde inte härledas. Har filen ett sidhuvud?",noObjects:"Objekt kunde inte härledas. Har filen data undantaget sidhuvud?",invalidCsv:"Filen kunde inte behandlas, är den en giltig CSV?",invalidJson:"Filen kunde inte behandlas, är den en giltig JSON?",jsonNotArray:"Importerad JSON-fil måste innehålla ett fält. Import avbruten."},paging:{sizes:"Artiklar per sida",totalItems:"Artiklar"}}),a}])}])}(),function(){var a=["uiT","uiTranslate"],b=["t","uiTranslate"],c=angular.module("ui.grid.i18n");c.constant("i18nConstants",{MISSING:"[MISSING]",UPDATE_EVENT:"$uiI18n",LOCALE_DIRECTIVE_ALIAS:"uiI18n",DEFAULT_LANG:"en"}),c.service("i18nService",["$log","i18nConstants","$rootScope",function(a,b,c){var d={_langs:{},current:null,get:function(a){return this._langs[a.toLowerCase()]},add:function(a,b){var c=a.toLowerCase();this._langs[c]||(this._langs[c]={}),angular.extend(this._langs[c],b)},getAllLangs:function(){var a=[];if(!this._langs)return a;for(var b in this._langs)a.push(b);return a},setCurrent:function(a){this.current=a.toLowerCase()},getCurrentLang:function(){return this.current}},e={add:function(a,b){"object"==typeof a?angular.forEach(a,function(a){a&&d.add(a,b)}):d.add(a,b)},getAllLangs:function(){return d.getAllLangs()},get:function(a){var b=a?a:e.getCurrentLang();return d.get(b)},getSafeText:function(a,c){var f=c?c:e.getCurrentLang(),g=d.get(f);if(!g)return b.MISSING;for(var h=a.split("."),i=g,j=0;je?0===f?new a(b,d[g]):new a(this.rows[f-1],d[g]):new a(b,d[g])},e.prototype.getRowColRight=function(b,c){var d=this.getFocusableCols(),e=d.indexOf(c),f=this.rows.indexOf(b);-1===e&&(e=0);var g=e===d.length-1?0:e+1;return e>g?f===this.rows.length-1?new a(b,d[g]):new a(this.rows[f+1],d[g]):new a(b,d[g])},e.prototype.getRowColDown=function(b,c){var d=this.getFocusableCols(),e=d.indexOf(c),f=this.rows.indexOf(b);return-1===e&&(e=0),f===this.rows.length-1?new a(b,d[e]):new a(this.rows[f+1],d[e])},e.prototype.getRowColUp=function(b,c){var d=this.getFocusableCols(),e=d.indexOf(c),f=this.rows.indexOf(b);return-1===e&&(e=0),0===f?new a(b,d[e]):new a(this.rows[f-1],d[e])},e}]),b.service("uiGridCellNavService",["gridUtil","uiGridConstants","uiGridCellNavConstants","$q","uiGridCellNavFactory",function(a,b,c,d,e){var f={initializeGrid:function(a){a.registerColumnBuilder(f.cellNavColumnBuilder),a.cellNav={},a.cellNav.lastRowCol=null;var b={events:{cellNav:{navigate:function(){}}},methods:{cellNav:{scrollTo:function(a,b,c,d){f.scrollTo(a,b,c,d)},getFocusedCell:function(){return a.cellNav.lastRowCol}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods)},decorateRenderContainers:function(a){var b=a.hasRightContainer()?a.renderContainers.right:null,c=a.hasLeftContainer()?a.renderContainers.left:null;null!==c&&(a.renderContainers.left.cellNav=new e(a.renderContainers.body,c,b,a.renderContainers.body)),null!==b&&(a.renderContainers.right.cellNav=new e(a.renderContainers.body,b,a.renderContainers.body,c)),a.renderContainers.body.cellNav=new e(a.renderContainers.body,a.renderContainers.body,c,b)},getDirection:function(a){return a.keyCode===b.keymap.LEFT||a.keyCode===b.keymap.TAB&&a.shiftKey?c.direction.LEFT:a.keyCode===b.keymap.RIGHT||a.keyCode===b.keymap.TAB?c.direction.RIGHT:a.keyCode===b.keymap.UP||a.keyCode===b.keymap.ENTER&&a.shiftKey?c.direction.UP:a.keyCode===b.keymap.DOWN||a.keyCode===b.keymap.ENTER?c.direction.DOWN:null},cellNavColumnBuilder:function(a){var b=[];return a.allowCellFocus=void 0===a.allowCellFocus?!0:a.allowCellFocus,d.all(b)},scrollTo:function(a,b,c,d){var e=null,f=null;null!==c&&(e=a.getRow(c)),null!==d&&(f=a.getColumn(d.name?d.name:d.field)),this.scrollToInternal(a,b,e,f)},scrollToInternal:function(a,c,d,e){var f={};if(null!==d){var g=a.renderContainers.body.visibleRowCache.indexOf(d),h=a.renderContainers.body.visibleRowCache.length,i=(g+g/(h-1))/h;f.y={percentage:i}}null!==e&&(f.x={percentage:this.getLeftWidth(a,e)/this.getLeftWidth(a,a.renderContainers.body.visibleColumnCache[a.renderContainers.body.visibleColumnCache.length-1])}),(f.y||f.x)&&c.$broadcast(b.events.GRID_SCROLL,f)},scrollToIfNecessary:function(a,c,d,e){var f={},g=a.renderContainers.body.visibleRowCache,h=a.renderContainers.body.visibleColumnCache,i=a.renderContainers.body.prevScrollTop+a.headerHeight;i=0>i?0:i;var j=a.renderContainers.body.prevScrollLeft,k=a.renderContainers.body.prevScrollTop+a.gridHeight-a.headerHeight;a.horizontalScrollbarHeight&&(k-=a.horizontalScrollbarHeight);var l=a.renderContainers.body.prevScrollLeft+a.gridWidth;if(a.verticalScrollbarWidth&&(l-=a.verticalScrollbarWidth),null!==d){var m=g.indexOf(d),n=a.renderContainers.body.getCanvasHeight()-a.renderContainers.body.getViewportHeight();a.horizontalScrollbarHeight&&a.horizontalScrollbarHeight>0&&(n+=a.horizontalScrollbarHeight);var o=(m+1)*a.options.rowHeight;o=0>o?0:o;var p,q;i>o?(p=a.renderContainers.body.prevScrollTop-(i-o),q=p/n,f.y={percentage:q}):o>k&&(p=o-k+a.renderContainers.body.prevScrollTop,q=p/n,f.y={percentage:q})}if(null!==e){for(var r=h.indexOf(e),s=a.renderContainers.body.getCanvasWidth()-a.renderContainers.body.getViewportWidth(),t=0,u=0;r>u;u++){var v=h[u];t+=v.drawnWidth}t=0>t?0:t;var w=t+e.drawnWidth;w=0>w?0:w;var x,y;j>t?(x=a.renderContainers.body.prevScrollLeft-(j-t),y=x/s,y=y>1?1:y,f.x={percentage:y}):w>l&&(x=w-l+a.renderContainers.body.prevScrollLeft,y=x/s,y=y>1?1:y,f.x={percentage:y})}(f.y||f.x)&&c.$broadcast(b.events.GRID_SCROLL,f)},getLeftWidth:function(a,b){var c=0;if(!b)return c;var d=a.renderContainers.body.visibleColumnCache.indexOf(b);a.renderContainers.body.visibleColumnCache.forEach(function(a,b){d>b&&(c+=a.drawnWidth)});var e=0===d?0:(d+1)/a.renderContainers.body.visibleColumnCache.length;return c+=b.drawnWidth*e}};return f}]),b.directive("uiGridCellnav",["gridUtil","uiGridCellNavService","uiGridCellNavConstants",function(b,c,d){return{replace:!0,priority:-150,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(b,e,f,g){var h=g.grid;c.initializeGrid(h),g.cellNav={},g.cellNav.focusCell=function(a,b){g.cellNav.broadcastCellNav({row:a,col:b})},g.cellNav.broadcastCellNav=function(a){b.$broadcast(d.CELL_NAV_EVENT,a),g.cellNav.broadcastFocus(a)},g.cellNav.broadcastFocus=function(b){var c=b.row,d=b.col;if(null===h.cellNav.lastRowCol||h.cellNav.lastRowCol.row!==c||h.cellNav.lastRowCol.col!==d){var e=new a(c,d);h.api.cellNav.raise.navigate(e,h.cellNav.lastRowCol),h.cellNav.lastRowCol=e}},g.cellNav.handleKeyDown=function(a){var e=c.getDirection(a);if(null===e)return!0;var f="body";a.uiGridTargetRenderContainerId&&(f=a.uiGridTargetRenderContainerId);var i=g.grid.api.cellNav.getFocusedCell();if(i){var j=g.grid.renderContainers[f].cellNav.getNextRowCol(e,i.row,i.col);return j.eventType=d.EVENT_TYPE.KEYDOWN,g.cellNav.broadcastCellNav(j),c.scrollToIfNecessary(h,b,j.row,j.col),a.stopPropagation(),a.preventDefault(),!1}}},post:function(){}}}}}]),b.directive("uiGridRenderContainer",["$timeout","$document","gridUtil","uiGridConstants","uiGridCellNavService","uiGridCellNavConstants",function(a,b,c,d,e){return{replace:!0,priority:-99999,require:["^uiGrid","uiGridRenderContainer"],scope:!1,compile:function(){return{pre:function(){},post:function(c,f,g,h){var i=h[0],j=h[1],k=j.containerId,l=i.grid;e.decorateRenderContainers(l),f.attr("tabindex",-1),f.on("keydown",function(a){return a.uiGridTargetRenderContainerId=k,i.cellNav.handleKeyDown(a)}),c.$on(d.events.GRID_SCROLL,function(){null!=i.grid.api.cellNav.getFocusedCell()&&a(function(){a(function(){var a=i.grid.api.cellNav.getFocusedCell();b.activeElement===b.body&&f[0].focus(),i.cellNav.broadcastCellNav(a)})})})}}}}}]),b.directive("uiGridCell",["$timeout","$document","uiGridCellNavService","gridUtil","uiGridCellNavConstants","uiGridConstants",function(b,c,d,e,f){return{priority:-150,restrict:"A",require:"^uiGrid",scope:!1,link:function(b,c,d,e){function g(){c.find("div").attr("tabindex",-1)}function h(){var a=c.find("div");a.addClass("ui-grid-cell-focus")}function i(){var a=c.find("div");a.removeClass("ui-grid-cell-focus")}b.col.colDef.allowCellFocus&&(g(),c.find("div").on("click",function(c){e.cellNav.broadcastCellNav(new a(b.row,b.col)),c.stopPropagation()}),b.$on(f.CELL_NAV_EVENT,function(a,d){d.row===b.row&&d.col===b.col?(h(),d.hasOwnProperty("eventType")&&d.eventType===f.EVENT_TYPE.KEYDOWN&&c.find("div")[0].focus()):i()}),b.$on("$destroy",function(){c.find("div").off("click")}))}}}])}(),function(){"use strict";var a=angular.module("ui.grid.edit",["ui.grid"]);a.constant("uiGridEditConstants",{EDITABLE_CELL_TEMPLATE:/EDITABLE_CELL_TEMPLATE/g,EDITABLE_CELL_DIRECTIVE:/editable_cell_directive/g,events:{BEGIN_CELL_EDIT:"uiGridEventBeginCellEdit",END_CELL_EDIT:"uiGridEventEndCellEdit",CANCEL_CELL_EDIT:"uiGridEventCancelCellEdit"}}),a.service("uiGridEditService",["$q","$templateCache","uiGridConstants","gridUtil",function(a,b,c,d){var e={initializeGrid:function(a){e.defaultGridOptions(a.options),a.registerColumnBuilder(e.editColumnBuilder);var b={events:{edit:{afterCellEdit:function(){},beginCellEdit:function(){},cancelCellEdit:function(){}}},methods:{edit:{}}};a.api.registerEventsFromObject(b.events)},defaultGridOptions:function(a){a.cellEditableCondition=void 0===a.cellEditableCondition?!0:a.cellEditableCondition,a.enableCellEditOnFocus=void 0===a.enableCellEditOnFocus?!1:a.enableCellEditOnFocus},editColumnBuilder:function(b,c,e){var f=[];return b.enableCellEdit=void 0===b.enableCellEdit?void 0===e.enableCellEdit?"object"!==b.type:e.enableCellEdit:b.enableCellEdit,b.cellEditableCondition=void 0===b.cellEditableCondition?e.cellEditableCondition:b.cellEditableCondition,b.enableCellEdit&&(b.editableCellTemplate=b.editableCellTemplate||e.editableCellTemplate||"ui-grid/cellEditor",f.push(d.getTemplate(b.editableCellTemplate).then(function(a){c.editableCellTemplate=a},function(){throw new Error("Couldn't fetch/use colDef.editableCellTemplate '"+b.editableCellTemplate+"'")}))),b.enableCellEditOnFocus=void 0===b.enableCellEditOnFocus?e.enableCellEditOnFocus:b.enableCellEditOnFocus,a.all(f)},isStartEditKey:function(a){return a.keyCode===c.keymap.LEFT||a.keyCode===c.keymap.TAB&&a.shiftKey||a.keyCode===c.keymap.RIGHT||a.keyCode===c.keymap.TAB||a.keyCode===c.keymap.UP||a.keyCode===c.keymap.ENTER&&a.shiftKey||a.keyCode===c.keymap.DOWN||a.keyCode===c.keymap.ENTER?!1:!0}};return e}]),a.directive("uiGridEdit",["gridUtil","uiGridEditService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(){}}}}}]),a.directive("uiGridCell",["$compile","$injector","uiGridConstants","uiGridEditConstants","gridUtil","$parse","uiGridEditService",function(a,b,c,d,e,f,g){return{priority:-100,restrict:"A",scope:!1,require:"?^uiGrid",link:function(e,h,i,j){function k(){h.on("dblclick",p),h.on("keydown",n),e.col.colDef.enableCellEditOnFocus&&h.find("div").on("focus",m)}function l(){h.off("dblclick",p),h.off("keydown",n),e.col.colDef.enableCellEditOnFocus&&h.find("div").off("focus",m)}function m(a){j&&j.cellNav&&j.cellNav.focusCell(e.row,e.col),a.stopPropagation(),p()}function n(a){g.isStartEditKey(a)&&p()}function o(a,b){return!b.isSaving&&(angular.isFunction(a.colDef.cellEditableCondition)?a.colDef.cellEditableCondition(e):a.colDef.cellEditableCondition)}function p(){if(!v&&o(e.col,e.row)){u=f(e.row.getQualifiedColField(e.col)),t=u(e),s=e.col.editableCellTemplate,s=s.replace(c.MODEL_COL_FIELD,e.row.getQualifiedColField(e.col));var b=e.col.colDef.editDropdownFilter?"|"+e.col.colDef.editDropdownFilter:"";switch(s=s.replace(c.CUSTOM_FILTERS,b),e.inputType="text",e.col.colDef.type){case"boolean":e.inputType="checkbox";break;case"number":e.inputType="number";break;case"date":e.inputType="date"}e.editDropdownOptionsArray=e.col.colDef.editDropdownOptionsArray,e.editDropdownIdLabel=e.col.colDef.editDropdownIdLabel?e.col.colDef.editDropdownIdLabel:"id",e.editDropdownValueLabel=e.col.colDef.editDropdownValueLabel?e.col.colDef.editDropdownValueLabel:"value";e.$apply(function(){v=!0,l();var b=angular.element(s);h.append(b),a(b)(e.$new());var c=angular.element(h.children()[0]);w=c.hasClass("ui-grid-cell-focus"),c.addClass("ui-grid-cell-contents-hidden")});var g=e.$on(c.events.GRID_SCROLL,function(){q(!0),e.grid.api.edit.raise.afterCellEdit(e.row.entity,e.col.colDef,u(e),t),g()}),i=e.$on(d.events.END_CELL_EDIT,function(a,b){q(b),e.grid.api.edit.raise.afterCellEdit(e.row.entity,e.col.colDef,u(e),t),i()}),j=e.$on(d.events.CANCEL_CELL_EDIT,function(){r(),j()});e.$broadcast(d.events.BEGIN_CELL_EDIT),e.grid.api.edit.raise.beginCellEdit(e.row.entity,e.col.colDef)}}function q(a){if(v){var b=angular.element(h.children()[0]);angular.element(h.children()[1]).remove(),b.removeClass("ui-grid-cell-contents-hidden"),a&&w&&b[0].focus(),w=!1,v=!1,k(),e.grid.api.core.notifyDataChange(e.grid,c.dataChange.EDIT)}}function r(){v&&(u.assign(e,t),e.$apply(),e.grid.api.edit.raise.cancelCellEdit(e.row.entity,e.col.colDef),q(!0))}if(e.col.colDef.enableCellEdit){var s,t,u,v=!1,w=!1;k();try{var x=b.get("uiGridCellNavConstants");e.col.colDef.enableCellEditOnFocus&&e.$on(x.CELL_NAV_EVENT,function(a,b){b.row===e.row&&b.col===e.col?p():q()})}catch(y){}}}}}]),a.directive("uiGridEditor",["uiGridConstants","uiGridEditConstants",function(a,b){return{scope:!0,require:["?^uiGrid","?^uiGridRenderContainer"],compile:function(){return{pre:function(){},post:function(c,d,e,f){var g,h;f[0]&&(g=f[0]),f[1]&&(h=f[1]),c.$on(b.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].select(),d.on("blur",function(a){c.stopEdit(a)})}),c.deepEdit=!1,c.stopEdit=function(a){c.inputForm&&!c.inputForm.$valid?(a.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT)):c.$emit(b.events.END_CELL_EDIT),c.deepEdit=!1},d.on("click",function(){c.deepEdit=!0}),d.on("keydown",function(d){switch(d.keyCode){case a.keymap.ESC:d.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT);break;case a.keymap.ENTER:c.stopEdit(d);break;case a.keymap.TAB:c.stopEdit(d)}if(c.deepEdit)switch(d.keyCode){case a.keymap.LEFT:d.stopPropagation();break;case a.keymap.RIGHT:d.stopPropagation();break;case a.keymap.UP:d.stopPropagation();break;case a.keymap.DOWN:d.stopPropagation()}else g&&g.hasOwnProperty("cellNav")&&h&&(d.uiGridTargetRenderContainerId=h.containerId,g.cellNav.handleKeyDown(d));return!0})}}}}}]),a.directive("input",["$filter",function(a){function b(a){if("undefined"==typeof a||""===a)return null;var b=a.split("-");if(3!==b.length)return null;var c=parseInt(b[0],10),d=parseInt(b[1],10),e=parseInt(b[2],10);return 1>d||1>c||1>e?null:new Date(c,d-1,e)}return{restrict:"E",require:"?ngModel",link:function(c,d,e,f){2===angular.version.minor&&e.type&&"date"===e.type&&f&&(f.$formatters.push(function(b){return f.$setValidity(null,!b||!isNaN(b.getTime())),a("date")(b,"yyyy-MM-dd")}),f.$parsers.push(function(a){if(a&&a.length>0){var c=b(a);return f.$setValidity(null,c&&!isNaN(c.getTime())),c}return f.$setValidity(null,!0),null}))}}}]),a.directive("uiGridEditDropdown",["uiGridConstants","uiGridEditConstants",function(a,b){return{scope:!0,compile:function(){return{pre:function(){},post:function(c,d){c.$on(b.events.BEGIN_CELL_EDIT,function(){d[0].focus(),d[0].style.width=d[0].parentElement.offsetWidth-1+"px",d.on("blur",function(a){c.stopEdit(a) -})}),c.stopEdit=function(){c.$emit(b.events.END_CELL_EDIT)},d.on("keydown",function(d){switch(d.keyCode){case a.keymap.ESC:d.stopPropagation(),c.$emit(b.events.CANCEL_CELL_EDIT);break;case a.keymap.ENTER:c.stopEdit(d);break;case a.keymap.LEFT:c.stopEdit(d);break;case a.keymap.RIGHT:c.stopEdit(d);break;case a.keymap.UP:d.stopPropagation();break;case a.keymap.DOWN:d.stopPropagation();break;case a.keymap.TAB:c.stopEdit(d)}return!0})}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.expandable",["ui.grid"]);a.service("uiGridExpandableService",["gridUtil","$compile",function(a){var b={initializeGrid:function(c){c.options.enableExpandable=c.options.enableExpandable!==!1,c.options.expandableRowHeight=c.options.expandableRowHeight||150,c.options.enableExpandable&&!c.options.expandableRowTemplate&&(a.logError("You have not set the expandableRowTemplate, disabling expandable module"),c.options.enableExpandable=!1);var d={events:{expandable:{rowExpandedStateChanged:function(){}}},methods:{expandable:{toggleRowExpansion:function(a){var d=c.getRow(a);null!==d&&b.toggleRowExpansion(c,d)},expandAllRows:function(){b.expandAllRows(c)},collapseAllRows:function(){b.collapseAllRows(c)}}}};c.api.registerEventsFromObject(d.events),c.api.registerMethodsFromObject(d.methods)},toggleRowExpansion:function(a,b){b.isExpanded=!b.isExpanded,b.height=b.isExpanded?b.grid.options.rowHeight+a.options.expandableRowHeight:b.grid.options.rowHeight,a.api.expandable.raise.rowExpandedStateChanged(b)},expandAllRows:function(a){angular.forEach(a.renderContainers.body.visibleRowCache,function(c){c.isExpanded||b.toggleRowExpansion(a,c)}),a.refresh()},collapseAllRows:function(a){angular.forEach(a.renderContainers.body.visibleRowCache,function(c){c.isExpanded&&b.toggleRowExpansion(a,c)}),a.refresh()}};return b}]),a.directive("uiGridExpandable",["uiGridExpandableService","$templateCache",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,d,e,f){if(f.grid.options.enableExpandableRowHeader!==!1){var g={name:"expandableButtons",width:40};g.cellTemplate=b.get("ui-grid/expandableRowHeader"),f.grid.addRowHeaderColumn(g)}a.initializeGrid(f.grid)},post:function(){}}}}}]),a.directive("uiGridExpandableRow",["uiGridExpandableService","$timeout","$compile","uiGridConstants","gridUtil","$interval","$log",function(a,b,c,d,e){return{replace:!1,priority:0,scope:!1,compile:function(){return{pre:function(a,b){e.getTemplate(a.grid.options.expandableRowTemplate).then(function(d){if(a.grid.options.expandableRowScope){var e=a.grid.options.expandableRowScope;for(var f in e)e.hasOwnProperty(f)&&(a[f]=e[f])}var g=c(d)(a);b.append(g),a.row.expandedRendered=!0})},post:function(a){a.$on("$destroy",function(){a.row.expandedRendered=!1})}}}}}]),a.directive("uiGridRow",["$compile","gridUtil","$templateCache",function(){return{priority:-200,scope:!1,compile:function(){return{pre:function(a){function b(){var b=a.grid,c=0;return angular.forEach(b.columns,function(a){"left"===a.renderContainer&&(c+=a.width)}),c=Math.floor(c),".grid"+b.id+" .ui-grid-pinned-container-"+a.colContainer.name+", .grid"+b.id+" .ui-grid-pinned-container-"+a.colContainer.name+" .ui-grid-render-container-"+a.colContainer.name+" .ui-grid-viewport .ui-grid-canvas .ui-grid-row { width: "+c+"px; }"}a.expandableRow={},a.expandableRow.shouldRenderExpand=function(){var b="body"===a.colContainer.name&&a.grid.options.enableExpandable!==!1&&a.row.isExpanded&&(!a.grid.isScrollingVertically||a.row.expandedRendered);return b},a.expandableRow.shouldRenderFiller=function(){var b=a.row.isExpanded&&("body"!==a.colContainer.name||a.grid.isScrollingVertically&&!a.row.expandedRendered);return b},"left"===a.colContainer.name&&a.grid.registerStyleComputation({priority:15,func:b})},post:function(){}}}}}]),a.directive("uiGridViewport",["$compile","gridUtil","$templateCache",function(a,b,c){return{priority:-200,scope:!1,compile:function(a){var b=angular.element(a.children().children()[0]),d=c.get("ui-grid/expandableScrollFiller"),e=c.get("ui-grid/expandableRow");return b.append(e),b.append(d),{pre:function(){},post:function(){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.exporter",["ui.grid"]);a.constant("uiGridExporterConstants",{featureName:"exporter",ALL:"all",VISIBLE:"visible",SELECTED:"selected",CSV_CONTENT:"CSV_CONTENT",LINK_LABEL:"LINK_LABEL",BUTTON_LABEL:"BUTTON_LABEL"}),a.service("uiGridExporterService",["$q","uiGridExporterConstants","uiGridSelectionConstants","gridUtil","$compile","$interval","i18nService",function(a,b,c,d,e,f,g){var h={initializeGrid:function(a){a.exporter={},this.defaultGridOptions(a.options);var b={events:{exporter:{}},methods:{exporter:{csvExport:function(b,c,d){h.csvExport(a,b,c,d)},pdfExport:function(b,c){h.pdfExport(a,b,c)}}}};a.api.registerEventsFromObject(b.events),a.api.registerMethodsFromObject(b.methods),a.api.core.addToGridMenu?h.addToMenu(a):f(function(){a.api.core.addToGridMenu&&h.addToMenu(a)},100,1)},defaultGridOptions:function(a){a.exporterSuppressMenu=a.exporterSuppressMenu===!0,a.exporterLinkTemplate=a.exporterLinkTemplate?a.exporterLinkTemplate:"ui-grid/csvLink",a.exporterHeaderTemplate=a.exporterHeaderTemplate?a.exporterHeaderTemplate:"ui-grid/exporterHeader",a.exporterLinkLabel=a.exporterLinkLabel?a.exporterLinkLabel:"Download CSV",a.exporterMenuLabel=a.exporterMenuLabel?a.exporterMenuLabel:"Export",a.exporterSuppressColumns=a.exporterSuppressColumns?a.exporterSuppressColumns:[],a.exporterCsvColumnSeparator=a.exporterCsvColumnSeparator?a.exporterCsvColumnSeparator:",",a.exporterPdfDefaultStyle=a.exporterPdfDefaultStyle?a.exporterPdfDefaultStyle:{fontSize:11},a.exporterPdfTableStyle=a.exporterPdfTableStyle?a.exporterPdfTableStyle:{margin:[0,5,0,15]},a.exporterPdfTableHeaderStyle=a.exporterPdfTableHeaderStyle?a.exporterPdfTableHeaderStyle:{bold:!0,fontSize:12,color:"black"},a.exporterPdfHeader=a.exporterPdfHeader?a.exporterPdfHeader:null,a.exporterPdfFooter=a.exporterPdfFooter?a.exporterPdfFooter:null,a.exporterPdfOrientation=a.exporterPdfOrientation?a.exporterPdfOrientation:"landscape",a.exporterPdfPageSize=a.exporterPdfPageSize?a.exporterPdfPageSize:"A4",a.exporterPdfMaxGridWidth=a.exporterPdfMaxGridWidth?a.exporterPdfMaxGridWidth:720,a.exporterMenuCsv=void 0!==a.exporterMenuCsv?a.exporterMenuCsv:!0,a.exporterMenuPdf=void 0!==a.exporterMenuPdf?a.exporterMenuPdf:!0,a.exporterPdfCustomFormatter=a.exporterPdfCustomFormatter&&"function"==typeof a.exporterPdfCustomFormatter?a.exporterPdfCustomFormatter:function(a){return a},a.exporterFieldCallback=a.exporterFieldCallback?a.exporterFieldCallback:function(a,b,c,d){return d}},addToMenu:function(a){a.api.core.addToGridMenu(a,[{title:g.getSafeText("gridMenu.exporterAllAsCsv"),action:function(){this.grid.api.exporter.csvExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuCsv}},{title:g.getSafeText("gridMenu.exporterVisibleAsCsv"),action:function(){this.grid.api.exporter.csvExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv}},{title:g.getSafeText("gridMenu.exporterSelectedAsCsv"),action:function(){this.grid.api.exporter.csvExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuCsv&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0}},{title:g.getSafeText("gridMenu.exporterAllAsPdf"),action:function(){this.grid.api.exporter.pdfExport(b.ALL,b.ALL)},shown:function(){return this.grid.options.exporterMenuPdf}},{title:g.getSafeText("gridMenu.exporterVisibleAsPdf"),action:function(){this.grid.api.exporter.pdfExport(b.VISIBLE,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf}},{title:g.getSafeText("gridMenu.exporterSelectedAsPdf"),action:function(){this.grid.api.exporter.pdfExport(b.SELECTED,b.VISIBLE)},shown:function(){return this.grid.options.exporterMenuPdf&&this.grid.api.selection&&this.grid.api.selection.getSelectedRows().length>0}}])},csvExport:function(a,b,c,e){var f=this.getColumnHeaders(a,c),g=this.getData(a,b,c),h=this.formatAsCsv(f,g,a.options.exporterCsvColumnSeparator);!e&&a.options.exporterCsvLinkElement&&(e=a.options.exporterCsvLinkElement),e?this.renderCsvLink(a,h,e):d.logError("Exporter asked to export as csv, but no element provided. Perhaps you should set gridOptions.exporterCsvLinkElement?")},getColumnHeaders:function(a,d){var e=[];return angular.forEach(a.columns,function(f){!f.visible&&d!==b.ALL||f.name===c.selectionRowHeaderColName||-1!==a.options.exporterSuppressColumns.indexOf(f.name)||e.push({name:f.field,displayName:a.options.exporterHeaderFilter?a.options.exporterHeaderFilter(f.displayName):f.displayName,width:f.drawnWidth?f.drawnWidth:f.width,align:"number"===f.colDef.type?"right":"left"})}),e},getData:function(a,e,f){var g,h=[];switch(e){case b.ALL:g=a.rows;break;case b.VISIBLE:g=a.getVisibleRows();break;case b.SELECTED:a.api.selection?g=a.api.selection.getSelectedGridRows():d.logError("selection feature must be enabled to allow selected rows to be exported")}return angular.forEach(g,function(d){var e=[];angular.forEach(a.columns,function(g){if((g.visible||f===b.ALL)&&g.name!==c.selectionRowHeaderColName&&-1===a.options.exporterSuppressColumns.indexOf(g.name)){var h={value:a.options.exporterFieldCallback(a,d,g,a.getCellValue(d,g))};g.colDef.exporterPdfAlign&&(h.alignment=g.colDef.exporterPdfAlign),e.push(h)}}),h.push(e)}),h},formatAsCsv:function(a,b,c){var d=this,e=a.map(function(a){return{value:a.displayName}}),f=d.formatRowAsCsv(this,c)(e)+"\n";return f+=b.map(this.formatRowAsCsv(this,c)).join("\n")},formatRowAsCsv:function(a,b){return function(c){return c.map(a.formatFieldAsCsv).join(b)}},formatFieldAsCsv:function(a){return null==a.value?"":"number"==typeof a.value?a.value:"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?'"'+a.value.replace(/"/g,'""')+'"':JSON.stringify(a.value)},renderCsvLink:function(a,c,f){var g=f?f:angular.element(a.exporter.gridElm[0].querySelectorAll(".ui-grid-exporter-csv-link"));angular.element(g[0].querySelectorAll(".ui-grid-exporter-csv-link-span"))&&angular.element(g[0].querySelectorAll(".ui-grid-exporter-csv-link-span")).remove();d.getTemplate(a.options.exporterLinkTemplate).then(function(d){var f=angular.element(d);f.children("a").html(f.children("a").html().replace(b.LINK_LABEL,a.options.exporterLinkLabel)),f.children("a").attr("href",f.children("a").attr("href").replace(b.CSV_CONTENT,encodeURIComponent(c)));var h=e(f)(a.exporter.$scope);g.append(h)})},pdfExport:function(a,b,c){var d=this.getColumnHeaders(a,c),e=this.getData(a,b,c),f=this.prepareAsPdf(a,d,e);pdfMake.createPdf(f).open()},prepareAsPdf:function(a,b,c){var d=this.calculatePdfHeaderWidths(a,b),e=b.map(function(a){return{text:a.displayName,style:"tableHeader"}}),f=c.map(this.formatRowAsPdf(this)),g=[e].concat(f),h={pageOrientation:a.options.exporterPdfOrientation,pageSize:a.options.exporterPdfPageSize,content:[{style:"tableStyle",table:{headerRows:1,widths:d,body:g}}],styles:{tableStyle:a.options.exporterPdfTableStyle,tableHeader:a.options.exporterPdfTableHeaderStyle},defaultStyle:a.options.exporterPdfDefaultStyle};return a.options.exporterPdfLayout&&(h.layout=a.options.exporterPdfLayout),a.options.exporterPdfHeader&&h.content.unshift(a.options.exporterPdfHeader),a.options.exporterPdfFooter&&h.content.push(a.options.exporterPdfFooter),a.options.exporterPdfCustomFormatter&&(h=a.options.exporterPdfCustomFormatter(h)),h},calculatePdfHeaderWidths:function(a,b){var c=0;angular.forEach(b,function(a){"number"==typeof a.width&&(c+=a.width)});var d=0;angular.forEach(b,function(a){if("*"===a.width&&(d+=100),"string"==typeof a.width&&a.width.match(/(\d)*%/)){var b=parseInt(a.width.match(/(\d)*%/)[0]);a.width=c*b/100,d+=a.width}});var e=c+d;return b.map(function(b){return"*"===b.width?b.width:b.width*a.options.exporterPdfMaxGridWidth/e})},formatRowAsPdf:function(a){return function(b){return b.map(a.formatFieldAsPdfString)}},formatFieldAsPdfString:function(a){var b;return b=null==a.value?"":"number"==typeof a.value?a.value.toString():"boolean"==typeof a.value?a.value?"TRUE":"FALSE":"string"==typeof a.value?a.value.replace(/"/g,'""'):JSON.stringify(a.value).replace(/^"/,"").replace(/"$/,""),a.alignment&&"string"==typeof a.alignment&&(b={text:b,alignment:a.alignment}),b}};return h}]),a.directive("uiGridExporter",["uiGridExporterConstants","uiGridExporterService","gridUtil","$compile",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(e.grid),e.grid.exporter.$scope=a}}}])}(),function(){"use strict";var a=angular.module("ui.grid.importer",["ui.grid"]);a.constant("uiGridImporterConstants",{featureName:"importer"}),a.service("uiGridImporterService",["$q","uiGridConstants","uiGridImporterConstants","gridUtil","$compile","$interval","i18nService","$window",function(a,b,c,d,e,f,g,h){var i={initializeGrid:function(a,b){b.importer={$scope:a},this.defaultGridOptions(b.options);var c={events:{importer:{}},methods:{importer:{importFile:function(a,b){i.importFile(a,b)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.options.enableImporter&&b.options.importerShowMenu&&(b.api.core.addToGridMenu?i.addToMenu(b):f(function(){b.api.core.addToGridMenu&&i.addToMenu(b)},100,1))},defaultGridOptions:function(a){a.enableImporter||void 0===a.enableImporter?h.hasOwnProperty("File")&&h.hasOwnProperty("FileReader")&&h.hasOwnProperty("FileList")&&h.hasOwnProperty("Blob")?a.enableImporter=!0:(d.logError("The File APIs are not fully supported in this browser, grid importer cannot be used."),a.enableImporter=!1):a.enableImporter=!1,a.importerProcessHeaders=a.importerProcessHeaders||i.processHeaders,a.importerHeaderFilter=a.importerHeaderFilter||function(a){return a},a.importerErrorCallback&&"function"==typeof a.importerErrorCallback||delete a.importerErrorCallback,a.enableImporter!==!0||a.importerDataAddCallback||(d.logError("You have not set an importerDataAddCallback, importer is disabled"),a.enableImporter=!1),a.importerShowMenu=a.importerShowMenu!==!1,a.importerObjectCallback=a.importerObjectCallback||function(a,b){return b}},addToMenu:function(a){a.api.core.addToGridMenu(a,[{title:g.getSafeText("gridMenu.importerTitle")},{templateUrl:"ui-grid/importerMenuItemContainer",action:function(){this.grid.api.importer.importAFile(a)}}])},importThisFile:function(a,b){if(!b)return void d.logError("No file object provided to importThisFile, should be impossible, aborting");var c=new FileReader;switch(b.type){case"application/json":c.onload=i.importJsonClosure(a);break;default:c.onload=i.importCsvClosure(a)}c.readAsText(b)},importJsonClosure:function(a){return function(b){var c,d=[];angular.forEach(i.parseJson(a,b),function(b){c=i.newObject(a),angular.extend(c,b),c=a.options.importerObjectCallback(a,c),d.push(c)}),i.addObjects(a,d)}},parseJson:function(a,b){var c;try{c=JSON.parse(b.target.result)}catch(d){return void i.alertError(a,"importer.invalidJson","File could not be processed, is it valid json? Content was: ",b.target.result)}return Array.isArray(c)?c:(i.alertError(a,"importer.jsonNotarray","Import failed, file is not an array, file was: ",b.target.result),[])},importCsvClosure:function(a){return function(b){var c=i.parseCsv(b);if(!c||c.length<1)return void i.alertError(a,"importer.invalidCsv","File could not be processed, is it valid csv? Content was: ",b.target.result);var d=i.createCsvObjects(a,c);return d&&0!==d.length?void i.addObjects(a,d):void i.alertError(a,"importer.noObjects","Objects were not able to be derived, content was: ",b.target.result)}},parseCsv:function(a){var b=a.target.result;return CSV.parse(b)},createCsvObjects:function(a,b){var c=a.options.importerProcessHeaders(a,b.shift());if(!c||0===c.length)return i.alertError(a,"importer.noHeaders","Column names could not be derived, content was: ",b),[];var d,e=[];return angular.forEach(b,function(b){d=i.newObject(a),angular.forEach(b,function(a,b){null!==c[b]&&(d[c[b]]=a)}),d=a.options.importerObjectCallback(a,d),e.push(d)}),e},processHeaders:function(a,b){var c=[];if(a.options.columnDefs&&0!==a.options.columnDefs.length){var d=i.flattenColumnDefs(a,a.options.columnDefs);return angular.forEach(b,function(a){c.push(d[a]?d[a]:d[a.toLowerCase()]?d[a.toLowerCase()]:null)}),c}return angular.forEach(b,function(a){c.push(a.replace(/[^0-9a-zA-Z\-_]/g,"_"))}),c},flattenColumnDefs:function(a,b){var c={};return angular.forEach(b,function(b){b.name&&(c[b.name]=b.field||b.name,c[b.name.toLowerCase()]=b.field||b.name),b.field&&(c[b.field]=b.field||b.name,c[b.field.toLowerCase()]=b.field||b.name),b.displayName&&(c[b.displayName]=b.field||b.name,c[b.displayName.toLowerCase()]=b.field||b.name),b.displayName&&a.options.importerHeaderFilter&&(c[a.options.importerHeaderFilter(b.displayName)]=b.field||b.name,c[a.options.importerHeaderFilter(b.displayName).toLowerCase()]=b.field||b.name)}),c},addObjects:function(a,c){if(a.api.rowEdit){var d=a.registerDataChangeCallback(function(){a.api.rowEdit.setRowsDirty(a,c),a.deregisterDataChangeCallback(d)},[b.dataChange.ROW]),e=function(){a.deregisterDataChangeCallback(d)};a.importer.$scope.$on("$destroy",e)}a.importer.$scope.$apply(a.options.importerDataAddCallback(a,c))},newObject:function(a){return"undefined"!=typeof a.options&&"undefined"!=typeof a.options.importerNewObject?new a.options.importerNewObject:{}},alertError:function(a,b,c,e){a.options.importerErrorCallback?a.options.importerErrorCallback(a,b,c,e):(h.alert(g.getSafeText(b)),d.logError(c+e))}};return i}]),a.directive("uiGridImporter",["uiGridImporterConstants","uiGridImporterService","gridUtil","$compile",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,link:function(a,c,d,e){b.initializeGrid(a,e.grid)}}}]),a.directive("uiGridImporterMenuItem",["uiGridImporterConstants","uiGridImporterService","gridUtil","$compile",function(a,b,c){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,templateUrl:"ui-grid/importerMenuItem",link:function(a,d,e,f){var g=function(a){if(1===a.srcElement.files.length){var c=a.srcElement.files[0];b.importThisFile(i,c),a.srcElement.form.reset()}},h=d[0].querySelectorAll(".ui-grid-importer-file-chooser"),i=f.grid;1!==h.length?c.logError("Found > 1 or < 1 file choosers within the menu item, error, cannot continue"):h[0].addEventListener("change",g,!1)}}}])}(),function(){"use strict";var a=angular.module("ui.grid.infiniteScroll",["ui.grid"]);a.service("uiGridInfiniteScrollService",["gridUtil","$compile","$timeout",function(){var a={initializeGrid:function(b){a.defaultGridOptions(b.options);var c={events:{infiniteScroll:{needLoadMoreData:function(){}}},methods:{infiniteScroll:{dataLoaded:function(){b.options.loadTimout=!1}}}};b.options.loadTimout=!1,b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableInfiniteScroll=a.enableInfiniteScroll!==!1},loadData:function(a){a.options.loadTimout=!0,a.api.infiniteScroll.raise.needLoadMoreData()},checkScroll:function(a,b){var c=a.options.infiniteScrollPercentage?a.options.infiniteScrollPercentage:20;return!a.options.loadTimout&&c>=b?(this.loadData(a),!0):!1}};return a}]),a.directive("uiGridInfiniteScroll",["uiGridInfiniteScrollService",function(a){return{priority:-200,scope:!1,require:"^uiGrid",compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid)},post:function(){}}}}}]),a.directive("uiGridViewport",["$compile","gridUtil","uiGridInfiniteScrollService","uiGridConstants",function(a,b,c,d){return{priority:-200,scope:!1,link:function(a){a.grid.options.enableInfiniteScroll&&a.$on(d.events.GRID_SCROLL,function(b,d){if(d.y){var e=100-100*d.y.percentage;c.checkScroll(a.grid,e)}})}}}])}(),function(){"use strict";var a=angular.module("ui.grid.moveColumns",["ui.grid"]);a.service("uiGridMoveColumnService",["$q","$timeout","$log",function(a,b){var c={initializeGrid:function(a){var b=this;this.registerPublicApi(a),this.defaultGridOptions(a.options),a.registerColumnBuilder(b.movableColumnBuilder)},registerPublicApi:function(a){var b=this,c={events:{colMovable:{columnPositionChanged:function(){}}},methods:{colMovable:{moveColumn:function(c,d){b.redrawColumnAtPosition(a,c,d)}}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableColumnMoving=a.enableColumnMoving!==!1},movableColumnBuilder:function(b,c,d){var e=[];return b.enableColumnMoving=void 0===b.enableColumnMoving?d.enableColumnMoving:b.enableColumnMoving,a.all(e)},redrawColumnAtPosition:function(a,c,d){var e=a.columns,f=function(a){for(var b=a,c=0;b>=c;c++)angular.isDefined(e[c].colDef.visible)&&e[c].colDef.visible===!1&&b++;return b};c=f(c),d=f(d);var g=e[c];if(g.colDef.enableColumnMoving){if(c>d)for(var h=c;h>d;h--)e[h]=e[h-1];else if(d>c)for(var i=c;d>i;i++)e[i]=e[i+1];e[d]=g,b(function(){a.refresh(),a.api.colMovable.raise.columnPositionChanged(g.colDef,c,d)})}}};return c}]),a.directive("uiGridMoveColumns",["uiGridMoveColumnService",function(a){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(b,c,d,e){a.initializeGrid(e.grid)},post:function(){}}}}}]),a.directive("uiGridHeaderCell",["$q","gridUtil","uiGridMoveColumnService","$document",function(a,b,c,d){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(e,f,g,h){if(e.col.colDef.enableColumnMoving){var i=function(i){if("ui-grid-icon-angle-down"!==i.target.className&&"I"!==i.target.tagName){var j=f.clone();f.append(j),j.addClass("movingColumn");var k={},l=e.grid.element[0].getBoundingClientRect().left,m=f[0].getBoundingClientRect().left;k.left=m-l+"px";var n,o=e.grid.element[0].getBoundingClientRect().right,p=f[0].getBoundingClientRect().right;p>o&&(n=e.col.drawnWidth+(o-p),k.width=n+"px"),j.css(k);var q=i.pageX,r=0,s=l+e.grid.getViewportWidth()-e.grid.verticalScrollbarWidth,t=function(a){h.fireEvent("hide-menu");var c,d=j[0].getBoundingClientRect().left-1,f=j[0].getBoundingClientRect().right,g=a.pageX-q;c="ie"===b.detectBrowser()?d+g:d-l+g,c=s>c?c:s,(d>=l||g>0)&&(s>=f||0>g)?j.css({visibility:"visible",left:c+"px"}):(g*=5,h.fireScrollingEvent({x:{pixels:2.5*g}})),r+=g,q=a.pageX,nr){for(var l=0,m=f-1;m>=0;m--)if(l+=a[m].drawnWidth,l>Math.abs(r)){c.redrawColumnAtPosition(e.grid,g+f,g+m+1);break}l0){for(var n=0,o=f+1;or){c.redrawColumnAtPosition(e.grid,g+f,g+o-1);break}r>n&&c.redrawColumnAtPosition(e.grid,g+f,g+a.length-1)}else if(0===r&&h.grid.options.enableSorting&&e.col.enableSorting){var p=!1;b.shiftKey&&(p=!0),h.grid.sortColumn(e.col,p).then(function(){h.columnMenuScope&&h.columnMenuScope.hideMenu(),h.grid.refresh()})}d.off("mousemove",t),d.off("mouseup",u)})};d.on("mouseup",u)}};f.on("mousedown",i)}}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.pagination",["ui.grid"]);a.service("uiGridPaginationService",function(){var a={initializeGrid:function(b){a.defaultGridOptions(b.options),b.pagination={page:1,totalPages:1};var c={methods:{pagination:{getPage:function(){return b.pagination.page},getTotalPages:function(){return b.pagination.totalPages},nextPage:function(){b.pagination.page++,b.refresh()},previousPage:function(){b.pagination.page=Math.max(1,b.pagination.page-1),b.refresh()},seek:function(a){if(!angular.isNumber(a)||1>a)throw"Invalid page number: "+a;b.pagination.page=a,b.refresh()}}}};b.api.registerMethodsFromObject(c.methods),b.registerRowsProcessor(function(a){if(!b.options.enablePagination)return a;b.pagination.totalPages=Math.max(1,Math.ceil(a.length/b.options.rowsPerPage));var c=(b.pagination.page-1)*b.options.rowsPerPage;return c>=a.length&&(b.pagination.page=b.pagination.totalPages,c=(b.pagination.page-1)*b.options.rowsPerPage),a.slice(c,c+b.options.rowsPerPage)})},defaultGridOptions:function(a){a.enablePagination=a.enablePagination!==!1,a.rowsPerPage=angular.isNumber(a.rowsPerPage)?a.rowsPerPage:10}};return a}),a.directive("uiGridPagination",["uiGridPaginationService",function(a){return{priority:-400,scope:!1,require:"^uiGrid",link:{pre:function(b,c,d,e){a.initializeGrid(e.grid)}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.paging",["ui.grid"]);a.service("uiGridPagingService",["gridUtil",function(a){var b={initializeGrid:function(a){b.defaultGridOptions(a.options);var c={events:{paging:{pagingChanged:function(){}}},methods:{paging:{}}};a.api.registerEventsFromObject(c.events),a.api.registerMethodsFromObject(c.methods),a.registerRowsProcessor(function(b){if(a.options.useExternalPaging||!a.options.enablePaging)return b;var c=parseInt(a.options.pagingPageSize,10),d=parseInt(a.options.pagingCurrentPage,10),e=(d-1)*c;return b.slice(e,e+c)})},defaultGridOptions:function(b){b.enablePaging=b.enablePaging!==!1,b.useExternalPaging=b.useExternalPaging===!0,a.isNullOrUndefined(b.totalItems)&&(b.totalItems=0),a.isNullOrUndefined(b.pagingPageSizes)&&(b.pagingPageSizes=[250,500,1e3]),a.isNullOrUndefined(b.pagingPageSize)&&(b.pagingPageSize=b.pagingPageSizes.length>0?b.pagingPageSizes[0]:0),a.isNullOrUndefined(b.pagingCurrentPage)&&(b.pagingCurrentPage=1)},onPagingChanged:function(a,b,c){a.api.paging.raise.pagingChanged(b,c),a.options.useExternalPaging||a.refresh()}};return b}]),a.directive("uiGridPaging",["gridUtil","uiGridPagingService",function(a,b){var c="ui-grid/ui-grid-paging";return{priority:-200,scope:!1,require:"uiGrid",compile:function(){return{pre:function(d,e,f,g){b.initializeGrid(g.grid);var h=g.grid.options.pagingTemplate||c;a.getTemplate(h).then(function(a){var b=angular.element(a);e.append(b),g.innerCompile(b)})},post:function(){}}}}}]),a.directive("uiGridPager",["uiGridPagingService","uiGridConstants","gridUtil","i18nService",function(a,b,c,d){return{priority:-200,scope:!0,require:"^uiGrid",link:function(e,f,g,h){e.sizesLabel=d.getSafeText("paging.sizes"),e.totalItemsLabel=d.getSafeText("paging.totalItems");var i=e.grid.options;h.grid.renderContainers.body.registerViewportAdjuster(function(a){return a.height=a.height-c.elementHeight(f),a}),h.grid.registerDataChangeCallback(function(a){a.options.useExternalPaging||(a.options.totalItems=a.rows.length)},[b.dataChange.ROW]);var j=function(){e.showingLow=(i.pagingCurrentPage-1)*i.pagingPageSize+1,e.showingHigh=Math.min(i.pagingCurrentPage*i.pagingPageSize,i.totalItems)},k=function(){return 0===i.totalItems?1:Math.ceil(i.totalItems/i.pagingPageSize)},l=e.$watch("grid.options.totalItems + grid.options.pagingPageSize",function(){e.currentMaxPages=k(),j()}),m=e.$watch("grid.options.pagingCurrentPage + grid.options.pagingPageSize",function(b,c){if(b!==c){if(!angular.isNumber(i.pagingCurrentPage)||i.pagingCurrentPage<1)return void(i.pagingCurrentPage=1);if(i.totalItems>0&&i.pagingCurrentPage>k())return void(i.pagingCurrentPage=k());j(),a.onPagingChanged(e.grid,i.pagingCurrentPage,i.pagingPageSize)}});e.$on("$destroy",function(){l(),m()}),e.pageForward=function(){i.totalItems>0?i.pagingCurrentPage=Math.min(i.pagingCurrentPage+1,e.currentMaxPages):i.pagingCurrentPage++},e.pageBackward=function(){i.pagingCurrentPage=Math.max(i.pagingCurrentPage-1,1)},e.pageToFirst=function(){i.pagingCurrentPage=1},e.pageToLast=function(){i.pagingCurrentPage=e.currentMaxPages},e.cantPageForward=function(){return i.totalItems>0?i.pagingCurrentPage>=e.currentMaxPages:i.data.length<1},e.cantPageToLast=function(){return i.totalItems>0?e.cantPageForward():!0},e.cantPageBackward=function(){return i.pagingCurrentPage<=1}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.pinning",["ui.grid"]);a.service("uiGridPinningService",["gridUtil","GridRenderContainer","i18nService",function(a,b,c){var d={initializeGrid:function(a){d.defaultGridOptions(a.options),a.registerColumnBuilder(d.pinningColumnBuilder)},defaultGridOptions:function(a){a.enablePinning=a.enablePinning!==!1},pinningColumnBuilder:function(b,d,e){if(b.enablePinning=void 0===b.enablePinning?e.enablePinning:b.enablePinning,b.pinnedLeft?"*"===d.width?d.grid.refresh().then(function(){d.renderContainer="left",d.width=d.grid.canvasWidth/d.grid.columns.length,d.grid.createLeftContainer()}):(d.renderContainer="left",d.grid.createLeftContainer()):b.pinnedRight&&("*"===d.width?d.grid.refresh().then(function(){d.renderContainer="right",d.width=d.grid.canvasWidth/d.grid.columns.length,d.grid.createRightContainer()}):(d.renderContainer="right",d.grid.createRightContainer())),b.enablePinning){var f={name:"ui.grid.pinning.pinLeft",title:c.get().pinning.pinLeft,icon:"ui-grid-icon-left-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"left"!==this.context.col.renderContainer},action:function(){this.context.col.renderContainer="left",this.context.col.width=this.context.col.drawnWidth,this.context.col.grid.createLeftContainer(),d.grid.refresh().then(function(){d.grid.refresh()})}},g={name:"ui.grid.pinning.pinRight",title:c.get().pinning.pinRight,icon:"ui-grid-icon-right-open",shown:function(){return"undefined"==typeof this.context.col.renderContainer||!this.context.col.renderContainer||"right"!==this.context.col.renderContainer},action:function(){this.context.col.renderContainer="right",this.context.col.width=this.context.col.drawnWidth,this.context.col.grid.createRightContainer(),d.grid.refresh().then(function(){d.grid.refresh()})}},h={name:"ui.grid.pinning.unpin",title:c.get().pinning.unpin,icon:"ui-grid-icon-cancel",shown:function(){return"undefined"!=typeof this.context.col.renderContainer&&null!==this.context.col.renderContainer&&"body"!==this.context.col.renderContainer},action:function(){this.context.col.renderContainer=null,d.grid.refresh().then(function(){d.grid.refresh()})}};a.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.pinning.pinLeft")||d.menuItems.push(f),a.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.pinning.pinRight")||d.menuItems.push(g),a.arrayContainsObjectWithProperty(d.menuItems,"name","ui.grid.pinning.unpin")||d.menuItems.push(h)}}};return d}]),a.directive("uiGridPinning",["gridUtil","uiGridPinningService",function(a,b){return{require:"uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(e.grid)},post:function(){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.resizeColumns",["ui.grid"]);a.constant("columnBounds",{minWidth:35}),a.service("uiGridResizeColumnsService",["gridUtil","$q","$timeout",function(a,b,c){var d={defaultGridOptions:function(a){a.enableColumnResizing=a.enableColumnResizing!==!1,a.enableColumnResize===!1&&(a.enableColumnResizing=!1)},colResizerColumnBuilder:function(a,c,d){var e=[];return a.enableColumnResizing=void 0===a.enableColumnResizing?d.enableColumnResizing:a.enableColumnResizing,a.enableColumnResize===!1&&(a.enableColumnResizing=!1),b.all(e)},registerPublicApi:function(a){var b={events:{colResizable:{columnSizeChanged:function(){}}}};a.api.registerEventsFromObject(b.events)},fireColumnSizeChanged:function(a,b,d){c(function(){a.api.colResizable.raise.columnSizeChanged(b,d)})}};return d}]),a.directive("uiGridResizeColumns",["gridUtil","uiGridResizeColumnsService",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.defaultGridOptions(e.grid.options),e.grid.registerColumnBuilder(b.colResizerColumnBuilder),b.registerPublicApi(e.grid)},post:function(){}}}}}]),a.directive("uiGridHeaderCell",["gridUtil","$templateCache","$compile","$q",function(a,b,c,d){return{priority:-10,require:"^uiGrid",compile:function(){return{post:function(a,e,f,g){if(g.grid.options.enableColumnResizing){var h=d.defer(); -f.$observe("renderIndex",function(b){a.renderIndex=a.$eval(b),h.resolve()}),h.promise.then(function(){var d=b.get("ui-grid/columnResizer"),f=angular.element(d).clone(),g=angular.element(d).clone();f.attr("position","left"),g.attr("position","right");var h=a.col,i=h.getRenderContainer(),j=i.renderedColumns[a.renderIndex-1];j&&0!==i.visibleColumnCache.indexOf(a.col)&&j.colDef.enableColumnResizing!==!1&&(e.prepend(f),c(f)(a)),a.col.colDef.enableColumnResizing!==!1&&(e.append(g),c(g)(a))})}}}}}}]),a.directive("uiGridColumnResizer",["$document","gridUtil","uiGridConstants","columnBounds","uiGridResizeColumnsService",function(a,b,c,d,e){var f=angular.element('
    '),g={priority:0,scope:{col:"=",position:"@",renderIndex:"="},require:"?^uiGrid",link:function(g,h,i,j){function k(a){var b=a.getRenderContainer();b.visibleColumnCache.forEach(function(b){if(b!==a){var c=b.colDef;(!c.width||angular.isString(c.width)&&(-1!==c.width.indexOf("*")||-1!==c.width.indexOf("%")))&&(b.width=b.drawnWidth)}})}function l(){j.grid.buildColumns().then(function(){j.grid.refreshCanvas(!0)})}function m(a){a.originalEvent&&(a=a.originalEvent),a.preventDefault(),p=a.clientX-q,0>p?p=0:p>j.grid.gridWidth&&(p=j.grid.gridWidth);var b,e=g.col,h=e.getRenderContainer();if("left"===g.position?(e=h.renderedColumns[g.renderIndex-1],b=g.col):"right"===g.position&&(b=h.renderedColumns[g.renderIndex+1]),e.colDef.enableColumnResizing!==!1){j.grid.element.hasClass("column-resizing")||j.grid.element.addClass("column-resizing");var i=p-o,k=parseInt(e.drawnWidth+i*r,10);e.colDef.minWidth&&ke.colDef.maxWidth&&(p+=(e.colDef.maxWidth-k)*r),f.css({left:p+"px"}),j.fireEvent(c.events.ITEM_DRAGGING)}}function n(b){b.originalEvent&&(b=b.originalEvent),b.preventDefault(),j.grid.element.removeClass("column-resizing"),f.remove(),p=b.clientX-q;var c=p-o;if(0===c)return a.off("mouseup",n),void a.off("mousemove",m);var h,i=g.col,s=i.getRenderContainer();if("left"===g.position?(i=s.renderedColumns[g.renderIndex-1],h=g.col):"right"===g.position&&(h=s.renderedColumns[g.renderIndex+1]),i.colDef.enableColumnResizing!==!1){var t=parseInt(i.drawnWidth+c*r,10);i.colDef.minWidth&&ti.colDef.maxWidth&&(t=i.colDef.maxWidth),i.width=t,k(i),l(c),e.fireColumnSizeChanged(j.grid,i.colDef,c),a.off("mouseup",n),a.off("mousemove",m)}}var o=0,p=0,q=0,r=1;j.grid.isRTL()&&(g.position="left",r=-1),"left"===g.position?h.addClass("left"):"right"===g.position&&h.addClass("right"),h.on("mousedown",function(b){b.originalEvent&&(b=b.originalEvent),b.stopPropagation(),q=j.grid.element[0].getBoundingClientRect().left,o=b.clientX-q,j.grid.element.append(f),f.css({left:o}),a.on("mouseup",n),a.on("mousemove",m)}),h.on("dblclick",function(a){a.stopPropagation();var f,i,m=g.col,n=m.getRenderContainer();"left"===g.position?(m=n.renderedColumns[g.renderIndex-1],f=g.col,i=1):"right"===g.position&&(f=n.renderedColumns[g.renderIndex+1],f=n.renderedColumns[g.renderIndex+1],i=-1);var o=0,p=0,q=b.closestElm(h,".ui-grid-render-container"),r=q.querySelectorAll("."+c.COL_CLASS_PREFIX+m.uid+" .ui-grid-cell-contents");Array.prototype.forEach.call(r,function(a){var c;angular.element(a).parent().hasClass("ui-grid-header-cell")&&(c=angular.element(a).parent()[0].querySelectorAll(".ui-grid-column-menu-button")),b.fakeElement(a,{},function(a){var d=angular.element(a);d.attr("style","float: left");var e=b.elementWidth(d);if(c){var f=b.elementWidth(c);e+=f}e>o&&(o=e,p=o-e)})}),m.colDef.minWidth&&om.colDef.maxWidth&&(o=m.colDef.maxWidth),m.width=parseInt(o,10),k(m),l(p),e.fireColumnSizeChanged(j.grid,m.colDef,p)}),h.on("$destroy",function(){h.off("mousedown"),h.off("dblclick"),a.off("mousemove",m),a.off("mouseup",n)})}};return g}])}(),function(){"use strict";var a=angular.module("ui.grid.rowEdit",["ui.grid","ui.grid.edit","ui.grid.cellNav"]);a.constant("uiGridRowEditConstants",{}),a.service("uiGridRowEditService",["$interval","$q","uiGridConstants","uiGridRowEditConstants","gridUtil",function(a,b,c,d,e){var f={initializeGrid:function(a,b){b.rowEdit={};var c={events:{rowEdit:{saveRow:function(){}}},methods:{rowEdit:{setSavePromise:function(a,b,c){f.setSavePromise(a,b,c)},getDirtyRows:function(a){return a.rowEdit.dirtyRows?a.rowEdit.dirtyRows:[]},getErrorRows:function(a){return a.rowEdit.errorRows?a.rowEdit.errorRows:[]},flushDirtyRows:function(a){return f.flushDirtyRows(a)},setRowsDirty:function(a,b){f.setRowsDirty(a,b)}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods),b.api.core.on.renderingComplete(a,function(){b.api.edit.on.afterCellEdit(a,f.endEditCell),b.api.edit.on.beginCellEdit(a,f.beginEditCell),b.api.edit.on.cancelCellEdit(a,f.cancelEditCell),b.api.cellNav&&b.api.cellNav.on.navigate(a,f.navigate)})},defaultGridOptions:function(){},saveRow:function(a,b){var c=this;return function(){b.isSaving=!0;var d=a.api.rowEdit.raise.saveRow(b.entity);return b.rowEditSavePromise?b.rowEditSavePromise.then(c.processSuccessPromise(a,b),c.processErrorPromise(a,b)):e.logError("A promise was not returned when saveRow event was raised, either nobody is listening to event, or event handler did not return a promise"),d}},setSavePromise:function(a,b,c){var d=a.getRow(b);d.rowEditSavePromise=c},processSuccessPromise:function(a,b){var c=this;return function(){delete b.isSaving,delete b.isDirty,delete b.isError,delete b.rowEditSaveTimer,c.removeRow(a.rowEdit.errorRows,b),c.removeRow(a.rowEdit.dirtyRows,b)}},processErrorPromise:function(a,b){return function(){delete b.isSaving,delete b.rowEditSaveTimer,b.isError=!0,a.rowEdit.errorRows||(a.rowEdit.errorRows=[]),f.isRowPresent(a.rowEdit.errorRows,b)||a.rowEdit.errorRows.push(b)}},removeRow:function(a,b){angular.forEach(a,function(c,d){c.uid===b.uid&&a.splice(d,1)})},isRowPresent:function(a,b){var c=!1;return angular.forEach(a,function(a){a.uid===b.uid&&(c=!0)}),c},flushDirtyRows:function(a){var c=[];return angular.forEach(a.rowEdit.dirtyRows,function(b){f.saveRow(a,b)(),c.push(b.rowEditSavePromise)}),b.all(c)},endEditCell:function(a,b,c,d){var g=this.grid,h=g.getRow(a);return h?void((c!==d||h.isDirty)&&(g.rowEdit.dirtyRows||(g.rowEdit.dirtyRows=[]),h.isDirty||(h.isDirty=!0,g.rowEdit.dirtyRows.push(h)),delete h.isError,f.considerSetTimer(g,h))):void e.logError("Unable to find rowEntity in grid data, dirty flag cannot be set")},beginEditCell:function(a){var b=this.grid,c=b.getRow(a);return c?void f.cancelTimer(b,c):void e.logError("Unable to find rowEntity in grid data, timer cannot be cancelled")},cancelEditCell:function(a){var b=this.grid,c=b.getRow(a);return c?void f.considerSetTimer(b,c):void e.logError("Unable to find rowEntity in grid data, timer cannot be set")},navigate:function(a,b){var c=this.grid;a.row.rowEditSaveTimer&&f.cancelTimer(c,a.row),b&&b.row&&b.row!==a.row&&f.considerSetTimer(c,b.row)},considerSetTimer:function(b,c){if(f.cancelTimer(b,c),c.isDirty&&!c.isSaving&&-1!==b.options.rowEditWaitInterval){var d=b.options.rowEditWaitInterval?b.options.rowEditWaitInterval:2e3;c.rowEditSaveTimer=a(f.saveRow(b,c),d,1)}},cancelTimer:function(b,c){c.rowEditSaveTimer&&!c.isSaving&&(a.cancel(c.rowEditSaveTimer),delete c.rowEditSaveTimer)},setRowsDirty:function(a,b){var c;b.forEach(function(b){c=a.getRow(b),c?(a.rowEdit.dirtyRows||(a.rowEdit.dirtyRows=[]),c.isDirty||(c.isDirty=!0,a.rowEdit.dirtyRows.push(c)),delete c.isError,f.considerSetTimer(a,c)):e.logError("requested row not found in rowEdit.setRowsDirty, row was: "+b)})}};return f}]),a.directive("uiGridRowEdit",["gridUtil","uiGridRowEditService","uiGridEditConstants",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(a,c,d,e){b.initializeGrid(a,e.grid)},post:function(){}}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","gridUtil","$parse",function(){return{priority:-200,scope:!1,compile:function(a){var b=angular.element(a.children().children()[0]),c=b.attr("ng-class"),d="";return d=c?c.slice(0,-1)+", 'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}":"{'ui-grid-row-dirty': row.isDirty, 'ui-grid-row-saving': row.isSaving, 'ui-grid-row-error': row.isError}",b.attr("ng-class",d),{pre:function(){},post:function(){}}}}}])}(),function(){"use strict";var a=angular.module("ui.grid.selection",["ui.grid"]);a.constant("uiGridSelectionConstants",{featureName:"selection",selectionRowHeaderColName:"selectionRowHeaderCol"}),a.service("uiGridSelectionService",["$q","$templateCache","uiGridSelectionConstants","gridUtil",function(){var a={initializeGrid:function(b){b.selection={},b.selection.lastSelectedRow=null,b.selection.selectAll=!1,a.defaultGridOptions(b.options);var c={events:{selection:{rowSelectionChanged:function(){},rowSelectionChangedBatch:function(){}}},methods:{selection:{toggleRowSelection:function(c){var d=b.getRow(c);null!==d&&a.toggleRowSelection(b,d,b.options.multiSelect,b.options.noUnselect)},selectRow:function(c){var d=b.getRow(c);null===d||d.isSelected||a.toggleRowSelection(b,d,b.options.multiSelect,b.options.noUnselect)},selectRowByVisibleIndex:function(c){var d=b.renderContainers.body.visibleRowCache[c];null===d||d.isSelected||a.toggleRowSelection(b,d,b.options.multiSelect,b.options.noUnselect)},unSelectRow:function(c){var d=b.getRow(c);null!==d&&d.isSelected&&a.toggleRowSelection(b,d,b.options.multiSelect,b.options.noUnselect)},selectAllRows:function(){if(b.options.multiSelect!==!1){var c=[];b.rows.forEach(function(d){d.isSelected||(d.isSelected=!0,a.decideRaiseSelectionEvent(b,d,c))}),a.decideRaiseSelectionBatchEvent(b,c)}},selectAllVisibleRows:function(){if(b.options.multiSelect!==!1){var c=[];b.rows.forEach(function(d){d.visible?d.isSelected||(d.isSelected=!0,a.decideRaiseSelectionEvent(b,d,c)):d.isSelected&&(d.isSelected=!1,a.decideRaiseSelectionEvent(b,d,c))}),a.decideRaiseSelectionBatchEvent(b,c)}},clearSelectedRows:function(){a.clearSelectedRows(b)},getSelectedRows:function(){return a.getSelectedRows(b).map(function(a){return a.entity})},getSelectedGridRows:function(){return a.getSelectedRows(b)},setMultiSelect:function(a){b.options.multiSelect=a},setModifierKeysToMultiSelect:function(a){b.options.modifierKeysToMultiSelect=a},getSelectAllState:function(){return b.selection.selectAll}}}};b.api.registerEventsFromObject(c.events),b.api.registerMethodsFromObject(c.methods)},defaultGridOptions:function(a){a.enableRowSelection=a.enableRowSelection!==!1,a.multiSelect=a.multiSelect!==!1,a.noUnselect=a.noUnselect===!0,a.modifierKeysToMultiSelect=a.modifierKeysToMultiSelect===!0,a.enableRowHeaderSelection=a.enableRowHeaderSelection!==!1,a.enableSelectAll=a.enableSelectAll!==!1,a.enableSelectionBatchEvent=a.enableSelectionBatchEvent!==!1,a.selectionRowHeaderWidth=angular.isDefined(a.selectionRowHeaderWidth)?a.selectionRowHeaderWidth:30},toggleRowSelection:function(b,c,d,e){var f=c.isSelected;if(d||f){if(!d&&f){var g=a.getSelectedRows(b);g.length>1&&(f=!1,a.clearSelectedRows(b))}}else a.clearSelectedRows(b);f&&e||(c.isSelected=!f,c.isSelected===!0&&(b.selection.lastSelectedRow=c),b.api.selection.raise.rowSelectionChanged(c))},shiftSelect:function(b,c,d){if(d){var e=a.getSelectedRows(b),f=e.length>0?b.renderContainers.body.visibleRowCache.indexOf(b.selection.lastSelectedRow):0,g=b.renderContainers.body.visibleRowCache.indexOf(c);if(f>g){var h=f;f=g,g=h}for(var i=[],j=f;g>=j;j++){var k=b.renderContainers.body.visibleRowCache[j];k&&(k.isSelected||(k.isSelected=!0,b.selection.lastSelectedRow=k,a.decideRaiseSelectionEvent(b,k,i)))}a.decideRaiseSelectionBatchEvent(b,i)}},getSelectedRows:function(a){return a.rows.filter(function(a){return a.isSelected})},clearSelectedRows:function(b){var c=[];a.getSelectedRows(b).forEach(function(d){d.isSelected&&(d.isSelected=!1,a.decideRaiseSelectionEvent(b,d,c))}),a.decideRaiseSelectionBatchEvent(b,c)},decideRaiseSelectionEvent:function(a,b,c){a.options.enableSelectionBatchEvent?c.push(b):a.api.selection.raise.rowSelectionChanged(b)},decideRaiseSelectionBatchEvent:function(a,b){b.length>0&&a.api.selection.raise.rowSelectionChangedBatch(b)}};return a}]),a.directive("uiGridSelection",["uiGridSelectionConstants","uiGridSelectionService","$templateCache",function(a,b){return{replace:!0,priority:0,require:"^uiGrid",scope:!1,compile:function(){return{pre:function(c,d,e,f){if(b.initializeGrid(f.grid),f.grid.options.enableRowHeaderSelection){var g={name:a.selectionRowHeaderColName,displayName:"",width:f.grid.options.selectionRowHeaderWidth,cellTemplate:"ui-grid/selectionRowHeader",headerCellTemplate:"ui-grid/selectionHeaderCell",enableColumnResizing:!1,enableColumnMenu:!1};f.grid.addRowHeaderColumn(g)}},post:function(){}}}}}]),a.directive("uiGridSelectionRowHeaderButtons",["$templateCache","uiGridSelectionService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionRowHeaderButtons"),scope:!0,require:"^uiGrid",link:function(a,c,d,e){var f=e.grid;a.selectButtonClick=function(a,c){c.shiftKey?b.shiftSelect(f,a,f.options.multiSelect):c.ctrlKey||c.metaKey?b.toggleRowSelection(f,a,f.options.multiSelect,f.options.noUnselect):b.toggleRowSelection(f,a,f.options.multiSelect&&!f.options.modifierKeysToMultiSelect,f.options.noUnselect)}}}}]),a.directive("uiGridSelectionSelectAllButtons",["$templateCache","uiGridSelectionService",function(a,b){return{replace:!0,restrict:"E",template:a.get("ui-grid/selectionSelectAllButtons"),scope:!1,link:function(a){var c=a.col.grid;a.headerButtonClick=function(){c.selection.selectAll?(b.clearSelectedRows(c),c.options.noUnselect&&c.api.selection.selectRowByVisibleIndex(0),c.selection.selectAll=!1):c.options.multiSelect&&(c.api.selection.selectAllVisibleRows(),c.selection.selectAll=!0)}}}}]),a.directive("uiGridViewport",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService",function(){return{priority:-200,scope:!1,compile:function(a){var b=angular.element(a.children().children()[0]),c=b.attr("ng-class"),d="";return d=c?c.slice(0,-1)+",'ui-grid-row-selected': row.isSelected}":"{'ui-grid-row-selected': row.isSelected}",b.attr("ng-class",d),{pre:function(){},post:function(){}}}}}]),a.directive("uiGridCell",["$compile","uiGridConstants","uiGridSelectionConstants","gridUtil","$parse","uiGridSelectionService",function(a,b,c,d,e,f){return{priority:-200,restrict:"A",scope:!1,link:function(a,b){function c(){var c=0,d=300,e=function(b){b.shiftKey?f.shiftSelect(a.grid,a.row,a.grid.options.multiSelect):b.ctrlKey||b.metaKey?f.toggleRowSelection(a.grid,a.row,a.grid.options.multiSelect,a.grid.options.noUnselect):f.toggleRowSelection(a.grid,a.row,a.grid.options.multiSelect&&!a.grid.options.modifierKeysToMultiSelect,a.grid.options.noUnselect),a.$apply()};b.on("touchstart",function(){c=(new Date).getTime()}),b.on("touchend",function(a){var b=(new Date).getTime(),f=b-c;d>f&&e(a)}),b.on("click",function(a){e(a)})}a.grid.options.enableRowSelection&&!a.grid.options.enableRowHeaderSelection&&(b.addClass("ui-grid-disable-selection"),c())}}}])}(),angular.module("ui.grid").run(["$templateCache",function(a){"use strict";a.put("ui-grid/ui-grid-footer",''),a.put("ui-grid/ui-grid-group-panel",'
    • {{group.displayName}} x
    '),a.put("ui-grid/ui-grid-header",'
    '),a.put("ui-grid/ui-grid-menu-button",'
     
    '),a.put("ui-grid/ui-grid-no-header",'
    '),a.put("ui-grid/ui-grid-row",'
    '),a.put("ui-grid/ui-grid",'
    '),a.put("ui-grid/uiGridCell",'
    {{COL_FIELD CUSTOM_FILTERS}}
    '),a.put("ui-grid/uiGridColumnFilter",'
  •  
     
  • '),a.put("ui-grid/uiGridColumnMenu",'
    '),a.put("ui-grid/uiGridFooterCell",'
    {{ col.getAggregationValue() }}
    '),a.put("ui-grid/uiGridHeaderCell",'
     
    {{ col.displayName CUSTOM_FILTERS }}  
     
     
    '),a.put("ui-grid/uiGridMenu",'
    '),a.put("ui-grid/uiGridMenuItem",'
  • {{ title }}
  • '),a.put("ui-grid/uiGridRenderContainer",'
    '),a.put("ui-grid/uiGridViewport",'
    '),a.put("ui-grid/cellEditor",'
    '),a.put("ui-grid/dropdownEditor",'
    '),a.put("ui-grid/expandableRow",'
    '),a.put("ui-grid/expandableRowHeader",'
    '),a.put("ui-grid/expandableScrollFiller","
    "),a.put("ui-grid/csvLink",'LINK_LABEL'),a.put("ui-grid/importerMenuItem",'
  • '),a.put("ui-grid/importerMenuItemContainer","
    "),a.put("ui-grid/ui-grid-paging",'
    / {{currentMaxPages}}
     {{sizesLabel}}
    {{showingLow}} - {{showingHigh}} of {{grid.options.totalItems}} {{totalItemsLabel}}
    '),a.put("ui-grid/columnResizer",'
    '),a.put("ui-grid/selectionHeaderCell",'
     
    '),a.put("ui-grid/selectionRowHeader",'
    '),a.put("ui-grid/selectionRowHeaderButtons",'
     
    '),a.put("ui-grid/selectionSelectAllButtons",'
     
    ')}]); \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/designer/partials/grid.html b/src/main/resources/META-INF/resources/designer/partials/grid.html deleted file mode 100644 index a63fe7a0..00000000 --- a/src/main/resources/META-INF/resources/designer/partials/grid.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - -
    -
    -
    -
    -
    -
    -
    diff --git a/src/main/resources/META-INF/resources/designer/scripts/app.js b/src/main/resources/META-INF/resources/designer/scripts/app.js index 3fb0a242..daa64806 100644 --- a/src/main/resources/META-INF/resources/designer/scripts/app.js +++ b/src/main/resources/META-INF/resources/designer/scripts/app.js @@ -31,16 +31,9 @@ var app = angular.module('clds-app', ['ngRoute', 'angular-loading-bar', 'ngAnimate', 'dialogs.main', - 'ui.grid', - 'ui.grid.resizeColumns', - 'ui.grid.paging', - 'ui.grid.selection', - 'ui.grid.cellNav', - 'ui.grid.pinning', 'ngSanitize', 'ngCookies', - 'ui.bootstrap.modal', - 'ui.grid.exporter' + 'ui.bootstrap.modal' ]) .config(['cfpLoadingBarProvider', function(cfpLoadingBarProvider) { -- cgit 1.2.3-korg From 666f9562ac93fb0e893f824d2461dd10a3466042 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Tue, 3 Jul 2018 14:22:32 +0200 Subject: Remove useless CSS Remove references to google fonts that were useless Issue-ID: CLAMP-191 Change-Id: I65ef1d562a65c14859a46455b4739d4f6aca286f Signed-off-by: Determe, Sebastien (sd378r) --- .../META-INF/resources/designer/css/AdminLTE.css | 3252 ---------- .../resources/designer/css/bootstrap_custom.css | 6531 -------------------- .../META-INF/resources/designer/index.html | 1 - 3 files changed, 9784 deletions(-) delete mode 100644 src/main/resources/META-INF/resources/designer/css/AdminLTE.css delete mode 100644 src/main/resources/META-INF/resources/designer/css/bootstrap_custom.css diff --git a/src/main/resources/META-INF/resources/designer/css/AdminLTE.css b/src/main/resources/META-INF/resources/designer/css/AdminLTE.css deleted file mode 100644 index 88213266..00000000 --- a/src/main/resources/META-INF/resources/designer/css/AdminLTE.css +++ /dev/null @@ -1,3252 +0,0 @@ -@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic); -@import url(//fonts.googleapis.com/css?family=Kaushan+Script); -/*! - * AdminLTE v1.2 - * Author: AlmsaeedStudio.com - * License: Open source - MIT - * Please visit http://opensource.org/licenses/MIT for more information -!*/ -/* - Core: General style ----------------------------- -*/ -html, -body { - overflow-x: hidden!important; - overflow-y: hidden!important; - /*font-family: 'Source Sans Pro', sans-serif;*/ - font-size:12px; - -webkit-font-smoothing: antialiased; - min-height: 100%; - background: #f9f9f9; -} -a { - color: #3c8dbc; -} -a:hover, -a:active, -a:focus { - outline: none; - text-decoration: none; - color: #72afd2; -} -/* Layouts */ -.wrapper { - min-height: 100%; -} -.wrapper:before, -.wrapper:after { - display: table; - content: " "; -} -.wrapper:after { - clear: both; -} -/* Header */ -body > .header { - position: absolute; - top: 0; - left: 0; - right: 0; - z-index: 1030; -} -/* Define 2 column template */ -.right-side, -.left-side { - min-height: 100%; - display: block; -} -/*right side - contins main content*/ -.right-side { - background-color: #f9f9f9; - margin-left: 220px; -} -/*left side - contains sidebar*/ -.left-side { - position: absolute; - width: 220px; - top: 0; -} -@media screen and (min-width: 992px) { - .left-side { - top: 50px; - } - /*Right side strech mode*/ - .right-side.strech { - margin-left: 0; - } - .right-side.strech > .content-header { - margin-top: 0px; - } - /* Left side collapse */ - .left-side.collapse-left { - left: -220px; - } -} -/*Give content full width on xs screens*/ -@media screen and (max-width: 992px) { - .right-side { - margin-left: 0; - } -} -/* - By default the layout is not fixed but if you add the class .fixed to the body element - the sidebar and the navbar will automatically become poisitioned fixed -*/ -body.fixed > .header, -body.fixed .left-side, - -body.fixed > .header { - top: 0; - right: 0; - left: 0; -} - -body.fixed .wrapper { - margin-top: 50px; -} -/* Content */ -.content { - padding: 20px 15px; - /* background: #f9f9f9; */ -} -/* Utility */ -/* H1 - H6 font */ -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: 'Source Sans Pro', sans-serif; -} -/* Page Header */ -.page-header { - margin: 10px 0 20px 0; - font-size: 22px; -} -.page-header > small { - color: #666; - display: block; - margin-top: 5px; -} -/* All images should be responsive */ -img { - max-width: 100% !important; -} -.sort-highlight { - background: #f4f4f4; - border: 1px dashed #ddd; - margin-bottom: 10px; -} -/* 10px padding and margins */ -.pad { - padding: 10px; -} -.margin { - margin: 10px; -} -/* Display inline */ -.inline { - display: inline; - width: auto; -} -/* Background colors */ -.bg-red, -.bg-yellow, -.bg-aqua, -.bg-blue, -.bg-light-blue, -.bg-green, -.bg-navy, -.bg-teal, -.bg-olive, -.bg-lime, -.bg-orange, -.bg-fuchsia, -.bg-purple, -.bg-maroon, -.bg-black { - color: #f9f9f9 !important; -} -.bg-gray { - background-color: #eaeaec !important; -} -.bg-black { - background-color: #222222 !important; -} -.bg-red { - background-color: #f56954 !important; -} -.bg-yellow { - background-color: #f39c12 !important; -} -.bg-aqua { - background-color: #00c0ef !important; -} -.bg-blue { - background-color: #0073b7 !important; -} -.bg-light-blue { - background-color: #3c8dbc !important; -} -.bg-green { - background-color: #00a65a !important; -} -.bg-navy { - background-color: #001f3f !important; -} -.bg-teal { - background-color: #39cccc !important; -} -.bg-olive { - background-color: #3d9970 !important; -} -.bg-lime { - background-color: #01ff70 !important; -} -.bg-orange { - background-color: #ff851b !important; -} -.bg-fuchsia { - background-color: #f012be !important; -} -.bg-purple { - background-color: #932ab6 !important; -} -.bg-maroon { - background-color: #85144b !important; -} -/* Text colors */ -.text-red { - color: #f56954 !important; -} -.text-yellow { - color: #f39c12 !important; -} -.text-aqua { - color: #00c0ef !important; -} -.text-blue { - color: #0073b7 !important; -} -.text-black { - color: #222222 !important; -} -.text-light-blue { - color: #3c8dbc !important; -} -.text-green { - color: #00a65a !important; -} -.text-navy { - color: #001f3f !important; -} -.text-teal { - color: #39cccc !important; -} -.text-olive { - color: #3d9970 !important; -} -.text-lime { - color: #01ff70 !important; -} -.text-orange { - color: #ff851b !important; -} -.text-fuchsia { - color: #f012be !important; -} -.text-purple { - color: #932ab6 !important; -} -.text-maroon { - color: #85144b !important; -} -/*Hide elements by display none only*/ -.hide { - display: none !important; -} -/* Remove borders */ -.no-border { - border: 0px !important; -} -/* Remove padding */ -.no-padding { - padding: 0px !important; -} -/* Remove margins */ -.no-margin { - margin: 0px !important; -} -/* Remove box shadow */ -.no-shadow { - box-shadow: none!important; -} -/* Don't display when printing */ -@media print { - .no-print { - display: none; - } - .left-side, - .header, - .content-header { - display: none; - } - .right-side { - margin: 0; - } -} -/* Remove border radius */ -.flat { - -webkit-border-radius: 0 !important; - -moz-border-radius: 0 !important; - border-radius: 0 !important; -} -/* Change the color of the striped tables */ -.table-striped > tbody > tr:nth-child(odd) > td, -.table-striped > tbody > tr:nth-child(odd) > th { - background-color: #f3f4f5; -} -.table.no-border, -.table.no-border td, -.table.no-border th { - border: 0; -} -/* .text-center in tables */ -table.text-center, -table.text-center td, -table.text-center th { - text-align: center; -} -.table.align th { - text-align: left; -} -.table.align td { - text-align: right; -} -.text-bold, -.text-bold.table td, -.text-bold.table th { - font-weight: 700; -} -.border-radius-none { - -webkit-border-radius: 0 !important; - -moz-border-radius: 0 !important; - border-radius: 0 !important; -} -/* _fix for sparkline tooltip */ -.jqstooltip { - padding: 5px!important; - width: auto!important; - height: auto!important; -} -/* -Gradient Background colors -*/ -.bg-teal-gradient { - background: #39cccc !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important; - background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important; - background: -moz-linear-gradient(center bottom, #39cccc 0%, #7adddd 100%) !important; - background: -o-linear-gradient(#7adddd, #39cccc) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important; - color: #fff; -} -.bg-light-blue-gradient { - background: #3c8dbc !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important; - background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important; - background: -moz-linear-gradient(center bottom, #3c8dbc 0%, #67a8ce 100%) !important; - background: -o-linear-gradient(#67a8ce, #3c8dbc) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important; - color: #fff; -} -.bg-blue-gradient { - background: #0073b7 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important; - background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important; - background: -moz-linear-gradient(center bottom, #0073b7 0%, #0089db 100%) !important; - background: -o-linear-gradient(#0089db, #0073b7) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important; - color: #fff; -} -.bg-aqua-gradient { - background: #00c0ef !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important; - background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important; - background: -moz-linear-gradient(center bottom, #00c0ef 0%, #14d1ff 100%) !important; - background: -o-linear-gradient(#14d1ff, #00c0ef) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important; - color: #fff; -} -.bg-yellow-gradient { - background: #f39c12 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important; - background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important; - background: -moz-linear-gradient(center bottom, #f39c12 0%, #f7bc60 100%) !important; - background: -o-linear-gradient(#f7bc60, #f39c12) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important; - color: #fff; -} -.bg-purple-gradient { - background: #932ab6 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #932ab6), color-stop(1, #b959d9)) !important; - background: -ms-linear-gradient(bottom, #932ab6, #b959d9) !important; - background: -moz-linear-gradient(center bottom, #932ab6 0%, #b959d9 100%) !important; - background: -o-linear-gradient(#b959d9, #932ab6) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b959d9', endColorstr='#932ab6', GradientType=0) !important; - color: #fff; -} -.bg-green-gradient { - background: #00a65a !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important; - background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important; - background: -moz-linear-gradient(center bottom, #00a65a 0%, #00ca6d 100%) !important; - background: -o-linear-gradient(#00ca6d, #00a65a) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important; - color: #fff; -} -.bg-red-gradient { - background: #f56954 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f56954), color-stop(1, #f89384)) !important; - background: -ms-linear-gradient(bottom, #f56954, #f89384) !important; - background: -moz-linear-gradient(center bottom, #f56954 0%, #f89384 100%) !important; - background: -o-linear-gradient(#f89384, #f56954) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f89384', endColorstr='#f56954', GradientType=0) !important; - color: #fff; -} -.bg-black-gradient { - background: #222222 !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #222222), color-stop(1, #3c3c3c)) !important; - background: -ms-linear-gradient(bottom, #222222, #3c3c3c) !important; - background: -moz-linear-gradient(center bottom, #222222 0%, #3c3c3c 100%) !important; - background: -o-linear-gradient(#3c3c3c, #222222) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#3c3c3c', endColorstr='#222222', GradientType=0) !important; - color: #fff; -} -.bg-maroon-gradient { - background: #85144b !important; - background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #85144b), color-stop(1, #b11b64)) !important; - background: -ms-linear-gradient(bottom, #85144b, #b11b64) !important; - background: -moz-linear-gradient(center bottom, #85144b 0%, #b11b64 100%) !important; - background: -o-linear-gradient(#b11b64, #85144b) !important; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b11b64', endColorstr='#85144b', GradientType=0) !important; - color: #fff; -} -.connectedSortable { - min-height: 100px; -} -/*--------------------------------------------------- - LESS Elements 0.9 - --------------------------------------------------- - A set of useful LESS mixins - More info at: http://lesselements.com - ---------------------------------------------------*/ -/* - Components: navbar, logo and content header -------------------------------------------------- -*/ - -body > .header .logo { - float: left; - font-size: 20px; - line-height: 50px; - text-align: center; - padding: 0 10px; - width: 220px; - font-family: 'Kaushan Script', cursive; - font-weight: 500; - height: 50px; - display: block; -} - -.logo { - float: left; - font-size: 20px; - text-align: center; - font-family: 'Kaushan Script', cursive; - font-weight: 500; - height: 50px; - display: block; -} - -.logo_name { - float: left; - font-size: 15px; - text-align: center; - font-family: 'Kaushan Script', cursive; - font-weight: 500; - height: 50px; - display: block; -} - - -body > .header .logo .icon { - margin-right: 10px; -} -.right-side > .content-header { - position: relative; - padding: 15px 15px 10px 20px; -} -.right-side > .content-header > h1 { - margin: 0; - font-size: 24px; -} -.right-side > .content-header > h1 > small { - font-size: 15px; - display: inline-block; - padding-left: 4px; - font-weight: 300; -} -.right-side > .content-header > .breadcrumb { - float: right; - background: transparent; - margin-top: 0px; - margin-bottom: 0; - font-size: 12px; - padding: 7px 5px; - position: absolute; - top: 15px; - right: 10px; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; -} -.right-side > .content-header > .breadcrumb > li > a { - color: #444; - text-decoration: none; -} -.right-side > .content-header > .breadcrumb > li > a > .fa, -.right-side > .content-header > .breadcrumb > li > a > .glyphicon, -.right-side > .content-header > .breadcrumb > li > a > .ion { - margin-right: 5px; -} -.right-side > .content-header > .breadcrumb > li + li:before { - content: '>\00a0'; -} -@media screen and (max-width: 767px) { - .right-side > .content-header > .breadcrumb { - position: relative; - margin-top: 5px; - top: 0; - right: 0; - float: none; - background: #efefef; - } -} - -/* - Dropdown menus ----------------------------- -*/ -/*Dropdowns in general*/ -.dropdown-menu { - -webkit-box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); - -moz-box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); - box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); -} -.dropdown-menu > li > a > .glyphicon, -.dropdown-menu > li > a > .fa, -.dropdown-menu > li > a > .ion { - margin-right: 10px; -} - -.dropdown-menu > li > a:hover { - background-color: #3c8dbc; - color: #f9f9f9; -} - -.dropdown-menu > div > li > a:hover { - background-color: #3c8dbc; - color: #f9f9f9; -} - -.skin-blue .navbar .dropdown-menu > div > li > a { - color: #444444; -} - -.dropdown-menu > div > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333; - white-space: nowrap; -} - -/*Drodown in navbars*/ -.skin-blue .navbar .dropdown-menu > li > a { - color: #444444; -} -/* - Navbar custom dropdown menu ------------------------------------- -*/ - -/* Add fade animation to dropdown menus */ -.open:not(.dropup) > .dropdown-menu { - animation-name: fadeAnimation; - animation-duration: .7s; - animation-iteration-count: 1; - animation-timing-function: ease; - animation-fill-mode: forwards; - -webkit-animation-name: fadeAnimation; - -webkit-animation-duration: .7s; - -webkit-animation-iteration-count: 1; - -webkit-animation-timing-function: ease; - -webkit-animation-fill-mode: forwards; - -moz-animation-name: fadeAnimation; - -moz-animation-duration: .7s; - -moz-animation-iteration-count: 1; - -moz-animation-timing-function: ease; - -moz-animation-fill-mode: forwards; -} -@keyframes fadeAnimation { - from { - opacity: 0; - top: 120%; - } - to { - opacity: 1; - top: 100%; - } -} -@-webkit-keyframes fadeAnimation { - from { - opacity: 0; - top: 120%; - } - to { - opacity: 1; - top: 100%; - } -} - -/* - All form elements including input, select, textarea etc. ------------------------------------------------------------------ -*/ -.form-control { - -webkit-border-radius: 0px !important; - -moz-border-radius: 0px !important; - border-radius: 0px !important; - box-shadow: none; -} -.form-control:focus { - border-color: #3c8dbc !important; - box-shadow: none; -} -.form-group.has-success label { - color: #00a65a; -} -.form-group.has-success .form-control { - border-color: #00a65a !important; - box-shadow: none; -} -.form-group.has-warning label { - color: #f39c12; -} -.form-group.has-warning .form-control { - border-color: #f39c12 !important; - box-shadow: none; -} -.form-group.has-error label { - color: #f56954; -} -.form-group.has-error .form-control { - border-color: #f56954 !important; - box-shadow: none; -} -/* Input group */ -.input-group .input-group-addon { - border-radius: 0; - background-color: #f4f4f4; -} -/* button groups */ -.btn-group-vertical .btn.btn-flat:first-of-type, -.btn-group-vertical .btn.btn-flat:last-of-type { - border-radius: 0; -} -/* Checkbox and radio inputs */ -.checkbox, -.radio { - padding-left: 0; -} -/* - Compenent: Progress bars --------------------------------- -*/ -/* size variation */ -.progress.sm { - height: 10px; -} -.progress.xs { - height: 7px; -} -/* Vertical bars */ -.progress.vertical { - position: relative; - width: 30px; - height: 200px; - display: inline-block; - margin-right: 10px; -} -.progress.vertical > .progress-bar { - width: 100%!important; - position: absolute; - bottom: 0; -} -.progress.vertical.sm { - width: 20px; -} -.progress.vertical.xs { - width: 10px; -} -/* Remove margins from progress bars when put in a table */ -.table tr > td .progress { - margin: 0; -} -.progress-bar-light-blue, -.progress-bar-primary { - background-color: #3c8dbc; -} -.progress-striped .progress-bar-light-blue, -.progress-striped .progress-bar-primary { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-green, -.progress-bar-success { - background-color: #00a65a; -} -.progress-striped .progress-bar-green, -.progress-striped .progress-bar-success { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-aqua, -.progress-bar-info { - background-color: #00c0ef; -} -.progress-striped .progress-bar-aqua, -.progress-striped .progress-bar-info { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-yellow, -.progress-bar-warning { - background-color: #f39c12; -} -.progress-striped .progress-bar-yellow, -.progress-striped .progress-bar-warning { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-red, -.progress-bar-danger { - background-color: #f56954; -} -.progress-striped .progress-bar-red, -.progress-striped .progress-bar-danger { - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -/* - Component: Small boxes -*/ -.small-box { - position: relative; - display: block; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - margin-bottom: 15px; -} -.small-box > .inner { - padding: 10px; -} -.small-box > .small-box-footer { - position: relative; - text-align: center; - padding: 3px 0; - color: #fff; - color: rgba(255, 255, 255, 0.8); - display: block; - z-index: 10; - background: rgba(0, 0, 0, 0.1); - text-decoration: none; -} -.small-box > .small-box-footer:hover { - color: #fff; - background: rgba(0, 0, 0, 0.15); -} -.small-box h3 { - font-size: 38px; - font-weight: bold; - margin: 0 0 10px 0; - white-space: nowrap; - padding: 0; -} -.small-box p { - font-size: 15px; -} -.small-box p > small { - display: block; - color: #f9f9f9; - font-size: 13px; - margin-top: 5px; -} -.small-box h3, -.small-box p { - z-index: 5px; -} -.small-box .icon { - position: absolute; - top: auto; - bottom: 5px; - right: 5px; - z-index: 0; - font-size: 90px; - color: rgba(0, 0, 0, 0.15); -} -.small-box:hover { - text-decoration: none; - color: #f9f9f9; -} -.small-box:hover .icon { - animation-name: tansformAnimation; - animation-duration: .5s; - animation-iteration-count: 1; - animation-timing-function: ease; - animation-fill-mode: forwards; - -webkit-animation-name: tansformAnimation; - -webkit-animation-duration: .5s; - -webkit-animation-iteration-count: 1; - -webkit-animation-timing-function: ease; - -webkit-animation-fill-mode: forwards; - -moz-animation-name: tansformAnimation; - -moz-animation-duration: .5s; - -moz-animation-iteration-count: 1; - -moz-animation-timing-function: ease; - -moz-animation-fill-mode: forwards; -} -@keyframes tansformAnimation { - from { - font-size: 90px; - } - to { - font-size: 100px; - } -} -@-webkit-keyframes tansformAnimation { - from { - font-size: 90px; - } - to { - font-size: 100px; - } -} -@media screen and (max-width: 480px) { - .small-box { - text-align: center; - } - .small-box .icon { - display: none; - } - .small-box p { - font-size: 12px; - } -} -/* - component: Boxes -------------------------- -*/ -.box { - position: relative; - background: #ffffff; - border-top: 2px solid #c1c1c1; - margin-bottom: 20px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - width: 100%; - box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); -} -.box.box-primary { - border-top-color: #3c8dbc; -} -.box.box-info { - border-top-color: #00c0ef; -} -.box.box-danger { - border-top-color: #f56954; -} -.box.box-warning { - border-top-color: #f39c12; -} -.box.box-success { - border-top-color: #00a65a; -} -.box.height-control .box-body { - max-height: 300px; - overflow: auto; -} -.box .box-header { - position: relative; - -webkit-border-top-left-radius: 3px; - -webkit-border-top-right-radius: 3px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -moz-border-radius-topleft: 3px; - -moz-border-radius-topright: 3px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - border-top-left-radius: 3px; - border-top-right-radius: 3px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - border-bottom: 0px solid #f4f4f4; - color: #444; -} -.box .box-header:before, -.box .box-header:after { - display: table; - content: " "; -} -.box .box-header:after { - clear: both; -} -.box .box-header > .fa, -.box .box-header > .glyphicon, -.box .box-header > .ion, -.box .box-header .box-title { - display: inline-block; - padding: 10px 10px 10px 10px; - margin: 0; - font-size: 20px; - font-weight: 400; - float: left; - cursor: default; -} -.box .box-header a { - color: #444; -} -.box .box-header > .box-tools { - padding: 5px 10px 5px 5px; -} -.box .box-body { - padding: 10px; - -webkit-border-top-left-radius: 0; - -webkit-border-top-right-radius: 0; - -webkit-border-bottom-right-radius: 3px; - -webkit-border-bottom-left-radius: 3px; - -moz-border-radius-topleft: 0; - -moz-border-radius-topright: 0; - -moz-border-radius-bottomright: 3px; - -moz-border-radius-bottomleft: 3px; - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.box .box-body > table, -.box .box-body > .table { - margin-bottom: 0; -} -.box .box-body.chart-responsive { - width: 100%; - overflow: hidden; -} -.box .box-body > .chart { - position: relative; - overflow: hidden; - width: 100%; -} -.box .box-body > .chart svg, -.box .box-body > .chart canvas { - width: 100%!important; -} -.box .box-body .fc { - margin-top: 5px; -} -.box .box-body .fc-header-title h2 { - font-size: 15px; - line-height: 1.6em; - color: #666; - margin-left: 10px; -} -.box .box-body .fc-header-right { - padding-right: 10px; -} -.box .box-body .fc-header-left { - padding-left: 10px; -} -.box .box-body .fc-widget-header { - background: #fafafa; - box-shadow: inset 0px -3px 1px rgba(0, 0, 0, 0.02); -} -.box .box-body .fc-grid { - width: 100%; - border: 0; -} -.box .box-body .fc-widget-header:first-of-type, -.box .box-body .fc-widget-content:first-of-type { - border-left: 0; - border-right: 0; -} -.box .box-body .fc-widget-header:last-of-type, -.box .box-body .fc-widget-content:last-of-type { - border-right: 0; -} -.box .box-body .table { - margin-bottom: 0; -} -.box .box-body .full-width-chart { - margin: -19px; -} -.box .box-body.no-padding .full-width-chart { - margin: -9px; -} -.box .box-footer { - border-top: 1px solid #f4f4f4; - -webkit-border-top-left-radius: 0; - -webkit-border-top-right-radius: 0; - -webkit-border-bottom-right-radius: 3px; - -webkit-border-bottom-left-radius: 3px; - -moz-border-radius-topleft: 0; - -moz-border-radius-topright: 0; - -moz-border-radius-bottomright: 3px; - -moz-border-radius-bottomleft: 3px; - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - padding: 10px; - background-color: #ffffff; -} -.box.box-solid { - border-top: 0px; -} -.box.box-solid > .box-header { - padding-bottom: 0px!important; -} -.box.box-solid > .box-header .btn.btn-default { - background: transparent; -} -.box.box-solid.box-primary > .box-header { - color: #fff; - background: #3c8dbc; - background-color: #3c8dbc; -} -.box.box-solid.box-primary > .box-header a { - color: #444; -} -.box.box-solid.box-info > .box-header { - color: #fff; - background: #00c0ef; - background-color: #00c0ef; -} -.box.box-solid.box-info > .box-header a { - color: #444; -} -.box.box-solid.box-danger > .box-header { - color: #fff; - background: #f56954; - background-color: #f56954; -} -.box.box-solid.box-danger > .box-header a { - color: #444; -} -.box.box-solid.box-warning > .box-header { - color: #fff; - background: #f39c12; - background-color: #f39c12; -} -.box.box-solid.box-warning > .box-header a { - color: #444; -} -.box.box-solid.box-success > .box-header { - color: #fff; - background: #00a65a; - background-color: #00a65a; -} -.box.box-solid.box-success > .box-header a { - color: #444; -} -.box.box-solid > .box-header > .box-tools .btn { - border: 0; - box-shadow: none; -} -.box.box-solid.collapsed-box .box-header { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.box.box-solid[class*='bg'] > .box-header { - color: #fff; -} -.box .box-group > .box { - margin-bottom: 5px; -} -.box .knob-label { - text-align: center; - color: #333; - font-weight: 100; - font-size: 12px; - margin-bottom: 0.3em; -} -.box .todo-list { - margin: 0; - padding: 0px 0px; - list-style: none; -} -.box .todo-list > li { - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - padding: 10px; - background: #f3f4f5; - margin-bottom: 2px; - border-left: 2px solid #e6e7e8; - color: #444; -} -.box .todo-list > li:last-of-type { - margin-bottom: 0; -} -.box .todo-list > li.danger { - border-left-color: #f56954; -} -.box .todo-list > li.warning { - border-left-color: #f39c12; -} -.box .todo-list > li.info { - border-left-color: #00c0ef; -} -.box .todo-list > li.success { - border-left-color: #00a65a; -} -.box .todo-list > li.primary { - border-left-color: #3c8dbc; -} -.box .todo-list > li > input[type='checkbox'] { - margin: 0 10px 0 5px; -} -.box .todo-list > li .text { - display: inline-block; - margin-left: 5px; - font-weight: 600; -} -.box .todo-list > li .label { - margin-left: 10px; - font-size: 9px; -} -.box .todo-list > li .tools { - display: none; - float: right; - color: #f56954; -} -.box .todo-list > li .tools > .fa, -.box .todo-list > li .tools > .glyphicon, -.box .todo-list > li .tools > .ion { - margin-right: 5px; - cursor: pointer; -} -.box .todo-list > li:hover .tools { - display: inline-block; -} -.box .todo-list > li.done { - color: #999; -} -.box .todo-list > li.done .text { - text-decoration: line-through; - font-weight: 500; -} -.box .todo-list > li.done .label { - background: #eaeaec !important; -} -.box .todo-list .handle { - display: inline-block; - cursor: move; - margin: 0 5px; -} -.box .chat { - padding: 5px 20px 5px 10px; -} -.box .chat .item { - margin-bottom: 10px; -} -.box .chat .item:before, -.box .chat .item:after { - display: table; - content: " "; -} -.box .chat .item:after { - clear: both; -} -.box .chat .item > img { - width: 40px; - height: 40px; - border: 2px solid transparent; - -webkit-border-radius: 50% !important; - -moz-border-radius: 50% !important; - border-radius: 50% !important; -} -.box .chat .item > img.online { - border: 2px solid #00a65a; -} -.box .chat .item > img.offline { - border: 2px solid #f56954; -} -.box .chat .item > .message { - margin-left: 55px; - margin-top: -40px; -} -.box .chat .item > .message > .name { - display: block; - font-weight: 600; -} -.box .chat .item > .attachment { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - background: #f0f0f0; - margin-left: 65px; - margin-right: 15px; - padding: 10px; -} -.box .chat .item > .attachment > h4 { - margin: 0 0 5px 0; - font-weight: 600; - font-size: 14px; -} -.box .chat .item > .attachment > p, -.box .chat .item > .attachment > .filename { - font-weight: 600; - font-size: 13px; - font-style: italic; - margin: 0; -} -.box .chat .item > .attachment:before, -.box .chat .item > .attachment:after { - display: table; - content: " "; -} -.box .chat .item > .attachment:after { - clear: both; -} -.box > .overlay, -.box > .loading-img { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.box > .overlay { - z-index: 1010; - background: rgba(255, 255, 255, 0.7); -} -.box > .overlay.dark { - background: rgba(0, 0, 0, 0.5); -} -.box > .loading-img { - z-index: 1020; - background: transparent url('../img/ajax-loader1.gif') 50% 50% no-repeat; -} -/* -Component: timeline --------------------- -*/ -.timeline { - position: relative; - margin: 0 0 30px 0; - padding: 0; - list-style: none; -} -.timeline:before { - content: ''; - position: absolute; - top: 0px; - bottom: 0; - width: 5px; - background: #ddd; - left: 30px; - border: 1px solid #eee; - margin: 0; - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; -} -.timeline > li { - position: relative; - margin-right: 10px; - margin-bottom: 15px; -} -.timeline > li:before, -.timeline > li:after { - display: table; - content: " "; -} -.timeline > li:after { - clear: both; -} -.timeline > li > .timeline-item { - margin-top: 10px; - border: 0px solid #dfdfdf; - background: #fff; - color: #555; - margin-left: 60px; - margin-right: 15px; - padding: 5px; - position: relative; - box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); -} -.timeline > li > .timeline-item > .time { - color: #999; - float: right; - margin: 2px 0 0 0; -} -.timeline > li > .timeline-item > .timeline-header { - margin: 0; - color: #555; - border-bottom: 1px solid #f4f4f4; - padding: 5px; - font-size: 16px; - line-height: 1.1; -} -.timeline > li > .timeline-item > .timeline-header > a { - font-weight: 600; -} -.timeline > li > .timeline-item > .timeline-body, -.timeline > li > .timeline-item > .timeline-footer { - padding: 10px; -} -.timeline > li.time-label > span { - font-weight: 600; - padding: 5px; - display: inline-block; - background-color: #fff; - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.timeline > li > .fa, -.timeline > li > .glyphicon, -.timeline > li > .ion { - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - width: 30px; - height: 30px; - font-size: 15px; - line-height: 30px; - position: absolute; - color: #666; - background: #eee; - border-radius: 50%; - text-align: center; - left: 18px; - top: 0; -} - -/* - Component: callout ------------------------- -*/ -.callout { - margin: 0 0 20px 0; - padding: 15px 30px 15px 15px; - border-left: 5px solid #eee; -} -.callout h4 { - margin-top: 0; -} -.callout p:last-child { - margin-bottom: 0; -} -.callout code, -.callout .highlight { - background-color: #fff; -} -.callout.callout-danger { - background-color: #fcf2f2; - border-color: #dFb5b4; -} -.callout.callout-warning { - background-color: #fefbed; - border-color: #f1e7bc; -} -.callout.callout-info { - background-color: #f0f7fd; - border-color: #d0e3f0; -} -.callout.callout-danger h4 { - color: #B94A48; -} -.callout.callout-warning h4 { - color: #C09853; -} -.callout.callout-info h4 { - color: #3A87AD; -} -/* - Component: alert ------------------------- -*/ -.alert { - padding-left: 30px; - margin-left: 15px; - position: relative; -} -.alert > .fa, -.alert > .glyphicon { - position: absolute; - left: -15px; - top: -15px; - width: 35px; - height: 35px; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - line-height: 35px; - text-align: center; - background: inherit; - border: inherit; -} -/* - Component: Navs -*/ -/* NAV PILLS */ -.nav.nav-pills > li > a { - border-top: 3px solid transparent; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - color: #444; -} -.nav.nav-pills > li > a > .fa, -.nav.nav-pills > li > a > .glyphicon, -.nav.nav-pills > li > a > .ion { - margin-right: 5px; -} -.nav.nav-pills > li.active > a, -.nav.nav-pills > li.active > a:hover { - background-color: #f6f6f6; - border-top-color: #3c8dbc; - color: #444; -} -.nav.nav-pills > li.active > a { - font-weight: 600; -} -.nav.nav-pills > li > a:hover { - background-color: #f6f6f6; -} -.nav.nav-pills.nav-stacked > li > a { - border-top: 0; - border-left: 3px solid transparent; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - color: #444; -} -.nav.nav-pills.nav-stacked > li.active > a, -.nav.nav-pills.nav-stacked > li.active > a:hover { - background-color: #f6f6f6; - border-left-color: #3c8dbc; - color: #444; -} -.nav.nav-pills.nav-stacked > li.header { - border-bottom: 1px solid #ddd; - color: #777; - margin-bottom: 10px; - padding: 5px 10px; - text-transform: uppercase; -} -/* NAV TABS */ -.nav-tabs-custom { - margin-bottom: 20px; - background: #fff; - box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); -} -.nav-tabs-custom > .nav-tabs { - margin: 0; - border-bottom-color: #f4f4f4; -} -.nav-tabs-custom > .nav-tabs > li { - border-top: 3px solid transparent; - margin-bottom: -2px; - margin-right: 5px; -} -.nav-tabs-custom > .nav-tabs > li > a { - -webkit-border-radius: 0 !important; - -moz-border-radius: 0 !important; - border-radius: 0 !important; -} -.nav-tabs-custom > .nav-tabs > li > a, -.nav-tabs-custom > .nav-tabs > li > a:hover { - background: transparent; - margin: 0; -} -.nav-tabs-custom > .nav-tabs > li:not(.active) > a:hover, -.nav-tabs-custom > .nav-tabs > li:not(.active) > a:focus, -.nav-tabs-custom > .nav-tabs > li:not(.active) > a:active { - border-color: transparent; -} -.nav-tabs-custom > .nav-tabs > li.active { - border-top-color: #3c8dbc; -} -.nav-tabs-custom > .nav-tabs > li.active > a, -.nav-tabs-custom > .nav-tabs > li.active:hover > a { - background-color: #fff; -} -.nav-tabs-custom > .nav-tabs > li.active > a { - border-top: 0; - border-left-color: #f4f4f4; - border-right-color: #f4f4f4; -} -.nav-tabs-custom > .nav-tabs > li:first-of-type { - margin-left: 0px; -} -.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a { - border-left-width: 0; -} -.nav-tabs-custom > .nav-tabs.pull-right { - float: none!important; -} -.nav-tabs-custom > .nav-tabs.pull-right > li { - float: right; -} -.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type { - margin-right: 0px; -} -.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a { - border-left-width: 1px; - border-right-width: 0px; -} -.nav-tabs-custom > .nav-tabs > li.header { - font-weight: 400; - line-height: 35px; - padding: 0 10px; - font-size: 20px; - color: #444; - cursor: default; -} -.nav-tabs-custom > .nav-tabs > li.header > .fa, -.nav-tabs-custom > .nav-tabs > li.header > .glyphicon, -.nav-tabs-custom > .nav-tabs > li.header > .ion { - margin-right: 10px; -} -.nav-tabs-custom > .tab-content { - background: #fff; - padding: 10px; -} -/* Nav tabs bottom */ -.tabs-bottom.nav-3 li a { - width: 3333.33333333% !important; -} -.tabs-bottom li a { - border: 0; -} -/* PAGINATION */ -.pagination > li > a { - background: #fafafa; - color: #666; - -webkit-box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.09); - -moz-box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.09); - box-shadow: inset 0px -1px 0px 0px rgba(0, 0, 0, 0.09); -} -.pagination > li:first-of-type a, -.pagination > li:last-of-type a { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -/* - Component: Mailbox -*/ -.mailbox .table-mailbox { - border-left: 1px solid #ddd; - border-right: 1px solid #ddd; - border-bottom: 1px solid #ddd; -} -.mailbox .table-mailbox tr.unread > td { - background-color: rgba(0, 0, 0, 0.05); - color: #000; - font-weight: 600; -} -.mailbox .table-mailbox tr > td > .fa.fa-star, -.mailbox .table-mailbox tr > td > .fa.fa-star-o, -.mailbox .table-mailbox tr > td > .glyphicon.glyphicon-star, -.mailbox .table-mailbox tr > td > .glyphicon.glyphicon-star-empty { - color: #f39c12; - cursor: pointer; -} -.mailbox .table-mailbox tr > td.small-col { - width: 30px; -} -.mailbox .table-mailbox tr > td.name { - width: 150px; - font-weight: 600; -} -.mailbox .table-mailbox tr > td.time { - text-align: right; - width: 100px; -} -.mailbox .table-mailbox tr > td { - white-space: nowrap; -} -.mailbox .table-mailbox tr > td > a { - color: #444; -} -@media screen and (max-width: 767px) { - .mailbox .nav-stacked > li:not(.header) { - float: left; - width: 50%; - } - .mailbox .nav-stacked > li:not(.header).header { - border: 0!important; - } - .mailbox .search-form { - margin-top: 10px; - } -} -/* - Page: locked screen -*/ -/* ADD THIS CLASS TO THE TAG */ -.lockscreen { - background: url(../img/blur-background09.jpg) repeat center center fixed; - -webkit-background-size: cover; - -moz-background-size: cover; - -o-background-size: cover; - background-size: cover; -} -/* Remove the background from the body element */ -.lockscreen > body { - background: transparent; -} -/* We will put the dynamically generated digital clock here */ -.lockscreen .headline { - color: #fff; - text-shadow: 1px 3px 5px rgba(0, 0, 0, 0.5); - font-weight: 300; - -webkit-font-smoothing: antialiased !important; - opacity: 0.8; - margin: 10px 0 30px 0; - font-size: 90px; -} -@media screen and (max-width: 480px) { - .lockscreen .headline { - font-size: 60px; - margin-bottom: 40px; - } -} -/* User name [optional] */ -.lockscreen .lockscreen-name { - text-align: center; - font-weight: 600; - font-size: 16px; -} -/* Will contain the image and the sign in form */ -.lockscreen-item { - padding: 0; - background: #fff; - position: relative; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - margin: 10px auto; - width: 290px; -} -.lockscreen-item:before, -.lockscreen-item:after { - display: table; - content: " "; -} -.lockscreen-item:after { - clear: both; -} -/* User image */ -.lockscreen-item > .lockscreen-image { - position: absolute; - left: -10px; - top: -30px; - background: #fff; - padding: 10px; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - z-index: 10; -} -.lockscreen-item > .lockscreen-image > img { - width: 70px; - height: 70px; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; -} -/* Contains the password input and the login button */ -.lockscreen-item > .lockscreen-credentials { - margin-left: 80px; -} -.lockscreen-item > .lockscreen-credentials input { - border: 0 !important; -} -.lockscreen-item > .lockscreen-credentials .btn { - background-color: #fff; - border: 0; -} -/* Extra to give the user an option to navigate the website [optional]*/ -.lockscreen-link { - margin-top: 30px; - text-align: center; -} -/* - Page: register and login -*/ -.form-box { - width: 360px; - margin: 90px auto 0 auto; -} -.form-box .header { - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - background: #3d9970; - box-shadow: inset 0px -3px 0px rgba(0, 0, 0, 0.2); - padding: 20px 10px; - text-align: center; - font-size: 26px; - font-weight: 300; - color: #fff; -} -.form-box .body, -.form-box .footer { - padding: 10px 20px; - background: #fff; - color: #444; -} -.form-box .body > .form-group, -.form-box .footer > .form-group { - margin-top: 20px; -} -.form-box .body > .form-group > input, -.form-box .footer > .form-group > input { - border: #fff; -} -.form-box .body > .btn, -.form-box .footer > .btn { - margin-bottom: 10px; -} -.form-box .footer { - -webkit-border-top-left-radius: 0; - -webkit-border-top-right-radius: 0; - -webkit-border-bottom-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-topleft: 0; - -moz-border-radius-topright: 0; - -moz-border-radius-bottomright: 4px; - -moz-border-radius-bottomleft: 4px; - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -@media (max-width: 767px) { - .form-box { - width: 90%; - } -} -/* - Page: 404 and 500 error pages ------------------------------------- -*/ -.error-page { - width: 600px; - margin: 20px auto 0 auto; -} -@media screen and (max-width: 767px) { - .error-page { - width: 100%; - } -} -.error-page > .headline { - float: left; - font-size: 100px; - font-weight: 300; -} -@media screen and (max-width: 767px) { - .error-page > .headline { - float: none; - text-align: center; - } -} -.error-page > .error-content { - margin-left: 190px; - display: block; -} -@media screen and (max-width: 767px) { - .error-page > .error-content { - margin-left: 0; - } -} -.error-page > .error-content > h3 { - font-weight: 300; - font-size: 25px; -} -@media screen and (max-width: 767px) { - .error-page > .error-content > h3 { - text-align: center; - } -} -.error-page:before, -.error-page:after { - display: table; - content: " "; -} -.error-page:after { - clear: both; -} -/* - Page: Invoice -*/ -.invoice { - position: relative; - width: 90%; - margin: 10px auto; - background: #fff; - border: 1px solid #f4f4f4; -} -.invoice-title { - margin-top: 0; -} -/* Enhancement for printing */ -@media print { - .invoice { - width: 100%; - border: 0; - margin: 0; - padding: 0; - } - .invoice-col { - float: left; - width: 33.3333333%; - } - .table-responsive { - overflow: auto; - } - .table-responsive > .table tr th, - .table-responsive > .table tr td { - white-space: normal!important; - } -} -/* - Skins - ----- -*/ -/* - Skin Blue - --------- -*/ -/* skin-blue navbar */ -.skin-blue .navbar { - background-color: #3c8dbc; -} -.skin-blue .navbar .nav a { - color: rgba(255, 255, 255, 0.8); -} -.skin-blue .navbar .nav > li > a:hover, -.skin-blue .navbar .nav > li > a:active, -.skin-blue .navbar .nav > li > a:focus, -.skin-blue .navbar .nav .open > a, -.skin-blue .navbar .nav .open > a:hover, -.skin-blue .navbar .nav .open > a:focus { - background: rgba(0, 0, 0, 0.1); - color: #f6f6f6; -} -.skin-blue .navbar .navbar-right > .nav { - margin-right: 10px; -} -.skin-blue .navbar .sidebar-toggle .icon-bar { - background: rgba(255, 255, 255, 0.8); -} -.skin-blue .navbar .sidebar-toggle:hover .icon-bar { - background: #f6f6f6 !important; -} -/* skin-blue logo */ -.skin-blue .logo { - background-color: #367fa9; - color: #f9f9f9; -} -.skin-blue .logo > a { - color: #f9f9f9; -} -.skin-blue .logo:hover { - background: #357ca5; -} -/* skin-blue content header */ -.skin-blue .right-side > .content-header { - background: #fbfbfb; - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); -} -/* Skin-blue user panel */ -.skin-blue .user-panel > .image > img { - border: 1px solid #dfdfdf; -} -.skin-blue .user-panel > .info, -.skin-blue .user-panel > .info > a { - color: #555555; -} -/* skin-blue sidebar */ -.skin-blue .sidebar { - border-bottom: 1px solid #fff; -} -.skin-blue .sidebar > .sidebar-menu > li { - border-top: 1px solid #fff; - border-bottom: 1px solid #dbdbdb; -} -.skin-blue .sidebar > .sidebar-menu > li:first-of-type { - border-top: 1px solid #dbdbdb; -} -.skin-blue .sidebar > .sidebar-menu > li:first-of-type > a { - border-top: 1px solid #fff; -} -.skin-blue .sidebar > .sidebar-menu > li > a { - margin-right: 1px; -} -.skin-blue .sidebar > .sidebar-menu > li > a:hover, -.skin-blue .sidebar > .sidebar-menu > li.active > a { - color: #222; - background: #f9f9f9; -} -.skin-blue .sidebar > .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #f9f9f9; -} -.skin-blue .left-side { - background: #f4f4f4; - -webkit-box-shadow: inset -3px 0px 8px -4px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset -3px 0px 8px -4px rgba(0, 0, 0, 0.1); - box-shadow: inset -3px 0px 8px -4px rgba(0, 0, 0, 0.07); -} -.skin-blue .sidebar a { - color: #555555; -} -.skin-blue .sidebar a:hover { - text-decoration: none; -} -.skin-blue .treeview-menu > li > a { - color: #777; -} -.skin-blue .treeview-menu > li.active > a, -.skin-blue .treeview-menu > li > a:hover { - color: #111; -} -.skin-blue .sidebar-form { - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - border: 1px solid #dbdbdb; - margin: 10px 10px; -} -.skin-blue .sidebar-form input[type="text"], -.skin-blue .sidebar-form .btn { - box-shadow: none; - background-color: #fafafa; - border: 1px solid #fafafa; - height: 35px; -} -.skin-blue .sidebar-form input[type="text"] { - color: #666; - -webkit-border-top-left-radius: 2px !important; - -webkit-border-top-right-radius: 0 !important; - -webkit-border-bottom-right-radius: 0 !important; - -webkit-border-bottom-left-radius: 2px !important; - -moz-border-radius-topleft: 2px !important; - -moz-border-radius-topright: 0 !important; - -moz-border-radius-bottomright: 0 !important; - -moz-border-radius-bottomleft: 2px !important; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-blue .sidebar-form input[type="text"]:focus, -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #fff; - color: #666; -} -.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left-color: #fff; -} -.skin-blue .sidebar-form .btn { - color: #999; - -webkit-border-top-left-radius: 0 !important; - -webkit-border-top-right-radius: 2px !important; - -webkit-border-bottom-right-radius: 2px !important; - -webkit-border-bottom-left-radius: 0 !important; - -moz-border-radius-topleft: 0 !important; - -moz-border-radius-topright: 2px !important; - -moz-border-radius-bottomright: 2px !important; - -moz-border-radius-bottomleft: 0 !important; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; -} -/* - Skin Black - -------- -*/ -/* skin-black navbar */ -.skin-black .navbar { - background-color: #ffffff; - border-bottom: 1px solid #eee; -} -.skin-black .navbar .nav a { - color: #333333; -} -.skin-black .navbar .nav > li > a:hover, -.skin-black .navbar .nav > li > a:active, -.skin-black .navbar .nav > li > a:focus, -.skin-black .navbar .nav .open > a, -.skin-black .navbar .nav .open > a:hover, -.skin-black .navbar .nav .open > a:focus { - background: #ffffff; - color: #999999; -} -.skin-black .navbar .navbar-right > .nav { - margin-right: 10px; -} -.skin-black .navbar .sidebar-toggle .icon-bar { - background: #333333; -} -.skin-black .navbar .sidebar-toggle:hover .icon-bar { - background: #999999 !important; -} -/* skin-black logo */ -.skin-black .logo { - background-color: #333333; - color: #f9f9f9; -} -.skin-black .logo > a { - color: #f9f9f9; -} -.skin-black .logo:hover { - background: #303030; -} -/* skin-black content header */ -.skin-black .right-side > .content-header { - background: transparent; - box-shadow: none; -} -/* Skin-red user panel */ -.skin-black .user-panel > .image > img { - border: 1px solid #444; -} -.skin-black .user-panel > .info, -.skin-black .user-panel > .info > a { - color: #eee; -} -/* skin-black sidebar */ -.skin-black .sidebar { - border-bottom: 1px solid #333; -} -.skin-black .sidebar > .sidebar-menu > li { - border-top: 1px solid #333; - border-bottom: 0px solid #444; -} -.skin-black .sidebar > .sidebar-menu > li:first-of-type { - border-top: 1px solid #444; -} -.skin-black .sidebar > .sidebar-menu > li:first-of-type > a { - border-top: 0px solid #333; -} -.skin-black .sidebar > .sidebar-menu > li > a { - margin-right: 1px; -} -.skin-black .sidebar > .sidebar-menu > li > a:hover, -.skin-black .sidebar > .sidebar-menu > li.active > a { - color: #f6f6f6; - background: #444; -} -.skin-black .sidebar > .sidebar-menu > li > .treeview-menu { - margin: 0 1px; - background: #444; -} -.skin-black .left-side { - background: #333; -} -.skin-black .sidebar a { - color: #eee; -} -.skin-black .sidebar a:hover { - text-decoration: none; -} -.skin-black .treeview-menu > li > a { - color: #ccc; -} -.skin-black .treeview-menu > li.active > a, -.skin-black .treeview-menu > li > a:hover { - color: #fff; -} -.skin-black .sidebar-form { - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - border: 0px solid #555; - margin: 10px 10px; -} -.skin-black .sidebar-form input[type="text"], -.skin-black .sidebar-form .btn { - box-shadow: none; - background-color: rgba(255, 255, 255, 0.1); - border: 0 solid rgba(255, 255, 255, 0.1); - height: 35px; - outline: none; -} -.skin-black .sidebar-form input[type="text"] { - color: #666; - -webkit-border-top-left-radius: 2px !important; - -webkit-border-top-right-radius: 0 !important; - -webkit-border-bottom-right-radius: 0 !important; - -webkit-border-bottom-left-radius: 2px !important; - -moz-border-radius-topleft: 2px !important; - -moz-border-radius-topright: 0 !important; - -moz-border-radius-bottomright: 0 !important; - -moz-border-radius-bottomleft: 2px !important; - border-top-left-radius: 2px !important; - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 2px !important; -} -.skin-black .sidebar-form input[type="text"]:focus, -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - background-color: #444; - border: 0; -} -.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { - border-left: 0; -} -.skin-black .sidebar-form .btn { - color: #999; - -webkit-border-top-left-radius: 0 !important; - -webkit-border-top-right-radius: 2px !important; - -webkit-border-bottom-right-radius: 2px !important; - -webkit-border-bottom-left-radius: 0 !important; - -moz-border-radius-topleft: 0 !important; - -moz-border-radius-topright: 2px !important; - -moz-border-radius-bottomright: 2px !important; - -moz-border-radius-bottomleft: 0 !important; - border-top-left-radius: 0 !important; - border-top-right-radius: 2px !important; - border-bottom-right-radius: 2px !important; - border-bottom-left-radius: 0 !important; - border-left: 0; -} -/*! - * iCheck v1.0.1, http://git.io/arlzeA - * ================================= - * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization - * - * (c) 2013 Damir Sultanov, http://fronteed.com - * MIT Licensed - */ -/* iCheck plugin Minimal skin, black ------------------------------------ */ -.icheckbox_minimal, -.iradio_minimal { - display: inline-block; - *display: inline; - vertical-align: middle; - margin: 0; - padding: 0; - width: 18px; - height: 18px; - background: rgba(255, 255, 255, 0.7) url(iCheck/minimal/minimal.png) no-repeat; - border: none; - cursor: pointer; -} -.icheckbox_minimal { - background-position: 0 0; -} -.icheckbox_minimal.hover { - background-position: -20px 0; -} -.icheckbox_minimal.checked { - background-position: -40px 0; -} -.icheckbox_minimal.disabled { - background-position: -60px 0; - cursor: default; -} -.icheckbox_minimal.checked.disabled { - background-position: -80px 0; -} -.iradio_minimal { - background-position: -100px 0; -} -.iradio_minimal.hover { - background-position: -120px 0; -} -.iradio_minimal.checked { - background-position: -140px 0; -} -.iradio_minimal.disabled { - background-position: -160px 0; - cursor: default; -} -.iradio_minimal.checked.disabled { - background-position: -180px 0; -} -/* Retina support */ -@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-moz-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min-device-pixel-ratio: 1.5) { - .icheckbox_minimal, - .iradio_minimal { - background-image: url('iCheck/minimal/minimal@2x.png'); - -webkit-background-size: 200px 20px; - background-size: 200px 20px; - } -} -.pace .pace-progress { - background: #00c0ef; - position: fixed; - z-index: 2000; - top: 0; - left: 0; - height: 2px; - -webkit-transition: width 1s; - -moz-transition: width 1s; - -o-transition: width 1s; - transition: width 1s; -} -.pace-inactive { - display: none; -} -/* - * Social Buttons for Bootstrap - * - * Copyright 2013-2014 Panayiotis Lipiridis - * Licensed under the MIT License - * - * https://github.com/lipis/bootstrap-social - * - * Note: this file has been altered to work correctly with AdminLTE - */ -.btn-social { - position: relative; - padding-left: 44px !important; - text-align: left; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.btn-social :first-child { - position: absolute; - left: 0; - top: 0; - bottom: 0; - width: 32px !important; - line-height: 34px !important; - font-size: 1.6em!important; - text-align: center; - border-right: 1px solid rgba(0, 0, 0, 0.2); -} -.btn-social.btn-lg { - padding-left: 60px !important; -} -.btn-social.btn-lg :first-child { - line-height: 45px; - width: 45px; - font-size: 1.8em; -} -.btn-social.btn-sm { - padding-left: 38px !important; -} -.btn-social.btn-sm :first-child { - line-height: 28px; - width: 28px; - font-size: 1.4em; -} -.btn-social.btn-xs { - padding-left: 30px !important; -} -.btn-social.btn-xs :first-child { - line-height: 20px; - width: 20px; - font-size: 1.2em; -} -.btn-social-icon { - position: relative; - padding-left: 44px !important; - text-align: left; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - height: 34px; - width: 34px; - padding: 0; -} -.btn-social-icon :first-child { - position: absolute; - left: 0; - top: 0; - bottom: 0; - width: 32px !important; - line-height: 34px !important; - font-size: 1.6em!important; - text-align: center; - border-right: 1px solid rgba(0, 0, 0, 0.2); -} -.btn-social-icon.btn-lg { - padding-left: 60px !important; -} -.btn-social-icon.btn-lg :first-child { - line-height: 45px; - width: 45px; - font-size: 1.8em; -} -.btn-social-icon.btn-sm { - padding-left: 38px !important; -} -.btn-social-icon.btn-sm :first-child { - line-height: 28px; - width: 28px; - font-size: 1.4em; -} -.btn-social-icon.btn-xs { - padding-left: 30px !important; -} -.btn-social-icon.btn-xs :first-child { - line-height: 20px; - width: 20px; - font-size: 1.2em; -} -.btn-social-icon :first-child { - border: none; - text-align: center; - width: 100%!important; -} -.btn-social-icon.btn-lg { - height: 45px; - width: 45px; - padding-left: 0; - padding-right: 0; -} -.btn-social-icon.btn-sm { - height: 30px; - width: 30px; - padding-left: 0; - padding-right: 0; -} -.btn-social-icon.btn-xs { - height: 22px; - width: 22px; - padding-left: 0; - padding-right: 0; -} -.btn-bitbucket { - color: #ffffff; - background-color: #205081; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket:hover, -.btn-bitbucket:focus, -.btn-bitbucket:active, -.btn-bitbucket.active, -.open .dropdown-toggle.btn-bitbucket { - color: #ffffff; - background-color: #183c60; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket:active, -.btn-bitbucket.active, -.open .dropdown-toggle.btn-bitbucket { - background-image: none; -} -.btn-bitbucket.disabled, -.btn-bitbucket[disabled], -fieldset[disabled] .btn-bitbucket, -.btn-bitbucket.disabled:hover, -.btn-bitbucket[disabled]:hover, -fieldset[disabled] .btn-bitbucket:hover, -.btn-bitbucket.disabled:focus, -.btn-bitbucket[disabled]:focus, -fieldset[disabled] .btn-bitbucket:focus, -.btn-bitbucket.disabled:active, -.btn-bitbucket[disabled]:active, -fieldset[disabled] .btn-bitbucket:active, -.btn-bitbucket.disabled.active, -.btn-bitbucket[disabled].active, -fieldset[disabled] .btn-bitbucket.active { - background-color: #205081; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-bitbucket .badge { - color: #205081; - background-color: #ffffff; -} -.btn-dropbox { - color: #ffffff; - background-color: #1087dd; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox:hover, -.btn-dropbox:focus, -.btn-dropbox:active, -.btn-dropbox.active, -.open .dropdown-toggle.btn-dropbox { - color: #ffffff; - background-color: #0d70b7; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox:active, -.btn-dropbox.active, -.open .dropdown-toggle.btn-dropbox { - background-image: none; -} -.btn-dropbox.disabled, -.btn-dropbox[disabled], -fieldset[disabled] .btn-dropbox, -.btn-dropbox.disabled:hover, -.btn-dropbox[disabled]:hover, -fieldset[disabled] .btn-dropbox:hover, -.btn-dropbox.disabled:focus, -.btn-dropbox[disabled]:focus, -fieldset[disabled] .btn-dropbox:focus, -.btn-dropbox.disabled:active, -.btn-dropbox[disabled]:active, -fieldset[disabled] .btn-dropbox:active, -.btn-dropbox.disabled.active, -.btn-dropbox[disabled].active, -fieldset[disabled] .btn-dropbox.active { - background-color: #1087dd; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-dropbox .badge { - color: #1087dd; - background-color: #ffffff; -} -.btn-facebook { - color: #ffffff; - background-color: #3b5998; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook:hover, -.btn-facebook:focus, -.btn-facebook:active, -.btn-facebook.active, -.open .dropdown-toggle.btn-facebook { - color: #ffffff; - background-color: #30487b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook:active, -.btn-facebook.active, -.open .dropdown-toggle.btn-facebook { - background-image: none; -} -.btn-facebook.disabled, -.btn-facebook[disabled], -fieldset[disabled] .btn-facebook, -.btn-facebook.disabled:hover, -.btn-facebook[disabled]:hover, -fieldset[disabled] .btn-facebook:hover, -.btn-facebook.disabled:focus, -.btn-facebook[disabled]:focus, -fieldset[disabled] .btn-facebook:focus, -.btn-facebook.disabled:active, -.btn-facebook[disabled]:active, -fieldset[disabled] .btn-facebook:active, -.btn-facebook.disabled.active, -.btn-facebook[disabled].active, -fieldset[disabled] .btn-facebook.active { - background-color: #3b5998; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-facebook .badge { - color: #3b5998; - background-color: #ffffff; -} -.btn-flickr { - color: #ffffff; - background-color: #ff0084; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr:hover, -.btn-flickr:focus, -.btn-flickr:active, -.btn-flickr.active, -.open .dropdown-toggle.btn-flickr { - color: #ffffff; - background-color: #d6006f; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr:active, -.btn-flickr.active, -.open .dropdown-toggle.btn-flickr { - background-image: none; -} -.btn-flickr.disabled, -.btn-flickr[disabled], -fieldset[disabled] .btn-flickr, -.btn-flickr.disabled:hover, -.btn-flickr[disabled]:hover, -fieldset[disabled] .btn-flickr:hover, -.btn-flickr.disabled:focus, -.btn-flickr[disabled]:focus, -fieldset[disabled] .btn-flickr:focus, -.btn-flickr.disabled:active, -.btn-flickr[disabled]:active, -fieldset[disabled] .btn-flickr:active, -.btn-flickr.disabled.active, -.btn-flickr[disabled].active, -fieldset[disabled] .btn-flickr.active { - background-color: #ff0084; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-flickr .badge { - color: #ff0084; - background-color: #ffffff; -} -.btn-foursquare { - color: #ffffff; - background-color: #0072b1; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare:hover, -.btn-foursquare:focus, -.btn-foursquare:active, -.btn-foursquare.active, -.open .dropdown-toggle.btn-foursquare { - color: #ffffff; - background-color: #005888; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare:active, -.btn-foursquare.active, -.open .dropdown-toggle.btn-foursquare { - background-image: none; -} -.btn-foursquare.disabled, -.btn-foursquare[disabled], -fieldset[disabled] .btn-foursquare, -.btn-foursquare.disabled:hover, -.btn-foursquare[disabled]:hover, -fieldset[disabled] .btn-foursquare:hover, -.btn-foursquare.disabled:focus, -.btn-foursquare[disabled]:focus, -fieldset[disabled] .btn-foursquare:focus, -.btn-foursquare.disabled:active, -.btn-foursquare[disabled]:active, -fieldset[disabled] .btn-foursquare:active, -.btn-foursquare.disabled.active, -.btn-foursquare[disabled].active, -fieldset[disabled] .btn-foursquare.active { - background-color: #0072b1; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-foursquare .badge { - color: #0072b1; - background-color: #ffffff; -} -.btn-github { - color: #ffffff; - background-color: #444444; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github:hover, -.btn-github:focus, -.btn-github:active, -.btn-github.active, -.open .dropdown-toggle.btn-github { - color: #ffffff; - background-color: #303030; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github:active, -.btn-github.active, -.open .dropdown-toggle.btn-github { - background-image: none; -} -.btn-github.disabled, -.btn-github[disabled], -fieldset[disabled] .btn-github, -.btn-github.disabled:hover, -.btn-github[disabled]:hover, -fieldset[disabled] .btn-github:hover, -.btn-github.disabled:focus, -.btn-github[disabled]:focus, -fieldset[disabled] .btn-github:focus, -.btn-github.disabled:active, -.btn-github[disabled]:active, -fieldset[disabled] .btn-github:active, -.btn-github.disabled.active, -.btn-github[disabled].active, -fieldset[disabled] .btn-github.active { - background-color: #444444; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-github .badge { - color: #444444; - background-color: #ffffff; -} -.btn-google-plus { - color: #ffffff; - background-color: #dd4b39; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google-plus:hover, -.btn-google-plus:focus, -.btn-google-plus:active, -.btn-google-plus.active, -.open .dropdown-toggle.btn-google-plus { - color: #ffffff; - background-color: #ca3523; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google-plus:active, -.btn-google-plus.active, -.open .dropdown-toggle.btn-google-plus { - background-image: none; -} -.btn-google-plus.disabled, -.btn-google-plus[disabled], -fieldset[disabled] .btn-google-plus, -.btn-google-plus.disabled:hover, -.btn-google-plus[disabled]:hover, -fieldset[disabled] .btn-google-plus:hover, -.btn-google-plus.disabled:focus, -.btn-google-plus[disabled]:focus, -fieldset[disabled] .btn-google-plus:focus, -.btn-google-plus.disabled:active, -.btn-google-plus[disabled]:active, -fieldset[disabled] .btn-google-plus:active, -.btn-google-plus.disabled.active, -.btn-google-plus[disabled].active, -fieldset[disabled] .btn-google-plus.active { - background-color: #dd4b39; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-google-plus .badge { - color: #dd4b39; - background-color: #ffffff; -} -.btn-instagram { - color: #ffffff; - background-color: #3f729b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram:hover, -.btn-instagram:focus, -.btn-instagram:active, -.btn-instagram.active, -.open .dropdown-toggle.btn-instagram { - color: #ffffff; - background-color: #335d7e; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram:active, -.btn-instagram.active, -.open .dropdown-toggle.btn-instagram { - background-image: none; -} -.btn-instagram.disabled, -.btn-instagram[disabled], -fieldset[disabled] .btn-instagram, -.btn-instagram.disabled:hover, -.btn-instagram[disabled]:hover, -fieldset[disabled] .btn-instagram:hover, -.btn-instagram.disabled:focus, -.btn-instagram[disabled]:focus, -fieldset[disabled] .btn-instagram:focus, -.btn-instagram.disabled:active, -.btn-instagram[disabled]:active, -fieldset[disabled] .btn-instagram:active, -.btn-instagram.disabled.active, -.btn-instagram[disabled].active, -fieldset[disabled] .btn-instagram.active { - background-color: #3f729b; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-instagram .badge { - color: #3f729b; - background-color: #ffffff; -} -.btn-linkedin { - color: #ffffff; - background-color: #007bb6; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin:hover, -.btn-linkedin:focus, -.btn-linkedin:active, -.btn-linkedin.active, -.open .dropdown-toggle.btn-linkedin { - color: #ffffff; - background-color: #005f8d; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin:active, -.btn-linkedin.active, -.open .dropdown-toggle.btn-linkedin { - background-image: none; -} -.btn-linkedin.disabled, -.btn-linkedin[disabled], -fieldset[disabled] .btn-linkedin, -.btn-linkedin.disabled:hover, -.btn-linkedin[disabled]:hover, -fieldset[disabled] .btn-linkedin:hover, -.btn-linkedin.disabled:focus, -.btn-linkedin[disabled]:focus, -fieldset[disabled] .btn-linkedin:focus, -.btn-linkedin.disabled:active, -.btn-linkedin[disabled]:active, -fieldset[disabled] .btn-linkedin:active, -.btn-linkedin.disabled.active, -.btn-linkedin[disabled].active, -fieldset[disabled] .btn-linkedin.active { - background-color: #007bb6; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-linkedin .badge { - color: #007bb6; - background-color: #ffffff; -} -.btn-tumblr { - color: #ffffff; - background-color: #2c4762; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr:hover, -.btn-tumblr:focus, -.btn-tumblr:active, -.btn-tumblr.active, -.open .dropdown-toggle.btn-tumblr { - color: #ffffff; - background-color: #1f3346; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr:active, -.btn-tumblr.active, -.open .dropdown-toggle.btn-tumblr { - background-image: none; -} -.btn-tumblr.disabled, -.btn-tumblr[disabled], -fieldset[disabled] .btn-tumblr, -.btn-tumblr.disabled:hover, -.btn-tumblr[disabled]:hover, -fieldset[disabled] .btn-tumblr:hover, -.btn-tumblr.disabled:focus, -.btn-tumblr[disabled]:focus, -fieldset[disabled] .btn-tumblr:focus, -.btn-tumblr.disabled:active, -.btn-tumblr[disabled]:active, -fieldset[disabled] .btn-tumblr:active, -.btn-tumblr.disabled.active, -.btn-tumblr[disabled].active, -fieldset[disabled] .btn-tumblr.active { - background-color: #2c4762; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-tumblr .badge { - color: #2c4762; - background-color: #ffffff; -} -.btn-twitter { - color: #ffffff; - background-color: #55acee; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter:hover, -.btn-twitter:focus, -.btn-twitter:active, -.btn-twitter.active, -.open .dropdown-toggle.btn-twitter { - color: #ffffff; - background-color: #309aea; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter:active, -.btn-twitter.active, -.open .dropdown-toggle.btn-twitter { - background-image: none; -} -.btn-twitter.disabled, -.btn-twitter[disabled], -fieldset[disabled] .btn-twitter, -.btn-twitter.disabled:hover, -.btn-twitter[disabled]:hover, -fieldset[disabled] .btn-twitter:hover, -.btn-twitter.disabled:focus, -.btn-twitter[disabled]:focus, -fieldset[disabled] .btn-twitter:focus, -.btn-twitter.disabled:active, -.btn-twitter[disabled]:active, -fieldset[disabled] .btn-twitter:active, -.btn-twitter.disabled.active, -.btn-twitter[disabled].active, -fieldset[disabled] .btn-twitter.active { - background-color: #55acee; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-twitter .badge { - color: #55acee; - background-color: #ffffff; -} -.btn-vk { - color: #ffffff; - background-color: #587ea3; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk:hover, -.btn-vk:focus, -.btn-vk:active, -.btn-vk.active, -.open .dropdown-toggle.btn-vk { - color: #ffffff; - background-color: #4a6a89; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk:active, -.btn-vk.active, -.open .dropdown-toggle.btn-vk { - background-image: none; -} -.btn-vk.disabled, -.btn-vk[disabled], -fieldset[disabled] .btn-vk, -.btn-vk.disabled:hover, -.btn-vk[disabled]:hover, -fieldset[disabled] .btn-vk:hover, -.btn-vk.disabled:focus, -.btn-vk[disabled]:focus, -fieldset[disabled] .btn-vk:focus, -.btn-vk.disabled:active, -.btn-vk[disabled]:active, -fieldset[disabled] .btn-vk:active, -.btn-vk.disabled.active, -.btn-vk[disabled].active, -fieldset[disabled] .btn-vk.active { - background-color: #587ea3; - border-color: rgba(0, 0, 0, 0.2); -} -.btn-vk .badge { - color: #587ea3; - background-color: #ffffff; -} - - - -.header .navbar .nav > li > a > .label { - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; - position: absolute; - top: 7px; - right: 2px; - font-size: 10px; - font-weight: normal; - width: 15px; - height: 15px; - line-height: 1.0em; - text-align: center; - padding: 2px; -} -.header .navbar .nav > li > a:hover > .label { - top: 3px; -} - - -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} - - - - - -.navbar-nav > .notifications-menu > .dropdown-menu, -.navbar-nav > .messages-menu > .dropdown-menu, -.navbar-nav > .tasks-menu > .dropdown-menu { - width: 280px; - padding: 0 0 0 0!important; - margin: 0!important; - top: 100%; - border: 1px solid #dfdfdf; - -webkit-border-radius: 4px !important; - -moz-border-radius: 4px !important; - border-radius: 4px !important; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.header, -.navbar-nav > .messages-menu > .dropdown-menu > li.header, -.navbar-nav > .tasks-menu > .dropdown-menu > li.header { - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 0; - -moz-border-radius-bottomleft: 0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - background-color: #ffffff; - padding: 7px 10px; - border-bottom: 1px solid #f4f4f4; - color: #444444; - font-size: 14px; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.header:after, -.navbar-nav > .messages-menu > .dropdown-menu > li.header:after, -.navbar-nav > .tasks-menu > .dropdown-menu > li.header:after { - bottom: 100%; - left: 92%; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - border-color: rgba(255, 255, 255, 0); - border-bottom-color: #ffffff; - border-width: 7px; - margin-left: -7px; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a, -.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a, -.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a { - -webkit-border-top-left-radius: 0px; - -webkit-border-top-right-radius: 0px; - -webkit-border-bottom-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-topleft: 0px; - -moz-border-radius-topright: 0px; - -moz-border-radius-bottomright: 4px; - -moz-border-radius-bottomleft: 4px; - border-top-left-radius: 0px; - border-top-right-radius: 0px; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; - font-size: 12px; - background-color: #f4f4f4; - padding: 7px 10px; - border-bottom: 1px solid #eeeeee; - color: #444444; - text-align: center; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a:hover, -.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a:hover, -.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a:hover { - background: #f4f4f4; - text-decoration: none; - font-weight: normal; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu, -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu { - margin: 0; - padding: 0; - list-style: none; - overflow-x: hidden; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a, -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { - display: block; - white-space: nowrap; - /* Prevent text from breaking */ - border-bottom: 1px solid #f4f4f4; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a:hover, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:hover, -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a:hover { - background: #f6f6f6; - text-decoration: none; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a { - font-size: 12px; - color: #444444; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion { - font-size: 20px; - width: 50px; - text-align: center; - padding: 15px 0px; - margin-right: 5px; - /* Default background and font colors */ - background: #00c0ef; - color: #f9f9f9; - /* Fallback for browsers that doesn't support rgba */ - color: rgba(255, 255, 255, 0.7); -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.danger, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.danger, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.danger { - background: #f56954; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.warning, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.warning, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.warning { - background: #f39c12; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.success, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.success, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.success { - background: #00a65a; -} -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.info, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.info, -.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.info { - background: #00c0ef; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a { - margin: 0px; - line-height: 20px; - padding: 10px 5px 10px 5px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > div > img { - margin: auto 10px auto auto; - width: 40px; - height: 40px; - border: 1px solid #dddddd; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 { - padding: 0; - margin: 0 0 0 45px; - color: #444444; - font-size: 15px; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 > small { - color: #999999; - font-size: 10px; - float: right; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > p { - margin: 0 0 0 45px; - font-size: 12px; - color: #888888; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:before, -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { - display: table; - content: " "; -} -.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { - clear: both; -} -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { - padding: 10px; -} -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > h3 { - font-size: 14px; - padding: 0; - margin: 0 0 10px 0; - color: #666666; -} -.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > .progress { - padding: 0; - margin: 0; -} -.navbar-nav > .user-menu > .dropdown-menu { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - padding: 1px 0 0 0; - border-top-width: 0; - width: 280px; -} -.navbar-nav > .user-menu > .dropdown-menu:after { - bottom: 100%; - right: 10px; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - border-color: rgba(255, 255, 255, 0); - border-bottom-color: #ffffff; - border-width: 10px; - margin-left: -10px; -} - - -.navbar-nav > .user-menu > .dropdown-menu > li.user-header { - height: 175px; - padding: 10px; - background: #3c8dbc; - text-align: center; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img { - z-index: 5; - height: 90px; - width: 90px; - border: 8px solid; - border-color: transparent; - border-color: rgba(255, 255, 255, 0.2); -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { - z-index: 5; - color: #f9f9f9; - color: rgba(255, 255, 255, 0.8); - font-size: 17px; - text-shadow: 2px 2px 3px #333333; - margin-top: 10px; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small { - display: block; - font-size: 12px; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-body { - padding: 15px; - border-bottom: 1px solid #f4f4f4; - border-top: 1px solid #dddddd; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-body:before, -.navbar-nav > .user-menu > .dropdown-menu > li.user-body:after { - display: table; - content: " "; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-body:after { - clear: both; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-body > div > a { - color: #0073b7; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-footer { - background-color: #f9f9f9; - padding: 10px; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-footer:before, -.navbar-nav > .user-menu > .dropdown-menu > li.user-footer:after { - display: table; - content: " "; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-footer:after { - clear: both; -} -.navbar-nav > .user-menu > .dropdown-menu > li.user-footer .btn-default { - color: #666666; -} -/* Add fade animation to dropdown menus */ -.open:not(.dropup) > .dropdown-menu { - animation-name: fadeAnimation; - animation-duration: .7s; - animation-iteration-count: 1; - animation-timing-function: ease; - animation-fill-mode: forwards; - -webkit-animation-name: fadeAnimation; - -webkit-animation-duration: .7s; - -webkit-animation-iteration-count: 1; - -webkit-animation-timing-function: ease; - -webkit-animation-fill-mode: forwards; - -moz-animation-name: fadeAnimation; - -moz-animation-duration: .7s; - -moz-animation-iteration-count: 1; - -moz-animation-timing-function: ease; - -moz-animation-fill-mode: forwards; -} -@keyframes fadeAnimation { - from { - opacity: 0; - top: 120%; - } - to { - opacity: 1; - top: 100%; - } -} -@-webkit-keyframes fadeAnimation { - from { - opacity: 0; - top: 120%; - } - to { - opacity: 1; - top: 100%; - } -} -/* Fix dropdown menu for small screens to display correctly on small screens */ -@media screen and (max-width: 767px) { - .navbar-nav > .notifications-menu > .dropdown-menu, - .navbar-nav > .user-menu > .dropdown-menu, - .navbar-nav > .tasks-menu > .dropdown-menu, - .navbar-nav > .messages-menu > .dropdown-menu { - position: absolute; - top: 100%; - right: 0; - left: auto; - border-right: 1px solid #dddddd; - border-bottom: 1px solid #dddddd; - border-left: 1px solid #dddddd; - background: #ffffff; - } -} -/* Fix menu positions on xs screens to appear correctly and fully */ -@media screen and (max-width: 480px) { - .navbar-nav > .notifications-menu > .dropdown-menu > li.header, - .navbar-nav > .tasks-menu > .dropdown-menu > li.header, - .navbar-nav > .messages-menu > .dropdown-menu > li.header { - /* Remove arrow from the top */ - } - .navbar-nav > .notifications-menu > .dropdown-menu > li.header:after, - .navbar-nav > .tasks-menu > .dropdown-menu > li.header:after, - .navbar-nav > .messages-menu > .dropdown-menu > li.header:after { - border-width: 0px!important; - } - .navbar-nav > .tasks-menu > .dropdown-menu { - position: absolute; - right: -120px; - left: auto; - } - .navbar-nav > .notifications-menu > .dropdown-menu { - position: absolute; - right: -170px; - left: auto; - } - .navbar-nav > .messages-menu > .dropdown-menu { - position: absolute; - right: -210px; - left: auto; - } -} diff --git a/src/main/resources/META-INF/resources/designer/css/bootstrap_custom.css b/src/main/resources/META-INF/resources/designer/css/bootstrap_custom.css deleted file mode 100644 index 1803cde6..00000000 --- a/src/main/resources/META-INF/resources/designer/css/bootstrap_custom.css +++ /dev/null @@ -1,6531 +0,0 @@ -@import url("//fonts.googleapis.com/css?family=Raleway:400,700"); -/*! - * bootswatch v3.3.1+1 - * Homepage: http://bootswatch.com - * Copyright 2012-2014 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*/ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: 2em; - margin: 0.67em 0; -} -mark { - background: #ff0; - color: #000; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-appearance: textfield; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - text-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - select { - background: #fff !important; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - border: 1px solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #ddd !important; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\2a"; -} -.glyphicon-plus:before { - content: "\2b"; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -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: Georgia, "Times New Roman", Times, serif; - font-size: 14px; - line-height: 1.42857143; - color: #333333; - background-color: #ffffff; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #4582ec; - text-decoration: none; -} -a:hover, -a:focus { - color: #134fb8; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - padding: 4px; - line-height: 1.42857143; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 22px; - margin-bottom: 22px; - border: 0; - border-top: 1px solid #eeeeee; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: bold; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #b3b3b3; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 22px; - margin-bottom: 11px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 11px; - margin-bottom: 11px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 41px; -} -h2, -.h2 { - font-size: 34px; -} -h3, -.h3 { - font-size: 28px; -} -h4, -.h4 { - font-size: 20px; -} -h5, -.h5 { - font-size: 16px; -} -h6, -.h6 { - font-size: 14px; -} -p { - margin: 0 0 11px; -} -.lead { - margin-bottom: 22px; - font-size: 18px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 24px; - } -} -small, -.small { - font-size: 87%; -} -mark, -.mark { - background-color: #fcf8e3; - padding: .2em; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #b3b3b3; -} -.text-primary { - color: #4582ec; -} -a.text-primary:hover { - color: #1863e6; -} -.text-success { - color: #3fad46; -} -a.text-success:hover { - color: #318837; -} -.text-info { - color: #5bc0de; -} -a.text-info:hover { - color: #31b0d5; -} -.text-warning { - color: #f0ad4e; -} -a.text-warning:hover { - color: #ec971f; -} -.text-danger { - color: #d9534f; -} -a.text-danger:hover { - color: #c9302c; -} -.bg-primary { - color: #fff; - background-color: #4582ec; -} -a.bg-primary:hover { - background-color: #1863e6; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 10px; - margin: 44px 0 22px; - border-bottom: 1px solid #dddddd; -} -ul, -ol { - margin-top: 0; - margin-bottom: 11px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; -} -.list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; -} -dl { - margin-top: 0; - margin-bottom: 22px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #b3b3b3; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 11px 22px; - margin: 0 0 22px; - font-size: 20px; - border-left: 5px solid #4582ec; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #333333; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #4582ec; - border-left: 0; - text-align: right; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 22px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #ffffff; - background-color: #333333; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - box-shadow: none; -} -pre { - display: block; - padding: 10.5px; - margin: 0 0 11px; - font-size: 15px; - line-height: 1.42857143; - word-break: break-all; - word-wrap: break-word; - color: #333333; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -.row { - margin-left: -15px; - margin-right: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666667%; -} -.col-xs-10 { - width: 83.33333333%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666667%; -} -.col-xs-7 { - width: 58.33333333%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666667%; -} -.col-xs-4 { - width: 33.33333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.66666667%; -} -.col-xs-1 { - width: 8.33333333%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666667%; -} -.col-xs-pull-10 { - right: 83.33333333%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666667%; -} -.col-xs-pull-7 { - right: 58.33333333%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666667%; -} -.col-xs-pull-4 { - right: 33.33333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.66666667%; -} -.col-xs-pull-1 { - right: 8.33333333%; -} -.col-xs-pull-0 { - right: auto; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666667%; -} -.col-xs-push-10 { - left: 83.33333333%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666667%; -} -.col-xs-push-7 { - left: 58.33333333%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666667%; -} -.col-xs-push-4 { - left: 33.33333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.66666667%; -} -.col-xs-push-1 { - left: 8.33333333%; -} -.col-xs-push-0 { - left: auto; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666667%; -} -.col-xs-offset-10 { - margin-left: 83.33333333%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666667%; -} -.col-xs-offset-7 { - margin-left: 58.33333333%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.66666667%; -} -.col-xs-offset-1 { - margin-left: 8.33333333%; -} -.col-xs-offset-0 { - margin-left: 0%; -} -@media (min-width: 768px) { - .col-sm-1, .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-sm-10, .col-sm-11, .col-sm-12 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: auto; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: auto; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 992px) { - .col-md-1, .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-md-10, .col-md-11, .col-md-12 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: auto; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: auto; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 1200px) { - .col-lg-1, .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-lg-10, .col-lg-11, .col-lg-12 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: auto; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: auto; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0%; - } -} -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #b3b3b3; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 22px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #dddddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #dddddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #dddddd; -} -.table .table { - background-color: #ffffff; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #dddddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #dddddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-child(odd) { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -.table-responsive { - overflow-x: auto; - min-height: 0.01%; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 16.5px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #dddddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 22px; - font-size: 24px; - line-height: inherit; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 9px; - font-size: 16px; - line-height: 1.42857143; - color: #333333; -} -.form-control { - display: block; - width: 100%; - height: 40px; - padding: 8px 12px; - font-size: 16px; - line-height: 1.42857143; - color: #333333; - background-color: #ffffff; - background-image: none; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -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, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); -} -.form-control::-moz-placeholder { - color: #b3b3b3; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #b3b3b3; -} -.form-control::-webkit-input-placeholder { - color: #b3b3b3; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eeeeee; - opacity: 1; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"], - input[type="time"], - input[type="datetime-local"], - input[type="month"] { - line-height: 40px; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm { - line-height: 33px; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg { - line-height: 57px; - } -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 22px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - padding-top: 9px; - padding-bottom: 9px; - margin-bottom: 0; -} -.form-control-static.input-lg, -.form-control-static.input-sm { - padding-left: 0; - padding-right: 0; -} -.input-sm, -.form-group-sm .form-control { - height: 33px; - padding: 5px 10px; - font-size: 14px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm, -select.form-group-sm .form-control { - height: 33px; - line-height: 33px; -} -textarea.input-sm, -textarea.form-group-sm .form-control, -select[multiple].input-sm, -select[multiple].form-group-sm .form-control { - height: auto; -} -.input-lg, -.form-group-lg .form-control { - height: 57px; - padding: 14px 16px; - font-size: 20px; - line-height: 1.33; - border-radius: 6px; -} -select.input-lg, -select.form-group-lg .form-control { - height: 57px; - line-height: 57px; -} -textarea.input-lg, -textarea.form-group-lg .form-control, -select[multiple].input-lg, -select[multiple].form-group-lg .form-control { - height: auto; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 50px; -} -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 40px; - height: 40px; - line-height: 40px; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback { - width: 57px; - height: 57px; - line-height: 57px; -} -.input-sm + .form-control-feedback { - width: 33px; - height: 33px; - line-height: 33px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3fad46; -} -.has-success .form-control { - border-color: #3fad46; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-success .form-control:focus { - border-color: #318837; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #81d186; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #81d186; -} -.has-success .input-group-addon { - color: #3fad46; - border-color: #3fad46; - background-color: #dff0d8; -} -.has-success .form-control-feedback { - color: #3fad46; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #f0ad4e; -} -.has-warning .form-control { - border-color: #f0ad4e; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-warning .form-control:focus { - border-color: #ec971f; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f8d9ac; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #f8d9ac; -} -.has-warning .input-group-addon { - color: #f0ad4e; - border-color: #f0ad4e; - background-color: #fcf8e3; -} -.has-warning .form-control-feedback { - color: #f0ad4e; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #d9534f; -} -.has-error .form-control { - border-color: #d9534f; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-error .form-control:focus { - border-color: #c9302c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #eba5a3; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #eba5a3; -} -.has-error .input-group-addon { - color: #d9534f; - border-color: #d9534f; - background-color: #f2dede; -} -.has-error .form-control-feedback { - color: #d9534f; -} -.has-feedback label ~ .form-control-feedback { - top: 27px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; -} -@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 .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 9px; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 31px; -} -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; - padding-top: 9px; - } -} -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; -} -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 19.62px; - } -} -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - } -} -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 8px 12px; - font-size: 16px; - line-height: 1.42857143; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus, -.btn.focus { - color: #333333; - text-decoration: none; -} -.btn:active, -.btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - pointer-events: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-default { - color: #333333; - background-color: #ffffff; - border-color: #dddddd; -} -.btn-default:hover, -.btn-default:focus, -.btn-default.focus, -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #333333; - background-color: #e6e6e6; - border-color: #bebebe; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #ffffff; - border-color: #dddddd; -} -.btn-default .badge { - color: #ffffff; - background-color: #333333; -} -.btn-primary { - color: #ffffff; - background-color: #4582ec; - border-color: #4582ec; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary.focus, -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #1863e6; - border-color: #175fdd; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #4582ec; - border-color: #4582ec; -} -.btn-primary .badge { - color: #4582ec; - background-color: #ffffff; -} -.btn-success { - color: #ffffff; - background-color: #3fad46; - border-color: #3fad46; -} -.btn-success:hover, -.btn-success:focus, -.btn-success.focus, -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #318837; - border-color: #2f8034; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #3fad46; - border-color: #3fad46; -} -.btn-success .badge { - color: #3fad46; - background-color: #ffffff; -} -.btn-info { - color: #ffffff; - background-color: #5bc0de; - border-color: #5bc0de; -} -.btn-info:hover, -.btn-info:focus, -.btn-info.focus, -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #31b0d5; - border-color: #2aabd2; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #5bc0de; -} -.btn-info .badge { - color: #5bc0de; - background-color: #ffffff; -} -.btn-warning { - color: #ffffff; - background-color: #f0ad4e; - border-color: #f0ad4e; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning.focus, -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #ec971f; - border-color: #eb9316; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #f0ad4e; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #ffffff; -} -.btn-danger { - color: #ffffff; - background-color: #d9534f; - border-color: #d9534f; -} -.btn-danger:hover, -.btn-danger:focus, -.btn-danger.focus, -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #c9302c; - border-color: #c12e2a; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d9534f; -} -.btn-danger .badge { - color: #d9534f; - background-color: #ffffff; -} -.btn-link { - color: #4582ec; - font-weight: normal; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #134fb8; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #b3b3b3; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 14px 16px; - font-size: 20px; - line-height: 1.33; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 14px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 14px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; - visibility: hidden; -} -.collapse.in { - display: block; - visibility: visible; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; - -webkit-transition-duration: 0.35s; - -o-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - font-size: 16px; - text-align: left; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - -webkit-background-clip: padding-box; - background-clip: padding-box; -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 10px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333333; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - text-decoration: none; - color: #ffffff; - background-color: #4582ec; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - outline: 0; - background-color: #4582ec; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #b3b3b3; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - left: auto; - right: 0; -} -.dropdown-menu-left { - left: 0; - right: auto; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 14px; - line-height: 1.42857143; - color: #b3b3b3; - white-space: nowrap; -} -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid; - content: ""; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn:last-child:not(:first-child), -.btn-group > .dropdown-toggle:not(:first-child) { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group > .btn-group { - float: left; -} -.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group > .btn-group:first-child > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.btn-group > .btn-group:last-child > .btn:first-child { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-bottom-left-radius: 4px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.input-group { - position: relative; - display: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 57px; - padding: 14px 16px; - font-size: 20px; - line-height: 1.33; - 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: 57px; - line-height: 57px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].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: 33px; - padding: 5px 10px; - font-size: 14px; - 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: 33px; - line-height: 33px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control: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: 8px 12px; - font-size: 16px; - font-weight: normal; - line-height: 1; - color: #333333; - text-align: center; - background-color: #eeeeee; - border: 1px solid #dddddd; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 14px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 14px 16px; - font-size: 20px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 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:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 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:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - 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; -} -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eeeeee; -} -.nav > li.disabled > a { - color: #b3b3b3; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #b3b3b3; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eeeeee; - border-color: #4582ec; -} -.nav .nav-divider { - height: 1px; - margin: 10px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #dddddd; -} -.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: #eeeeee #eeeeee #dddddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555555; - background-color: #ffffff; - border: 1px solid #dddddd; - border-bottom-color: transparent; - cursor: default; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@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 > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #dddddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #ffffff; - background-color: #4582ec; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.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:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #dddddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #ffffff; - } -} -.tab-content > .tab-pane { - display: none; - visibility: hidden; -} -.tab-content > .active { - display: block; - visibility: visible; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar { - position: relative; - min-height: 65px; - margin-bottom: 22px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} -.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; - visibility: visible !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - 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-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - 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; - padding: 21.5px 15px; - font-size: 20px; - line-height: 22px; - height: 65px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -.navbar-brand > img { - display: block; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 15.5px; - margin-bottom: 15.5px; - 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: 10.75px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 22px; -} -@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 > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 22px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 21.5px; - padding-bottom: 21.5px; - } -} -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 12.5px; - margin-bottom: 12.5px; -} -@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 .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 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; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 12.5px; - margin-bottom: 12.5px; -} -.navbar-btn.btn-sm { - margin-top: 16px; - margin-bottom: 16px; -} -.navbar-btn.btn-xs { - margin-top: 21.5px; - margin-bottom: 21.5px; -} -.navbar-text { - margin-top: 21.5px; - margin-bottom: 21.5px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-left: 15px; - margin-right: 15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #ffffff; - border-color: #dddddd; -} -.navbar-default .navbar-brand { - color: #4582ec; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #4582ec; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #333333; -} -.navbar-default .navbar-nav > li > a { - color: #4582ec; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #4582ec; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #4582ec; - background-color: transparent; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #333333; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #dddddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #dddddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #cccccc; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #dddddd; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - background-color: transparent; - color: #4582ec; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #4582ec; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #4582ec; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #4582ec; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #333333; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #4582ec; -} -.navbar-default .navbar-link:hover { - color: #4582ec; -} -.navbar-default .btn-link { - color: #4582ec; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #4582ec; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #333333; -} -.navbar-inverse { - background-color: #ffffff; - border-color: #dddddd; -} -.navbar-inverse .navbar-brand { - color: #333333; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #333333; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #333333; -} -.navbar-inverse .navbar-nav > li > a { - color: #333333; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #333333; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #333333; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #cccccc; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #dddddd; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #dddddd; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #cccccc; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #ededed; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - background-color: transparent; - color: #333333; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #dddddd; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #dddddd; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #333333; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333333; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #333333; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #333333; -} -.navbar-inverse .navbar-link:hover { - color: #333333; -} -.navbar-inverse .btn-link { - color: #333333; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #333333; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #cccccc; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 22px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - content: "/\00a0"; - padding: 0 5px; - color: #cccccc; -} -.breadcrumb > .active { - color: #b3b3b3; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 22px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 8px 12px; - line-height: 1.42857143; - text-decoration: none; - color: #333333; - background-color: #ffffff; - border: 1px solid #dddddd; - margin-left: -1px; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: #ffffff; - background-color: #4582ec; - border-color: #4582ec; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #ffffff; - background-color: #4582ec; - border-color: #4582ec; - cursor: default; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #b3b3b3; - background-color: #ffffff; - border-color: #dddddd; - cursor: not-allowed; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 14px 16px; - font-size: 20px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 6px; - border-top-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 6px; - border-top-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 14px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 22px 0; - list-style: none; - text-align: center; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #4582ec; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #b3b3b3; - background-color: #ffffff; - cursor: not-allowed; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -a.label:hover, -a.label:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #ffffff; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #e6e6e6; -} -.label-primary { - background-color: #4582ec; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #1863e6; -} -.label-success { - background-color: #3fad46; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #318837; -} -.label-info { - background-color: #5bc0de; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; -} -.label-warning { - background-color: #f0ad4e; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; -} -.label-danger { - background-color: #d9534f; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 14px; - font-weight: bold; - color: #ffffff; - line-height: 1; - vertical-align: baseline; - white-space: nowrap; - text-align: center; - background-color: #4582ec; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #4582ec; - background-color: #ffffff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding: 30px 15px; - margin-bottom: 30px; - color: inherit; - background-color: #f7f7f7; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 15px; - font-size: 24px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #dedede; -} -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 6px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding: 48px 0; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-left: 60px; - padding-right: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 72px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 22px; - line-height: 1.42857143; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-left: auto; - margin-right: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #4582ec; -} -.thumbnail .caption { - padding: 9px; - color: #333333; -} -.alert { - padding: 15px; - margin-bottom: 22px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - background-color: #3fad46; - border-color: #3fad46; - color: #ffffff; -} -.alert-success hr { - border-top-color: #389a3e; -} -.alert-success .alert-link { - color: #e6e6e6; -} -.alert-info { - background-color: #5bc0de; - border-color: #5bc0de; - color: #ffffff; -} -.alert-info hr { - border-top-color: #46b8da; -} -.alert-info .alert-link { - color: #e6e6e6; -} -.alert-warning { - background-color: #f0ad4e; - border-color: #f0ad4e; - color: #ffffff; -} -.alert-warning hr { - border-top-color: #eea236; -} -.alert-warning .alert-link { - color: #e6e6e6; -} -.alert-danger { - background-color: #d9534f; - border-color: #d9534f; - color: #ffffff; -} -.alert-danger hr { - border-top-color: #d43f3a; -} -.alert-danger .alert-link { - color: #e6e6e6; -} -@-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 { - overflow: hidden; - height: 22px; - margin-bottom: 22px; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 14px; - line-height: 22px; - color: #ffffff; - text-align: center; - background-color: #4582ec; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -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: #3fad46; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-info { - background-color: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - margin-bottom: 20px; - padding-left: 0; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #ffffff; - border: 1px solid #dddddd; -} -.list-group-item:first-child { - border-top-right-radius: 4px; - border-top-left-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -a.list-group-item { - color: #555555; -} -a.list-group-item .list-group-item-heading { - color: #333333; -} -a.list-group-item:hover, -a.list-group-item:focus { - text-decoration: none; - color: #555555; - background-color: #f5f5f5; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - background-color: #eeeeee; - color: #b3b3b3; - cursor: not-allowed; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #b3b3b3; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #ffffff; - background-color: #4582ec; - border-color: #4582ec; -} -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #fefeff; -} -.list-group-item-success { - color: #3fad46; - background-color: #dff0d8; -} -a.list-group-item-success { - color: #3fad46; -} -a.list-group-item-success .list-group-item-heading { - color: inherit; -} -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: #3fad46; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #3fad46; - border-color: #3fad46; -} -.list-group-item-info { - color: #5bc0de; - background-color: #d9edf7; -} -a.list-group-item-info { - color: #5bc0de; -} -a.list-group-item-info .list-group-item-heading { - color: inherit; -} -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: #5bc0de; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #5bc0de; - border-color: #5bc0de; -} -.list-group-item-warning { - color: #f0ad4e; - background-color: #fcf8e3; -} -a.list-group-item-warning { - color: #f0ad4e; -} -a.list-group-item-warning .list-group-item-heading { - color: inherit; -} -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: #f0ad4e; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #f0ad4e; - border-color: #f0ad4e; -} -.list-group-item-danger { - color: #d9534f; - background-color: #f2dede; -} -a.list-group-item-danger { - color: #d9534f; -} -a.list-group-item-danger .list-group-item-heading { - color: inherit; -} -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: #d9534f; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #d9534f; - border-color: #d9534f; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 22px; - background-color: #ffffff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 18px; - color: inherit; -} -.panel-title > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #ffffff; - border-top: 1px solid #dddddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-left: 15px; - padding-right: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #dddddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} -.panel-group { - margin-bottom: 22px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #dddddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #dddddd; -} -.panel-default { - border-color: #dddddd; -} -.panel-default > .panel-heading { - color: #333333; - background-color: #f5f5f5; - border-color: #dddddd; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #dddddd; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333333; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #dddddd; -} -.panel-primary { - border-color: transparent; -} -.panel-primary > .panel-heading { - color: #ffffff; - background-color: #4582ec; - border-color: transparent; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-primary > .panel-heading .badge { - color: #4582ec; - background-color: #ffffff; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.panel-success { - border-color: transparent; -} -.panel-success > .panel-heading { - color: #3fad46; - background-color: #3fad46; - border-color: transparent; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-success > .panel-heading .badge { - color: #3fad46; - background-color: #3fad46; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.panel-info { - border-color: transparent; -} -.panel-info > .panel-heading { - color: #5bc0de; - background-color: #5bc0de; - border-color: transparent; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-info > .panel-heading .badge { - color: #5bc0de; - background-color: #5bc0de; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.panel-warning { - border-color: transparent; -} -.panel-warning > .panel-heading { - color: #f0ad4e; - background-color: #f0ad4e; - border-color: transparent; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-warning > .panel-heading .badge { - color: #f0ad4e; - background-color: #f0ad4e; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.panel-danger { - border-color: transparent; -} -.panel-danger > .panel-heading { - color: #d9534f; - background-color: #d9534f; - border-color: transparent; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: transparent; -} -.panel-danger > .panel-heading .badge { - color: #d9534f; - background-color: #d9534f; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: transparent; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; -} -.embed-responsive.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f7f7f7; - border: 1px solid #e5e5e5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 24px; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} -.close:hover, -.close:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); -} -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} -.modal-open { - overflow: hidden; -} -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} -.modal-dialog { - position: relative; - width: auto; - margin: 10px; -} -.modal-content { - position: relative; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - -webkit-background-clip: padding-box; - background-clip: padding-box; - outline: 0; -} -.modal-backdrop { - position: absolute; - top: 0; - right: 0; - left: 0; - background-color: #000000; -} -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; - min-height: 16.42857143px; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 20px; -} -.modal-footer { - padding: 20px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; -} -.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; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - visibility: visible; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 14px; - font-weight: normal; - line-height: 1.4; - opacity: 0; - filter: alpha(opacity=0); -} -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); -} -.tooltip.top { - margin-top: -3px; - padding: 5px 0; -} -.tooltip.right { - margin-left: 3px; - padding: 0 5px; -} -.tooltip.bottom { - margin-top: 3px; - padding: 5px 0; -} -.tooltip.left { - margin-left: -3px; - padding: 0 5px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: rgba(0, 0, 0, 0.9); - 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: rgba(0, 0, 0, 0.9); -} -.tooltip.top-left .tooltip-arrow { - bottom: 0; - right: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: rgba(0, 0, 0, 0.9); -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: rgba(0, 0, 0, 0.9); -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: rgba(0, 0, 0, 0.9); -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: rgba(0, 0, 0, 0.9); -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: rgba(0, 0, 0, 0.9); -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: rgba(0, 0, 0, 0.9); -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: rgba(0, 0, 0, 0.9); -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: Georgia, "Times New Roman", Times, serif; - font-size: 16px; - font-weight: normal; - line-height: 1.42857143; - text-align: left; - background-color: #ffffff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - white-space: normal; -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 16px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 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 { - border-width: 10px; - content: ""; -} -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - bottom: -11px; -} -.popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #ffffff; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); -} -.popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #ffffff; -} -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - top: -11px; -} -.popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #ffffff; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); -} -.popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #ffffff; - bottom: -10px; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; -} -.carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000; - perspective: 1000; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - left: 0; - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - left: 0; - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); -} -.carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); -} -.carousel-control:hover, -.carousel-control:focus { - outline: 0; - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - margin-top: -10px; - font-family: serif; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #ffffff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); -} -.carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #ffffff; -} -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -15px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -15px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -15px; - } - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-footer:before, -.modal-footer:after { - content: " "; - display: table; -} -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; - visibility: hidden !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !important; - } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; - } -} -.visible-print-inline { - display: none !important; -} -@media print { - .visible-print-inline { - display: inline !important; - } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { - display: inline-block !important; - } -} -@media print { - .hidden-print { - display: none !important; - } -} -.navbar { - font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif; -} -.navbar-nav, -.navbar-form { - margin-left: 0; - margin-right: 0; -} -.navbar-nav > li > a { - padding: 8px 12px; - margin: 12px 6px; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-nav > li > a:hover { - border: 1px solid #ddd; -} -.navbar-nav > .active > a, -.navbar-nav > .active > a:hover { - border: 1px solid #ddd; -} -.navbar-default .navbar-nav > .active > a:hover { - color: #4582ec; -} -.navbar-inverse .navbar-nav > .active > a:hover { - color: #333333; -} -.navbar-brand { - padding-top: 20px; -} -@media (max-width: 768px) { - .navbar .navbar-nav > li > a { - margin: 0; - } -} -.btn { - font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif; -} -legend { - font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif; -} -.input-group-addon { - font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - border: 1px solid #ddd; -} -.pagination { - font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 14px 24px; -} -.pager { - font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif; -} -.pager a { - color: #333333; -} -.pager a:hover { - border-color: transparent; - color: #fff; -} -.pager .disabled a { - border-color: #dddddd; -} -.close { - color: #fff; - text-decoration: none; - text-shadow: none; - opacity: 0.4; -} -.close:hover, -.close:focus { - color: #fff; - opacity: 1; -} -.alert .alert-link { - color: #ffffff; - text-decoration: underline; -} -.label { - font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: normal; -} -.label-default { - border: 1px solid #ddd; - color: #333333; -} -.badge { - padding: 1px 7px 5px; - vertical-align: 2px; - font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: normal; -} -.panel { - -webkit-box-shadow: none; - box-shadow: none; -} -.panel-default .close { - color: #333333; -} -.panel-primary .panel-heading, -.panel-success .panel-heading, -.panel-warning .panel-heading, -.panel-danger .panel-heading, -.panel-info .panel-heading { - color: #fff; -} -.panel-primary .panel-body, -.panel-success .panel-body, -.panel-warning .panel-body, -.panel-danger .panel-body, -.panel-info .panel-body { - border: 1px solid #ddd; - border-top-width: 0; - border-radius: 0 0 4px 4px; -} -.modal .close { - color: #333333; -} - - - - -/* - Override above css for navigation menus -*/ - - - -/* navbar */ -.navbar-default { - background-color: #F8F8F8; - border-color: #E7E7E7; -} -/* title */ -.navbar-default .navbar-brand { - color: #777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5E5E5E; -} -/* link */ -.navbar-default .navbar-nav > li > a { - color: #777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #E7E7E7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #D5D5D5; -} -/* caret */ -.navbar-default .navbar-nav > .dropdown > a .caret { - border-top-color: #777; - border-bottom-color: #777; -} -.navbar-default .navbar-nav > .dropdown > a:hover .caret, -.navbar-default .navbar-nav > .dropdown > a:focus .caret { - border-top-color: #333; - border-bottom-color: #333; -} -.navbar-default .navbar-nav > .open > a .caret, -.navbar-default .navbar-nav > .open > a:hover .caret, -.navbar-default .navbar-nav > .open > a:focus .caret { - border-top-color: #555; - border-bottom-color: #555; -} -/* mobile version */ -.navbar-default .navbar-toggle { - border-color: #DDD; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #DDD; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #CCC; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - } -} diff --git a/src/main/resources/META-INF/resources/designer/index.html b/src/main/resources/META-INF/resources/designer/index.html index 82d3d7bb..65ffd0b5 100644 --- a/src/main/resources/META-INF/resources/designer/index.html +++ b/src/main/resources/META-INF/resources/designer/index.html @@ -63,7 +63,6 @@ rel="stylesheet" type="text/css"> - -- cgit 1.2.3-korg From 68cbba88dbee615c5cccb900dcff7bbe38fbf5d9 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Tue, 3 Jul 2018 14:54:27 +0200 Subject: Remove useless files Remove bpmn old files that were not used anymore Issue-ID: CLAMP-191 Change-Id: I12fe742fa1e97d1fbccf68fcadd9277533461f19 Signed-off-by: Determe, Sebastien (sd378r) --- .../resources/designer/modeler/Gruntfile.js | 117 ---------------- .../META-INF/resources/designer/modeler/README.md | 36 ----- .../resources/designer/modeler/dist/index.html | 24 +--- .../resources/designer/modeler/package.json | 40 ------ .../vendor/bpmn-font/css/bpmn-embedded.css | 150 -------------------- .../designer/vendor/bpmn-font/css/bpmn.css | 152 --------------------- .../designer/vendor/bpmn-font/font/bpmn.eot | Bin 40720 -> 0 bytes .../designer/vendor/bpmn-font/font/bpmn.svg | 107 --------------- .../designer/vendor/bpmn-font/font/bpmn.ttf | Bin 40568 -> 0 bytes .../designer/vendor/bpmn-font/font/bpmn.woff | Bin 13784 -> 0 bytes 10 files changed, 1 insertion(+), 625 deletions(-) delete mode 100644 src/main/resources/META-INF/resources/designer/modeler/Gruntfile.js delete mode 100644 src/main/resources/META-INF/resources/designer/modeler/README.md delete mode 100644 src/main/resources/META-INF/resources/designer/modeler/package.json delete mode 100644 src/main/resources/META-INF/resources/designer/vendor/bpmn-font/css/bpmn-embedded.css delete mode 100644 src/main/resources/META-INF/resources/designer/vendor/bpmn-font/css/bpmn.css delete mode 100644 src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.eot delete mode 100644 src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.svg delete mode 100644 src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.ttf delete mode 100644 src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.woff diff --git a/src/main/resources/META-INF/resources/designer/modeler/Gruntfile.js b/src/main/resources/META-INF/resources/designer/modeler/Gruntfile.js deleted file mode 100644 index d8f131e9..00000000 --- a/src/main/resources/META-INF/resources/designer/modeler/Gruntfile.js +++ /dev/null @@ -1,117 +0,0 @@ -module.exports = function(grunt) { - - require('load-grunt-tasks')(grunt); - - var path = require('path'); - - /** - * Resolve external project resource as file path - */ - function resolvePath(project, file) { - return path.join(path.dirname(require.resolve(project)), file); - } - - // project configuration - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - - config: { - sources: 'app', - dist: 'dist' - }, - - jshint: { - src: [ - ['<%=config.sources %>'] - ], - options: { - jshintrc: true - } - }, - - browserify: { - options: { - browserifyOptions: { - // make sure we do not include browser shims unnecessarily - builtins: false, - insertGlobalVars: { - process: function () { - return 'undefined'; - }, - Buffer: function () { - return 'undefined'; - } - } - }, - transform: [ 'brfs' ] - }, - watch: { - options: { - watch: true - }, - files: { - '<%= config.dist %>/index.js': [ '<%= config.sources %>/**/*.js' ] - } - }, - app: { - files: { - '<%= config.dist %>/index.js': [ '<%= config.sources %>/**/*.js' ] - } - } - }, - copy: { - diagram_js: { - files: [ - { - src: resolvePath('diagram-js', 'assets/diagram-js.css'), - dest: '<%= config.dist %>/css/diagram-js.css' - } - ] - }, - app: { - files: [ - { - expand: true, - cwd: '<%= config.sources %>/', - src: ['**/*.*', '!**/*.js'], - dest: '<%= config.dist %>' - } - ] - } - }, - watch: { - samples: { - files: [ '<%= config.sources %>/**/*.*' ], - tasks: [ 'copy:app' ] - }, - }, - connect: { - options: { - port: 9013, - livereload: 9014, - hostname: 'localhost' - }, - livereload: { - options: { - open: true, - base: [ - '<%= config.dist %>' - ] - } - } - } - }); - - // tasks - - grunt.registerTask('build', [ 'copy', 'browserify:app' ]); - - grunt.registerTask('auto-build', [ - 'copy', - 'browserify:watch', - 'connect:livereload', - 'watch' - ]); - - grunt.registerTask('default', [ 'jshint', 'build' ]); -}; diff --git a/src/main/resources/META-INF/resources/designer/modeler/README.md b/src/main/resources/META-INF/resources/designer/modeler/README.md deleted file mode 100644 index 2aa9c55f..00000000 --- a/src/main/resources/META-INF/resources/designer/modeler/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# bpmn-js Modeler Example - -This example uses [bpmn-js](https://github.com/bpmn-io/bpmn-js) to implement a modeler for BPMN 2.0 process diagrams. It serves as the basis of the bpmn-js demo application available at [demo.bpmn.io](http://demo.bpmn.io). - -## About - -This example is a node-style web application that builds a user interface around the bpmn-js BPMN 2.0 modeler. - -![demo application screenshot](https://raw.githubusercontent.com/bpmn-io/bpmn-js-examples/master/modeler/docs/screenshot.png "Screenshot of the example application") - - -## Building - -You need a [NodeJS](http://nodejs.org) development stack with [npm](https://npmjs.org) and [grunt](http://gruntjs.com) installed to build the project. - -To install all project dependencies execute - -``` -npm install -``` - -Build the application (including [bpmn-js](https://github.com/bpmn-io/bpmn-js)) using [browserify](http://browserify.org) via - -``` -grunt -``` - -You may also spawn a development setup by executing - -``` -grunt auto-build -``` - -Both tasks generate the distribution ready client-side modeler application into the `dist` folder. - -Serve the application locally or via a web server (nginx, apache, embedded). \ No newline at end of file diff --git a/src/main/resources/META-INF/resources/designer/modeler/dist/index.html b/src/main/resources/META-INF/resources/designer/modeler/dist/index.html index 59aa2929..dd88ec24 100644 --- a/src/main/resources/META-INF/resources/designer/modeler/dist/index.html +++ b/src/main/resources/META-INF/resources/designer/modeler/dist/index.html @@ -23,16 +23,13 @@ - bpmn-js modeler demo + Svg model display - - -
    @@ -46,25 +43,6 @@
    - - diff --git a/src/main/resources/META-INF/resources/designer/modeler/package.json b/src/main/resources/META-INF/resources/designer/modeler/package.json deleted file mode 100644 index b835ab9e..00000000 --- a/src/main/resources/META-INF/resources/designer/modeler/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "bpmn-js-example-modeler", - "version": "0.0.0", - "description": "A simple modeler built with bpmn-js", - "main": "app/index.js", - "repository": { - "type": "git", - "url": "https://github.com/bpmn-io/bpmn-js-examples" - }, - "keywords": [ - "bpmnjs-example" - ], - "author": { - "name": "Nico Rehwaldt", - "url": "https://github.com/nikku" - }, - "contributors": [ - { - "name": "bpmn.io contributors", - "url": "https://github.com/bpmn-io" - } - ], - "license": "MIT", - "devDependencies": { - "brfs": "^1.2.0", - "grunt": "~0.4.4", - "grunt-browserify": "^3.3.0", - "grunt-contrib-watch": "~0.5.0", - "grunt-contrib-connect": "~0.6.0", - "grunt-contrib-jshint": "~0.7.2", - "grunt-contrib-copy": "~0.5.0", - "load-grunt-tasks": "~0.3.0" - }, - "dependencies": { - "bpmn-js": "^0.10.0", - "diagram-js": "^0.10.0", - "jquery": "^2.1.1", - "lodash": "^3.0.0" - } -} diff --git a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/css/bpmn-embedded.css b/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/css/bpmn-embedded.css deleted file mode 100644 index 6fca089e..00000000 --- a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/css/bpmn-embedded.css +++ /dev/null @@ -1,150 +0,0 @@ -@font-face { - font-family: 'bpmn'; - src: url('../font/bpmn.eot?5069274'); - src: url('../font/bpmn.eot?5069274#iefix') format('embedded-opentype'), - url('../font/bpmn.svg?5069274#bpmn') format('svg'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'bpmn'; - src: url('data:application/octet-stream;base64,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') format('woff'), - url('data:application/octet-stream;base64,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AgMCAwIIAZwFBAQBBwocCwcSBAsEBwQEBwQIBBAIBAMCAgEEBAMEBQwFDQQFBAUIBSYECQQEBAQEBAEEAwEDAQMEBAgECQQCAgECBgMEBf5EBAUEBgICAQIDAwUEAQQNCQENAQQFBQQBBAUFCgUZAQQBFAYFBQULCgkFBAQDBAECAwMEBxMFBAUFBAUFBCUeCAQECQwDDQISBQQFAwEUBAQJCBYsBQUEBQUFBAUbBAYEAQECAwMEBAQJAwYFCwUFBQYUAR4FCgUFBAEEAQQFHA0EAQQFAwIBAgIDBAgB+v7IATgxWj66un0B8gEBAQEHAgIEAwQEBAkEBQYDAgkCAQEBAQEBAgUBAgMDCAQFBAkDAwMHAQEBAVMBAgIEBwkJCgEJBwYHAwQDBAMEBwgHFAQNBAQgAwMCAgICAwMICQUGBQUEAQQBBAUcDQQBCAQBBAQECAEDAQMBAwQIAwEDBAMBBgQHCAEEBAEDBAMBAwwDAQMBAwEIBAQEAQQEBAEEDRcFBQQBBAEJBQoFDAQFBAQDBAECBQcMHggECQQUBwgHBAMEAwQDBwYEAwcFBAQJBAQDBAECAgUMBQkEAwYCAQEBAQECAgcCAgMCAgIBAgMDCAUJCAMFAgECAQIBAgICCQIBAQEnAgMFAgQBAg8DAgECCQwJAQkEAwMBAwMBAwsHBwkJBAMEBAEBBAMMAwQGAwMCAwMDAwMDAgMDAgMCAwIDAgMEAxYDAwgJCQcDBDsBAgMDBA0FCwIDAwMDAwMCAwMKIwMHAwcEDgsDBwMIAwMCAQEDAgQICQQCBAkEBAQEBAUDAQMBAwQBAxAEAwEDCAMBCgEDAwEDAwEDAwEGBAkBAwIDA6kBBAQDBAgEBAkFBAkNBBsFDQkEBAkEAQQiBAUBBAQDAwIBAgIDBAgJBQQSBAsEBwQEBwQIBB4ECAQHBAQHBAQJBAQEAwQtAQQIBAQEBB4FCgUFBQUJBScFBAUJCgQyBAUECAQGAgIGCAoFGQEEARQGBQUFCwYmBQYFCwYLBhYGCQgDAwQQAgYICAkGEQUGBQYLBSEGCwUFCgYPAQQBGQUKAQQGAgEBAwIECAkIASkEBQUEBQUJBSIFCQUFBQUKBRcFBAcCAjkBAgMDCAcEBwQaAwsLBwYEAwcUDwMHAQgFBAUIAwMCAgICBwEDFQEDCwEHEAQEDAQEBAQEBAkEJgUFCAQEAwSgAQQDAwQJCQkGAQwBBgwGBQMDAgEEAQQBAgUEAgIBAQEEAQEBBgEBAQIBAQIDBwUEBQQIAwMJAgEGAxADBgMCAwIDAgMCAwYCAwMDAwMHSgECAQMGDAMDBQMCAQEBBAMDBAkFBAgDAwIBAQEBAgkCAgIBAgECAQEBAgICAQEBBAEBAQUEAwUEBQgIAwIBJwEBAwYECQUEBAQCBQMECQEGCQMCAQIDAgECAwQDCgIIAQIBAgIDAQIDAwgFBAkEAwMDBAIBAgECAQIBEBAGAgMFCQMKAQICAg8CAwUGDBQBAgECAQIBAgYCBgkEBQQEBAMDAgEBAQICAgECAQgMAwQDAgECAwIBAhIBCQQDBQQEBAUJBAMDBAAAAAUAAP+HA78DIgAPAB4AJgAqAC8AAAEOAhIWBDc+ATc2JicuAQcyFhcWBgcGJCcmAjc+ARcGBxc1FxEHJxQVJyUUFSYnAfSJ4mkwugECfoGkCAeJeC9mNIfXJiJUaXD+8WpnPzMwyWppaNHKyhiPAVlHSAMiAZb5/vbCPiwu3ImH6D0XGDGjgnvxS08LVlYBA3twhv9KSpSPjwEoj2BkZWRlZGYzMgAAAAkAAP+iA7gDIAALABcAUgC7AUQBoQHoAjICngAAARUjFTMVMzUzNSM1BzMVMxUjFSM1IzUzEysBByMHIwcVDwUVHwUzPwMzNzM3MzczFzMXMxczHwEzPwM1LwQjNSMnIycXDwYVHwozHwYVHwIzHw0zPwQ1LwE1JyMvBiMvATUjLwsjLwEjLwcjNSc1LwQjBQ8BIw8EFQ8EFQcjBxUPAyMVBxUHIxUPBBUHIw8BFQ8CFQ8CIw8DFQ8DFQcVDwoVBxUfBD8EMz8ENT8mNS8DAQ8FFRcVBxUHFQcVBxUHFQcVBxUHFQcVBxUHFQ8HFR8EPwUzPwEzPwE1PwEzNzM3NTc1MzU3NTc1NzU3NTc1NzU3NTc1JzUvBAUPBRUXFRcVFzMfBTMfARUXFRcVFxUzFxUXFR8EPwQ1Lw01JzUnNSc1LwMBDxcfBD8EMz8DMzczNzM3MzczNzU3Mzc1NzM/AjM3MzU/AzUvBAUPBRUfAxUfATMfAjMfAhUfATMfARUfATMXMxczFzMfAjMXMxcVMx8HMxcVFzMVMxczPwQ1LwQjJyMnIycjLwojLwQjLwUjAa59fYx9fXVefX1efX0zBw0GDQ0HJw0OBAMDBAECAwMJBAUGDAYXBgsGBgYGKQYGBgYGBR8EBQwDAwICBgMKJwYHBg0H6QUEBAMDAQICAgYCAgMGBQQDCAEOAggCBgIEAQICAQIDAgMFBAMEAwoFBgMJBAkEBAMEAgQGAQQDAgMCAwIBAggBBQMEAgQCAgUCBwICAQIJAQICAwcDAgMCAQIDAgYCCgX98wUHAQIDAgMCAwIDAgMEAQICAwIEAQQEAQICAgICAgECAgIEAgIEAQEBAgMCAgoBAgICAQQBAgECAQIBAgIBBAQDDgQIBAMBAQIDAQICAgECAQIBAgECAgMCAQIIAgECAgIBBAIEAQYCCgIGAwoDBgMFAwIBBAYIBQKyBAUDBgIBAQEBAQEBAQIBAwUDBQMEAwIGAwECAwYECQkEBAMCAQEDAgECAwMCAQUBDAMBAgEBAQEBAQEBBAMEBAj8pgQFAwQEAQEDAgEDAgEEAQoBBAMCAwIBAgMBAgQHCQkEBAMEAgQCAwIHBAEGAQIBAggBAQEBBQgIArEEBAkEBQoEDwUFCw8GBQsFIQYLEAgEBQICBAMEDQkGBhQFARIGBwUBBQEFAQUBHAELBQEFBQEFCw8BBAEDAwIBBAMEBAj93gQEBAMCAgECAwQNAgECAwIBAgMDCwIBCAMDBQECAQIBAgECAwMBAgECAQIEAwYDDQMdAgMNBAMNCQUIBQIBBAMEBAMECAMUAhEDCQURAgYFAwUFBQIBDwIFAgIBBAMEEQQEBQIhfYx9fYx9F31efX5dAZMBAgYBAgQCAwQICQUEBAMEAQICAgQCAQEBAQEFAQYEAwkFCAgCBAYBAQFPAQEDAwQEBAUJBAYBAgEGAwQCCA4DCAMGAwQBAgIDBAMEAwcHAwgDEgoIAgQCAgMDCAoHBwEMCAQEBAQEBAQLAQcDBgIGAgMFAwcDAgMJAwICBwICAgIBAQECAgQCBQwBBAICAgICAQICAgICAQQCAQICAwQBBAEEAQIDAgMCAQIDAgECBgIBAgYDAwIFAgECDwMCAQIBAgMGAwMDAwMDAwMBBAkFCAMDAwEEAwMEBgUDAgUBAgMCAwIDAgMDAgUCAwIMAgMCAwIDBAMEAwYDCgMGAgoBBgIFBAQECQkGBAH+xgECAggEBAQEMwMJAwYCBgMDAwMDAwYCAwMJAg4DCAENBQsFBgoHBAUJ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AQICBAEWAQEEAwwFCQQGBQQDCgIIAQIBAgICBwEBAQEBBAMECAT8pgQECAQCAQEBAgYCAgIBBAEGAgoDBAEDBgQFCQQEBAMEAgESAQIBAgECAgIHAgEBAQECBwMFBJQFBAYCAgECAwMFBAEEDQkBDQEEBQUEAQQFBQoFGQEEARQGBQUFCwoJBQQEAwQBAgMDBAcTBQQFBQQFBQQlHggEBAkMAw0NAhoEBQMBFAQECQgWLAUFBAUFBQQFGwQGBAEBAgMDBAQECQMGBQsFBQUGFAEeBQoFBQQBBAEEBRwNBAEEBQMCAQICAwQIBAI0SXd8Wx4VFmqCbRwVJ0lybB4fDld7NCUrMTU2AxoHBQkZMzMG7wECAgUMBQkEAwYCAQEBAQECAgcCAgMCAgIBAgMDCAUJCAMFAgECAQIBAgICCQIBAQEnAQEDBQIEAQIPAwIBAgkMCQEJBAMDAQMDAQMLBwcJCQQDBAQBAQQDDAMEBgMDAgMDAwMDAwIDAwIDAgMCAwIDBAMWAwMICQkHAwQ8AQEDAwQNBQsCAwMDAwMDAgMDCiMDBwMHBA4LAwcDCAMDAgEBAwIECAkEAgQJBAQEBAQFAwEDAQMEAQMQBAMBAwgDAQoBAwMBAwMBAwMBBgQJAQMCAwMCqwEEBAMECAQECQUECQ0EGwUNCQQECQQBBCIEBQEEBAMDAgECAgMECAkFBBIECwQHBAQHBAgEHgQIBAcEBAcEBAkEBAQDBAF3AQIDAwgHBAcEGgMLCwcGBAMHFA8DBwEIBQQFCAMDAgICAgcBAxUBAwsBBxAEBAwEBAQEBAQJBCYFBQgEBAMEoQICAwMECQkJBgEMAQYMBgUDAwIBBAEEAQIFBAICAQEBBAEBAQYBAQECAQECAwcFBAUECAMDCQIBBgMQAwYDAgMCAwIDAgMGAgMDAwMDBwNNAQIBAwYMAwMFAwIBAQEEAwMECQUECAMDAgEBAQECCQICAgECAQIBAQECAgIBAQEEAQEBBQQDBQQFCAgDAgECzgEBAQEHAgIEAwQEBAkEBQYDAgkCAQEBAQEBAgUBAgMDCAQFBAkDAwMHAQEBAVMBAgIEBwkJCgEJBwYHAwQDBAMEBwgHFAQNBAQgAwMCAgICAwMICQUGBQUEAQQBBAUcDQQBCAQBBAQECAEDAQMBAwQIAwEDBAMBBgQHAgoBBAQBAwQDAQMM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AgMHFgEEAQQBBgMCAgQEAwQFCQQEBAMEAQICAgECAQIBAgICAQEBCAEBAQICBAECBwMCAQIDAgECBgMJAwMDBP3DBQQIAwMCAgECAQEBAQEBAgEIAgEBAQMDBAQEBQkEAwMEAQIFAwIBAQEBAQECAQECAwMJAu4FBAgGAgEBAQEBAggCAQICBAEWAQEEAwwFCQQGBQQDCgIIAQIBAgICBwEBAQEBBAMECPynBQgIBAIBAQECBgICAgEEAQYCCgMEAQMGBAUJBAQEAwQCARIBAgECAQICAgcCAQEBAQIHAwUC8AQFBAQDBAICBwIDBQIEAQIDDAoDBAIEAQEEAwQECQgFBwMPAgEGBQgBAQEGAQIBAgECAgIJAQICAwQI/a0ECAQDAgICBQYMBgEMAQYHAwEDAwEHBwMBBwcBAwEDBAgEBAwEBAQECQQEBAUCAQEEBAMVAwQKBxkDCgIDAwMDAwMDAgYDAgMCAwIIAZwFBAQBBwocCwcSBAsEBwQEBwQIBBAIBAMCAgEEBAMEBQwFDQQFBAUIBSYECQQEBAQEBAEEAwEDAQMEBAgECQQCAgECBgMEBf5EBAUEBgICAQIDAwUEAQQNCQENAQQFBQQBBAUFCgUZAQQBFAYFBQULCgkFBAQDBAECAwMEBxMFBAUFBAUFBCUeCAQECQwDDQISBQQFAwEUBAQJCBYsBQUEBQUFBAUbBAYEAQECAwMEBAQJAwYFCwUFBQYUAR4FCgUFBAEEAQQFHA0EAQQFAwIBAgIDBAgCIX2MfX2MfRd9Xn1+XQGVAQEBAQcCAgQDBAQECQQFBgMCCQIBAQEBAQECBQECAwMIBAUECQMDAwcBAQEBUwECAgQHCQkKAQkHBgcDBAMEAwQHCAcUBA0EBCADAwICAgIDAwgJBQYFBQQBBAEEBRwNBAEIBAEEBAQIAQMBAwEDBAgDAQMEAwEGBAcIAQQEAQMEAwEDDAMBAwEDAQgEBAQBBAQEAQQNFwUFBAEEAQkFCgUMBAUEBAMEAQIFBwweCAQJBBQHCAcEAwQDBAMHBgQDBwUEBAkEBAMEAQICBQwFCQQDBgIBAQEBAQICBwICAwICAgECAwMIBQkIAwUCAQIBAgECAgIJAgEBAScCAwUCBAECDwMCAQIJDAkBCQQDAwEDAwEDCwcHCQkEAwQEAQEEAwwDBAYDAwIDAwMDAwMCAwMC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AgEEBAMOBAgEAwEBAgMBAgICAQIBAgECAQICAwIBAggCAQICAgEEAgQBBgIKAgYDCgMGAwUDAgEEBggFArIEBQMGAgEBAQEBAQEBAgEDBQMFAwQDAgYDAQIDBgQJCQQEAwIBAQMCAQIDAwIBBQEMAwECAQEBAQEBAQEEAwQECPymBAUDBAQBAQMCAQMCAQQBCgEEAwIDAgECAwECBAcJCQQEAwQCBAIDAgcEAQYBAgECCAEBAQEFCAgCsQQECQQFCgQPBQULDwYFCwUhBgsQCAQFAgIEAwQNCQYGFAUBEgYHBQEFAQUBBQEcAQsFAQUFAQULDwEEAQMDAgEEAwQECP3eBAQEAwICAQIDBA0CAQIDAgECAwMLAgEIAwMFAQIBAgECAQIDAwECAQIBAgQDBgMNAx0CAw0EAw0JBQgFAgEEAwQEAwQIAxQCEQMJBRECBgUDBQUFAgEPAgUCAgEEAwQRBAQFAhwM/pABfBj+tAEnGRlKGBhVGBhNGBgCLQECBgECBAIDBAgJBQQEAwQBAgICBAIBAQEBAQUBBgQDCQUICAIEBgEBAU8BAQMDBAQEBQkEBgECAQYDBAIIDgMIAwYDBAECAgMEAwQDBwcDCAMSCggCBAICAwMICgcHAQwIBAQEBAQEBAsBBwMGAgYCAwUDBwMCAwkDAgIHAgICAgEBAQICBAIFDAEEAgICAgIBAgICAgIBBAIBAgIDBAEEAQQBAgMCAwIBAgMCAQIGAgECBgMDAgUCAQIPAwIBAgECAwYDAwMDAwMDAwEECQUIAwMDAQQDAwQGBQMCBQECAwIDAgMCAwMCBQIDAgwCAwIDAgMEAwQDBgMKAwYCCgEGAgUEBAQJCQYEAf7GAQICCAQEBAQzAwkDBgIGAwMDAwMDBgIDAwkCDgMIAQ0FCwUGCgcEBQkEBgICAgIDAwMDBgYGBQEFBw8mAwoDAwcDAwQDAwQDAwQDBwMOAywFCQgEAgMCEwECAwMIBBsGBxMHDRMGBw0GHw0FAQUBBQEFAQUBBQEBBAQEAgICAwMJCQgGBgUGEAsGEQUGBgUvBgUGBgwGBwUHBgL+sgECBgQEBgQJBAMFCQIDBAMMAQQDBAMHCQkIAwMDAgIBBgIGAwIDAgMDDwYBAwMBAwQHDAQBAwQEBAkIBAMCAgIBAwIEBAkEBQQEAwEKAgICAgICAQEHAgUBAQED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AggBnAUEBAEHChwLBxIECwQHBAQHBAgEEAgEAwICAQQEAwQFDAUNBAUEBQgFJgQJBAQEBAQEAQQDAQMBAwQECAQJBAICAQIGAwQF/kQEBQQGAgIBAgMDBQQBBA0JAQ0BBAUFBAEEBQUKBRkBBAEUBgUFBQsKCQUEBAMEAQIDAwQHEwUEBQUEBQUEJR4IBAQJDAMNAhIFBAUDARQEBAkIFiwFBQQFBQUEBRsEBgQBAQIDAwQEBAkDBgULBQUFBhQBHgUKBQUEAQQBBAUcDQQBBAUDAgECAgMECAIcDP6QAXwY/rQBJxkZShgYVRgYTRgYAi8BAQEBBwICBAMEBAQJBAUGAwIJAgEBAQEBAQIFAQIDAwgEBQQJAwMDBwEBAQFTAQICBAcJCQoBCQcGBwMEAwQDBAcIBxQEDQQEIAMDAgICAgMDCAkFBgUFBAEEAQQFHA0EAQgEAQQEBAgBAwEDAQMECAMBAwQDAQYEBwgBBAQBAwQDAQMMAwEDAQMBCAQEBAEEBAQBBA0XBQUEAQQBCQUKBQwEBQQEAwQBAgUHDB4IBAkEFAcIBwQDBAMEAwcGBAMHBQQECQQEAwQBAgIFDAUJBAMGAgEBAQEBAgIHAgIDAgICAQIDAwgFCQgDBQIBAgECAQICAgkCAQEBJwIDBQIEAQIPAwIBAgkMCQEJBAMDAQMDAQMLBwcJCQQDBAQBAQQDDAMEBgMDAgMDAwMDAwIDAwIDAgMCAwIDBAMWAwMICQkHAwQ7AQIDAwQNBQsCAwMDAwMDAgMDCiMDBwMHBA4LAwcDCAMDAgEBAwIECAkEAgQJBAQEBAQFAwEDAQMEAQMQBAMBAwgDAQoBAwMBAwMBAwMBBgQJAQMCAwOpAQQEAwQIBAQJBQQJDQQbBQ0JBAQJBAEEIgQFAQQEAwMCAQICAwQICQUEEgQLBAcEBAcECAQeBAgEBwQEBwQECQQEBAMELQEECAQEBAQeBQoFBQUFCQUnBQQFCQoEMgQFBAgEBgICBggKBRkBBAEUBgUFBQsGJgUGBQsGCwYWBgkIAwMEEAIGCAgJBhEFBgUGCwUhBgsFBQoGDwEEARkFCgEEBgIBAQMCBAgJCAEpBAUFBAUFCQUiBQkFBQUFCgUXBQQHAgI5AQIDAwgHBAcEGgMLCwcGBAMHFA8DBwEIBQQFCAMDAgICAgcBAxUBAwsBBxAEBAwE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cippbnRlcm1lZGlhdGUtZXZlbnQtY2F0Y2gtcGFyYWxsZWwtbXVsdGlwbGUlaW50ZXJtZWRpYXRlLWV2ZW50LWNhdGNoLWNvbXBlbnNhdGlvbgtnYXRld2F5LXhvcgpjb25uZWN0aW9uEGVuZC1ldmVudC1jYW5jZWwiaW50ZXJtZWRpYXRlLWV2ZW50LWNhdGNoLWNvbmRpdGlvbjtpbnRlcm1lZGlhdGUtZXZlbnQtY2F0Y2gtbm9uLWludGVycnVwdGluZy1wYXJhbGxlbC1tdWx0aXBsZRVzdGFydC1ldmVudC1jb25kaXRpb24ic3RhcnQtZXZlbnQtbm9uLWludGVycnVwdGluZy10aW1lchpzZXF1ZW50aWFsLW1pLW1hcmtlci1rb3BpZQZtYW51YWwHcmVjZWl2ZRJzdWItcHJvY2Vzcy1tYXJrZXIdc3RhcnQtZXZlbnQtcGFyYWxsZWwtbXVsdGlwbGURc3RhcnQtZXZlbnQtZXJyb3IfaW50ZXJtZWRpYXRlLWV2ZW50LWNhdGNoLXNpZ25hbB5pbnRlcm1lZGlhdGUtZXZlbnQtY2F0Y2gtZXJyb3IWZW5kLWV2ZW50LWNvbXBlbnNhdGlvbhRzdWJwcm9jZXNzLWNvbGxhcHNlZBNzdWJwcm9jZXNzLWV4cGFuZGVkBHRhc2sPZW5kLWV2ZW50LWVycm9yI2ludGVybWVkaWF0ZS1ldmVudC1jYXRjaC1lc2NhbGF0aW9uHmludGVybWVkaWF0ZS1ldmVudC1jYXRjaC10aW1lchZzdGFydC1ldmVudC1lc2NhbGF0aW9uEnN0YXJ0LWV2ZW50LXNpZ25hbBJidXNpbmVzcy1ydWxlLXRhc2sGc2NyaXB0BHNlbmQNY2FsbC1hY3Rpdml0eRFzdGFydC1ldmVudC10aW1lchNzdGFydC1ldmVudC1tZXNzYWdlF2ludGVybWVkaWF0ZS1ldmVudC1ub25lHWludGVybWVkaWF0ZS1ldmVudC1jYXRjaC1saW5rFGVuZC1ldmVudC1lc2NhbGF0aW9uD3RleHQtYW5ub3RhdGlvbgdicG1uLWlvD2dhdGV3YXktY29tcGxleBJnYXRld2F5LWV2ZW50YmFzZWQMZ2F0ZXdheS1ub25lCmdhdGV3YXktb3ITZW5kLWV2ZW50LXRlcm1pbmF0ZRBlbmQtZXZlbnQtc2lnbmFsDmVuZC1ldmVudC1ub25lEmVuZC1ldmVudC1tdWx0aXBsZRFlbmQtZXZlbnQtbWVzc2FnZQ5lbmQtZXZlbnQtbGluayBpbnRlcm1lZGlhdGUtZXZlbnQtY2F0Y2gtbWVzc2FnZSVpbnRlcm1lZGlhdGUtZXZlbnQtdGhyb3ctY29tcGVuc2F0aW9uFHN0YXJ0LWV2ZW50LW11bHRpcGxlCmRhdGEtaW5wdXQLbWFudWFsLXRhc2sHc2VydmljZQR1c2VyDHJlY2VpdmUtdGFzawtkYXRhLW9iamVjdBBzdGFydC1ldmVudC1ub25lI2ludGVybWVkaWF0ZS1ldmVudC10aHJvdy1lc2NhbGF0aW9uIWludGVybWVkaWF0ZS1ldmVudC1jYXRjaC1tdWx0aXBsZTRpbnRlcm1lZGlhdGUtZXZlbnQtY2F0Y2gtbm9uLWludGVycnVwdGluZy1lc2NhbGF0aW9uHWludGVybWVkaWF0ZS1ldmVudC10aHJvdy1saW5rJnN0YXJ0LWV2ZW50LW5vbi1pbnRlcnJ1cHRpbmctY29uZGl0aW9uC2RhdGEtb3V0cHV0C3NjcmlwdC10YXNrCXNlbmQtdGFzawpkYXRhLXN0b3JlJ3N0YXJ0LWV2ZW50LW5vbi1pbnRlcnJ1cHRpbmctZXNjYWxhdGlvbiBpbnRlcm1lZGlhdGUtZXZlbnQtdGhyb3ctbWVzc2FnZTJpbnRlcm1lZGlhdGUtZXZlbnQtY2F0Y2gtbm9uLWludGVycnVwdGluZy1tdWx0aXBsZTBpbnRlcm1lZGlhdGUtZXZlbnQtY2F0Y2gtbm9uLWludGVycnVwdGluZy1zaWduYWwhaW50ZXJtZWRpYXRlLWV2ZW50LXRocm93LW11bHRpcGxlJHN0YXJ0LWV2ZW50LW5vbi1pbnRlcnJ1cHRpbmctbWVzc2FnZQ1hZC1ob2MtbWFya2VyDHNlcnZpY2UtdGFzawl0YXNrLW5vbmUTY29tcGVuc2F0aW9uLW1hcmtlciVzdGFydC1ldmVudC1ub24taW50ZXJydXB0aW5nLW11bHRpcGxlH2ludGVybWVkaWF0ZS1ldmVudC10aHJvdy1zaWduYWwzaW50ZXJtZWRpYXRlLWV2ZW50LWNhdGNoLW5vbi1pbnRlcnJ1cHRpbmctY29uZGl0aW9uC3BhcnRpY2lwYW50CnNwYWNlLXRvb2wQY29ubmVjdGlvbi1tdWx0aQpsYXNzby10b29sAAA=') format('truetype'); -} -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'bpmn'; - src: url('../font/bpmn.svg?5069274#bpmn') format('svg'); - } -} -*/ - - [class^="icon-"]:before, [class*=" icon-"]:before { - font-family: "bpmn"; - font-style: normal; - font-weight: normal; - speak: none; - - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ -} -.icon-screw-wrench:before { content: '\e800'; } /* '' */ -.icon-trash:before { content: '\e801'; } /* '' */ -.icon-gateway-parallel:before { content: '\e802'; } /* '' */ -.icon-intermediate-event-catch-cancel:before { content: '\e803'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-message:before { content: '\e804'; } /* '' */ -.icon-start-event-compensation:before { content: '\e805'; } /* '' */ -.icon-start-event-non-interrupting-parallel-multiple:before { content: '\e806'; } /* '' */ -.icon-loop-marker:before { content: '\e807'; } /* '' */ -.icon-user-task:before { content: '\e808'; } /* '' */ -.icon-business-rule:before { content: '\e809'; } /* '' */ -.icon-parallel-mi-marker:before { content: '\e80a'; } /* '' */ -.icon-start-event-non-interrupting-signal:before { content: '\e80b'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-timer:before { content: '\e80c'; } /* '' */ -.icon-intermediate-event-catch-parallel-multiple:before { content: '\e80d'; } /* '' */ -.icon-intermediate-event-catch-compensation:before { content: '\e80e'; } /* '' */ -.icon-gateway-xor:before { content: '\e80f'; } /* '' */ -.icon-connection:before { content: '\e810'; } /* '' */ -.icon-end-event-cancel:before { content: '\e811'; } /* '' */ -.icon-intermediate-event-catch-condition:before { content: '\e812'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-parallel-multiple:before { content: '\e813'; } /* '' */ -.icon-start-event-condition:before { content: '\e814'; } /* '' */ -.icon-start-event-non-interrupting-timer:before { content: '\e815'; } /* '' */ -.icon-sequential-mi-marker-kopie:before { content: '\e816'; } /* '' */ -.icon-manual:before { content: '\e817'; } /* '' */ -.icon-receive:before { content: '\e818'; } /* '' */ -.icon-sub-process-marker:before { content: '\e819'; } /* '' */ -.icon-start-event-parallel-multiple:before { content: '\e81a'; } /* '' */ -.icon-start-event-error:before { content: '\e81b'; } /* '' */ -.icon-intermediate-event-catch-signal:before { content: '\e81c'; } /* '' */ -.icon-intermediate-event-catch-error:before { content: '\e81d'; } /* '' */ -.icon-end-event-compensation:before { content: '\e81e'; } /* '' */ -.icon-subprocess-collapsed:before { content: '\e81f'; } /* '' */ -.icon-subprocess-expanded:before { content: '\e820'; } /* '' */ -.icon-task:before { content: '\e821'; } /* '' */ -.icon-end-event-error:before { content: '\e822'; } /* '' */ -.icon-intermediate-event-catch-escalation:before { content: '\e823'; } /* '' */ -.icon-intermediate-event-catch-timer:before { content: '\e824'; } /* '' */ -.icon-start-event-escalation:before { content: '\e825'; } /* '' */ -.icon-start-event-signal:before { content: '\e826'; } /* '' */ -.icon-business-rule-task:before { content: '\e827'; } /* '' */ -.icon-script:before { content: '\e828'; } /* '' */ -.icon-send:before { content: '\e829'; } /* '' */ -.icon-call-activity:before { content: '\e82a'; } /* '' */ -.icon-start-event-timer:before { content: '\e82b'; } /* '' */ -.icon-start-event-message:before { content: '\e82c'; } /* '' */ -.icon-intermediate-event-none:before { content: '\e82d'; } /* '' */ -.icon-intermediate-event-catch-link:before { content: '\e82e'; } /* '' */ -.icon-end-event-escalation:before { content: '\e82f'; } /* '' */ -.icon-text-annotation:before { content: '\e830'; } /* '' */ -.icon-bpmn-io:before { content: '\e831'; } /* '' */ -.icon-gateway-complex:before { content: '\e832'; } /* '' */ -.icon-gateway-eventbased:before { content: '\e833'; } /* '' */ -.icon-gateway-none:before { content: '\e834'; } /* '' */ -.icon-gateway-or:before { content: '\e835'; } /* '' */ -.icon-end-event-terminate:before { content: '\e836'; } /* '' */ -.icon-end-event-signal:before { content: '\e837'; } /* '' */ -.icon-end-event-none:before { content: '\e838'; } /* '' */ -.icon-end-event-multiple:before { content: '\e839'; } /* '' */ -.icon-end-event-message:before { content: '\e83a'; } /* '' */ -.icon-end-event-link:before { content: '\e83b'; } /* '' */ -.icon-intermediate-event-catch-message:before { content: '\e83c'; } /* '' */ -.icon-intermediate-event-throw-compensation:before { content: '\e83d'; } /* '' */ -.icon-start-event-multiple:before { content: '\e83e'; } /* '' */ -.icon-data-input:before { content: '\e83f'; } /* '' */ -.icon-manual-task:before { content: '\e840'; } /* '' */ -.icon-service:before { content: '\e841'; } /* '' */ -.icon-user:before { content: '\e842'; } /* '' */ -.icon-receive-task:before { content: '\e843'; } /* '' */ -.icon-data-object:before { content: '\e844'; } /* '' */ -.icon-start-event-none:before { content: '\e845'; } /* '' */ -.icon-intermediate-event-throw-escalation:before { content: '\e846'; } /* '' */ -.icon-intermediate-event-catch-multiple:before { content: '\e847'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-escalation:before { content: '\e848'; } /* '' */ -.icon-intermediate-event-throw-link:before { content: '\e849'; } /* '' */ -.icon-start-event-non-interrupting-condition:before { content: '\e84a'; } /* '' */ -.icon-data-output:before { content: '\e84b'; } /* '' */ -.icon-script-task:before { content: '\e84c'; } /* '' */ -.icon-send-task:before { content: '\e84d'; } /* '' */ -.icon-data-store:before { content: '\e84e'; } /* '' */ -.icon-start-event-non-interrupting-escalation:before { content: '\e84f'; } /* '' */ -.icon-intermediate-event-throw-message:before { content: '\e850'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-multiple:before { content: '\e851'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-signal:before { content: '\e852'; } /* '' */ -.icon-intermediate-event-throw-multiple:before { content: '\e853'; } /* '' */ -.icon-start-event-non-interrupting-message:before { content: '\e854'; } /* '' */ -.icon-ad-hoc-marker:before { content: '\e855'; } /* '' */ -.icon-service-task:before { content: '\e856'; } /* '' */ -.icon-task-none:before { content: '\e857'; } /* '' */ -.icon-compensation-marker:before { content: '\e858'; } /* '' */ -.icon-start-event-non-interrupting-multiple:before { content: '\e859'; } /* '' */ -.icon-intermediate-event-throw-signal:before { content: '\e85a'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-condition:before { content: '\e85b'; } /* '' */ -.icon-participant:before { content: '\e85c'; } /* '' */ -.icon-space-tool:before { content: '\e85f'; } /* '' */ -.icon-connection-multi:before { content: '\e860'; } /* '' */ -.icon-lasso-tool:before { content: '\e862'; } /* '' */ diff --git a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/css/bpmn.css b/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/css/bpmn.css deleted file mode 100644 index fff9e2d2..00000000 --- a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/css/bpmn.css +++ /dev/null @@ -1,152 +0,0 @@ -@font-face { - font-family: 'bpmn'; - src: url('../font/bpmn.eot?8685581'); - src: url('../font/bpmn.eot?8685581#iefix') format('embedded-opentype'), - url('../font/bpmn.woff?8685581') format('woff'), - url('../font/bpmn.ttf?8685581') format('truetype'), - url('../font/bpmn.svg?8685581#bpmn') format('svg'); - font-weight: normal; - font-style: normal; -} -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'bpmn'; - src: url('../font/bpmn.svg?8685581#bpmn') format('svg'); - } -} -*/ - - [class^="icon-"]:before, [class*=" icon-"]:before { - font-family: "bpmn"; - font-style: normal; - font-weight: normal; - speak: none; - - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - - /* Font smoothing. That was taken from TWBS */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ -} - -.icon-screw-wrench:before { content: '\e800'; } /* '' */ -.icon-trash:before { content: '\e801'; } /* '' */ -.icon-gateway-parallel:before { content: '\e802'; } /* '' */ -.icon-intermediate-event-catch-cancel:before { content: '\e803'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-message:before { content: '\e804'; } /* '' */ -.icon-start-event-compensation:before { content: '\e805'; } /* '' */ -.icon-start-event-non-interrupting-parallel-multiple:before { content: '\e806'; } /* '' */ -.icon-loop-marker:before { content: '\e807'; } /* '' */ -.icon-user-task:before { content: '\e808'; } /* '' */ -.icon-business-rule:before { content: '\e809'; } /* '' */ -.icon-parallel-mi-marker:before { content: '\e80a'; } /* '' */ -.icon-start-event-non-interrupting-signal:before { content: '\e80b'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-timer:before { content: '\e80c'; } /* '' */ -.icon-intermediate-event-catch-parallel-multiple:before { content: '\e80d'; } /* '' */ -.icon-intermediate-event-catch-compensation:before { content: '\e80e'; } /* '' */ -.icon-gateway-xor:before { content: '\e80f'; } /* '' */ -.icon-connection:before { content: '\e810'; } /* '' */ -.icon-end-event-cancel:before { content: '\e811'; } /* '' */ -.icon-intermediate-event-catch-condition:before { content: '\e812'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-parallel-multiple:before { content: '\e813'; } /* '' */ -.icon-start-event-condition:before { content: '\e814'; } /* '' */ -.icon-start-event-non-interrupting-timer:before { content: '\e815'; } /* '' */ -.icon-sequential-mi-marker-kopie:before { content: '\e816'; } /* '' */ -.icon-manual:before { content: '\e817'; } /* '' */ -.icon-receive:before { content: '\e818'; } /* '' */ -.icon-sub-process-marker:before { content: '\e819'; } /* '' */ -.icon-start-event-parallel-multiple:before { content: '\e81a'; } /* '' */ -.icon-start-event-error:before { content: '\e81b'; } /* '' */ -.icon-intermediate-event-catch-signal:before { content: '\e81c'; } /* '' */ -.icon-intermediate-event-catch-error:before { content: '\e81d'; } /* '' */ -.icon-end-event-compensation:before { content: '\e81e'; } /* '' */ -.icon-subprocess-collapsed:before { content: '\e81f'; } /* '' */ -.icon-subprocess-expanded:before { content: '\e820'; } /* '' */ -.icon-task:before { content: '\e821'; } /* '' */ -.icon-end-event-error:before { content: '\e822'; } /* '' */ -.icon-intermediate-event-catch-escalation:before { content: '\e823'; } /* '' */ -.icon-intermediate-event-catch-timer:before { content: '\e824'; } /* '' */ -.icon-start-event-escalation:before { content: '\e825'; } /* '' */ -.icon-start-event-signal:before { content: '\e826'; } /* '' */ -.icon-business-rule-task:before { content: '\e827'; } /* '' */ -.icon-script:before { content: '\e828'; } /* '' */ -.icon-send:before { content: '\e829'; } /* '' */ -.icon-call-activity:before { content: '\e82a'; } /* '' */ -.icon-start-event-timer:before { content: '\e82b'; } /* '' */ -.icon-start-event-message:before { content: '\e82c'; } /* '' */ -.icon-intermediate-event-none:before { content: '\e82d'; } /* '' */ -.icon-intermediate-event-catch-link:before { content: '\e82e'; } /* '' */ -.icon-end-event-escalation:before { content: '\e82f'; } /* '' */ -.icon-text-annotation:before { content: '\e830'; } /* '' */ -.icon-bpmn-io:before { content: '\e831'; } /* '' */ -.icon-gateway-complex:before { content: '\e832'; } /* '' */ -.icon-gateway-eventbased:before { content: '\e833'; } /* '' */ -.icon-gateway-none:before { content: '\e834'; } /* '' */ -.icon-gateway-or:before { content: '\e835'; } /* '' */ -.icon-end-event-terminate:before { content: '\e836'; } /* '' */ -.icon-end-event-signal:before { content: '\e837'; } /* '' */ -.icon-end-event-none:before { content: '\e838'; } /* '' */ -.icon-end-event-multiple:before { content: '\e839'; } /* '' */ -.icon-end-event-message:before { content: '\e83a'; } /* '' */ -.icon-end-event-link:before { content: '\e83b'; } /* '' */ -.icon-intermediate-event-catch-message:before { content: '\e83c'; } /* '' */ -.icon-intermediate-event-throw-compensation:before { content: '\e83d'; } /* '' */ -.icon-start-event-multiple:before { content: '\e83e'; } /* '' */ -.icon-data-input:before { content: '\e83f'; } /* '' */ -.icon-manual-task:before { content: '\e840'; } /* '' */ -.icon-service:before { content: '\e841'; } /* '' */ -.icon-user:before { content: '\e842'; } /* '' */ -.icon-receive-task:before { content: '\e843'; } /* '' */ -.icon-data-object:before { content: '\e844'; } /* '' */ -.icon-start-event-none:before { content: '\e845'; } /* '' */ -.icon-intermediate-event-throw-escalation:before { content: '\e846'; } /* '' */ -.icon-intermediate-event-catch-multiple:before { content: '\e847'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-escalation:before { content: '\e848'; } /* '' */ -.icon-intermediate-event-throw-link:before { content: '\e849'; } /* '' */ -.icon-start-event-non-interrupting-condition:before { content: '\e84a'; } /* '' */ -.icon-data-output:before { content: '\e84b'; } /* '' */ -.icon-script-task:before { content: '\e84c'; } /* '' */ -.icon-send-task:before { content: '\e84d'; } /* '' */ -.icon-data-store:before { content: '\e84e'; } /* '' */ -.icon-start-event-non-interrupting-escalation:before { content: '\e84f'; } /* '' */ -.icon-intermediate-event-throw-message:before { content: '\e850'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-multiple:before { content: '\e851'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-signal:before { content: '\e852'; } /* '' */ -.icon-intermediate-event-throw-multiple:before { content: '\e853'; } /* '' */ -.icon-start-event-non-interrupting-message:before { content: '\e854'; } /* '' */ -.icon-ad-hoc-marker:before { content: '\e855'; } /* '' */ -.icon-service-task:before { content: '\e856'; } /* '' */ -.icon-task-none:before { content: '\e857'; } /* '' */ -.icon-compensation-marker:before { content: '\e858'; } /* '' */ -.icon-start-event-non-interrupting-multiple:before { content: '\e859'; } /* '' */ -.icon-intermediate-event-throw-signal:before { content: '\e85a'; } /* '' */ -.icon-intermediate-event-catch-non-interrupting-condition:before { content: '\e85b'; } /* '' */ -.icon-participant:before { content: '\e85c'; } /* '' */ -.icon-space-tool:before { content: '\e85f'; } /* '' */ -.icon-connection-multi:before { content: '\e860'; } /* '' */ -.icon-lasso-tool:before { content: '\e862'; } /* '' */ diff --git a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.eot b/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.eot deleted file mode 100644 index 4339c7f8..00000000 Binary files a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.eot and /dev/null differ diff --git a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.svg b/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.svg deleted file mode 100644 index b80b8a90..00000000 --- a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.svg +++ /dev/null @@ -1,107 +0,0 @@ - - - -camunda Services GmbH - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.ttf b/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.ttf deleted file mode 100644 index f9406567..00000000 Binary files a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.ttf and /dev/null differ diff --git a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.woff b/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.woff deleted file mode 100644 index e4387564..00000000 Binary files a/src/main/resources/META-INF/resources/designer/vendor/bpmn-font/font/bpmn.woff and /dev/null differ -- cgit 1.2.3-korg From 3df350aec6c16aad332ca5aca3c7e21b9e7bf036 Mon Sep 17 00:00:00 2001 From: "Determe, Sebastien (sd378r)" Date: Tue, 3 Jul 2018 15:38:34 +0200 Subject: Fix security issue in java Remove/upgrade some java libs reported by Nexus IQ Issue-ID: CLAMP-192 Change-Id: If39dc00abfad081c9298c663c99b747a90693fc0 Signed-off-by: Determe, Sebastien (sd378r) --- pom.xml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index b2a397fa..5a9fad73 100644 --- a/pom.xml +++ b/pom.xml @@ -68,7 +68,6 @@ 1.8 2.0.0-rc4 - 20.0 1.0.0 2.20.1 1.5.14.RELEASE @@ -485,16 +484,6 @@ commons-csv 1.3 - - com.sun.faces - jsf-api - 2.1.7 - - - com.sun.faces - jsf-impl - 2.1.7 - org.codehaus.plexus @@ -511,6 +500,11 @@ jboss-jaxrs-api_2.0_spec 1.0.1.Final + + com.google.guava + guava + 25.1-jre + org.mariadb.jdbc -- cgit 1.2.3-korg