.\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: @line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n","/* FONT PATH\n * -------------------------- */\n\n@font-face {\n font-family: 'FontAwesome';\n src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');\n src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),\n url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),\n url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),\n url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),\n url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');\n // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts\n font-weight: normal;\n font-style: normal;\n}\n","// Base Class Definition\n// -------------------------\n\n.@{fa-css-prefix} {\n display: inline-block;\n font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration\n font-size: inherit; // can't have font-size inherit on line above, so need to override\n text-rendering: auto; // optimizelegibility throws things off #1094\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n}\n","// Icon Sizes\n// -------------------------\n\n/* makes the font 33% larger relative to the icon container */\n.@{fa-css-prefix}-lg {\n font-size: (4em / 3);\n line-height: (3em / 4);\n vertical-align: -15%;\n}\n.@{fa-css-prefix}-2x { font-size: 2em; }\n.@{fa-css-prefix}-3x { font-size: 3em; }\n.@{fa-css-prefix}-4x { font-size: 4em; }\n.@{fa-css-prefix}-5x { font-size: 5em; }\n","// Fixed Width Icons\n// -------------------------\n.@{fa-css-prefix}-fw {\n width: (18em / 14);\n text-align: center;\n}\n","// List Icons\n// -------------------------\n\n.@{fa-css-prefix}-ul {\n padding-left: 0;\n margin-left: @fa-li-width;\n list-style-type: none;\n > li { position: relative; }\n}\n.@{fa-css-prefix}-li {\n position: absolute;\n left: -@fa-li-width;\n width: @fa-li-width;\n top: (2em / 14);\n text-align: center;\n &.@{fa-css-prefix}-lg {\n left: (-@fa-li-width + (4em / 14));\n }\n}\n","// Animated Icons\n// --------------------------\n\n.@{fa-css-prefix}-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.@{fa-css-prefix}-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n","// Rotated & Flipped Icons\n// -------------------------\n\n.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }\n.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }\n.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }\n\n.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }\n.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }\n\n// Hook for IE8-9\n// -------------------------\n\n:root .@{fa-css-prefix}-rotate-90,\n:root .@{fa-css-prefix}-rotate-180,\n:root .@{fa-css-prefix}-rotate-270,\n:root .@{fa-css-prefix}-flip-horizontal,\n:root .@{fa-css-prefix}-flip-vertical {\n filter: none;\n}\n","// Mixins\n// --------------------------\n\n.fa-icon() {\n display: inline-block;\n font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration\n font-size: inherit; // can't have font-size inherit on line above, so need to override\n text-rendering: auto; // optimizelegibility throws things off #1094\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n}\n\n.fa-icon-rotate(@degrees, @rotation) {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})\";\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n\n.fa-icon-flip(@horiz, @vert, @rotation) {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)\";\n -webkit-transform: scale(@horiz, @vert);\n -ms-transform: scale(@horiz, @vert);\n transform: scale(@horiz, @vert);\n}\n\n\n// Only display content to screen readers. A la Bootstrap 4.\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only() {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable() {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n","// Stacked Icons\n// -------------------------\n\n.@{fa-css-prefix}-stack {\n position: relative;\n display: inline-block;\n width: 2em;\n height: 2em;\n line-height: 2em;\n vertical-align: middle;\n}\n.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {\n position: absolute;\n left: 0;\n width: 100%;\n text-align: center;\n}\n.@{fa-css-prefix}-stack-1x { line-height: inherit; }\n.@{fa-css-prefix}-stack-2x { font-size: 2em; }\n.@{fa-css-prefix}-inverse { color: @fa-inverse; }\n","/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n readers do not read off random characters that represent icons */\n\n.@{fa-css-prefix}-glass:before { content: @fa-var-glass; }\n.@{fa-css-prefix}-music:before { content: @fa-var-music; }\n.@{fa-css-prefix}-search:before { content: @fa-var-search; }\n.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; }\n.@{fa-css-prefix}-heart:before { content: @fa-var-heart; }\n.@{fa-css-prefix}-star:before { content: @fa-var-star; }\n.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; }\n.@{fa-css-prefix}-user:before { content: @fa-var-user; }\n.@{fa-css-prefix}-film:before { content: @fa-var-film; }\n.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; }\n.@{fa-css-prefix}-th:before { content: @fa-var-th; }\n.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; }\n.@{fa-css-prefix}-check:before { content: @fa-var-check; }\n.@{fa-css-prefix}-remove:before,\n.@{fa-css-prefix}-close:before,\n.@{fa-css-prefix}-times:before { content: @fa-var-times; }\n.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; }\n.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; }\n.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; }\n.@{fa-css-prefix}-signal:before { content: @fa-var-signal; }\n.@{fa-css-prefix}-gear:before,\n.@{fa-css-prefix}-cog:before { content: @fa-var-cog; }\n.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; }\n.@{fa-css-prefix}-home:before { content: @fa-var-home; }\n.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; }\n.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; }\n.@{fa-css-prefix}-road:before { content: @fa-var-road; }\n.@{fa-css-prefix}-download:before { content: @fa-var-download; }\n.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; }\n.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; }\n.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; }\n.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; }\n.@{fa-css-prefix}-rotate-right:before,\n.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; }\n.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; }\n.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; }\n.@{fa-css-prefix}-lock:before { content: @fa-var-lock; }\n.@{fa-css-prefix}-flag:before { content: @fa-var-flag; }\n.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; }\n.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; }\n.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; }\n.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; }\n.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; }\n.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; }\n.@{fa-css-prefix}-tag:before { content: @fa-var-tag; }\n.@{fa-css-prefix}-tags:before { content: @fa-var-tags; }\n.@{fa-css-prefix}-book:before { content: @fa-var-book; }\n.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; }\n.@{fa-css-prefix}-print:before { content: @fa-var-print; }\n.@{fa-css-prefix}-camera:before { content: @fa-var-camera; }\n.@{fa-css-prefix}-font:before { content: @fa-var-font; }\n.@{fa-css-prefix}-bold:before { content: @fa-var-bold; }\n.@{fa-css-prefix}-italic:before { content: @fa-var-italic; }\n.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; }\n.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; }\n.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; }\n.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; }\n.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; }\n.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; }\n.@{fa-css-prefix}-list:before { content: @fa-var-list; }\n.@{fa-css-prefix}-dedent:before,\n.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; }\n.@{fa-css-prefix}-indent:before { content: @fa-var-indent; }\n.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; }\n.@{fa-css-prefix}-photo:before,\n.@{fa-css-prefix}-image:before,\n.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; }\n.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; }\n.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; }\n.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; }\n.@{fa-css-prefix}-tint:before { content: @fa-var-tint; }\n.@{fa-css-prefix}-edit:before,\n.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; }\n.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; }\n.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; }\n.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; }\n.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; }\n.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; }\n.@{fa-css-prefix}-backward:before { content: @fa-var-backward; }\n.@{fa-css-prefix}-play:before { content: @fa-var-play; }\n.@{fa-css-prefix}-pause:before { content: @fa-var-pause; }\n.@{fa-css-prefix}-stop:before { content: @fa-var-stop; }\n.@{fa-css-prefix}-forward:before { content: @fa-var-forward; }\n.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; }\n.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; }\n.@{fa-css-prefix}-eject:before { content: @fa-var-eject; }\n.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; }\n.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; }\n.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; }\n.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; }\n.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; }\n.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; }\n.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; }\n.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; }\n.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; }\n.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; }\n.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; }\n.@{fa-css-prefix}-ban:before { content: @fa-var-ban; }\n.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; }\n.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; }\n.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; }\n.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; }\n.@{fa-css-prefix}-mail-forward:before,\n.@{fa-css-prefix}-share:before { content: @fa-var-share; }\n.@{fa-css-prefix}-expand:before { content: @fa-var-expand; }\n.@{fa-css-prefix}-compress:before { content: @fa-var-compress; }\n.@{fa-css-prefix}-plus:before { content: @fa-var-plus; }\n.@{fa-css-prefix}-minus:before { content: @fa-var-minus; }\n.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; }\n.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; }\n.@{fa-css-prefix}-gift:before { content: @fa-var-gift; }\n.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; }\n.@{fa-css-prefix}-fire:before { content: @fa-var-fire; }\n.@{fa-css-prefix}-eye:before { content: @fa-var-eye; }\n.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; }\n.@{fa-css-prefix}-warning:before,\n.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; }\n.@{fa-css-prefix}-plane:before { content: @fa-var-plane; }\n.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; }\n.@{fa-css-prefix}-random:before { content: @fa-var-random; }\n.@{fa-css-prefix}-comment:before { content: @fa-var-comment; }\n.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; }\n.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; }\n.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; }\n.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; }\n.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; }\n.@{fa-css-prefix}-folder:before { content: @fa-var-folder; }\n.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; }\n.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; }\n.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; }\n.@{fa-css-prefix}-bar-chart-o:before,\n.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; }\n.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; }\n.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; }\n.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; }\n.@{fa-css-prefix}-key:before { content: @fa-var-key; }\n.@{fa-css-prefix}-gears:before,\n.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; }\n.@{fa-css-prefix}-comments:before { content: @fa-var-comments; }\n.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; }\n.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; }\n.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; }\n.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; }\n.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; }\n.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; }\n.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; }\n.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; }\n.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; }\n.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; }\n.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; }\n.@{fa-css-prefix}-upload:before { content: @fa-var-upload; }\n.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; }\n.@{fa-css-prefix}-phone:before { content: @fa-var-phone; }\n.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; }\n.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; }\n.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; }\n.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; }\n.@{fa-css-prefix}-facebook-f:before,\n.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; }\n.@{fa-css-prefix}-github:before { content: @fa-var-github; }\n.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; }\n.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; }\n.@{fa-css-prefix}-feed:before,\n.@{fa-css-prefix}-rss:before { content: @fa-var-rss; }\n.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; }\n.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; }\n.@{fa-css-prefix}-bell:before { content: @fa-var-bell; }\n.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; }\n.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; }\n.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; }\n.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; }\n.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; }\n.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; }\n.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; }\n.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; }\n.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; }\n.@{fa-css-prefix}-globe:before { content: @fa-var-globe; }\n.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; }\n.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; }\n.@{fa-css-prefix}-filter:before { content: @fa-var-filter; }\n.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; }\n.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; }\n.@{fa-css-prefix}-group:before,\n.@{fa-css-prefix}-users:before { content: @fa-var-users; }\n.@{fa-css-prefix}-chain:before,\n.@{fa-css-prefix}-link:before { content: @fa-var-link; }\n.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; }\n.@{fa-css-prefix}-flask:before { content: @fa-var-flask; }\n.@{fa-css-prefix}-cut:before,\n.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; }\n.@{fa-css-prefix}-copy:before,\n.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; }\n.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; }\n.@{fa-css-prefix}-save:before,\n.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; }\n.@{fa-css-prefix}-square:before { content: @fa-var-square; }\n.@{fa-css-prefix}-navicon:before,\n.@{fa-css-prefix}-reorder:before,\n.@{fa-css-prefix}-bars:before { content: @fa-var-bars; }\n.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; }\n.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; }\n.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; }\n.@{fa-css-prefix}-underline:before { content: @fa-var-underline; }\n.@{fa-css-prefix}-table:before { content: @fa-var-table; }\n.@{fa-css-prefix}-magic:before { content: @fa-var-magic; }\n.@{fa-css-prefix}-truck:before { content: @fa-var-truck; }\n.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; }\n.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; }\n.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; }\n.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; }\n.@{fa-css-prefix}-money:before { content: @fa-var-money; }\n.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; }\n.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; }\n.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; }\n.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; }\n.@{fa-css-prefix}-columns:before { content: @fa-var-columns; }\n.@{fa-css-prefix}-unsorted:before,\n.@{fa-css-prefix}-sort:before { content: @fa-var-sort; }\n.@{fa-css-prefix}-sort-down:before,\n.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; }\n.@{fa-css-prefix}-sort-up:before,\n.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; }\n.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; }\n.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; }\n.@{fa-css-prefix}-rotate-left:before,\n.@{fa-css-prefix}-undo:before { content: @fa-var-undo; }\n.@{fa-css-prefix}-legal:before,\n.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; }\n.@{fa-css-prefix}-dashboard:before,\n.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; }\n.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; }\n.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; }\n.@{fa-css-prefix}-flash:before,\n.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; }\n.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; }\n.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; }\n.@{fa-css-prefix}-paste:before,\n.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; }\n.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; }\n.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; }\n.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; }\n.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; }\n.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; }\n.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; }\n.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; }\n.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; }\n.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; }\n.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; }\n.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; }\n.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; }\n.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; }\n.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; }\n.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; }\n.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; }\n.@{fa-css-prefix}-beer:before { content: @fa-var-beer; }\n.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; }\n.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; }\n.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; }\n.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; }\n.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; }\n.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; }\n.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; }\n.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; }\n.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; }\n.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; }\n.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; }\n.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; }\n.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; }\n.@{fa-css-prefix}-mobile-phone:before,\n.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; }\n.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; }\n.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; }\n.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; }\n.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; }\n.@{fa-css-prefix}-circle:before { content: @fa-var-circle; }\n.@{fa-css-prefix}-mail-reply:before,\n.@{fa-css-prefix}-reply:before { content: @fa-var-reply; }\n.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; }\n.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; }\n.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; }\n.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; }\n.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; }\n.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; }\n.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; }\n.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; }\n.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; }\n.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; }\n.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; }\n.@{fa-css-prefix}-code:before { content: @fa-var-code; }\n.@{fa-css-prefix}-mail-reply-all:before,\n.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; }\n.@{fa-css-prefix}-star-half-empty:before,\n.@{fa-css-prefix}-star-half-full:before,\n.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; }\n.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; }\n.@{fa-css-prefix}-crop:before { content: @fa-var-crop; }\n.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; }\n.@{fa-css-prefix}-unlink:before,\n.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; }\n.@{fa-css-prefix}-question:before { content: @fa-var-question; }\n.@{fa-css-prefix}-info:before { content: @fa-var-info; }\n.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; }\n.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; }\n.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; }\n.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; }\n.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; }\n.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; }\n.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; }\n.@{fa-css-prefix}-shield:before { content: @fa-var-shield; }\n.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; }\n.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; }\n.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; }\n.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; }\n.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; }\n.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; }\n.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; }\n.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; }\n.@{fa-css-prefix}-html5:before { content: @fa-var-html5; }\n.@{fa-css-prefix}-css3:before { content: @fa-var-css3; }\n.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; }\n.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; }\n.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; }\n.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; }\n.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; }\n.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; }\n.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; }\n.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; }\n.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; }\n.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; }\n.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; }\n.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; }\n.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; }\n.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; }\n.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; }\n.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; }\n.@{fa-css-prefix}-compass:before { content: @fa-var-compass; }\n.@{fa-css-prefix}-toggle-down:before,\n.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; }\n.@{fa-css-prefix}-toggle-up:before,\n.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; }\n.@{fa-css-prefix}-toggle-right:before,\n.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; }\n.@{fa-css-prefix}-euro:before,\n.@{fa-css-prefix}-eur:before { content: @fa-var-eur; }\n.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; }\n.@{fa-css-prefix}-dollar:before,\n.@{fa-css-prefix}-usd:before { content: @fa-var-usd; }\n.@{fa-css-prefix}-rupee:before,\n.@{fa-css-prefix}-inr:before { content: @fa-var-inr; }\n.@{fa-css-prefix}-cny:before,\n.@{fa-css-prefix}-rmb:before,\n.@{fa-css-prefix}-yen:before,\n.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; }\n.@{fa-css-prefix}-ruble:before,\n.@{fa-css-prefix}-rouble:before,\n.@{fa-css-prefix}-rub:before { content: @fa-var-rub; }\n.@{fa-css-prefix}-won:before,\n.@{fa-css-prefix}-krw:before { content: @fa-var-krw; }\n.@{fa-css-prefix}-bitcoin:before,\n.@{fa-css-prefix}-btc:before { content: @fa-var-btc; }\n.@{fa-css-prefix}-file:before { content: @fa-var-file; }\n.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; }\n.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; }\n.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; }\n.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; }\n.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; }\n.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; }\n.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; }\n.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; }\n.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; }\n.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; }\n.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; }\n.@{fa-css-prefix}-xing:before { content: @fa-var-xing; }\n.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; }\n.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; }\n.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; }\n.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; }\n.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; }\n.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; }\n.@{fa-css-prefix}-adn:before { content: @fa-var-adn; }\n.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; }\n.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; }\n.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; }\n.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; }\n.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; }\n.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; }\n.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; }\n.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; }\n.@{fa-css-prefix}-apple:before { content: @fa-var-apple; }\n.@{fa-css-prefix}-windows:before { content: @fa-var-windows; }\n.@{fa-css-prefix}-android:before { content: @fa-var-android; }\n.@{fa-css-prefix}-linux:before { content: @fa-var-linux; }\n.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; }\n.@{fa-css-prefix}-skype:before { content: @fa-var-skype; }\n.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; }\n.@{fa-css-prefix}-trello:before { content: @fa-var-trello; }\n.@{fa-css-prefix}-female:before { content: @fa-var-female; }\n.@{fa-css-prefix}-male:before { content: @fa-var-male; }\n.@{fa-css-prefix}-gittip:before,\n.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; }\n.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; }\n.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; }\n.@{fa-css-prefix}-archive:before { content: @fa-var-archive; }\n.@{fa-css-prefix}-bug:before { content: @fa-var-bug; }\n.@{fa-css-prefix}-vk:before { content: @fa-var-vk; }\n.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; }\n.@{fa-css-prefix}-renren:before { content: @fa-var-renren; }\n.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; }\n.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; }\n.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; }\n.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; }\n.@{fa-css-prefix}-toggle-left:before,\n.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; }\n.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; }\n.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; }\n.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; }\n.@{fa-css-prefix}-turkish-lira:before,\n.@{fa-css-prefix}-try:before { content: @fa-var-try; }\n.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; }\n.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; }\n.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }\n.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; }\n.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; }\n.@{fa-css-prefix}-openid:before { content: @fa-var-openid; }\n.@{fa-css-prefix}-institution:before,\n.@{fa-css-prefix}-bank:before,\n.@{fa-css-prefix}-university:before { content: @fa-var-university; }\n.@{fa-css-prefix}-mortar-board:before,\n.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; }\n.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; }\n.@{fa-css-prefix}-google:before { content: @fa-var-google; }\n.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; }\n.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; }\n.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; }\n.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; }\n.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; }\n.@{fa-css-prefix}-digg:before { content: @fa-var-digg; }\n.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; }\n.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; }\n.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; }\n.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; }\n.@{fa-css-prefix}-language:before { content: @fa-var-language; }\n.@{fa-css-prefix}-fax:before { content: @fa-var-fax; }\n.@{fa-css-prefix}-building:before { content: @fa-var-building; }\n.@{fa-css-prefix}-child:before { content: @fa-var-child; }\n.@{fa-css-prefix}-paw:before { content: @fa-var-paw; }\n.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; }\n.@{fa-css-prefix}-cube:before { content: @fa-var-cube; }\n.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; }\n.@{fa-css-prefix}-behance:before { content: @fa-var-behance; }\n.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; }\n.@{fa-css-prefix}-steam:before { content: @fa-var-steam; }\n.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; }\n.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; }\n.@{fa-css-prefix}-automobile:before,\n.@{fa-css-prefix}-car:before { content: @fa-var-car; }\n.@{fa-css-prefix}-cab:before,\n.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; }\n.@{fa-css-prefix}-tree:before { content: @fa-var-tree; }\n.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; }\n.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; }\n.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; }\n.@{fa-css-prefix}-database:before { content: @fa-var-database; }\n.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; }\n.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; }\n.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; }\n.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; }\n.@{fa-css-prefix}-file-photo-o:before,\n.@{fa-css-prefix}-file-picture-o:before,\n.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; }\n.@{fa-css-prefix}-file-zip-o:before,\n.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; }\n.@{fa-css-prefix}-file-sound-o:before,\n.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; }\n.@{fa-css-prefix}-file-movie-o:before,\n.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; }\n.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; }\n.@{fa-css-prefix}-vine:before { content: @fa-var-vine; }\n.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; }\n.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; }\n.@{fa-css-prefix}-life-bouy:before,\n.@{fa-css-prefix}-life-buoy:before,\n.@{fa-css-prefix}-life-saver:before,\n.@{fa-css-prefix}-support:before,\n.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; }\n.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; }\n.@{fa-css-prefix}-ra:before,\n.@{fa-css-prefix}-resistance:before,\n.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; }\n.@{fa-css-prefix}-ge:before,\n.@{fa-css-prefix}-empire:before { content: @fa-var-empire; }\n.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; }\n.@{fa-css-prefix}-git:before { content: @fa-var-git; }\n.@{fa-css-prefix}-y-combinator-square:before,\n.@{fa-css-prefix}-yc-square:before,\n.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; }\n.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; }\n.@{fa-css-prefix}-qq:before { content: @fa-var-qq; }\n.@{fa-css-prefix}-wechat:before,\n.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; }\n.@{fa-css-prefix}-send:before,\n.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; }\n.@{fa-css-prefix}-send-o:before,\n.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; }\n.@{fa-css-prefix}-history:before { content: @fa-var-history; }\n.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; }\n.@{fa-css-prefix}-header:before { content: @fa-var-header; }\n.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; }\n.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; }\n.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; }\n.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; }\n.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; }\n.@{fa-css-prefix}-soccer-ball-o:before,\n.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; }\n.@{fa-css-prefix}-tty:before { content: @fa-var-tty; }\n.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; }\n.@{fa-css-prefix}-plug:before { content: @fa-var-plug; }\n.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; }\n.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; }\n.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; }\n.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; }\n.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; }\n.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; }\n.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; }\n.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; }\n.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; }\n.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; }\n.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; }\n.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; }\n.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; }\n.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; }\n.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; }\n.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; }\n.@{fa-css-prefix}-trash:before { content: @fa-var-trash; }\n.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; }\n.@{fa-css-prefix}-at:before { content: @fa-var-at; }\n.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; }\n.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; }\n.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; }\n.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; }\n.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; }\n.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; }\n.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; }\n.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; }\n.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; }\n.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; }\n.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; }\n.@{fa-css-prefix}-bus:before { content: @fa-var-bus; }\n.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; }\n.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; }\n.@{fa-css-prefix}-cc:before { content: @fa-var-cc; }\n.@{fa-css-prefix}-shekel:before,\n.@{fa-css-prefix}-sheqel:before,\n.@{fa-css-prefix}-ils:before { content: @fa-var-ils; }\n.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; }\n.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; }\n.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; }\n.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; }\n.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; }\n.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; }\n.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; }\n.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; }\n.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; }\n.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; }\n.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; }\n.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; }\n.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; }\n.@{fa-css-prefix}-ship:before { content: @fa-var-ship; }\n.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; }\n.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; }\n.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; }\n.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; }\n.@{fa-css-prefix}-venus:before { content: @fa-var-venus; }\n.@{fa-css-prefix}-mars:before { content: @fa-var-mars; }\n.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; }\n.@{fa-css-prefix}-intersex:before,\n.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; }\n.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; }\n.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; }\n.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; }\n.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; }\n.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; }\n.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; }\n.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; }\n.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; }\n.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; }\n.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; }\n.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; }\n.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; }\n.@{fa-css-prefix}-server:before { content: @fa-var-server; }\n.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; }\n.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; }\n.@{fa-css-prefix}-hotel:before,\n.@{fa-css-prefix}-bed:before { content: @fa-var-bed; }\n.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; }\n.@{fa-css-prefix}-train:before { content: @fa-var-train; }\n.@{fa-css-prefix}-subway:before { content: @fa-var-subway; }\n.@{fa-css-prefix}-medium:before { content: @fa-var-medium; }\n.@{fa-css-prefix}-yc:before,\n.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; }\n.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; }\n.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; }\n.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; }\n.@{fa-css-prefix}-battery-4:before,\n.@{fa-css-prefix}-battery:before,\n.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; }\n.@{fa-css-prefix}-battery-3:before,\n.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; }\n.@{fa-css-prefix}-battery-2:before,\n.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; }\n.@{fa-css-prefix}-battery-1:before,\n.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; }\n.@{fa-css-prefix}-battery-0:before,\n.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; }\n.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; }\n.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; }\n.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; }\n.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; }\n.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; }\n.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; }\n.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; }\n.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; }\n.@{fa-css-prefix}-clone:before { content: @fa-var-clone; }\n.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; }\n.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; }\n.@{fa-css-prefix}-hourglass-1:before,\n.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; }\n.@{fa-css-prefix}-hourglass-2:before,\n.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; }\n.@{fa-css-prefix}-hourglass-3:before,\n.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; }\n.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; }\n.@{fa-css-prefix}-hand-grab-o:before,\n.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; }\n.@{fa-css-prefix}-hand-stop-o:before,\n.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; }\n.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; }\n.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; }\n.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; }\n.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; }\n.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; }\n.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; }\n.@{fa-css-prefix}-registered:before { content: @fa-var-registered; }\n.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; }\n.@{fa-css-prefix}-gg:before { content: @fa-var-gg; }\n.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; }\n.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; }\n.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; }\n.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; }\n.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; }\n.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; }\n.@{fa-css-prefix}-safari:before { content: @fa-var-safari; }\n.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; }\n.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; }\n.@{fa-css-prefix}-opera:before { content: @fa-var-opera; }\n.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; }\n.@{fa-css-prefix}-tv:before,\n.@{fa-css-prefix}-television:before { content: @fa-var-television; }\n.@{fa-css-prefix}-contao:before { content: @fa-var-contao; }\n.@{fa-css-prefix}-500px:before { content: @fa-var-500px; }\n.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; }\n.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; }\n.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; }\n.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; }\n.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; }\n.@{fa-css-prefix}-industry:before { content: @fa-var-industry; }\n.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; }\n.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; }\n.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; }\n.@{fa-css-prefix}-map:before { content: @fa-var-map; }\n.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; }\n.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; }\n.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; }\n.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; }\n.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; }\n.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; }\n.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; }\n.@{fa-css-prefix}-edge:before { content: @fa-var-edge; }\n.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; }\n.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; }\n.@{fa-css-prefix}-modx:before { content: @fa-var-modx; }\n.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; }\n.@{fa-css-prefix}-usb:before { content: @fa-var-usb; }\n.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; }\n.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; }\n.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; }\n.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; }\n.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; }\n.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; }\n.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; }\n.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; }\n.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; }\n.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; }\n.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; }\n.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; }\n.@{fa-css-prefix}-percent:before { content: @fa-var-percent; }\n.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; }\n.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; }\n.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; }\n.@{fa-css-prefix}-envira:before { content: @fa-var-envira; }\n.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; }\n.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; }\n.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; }\n.@{fa-css-prefix}-blind:before { content: @fa-var-blind; }\n.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; }\n.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; }\n.@{fa-css-prefix}-braille:before { content: @fa-var-braille; }\n.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; }\n.@{fa-css-prefix}-asl-interpreting:before,\n.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; }\n.@{fa-css-prefix}-deafness:before,\n.@{fa-css-prefix}-hard-of-hearing:before,\n.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; }\n.@{fa-css-prefix}-glide:before { content: @fa-var-glide; }\n.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; }\n.@{fa-css-prefix}-signing:before,\n.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; }\n.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; }\n.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; }\n.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; }\n.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; }\n.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; }\n.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; }\n.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; }\n.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; }\n.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; }\n.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; }\n.@{fa-css-prefix}-google-plus-circle:before,\n.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; }\n.@{fa-css-prefix}-fa:before,\n.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; }\n.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; }\n.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; }\n.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; }\n.@{fa-css-prefix}-linode:before { content: @fa-var-linode; }\n.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; }\n.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; }\n.@{fa-css-prefix}-vcard:before,\n.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; }\n.@{fa-css-prefix}-vcard-o:before,\n.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; }\n.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; }\n.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; }\n.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; }\n.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; }\n.@{fa-css-prefix}-drivers-license:before,\n.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; }\n.@{fa-css-prefix}-drivers-license-o:before,\n.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; }\n.@{fa-css-prefix}-quora:before { content: @fa-var-quora; }\n.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; }\n.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; }\n.@{fa-css-prefix}-thermometer-4:before,\n.@{fa-css-prefix}-thermometer:before,\n.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; }\n.@{fa-css-prefix}-thermometer-3:before,\n.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; }\n.@{fa-css-prefix}-thermometer-2:before,\n.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; }\n.@{fa-css-prefix}-thermometer-1:before,\n.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; }\n.@{fa-css-prefix}-thermometer-0:before,\n.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; }\n.@{fa-css-prefix}-shower:before { content: @fa-var-shower; }\n.@{fa-css-prefix}-bathtub:before,\n.@{fa-css-prefix}-s15:before,\n.@{fa-css-prefix}-bath:before { content: @fa-var-bath; }\n.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; }\n.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; }\n.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; }\n.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; }\n.@{fa-css-prefix}-times-rectangle:before,\n.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; }\n.@{fa-css-prefix}-times-rectangle-o:before,\n.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; }\n.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; }\n.@{fa-css-prefix}-grav:before { content: @fa-var-grav; }\n.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; }\n.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; }\n.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; }\n.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; }\n.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; }\n.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; }\n.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; }\n.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; }\n.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; }\n","// Variables\n// --------------------------\n\n@fa-font-path: \"../fonts\";\n@fa-font-size-base: 14px;\n@fa-line-height-base: 1;\n//@fa-font-path: \"//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts\"; // for referencing Bootstrap CDN font files directly\n@fa-css-prefix: fa;\n@fa-version: \"4.7.0\";\n@fa-border-color: #eee;\n@fa-inverse: #fff;\n@fa-li-width: (30em / 14);\n\n@fa-var-500px: \"\\f26e\";\n@fa-var-address-book: \"\\f2b9\";\n@fa-var-address-book-o: \"\\f2ba\";\n@fa-var-address-card: \"\\f2bb\";\n@fa-var-address-card-o: \"\\f2bc\";\n@fa-var-adjust: \"\\f042\";\n@fa-var-adn: \"\\f170\";\n@fa-var-align-center: \"\\f037\";\n@fa-var-align-justify: \"\\f039\";\n@fa-var-align-left: \"\\f036\";\n@fa-var-align-right: \"\\f038\";\n@fa-var-amazon: \"\\f270\";\n@fa-var-ambulance: \"\\f0f9\";\n@fa-var-american-sign-language-interpreting: \"\\f2a3\";\n@fa-var-anchor: \"\\f13d\";\n@fa-var-android: \"\\f17b\";\n@fa-var-angellist: \"\\f209\";\n@fa-var-angle-double-down: \"\\f103\";\n@fa-var-angle-double-left: \"\\f100\";\n@fa-var-angle-double-right: \"\\f101\";\n@fa-var-angle-double-up: \"\\f102\";\n@fa-var-angle-down: \"\\f107\";\n@fa-var-angle-left: \"\\f104\";\n@fa-var-angle-right: \"\\f105\";\n@fa-var-angle-up: \"\\f106\";\n@fa-var-apple: \"\\f179\";\n@fa-var-archive: \"\\f187\";\n@fa-var-area-chart: \"\\f1fe\";\n@fa-var-arrow-circle-down: \"\\f0ab\";\n@fa-var-arrow-circle-left: \"\\f0a8\";\n@fa-var-arrow-circle-o-down: \"\\f01a\";\n@fa-var-arrow-circle-o-left: \"\\f190\";\n@fa-var-arrow-circle-o-right: \"\\f18e\";\n@fa-var-arrow-circle-o-up: \"\\f01b\";\n@fa-var-arrow-circle-right: \"\\f0a9\";\n@fa-var-arrow-circle-up: \"\\f0aa\";\n@fa-var-arrow-down: \"\\f063\";\n@fa-var-arrow-left: \"\\f060\";\n@fa-var-arrow-right: \"\\f061\";\n@fa-var-arrow-up: \"\\f062\";\n@fa-var-arrows: \"\\f047\";\n@fa-var-arrows-alt: \"\\f0b2\";\n@fa-var-arrows-h: \"\\f07e\";\n@fa-var-arrows-v: \"\\f07d\";\n@fa-var-asl-interpreting: \"\\f2a3\";\n@fa-var-assistive-listening-systems: \"\\f2a2\";\n@fa-var-asterisk: \"\\f069\";\n@fa-var-at: \"\\f1fa\";\n@fa-var-audio-description: \"\\f29e\";\n@fa-var-automobile: \"\\f1b9\";\n@fa-var-backward: \"\\f04a\";\n@fa-var-balance-scale: \"\\f24e\";\n@fa-var-ban: \"\\f05e\";\n@fa-var-bandcamp: \"\\f2d5\";\n@fa-var-bank: \"\\f19c\";\n@fa-var-bar-chart: \"\\f080\";\n@fa-var-bar-chart-o: \"\\f080\";\n@fa-var-barcode: \"\\f02a\";\n@fa-var-bars: \"\\f0c9\";\n@fa-var-bath: \"\\f2cd\";\n@fa-var-bathtub: \"\\f2cd\";\n@fa-var-battery: \"\\f240\";\n@fa-var-battery-0: \"\\f244\";\n@fa-var-battery-1: \"\\f243\";\n@fa-var-battery-2: \"\\f242\";\n@fa-var-battery-3: \"\\f241\";\n@fa-var-battery-4: \"\\f240\";\n@fa-var-battery-empty: \"\\f244\";\n@fa-var-battery-full: \"\\f240\";\n@fa-var-battery-half: \"\\f242\";\n@fa-var-battery-quarter: \"\\f243\";\n@fa-var-battery-three-quarters: \"\\f241\";\n@fa-var-bed: \"\\f236\";\n@fa-var-beer: \"\\f0fc\";\n@fa-var-behance: \"\\f1b4\";\n@fa-var-behance-square: \"\\f1b5\";\n@fa-var-bell: \"\\f0f3\";\n@fa-var-bell-o: \"\\f0a2\";\n@fa-var-bell-slash: \"\\f1f6\";\n@fa-var-bell-slash-o: \"\\f1f7\";\n@fa-var-bicycle: \"\\f206\";\n@fa-var-binoculars: \"\\f1e5\";\n@fa-var-birthday-cake: \"\\f1fd\";\n@fa-var-bitbucket: \"\\f171\";\n@fa-var-bitbucket-square: \"\\f172\";\n@fa-var-bitcoin: \"\\f15a\";\n@fa-var-black-tie: \"\\f27e\";\n@fa-var-blind: \"\\f29d\";\n@fa-var-bluetooth: \"\\f293\";\n@fa-var-bluetooth-b: \"\\f294\";\n@fa-var-bold: \"\\f032\";\n@fa-var-bolt: \"\\f0e7\";\n@fa-var-bomb: \"\\f1e2\";\n@fa-var-book: \"\\f02d\";\n@fa-var-bookmark: \"\\f02e\";\n@fa-var-bookmark-o: \"\\f097\";\n@fa-var-braille: \"\\f2a1\";\n@fa-var-briefcase: \"\\f0b1\";\n@fa-var-btc: \"\\f15a\";\n@fa-var-bug: \"\\f188\";\n@fa-var-building: \"\\f1ad\";\n@fa-var-building-o: \"\\f0f7\";\n@fa-var-bullhorn: \"\\f0a1\";\n@fa-var-bullseye: \"\\f140\";\n@fa-var-bus: \"\\f207\";\n@fa-var-buysellads: \"\\f20d\";\n@fa-var-cab: \"\\f1ba\";\n@fa-var-calculator: \"\\f1ec\";\n@fa-var-calendar: \"\\f073\";\n@fa-var-calendar-check-o: \"\\f274\";\n@fa-var-calendar-minus-o: \"\\f272\";\n@fa-var-calendar-o: \"\\f133\";\n@fa-var-calendar-plus-o: \"\\f271\";\n@fa-var-calendar-times-o: \"\\f273\";\n@fa-var-camera: \"\\f030\";\n@fa-var-camera-retro: \"\\f083\";\n@fa-var-car: \"\\f1b9\";\n@fa-var-caret-down: \"\\f0d7\";\n@fa-var-caret-left: \"\\f0d9\";\n@fa-var-caret-right: \"\\f0da\";\n@fa-var-caret-square-o-down: \"\\f150\";\n@fa-var-caret-square-o-left: \"\\f191\";\n@fa-var-caret-square-o-right: \"\\f152\";\n@fa-var-caret-square-o-up: \"\\f151\";\n@fa-var-caret-up: \"\\f0d8\";\n@fa-var-cart-arrow-down: \"\\f218\";\n@fa-var-cart-plus: \"\\f217\";\n@fa-var-cc: \"\\f20a\";\n@fa-var-cc-amex: \"\\f1f3\";\n@fa-var-cc-diners-club: \"\\f24c\";\n@fa-var-cc-discover: \"\\f1f2\";\n@fa-var-cc-jcb: \"\\f24b\";\n@fa-var-cc-mastercard: \"\\f1f1\";\n@fa-var-cc-paypal: \"\\f1f4\";\n@fa-var-cc-stripe: \"\\f1f5\";\n@fa-var-cc-visa: \"\\f1f0\";\n@fa-var-certificate: \"\\f0a3\";\n@fa-var-chain: \"\\f0c1\";\n@fa-var-chain-broken: \"\\f127\";\n@fa-var-check: \"\\f00c\";\n@fa-var-check-circle: \"\\f058\";\n@fa-var-check-circle-o: \"\\f05d\";\n@fa-var-check-square: \"\\f14a\";\n@fa-var-check-square-o: \"\\f046\";\n@fa-var-chevron-circle-down: \"\\f13a\";\n@fa-var-chevron-circle-left: \"\\f137\";\n@fa-var-chevron-circle-right: \"\\f138\";\n@fa-var-chevron-circle-up: \"\\f139\";\n@fa-var-chevron-down: \"\\f078\";\n@fa-var-chevron-left: \"\\f053\";\n@fa-var-chevron-right: \"\\f054\";\n@fa-var-chevron-up: \"\\f077\";\n@fa-var-child: \"\\f1ae\";\n@fa-var-chrome: \"\\f268\";\n@fa-var-circle: \"\\f111\";\n@fa-var-circle-o: \"\\f10c\";\n@fa-var-circle-o-notch: \"\\f1ce\";\n@fa-var-circle-thin: \"\\f1db\";\n@fa-var-clipboard: \"\\f0ea\";\n@fa-var-clock-o: \"\\f017\";\n@fa-var-clone: \"\\f24d\";\n@fa-var-close: \"\\f00d\";\n@fa-var-cloud: \"\\f0c2\";\n@fa-var-cloud-download: \"\\f0ed\";\n@fa-var-cloud-upload: \"\\f0ee\";\n@fa-var-cny: \"\\f157\";\n@fa-var-code: \"\\f121\";\n@fa-var-code-fork: \"\\f126\";\n@fa-var-codepen: \"\\f1cb\";\n@fa-var-codiepie: \"\\f284\";\n@fa-var-coffee: \"\\f0f4\";\n@fa-var-cog: \"\\f013\";\n@fa-var-cogs: \"\\f085\";\n@fa-var-columns: \"\\f0db\";\n@fa-var-comment: \"\\f075\";\n@fa-var-comment-o: \"\\f0e5\";\n@fa-var-commenting: \"\\f27a\";\n@fa-var-commenting-o: \"\\f27b\";\n@fa-var-comments: \"\\f086\";\n@fa-var-comments-o: \"\\f0e6\";\n@fa-var-compass: \"\\f14e\";\n@fa-var-compress: \"\\f066\";\n@fa-var-connectdevelop: \"\\f20e\";\n@fa-var-contao: \"\\f26d\";\n@fa-var-copy: \"\\f0c5\";\n@fa-var-copyright: \"\\f1f9\";\n@fa-var-creative-commons: \"\\f25e\";\n@fa-var-credit-card: \"\\f09d\";\n@fa-var-credit-card-alt: \"\\f283\";\n@fa-var-crop: \"\\f125\";\n@fa-var-crosshairs: \"\\f05b\";\n@fa-var-css3: \"\\f13c\";\n@fa-var-cube: \"\\f1b2\";\n@fa-var-cubes: \"\\f1b3\";\n@fa-var-cut: \"\\f0c4\";\n@fa-var-cutlery: \"\\f0f5\";\n@fa-var-dashboard: \"\\f0e4\";\n@fa-var-dashcube: \"\\f210\";\n@fa-var-database: \"\\f1c0\";\n@fa-var-deaf: \"\\f2a4\";\n@fa-var-deafness: \"\\f2a4\";\n@fa-var-dedent: \"\\f03b\";\n@fa-var-delicious: \"\\f1a5\";\n@fa-var-desktop: \"\\f108\";\n@fa-var-deviantart: \"\\f1bd\";\n@fa-var-diamond: \"\\f219\";\n@fa-var-digg: \"\\f1a6\";\n@fa-var-dollar: \"\\f155\";\n@fa-var-dot-circle-o: \"\\f192\";\n@fa-var-download: \"\\f019\";\n@fa-var-dribbble: \"\\f17d\";\n@fa-var-drivers-license: \"\\f2c2\";\n@fa-var-drivers-license-o: \"\\f2c3\";\n@fa-var-dropbox: \"\\f16b\";\n@fa-var-drupal: \"\\f1a9\";\n@fa-var-edge: \"\\f282\";\n@fa-var-edit: \"\\f044\";\n@fa-var-eercast: \"\\f2da\";\n@fa-var-eject: \"\\f052\";\n@fa-var-ellipsis-h: \"\\f141\";\n@fa-var-ellipsis-v: \"\\f142\";\n@fa-var-empire: \"\\f1d1\";\n@fa-var-envelope: \"\\f0e0\";\n@fa-var-envelope-o: \"\\f003\";\n@fa-var-envelope-open: \"\\f2b6\";\n@fa-var-envelope-open-o: \"\\f2b7\";\n@fa-var-envelope-square: \"\\f199\";\n@fa-var-envira: \"\\f299\";\n@fa-var-eraser: \"\\f12d\";\n@fa-var-etsy: \"\\f2d7\";\n@fa-var-eur: \"\\f153\";\n@fa-var-euro: \"\\f153\";\n@fa-var-exchange: \"\\f0ec\";\n@fa-var-exclamation: \"\\f12a\";\n@fa-var-exclamation-circle: \"\\f06a\";\n@fa-var-exclamation-triangle: \"\\f071\";\n@fa-var-expand: \"\\f065\";\n@fa-var-expeditedssl: \"\\f23e\";\n@fa-var-external-link: \"\\f08e\";\n@fa-var-external-link-square: \"\\f14c\";\n@fa-var-eye: \"\\f06e\";\n@fa-var-eye-slash: \"\\f070\";\n@fa-var-eyedropper: \"\\f1fb\";\n@fa-var-fa: \"\\f2b4\";\n@fa-var-facebook: \"\\f09a\";\n@fa-var-facebook-f: \"\\f09a\";\n@fa-var-facebook-official: \"\\f230\";\n@fa-var-facebook-square: \"\\f082\";\n@fa-var-fast-backward: \"\\f049\";\n@fa-var-fast-forward: \"\\f050\";\n@fa-var-fax: \"\\f1ac\";\n@fa-var-feed: \"\\f09e\";\n@fa-var-female: \"\\f182\";\n@fa-var-fighter-jet: \"\\f0fb\";\n@fa-var-file: \"\\f15b\";\n@fa-var-file-archive-o: \"\\f1c6\";\n@fa-var-file-audio-o: \"\\f1c7\";\n@fa-var-file-code-o: \"\\f1c9\";\n@fa-var-file-excel-o: \"\\f1c3\";\n@fa-var-file-image-o: \"\\f1c5\";\n@fa-var-file-movie-o: \"\\f1c8\";\n@fa-var-file-o: \"\\f016\";\n@fa-var-file-pdf-o: \"\\f1c1\";\n@fa-var-file-photo-o: \"\\f1c5\";\n@fa-var-file-picture-o: \"\\f1c5\";\n@fa-var-file-powerpoint-o: \"\\f1c4\";\n@fa-var-file-sound-o: \"\\f1c7\";\n@fa-var-file-text: \"\\f15c\";\n@fa-var-file-text-o: \"\\f0f6\";\n@fa-var-file-video-o: \"\\f1c8\";\n@fa-var-file-word-o: \"\\f1c2\";\n@fa-var-file-zip-o: \"\\f1c6\";\n@fa-var-files-o: \"\\f0c5\";\n@fa-var-film: \"\\f008\";\n@fa-var-filter: \"\\f0b0\";\n@fa-var-fire: \"\\f06d\";\n@fa-var-fire-extinguisher: \"\\f134\";\n@fa-var-firefox: \"\\f269\";\n@fa-var-first-order: \"\\f2b0\";\n@fa-var-flag: \"\\f024\";\n@fa-var-flag-checkered: \"\\f11e\";\n@fa-var-flag-o: \"\\f11d\";\n@fa-var-flash: \"\\f0e7\";\n@fa-var-flask: \"\\f0c3\";\n@fa-var-flickr: \"\\f16e\";\n@fa-var-floppy-o: \"\\f0c7\";\n@fa-var-folder: \"\\f07b\";\n@fa-var-folder-o: \"\\f114\";\n@fa-var-folder-open: \"\\f07c\";\n@fa-var-folder-open-o: \"\\f115\";\n@fa-var-font: \"\\f031\";\n@fa-var-font-awesome: \"\\f2b4\";\n@fa-var-fonticons: \"\\f280\";\n@fa-var-fort-awesome: \"\\f286\";\n@fa-var-forumbee: \"\\f211\";\n@fa-var-forward: \"\\f04e\";\n@fa-var-foursquare: \"\\f180\";\n@fa-var-free-code-camp: \"\\f2c5\";\n@fa-var-frown-o: \"\\f119\";\n@fa-var-futbol-o: \"\\f1e3\";\n@fa-var-gamepad: \"\\f11b\";\n@fa-var-gavel: \"\\f0e3\";\n@fa-var-gbp: \"\\f154\";\n@fa-var-ge: \"\\f1d1\";\n@fa-var-gear: \"\\f013\";\n@fa-var-gears: \"\\f085\";\n@fa-var-genderless: \"\\f22d\";\n@fa-var-get-pocket: \"\\f265\";\n@fa-var-gg: \"\\f260\";\n@fa-var-gg-circle: \"\\f261\";\n@fa-var-gift: \"\\f06b\";\n@fa-var-git: \"\\f1d3\";\n@fa-var-git-square: \"\\f1d2\";\n@fa-var-github: \"\\f09b\";\n@fa-var-github-alt: \"\\f113\";\n@fa-var-github-square: \"\\f092\";\n@fa-var-gitlab: \"\\f296\";\n@fa-var-gittip: \"\\f184\";\n@fa-var-glass: \"\\f000\";\n@fa-var-glide: \"\\f2a5\";\n@fa-var-glide-g: \"\\f2a6\";\n@fa-var-globe: \"\\f0ac\";\n@fa-var-google: \"\\f1a0\";\n@fa-var-google-plus: \"\\f0d5\";\n@fa-var-google-plus-circle: \"\\f2b3\";\n@fa-var-google-plus-official: \"\\f2b3\";\n@fa-var-google-plus-square: \"\\f0d4\";\n@fa-var-google-wallet: \"\\f1ee\";\n@fa-var-graduation-cap: \"\\f19d\";\n@fa-var-gratipay: \"\\f184\";\n@fa-var-grav: \"\\f2d6\";\n@fa-var-group: \"\\f0c0\";\n@fa-var-h-square: \"\\f0fd\";\n@fa-var-hacker-news: \"\\f1d4\";\n@fa-var-hand-grab-o: \"\\f255\";\n@fa-var-hand-lizard-o: \"\\f258\";\n@fa-var-hand-o-down: \"\\f0a7\";\n@fa-var-hand-o-left: \"\\f0a5\";\n@fa-var-hand-o-right: \"\\f0a4\";\n@fa-var-hand-o-up: \"\\f0a6\";\n@fa-var-hand-paper-o: \"\\f256\";\n@fa-var-hand-peace-o: \"\\f25b\";\n@fa-var-hand-pointer-o: \"\\f25a\";\n@fa-var-hand-rock-o: \"\\f255\";\n@fa-var-hand-scissors-o: \"\\f257\";\n@fa-var-hand-spock-o: \"\\f259\";\n@fa-var-hand-stop-o: \"\\f256\";\n@fa-var-handshake-o: \"\\f2b5\";\n@fa-var-hard-of-hearing: \"\\f2a4\";\n@fa-var-hashtag: \"\\f292\";\n@fa-var-hdd-o: \"\\f0a0\";\n@fa-var-header: \"\\f1dc\";\n@fa-var-headphones: \"\\f025\";\n@fa-var-heart: \"\\f004\";\n@fa-var-heart-o: \"\\f08a\";\n@fa-var-heartbeat: \"\\f21e\";\n@fa-var-history: \"\\f1da\";\n@fa-var-home: \"\\f015\";\n@fa-var-hospital-o: \"\\f0f8\";\n@fa-var-hotel: \"\\f236\";\n@fa-var-hourglass: \"\\f254\";\n@fa-var-hourglass-1: \"\\f251\";\n@fa-var-hourglass-2: \"\\f252\";\n@fa-var-hourglass-3: \"\\f253\";\n@fa-var-hourglass-end: \"\\f253\";\n@fa-var-hourglass-half: \"\\f252\";\n@fa-var-hourglass-o: \"\\f250\";\n@fa-var-hourglass-start: \"\\f251\";\n@fa-var-houzz: \"\\f27c\";\n@fa-var-html5: \"\\f13b\";\n@fa-var-i-cursor: \"\\f246\";\n@fa-var-id-badge: \"\\f2c1\";\n@fa-var-id-card: \"\\f2c2\";\n@fa-var-id-card-o: \"\\f2c3\";\n@fa-var-ils: \"\\f20b\";\n@fa-var-image: \"\\f03e\";\n@fa-var-imdb: \"\\f2d8\";\n@fa-var-inbox: \"\\f01c\";\n@fa-var-indent: \"\\f03c\";\n@fa-var-industry: \"\\f275\";\n@fa-var-info: \"\\f129\";\n@fa-var-info-circle: \"\\f05a\";\n@fa-var-inr: \"\\f156\";\n@fa-var-instagram: \"\\f16d\";\n@fa-var-institution: \"\\f19c\";\n@fa-var-internet-explorer: \"\\f26b\";\n@fa-var-intersex: \"\\f224\";\n@fa-var-ioxhost: \"\\f208\";\n@fa-var-italic: \"\\f033\";\n@fa-var-joomla: \"\\f1aa\";\n@fa-var-jpy: \"\\f157\";\n@fa-var-jsfiddle: \"\\f1cc\";\n@fa-var-key: \"\\f084\";\n@fa-var-keyboard-o: \"\\f11c\";\n@fa-var-krw: \"\\f159\";\n@fa-var-language: \"\\f1ab\";\n@fa-var-laptop: \"\\f109\";\n@fa-var-lastfm: \"\\f202\";\n@fa-var-lastfm-square: \"\\f203\";\n@fa-var-leaf: \"\\f06c\";\n@fa-var-leanpub: \"\\f212\";\n@fa-var-legal: \"\\f0e3\";\n@fa-var-lemon-o: \"\\f094\";\n@fa-var-level-down: \"\\f149\";\n@fa-var-level-up: \"\\f148\";\n@fa-var-life-bouy: \"\\f1cd\";\n@fa-var-life-buoy: \"\\f1cd\";\n@fa-var-life-ring: \"\\f1cd\";\n@fa-var-life-saver: \"\\f1cd\";\n@fa-var-lightbulb-o: \"\\f0eb\";\n@fa-var-line-chart: \"\\f201\";\n@fa-var-link: \"\\f0c1\";\n@fa-var-linkedin: \"\\f0e1\";\n@fa-var-linkedin-square: \"\\f08c\";\n@fa-var-linode: \"\\f2b8\";\n@fa-var-linux: \"\\f17c\";\n@fa-var-list: \"\\f03a\";\n@fa-var-list-alt: \"\\f022\";\n@fa-var-list-ol: \"\\f0cb\";\n@fa-var-list-ul: \"\\f0ca\";\n@fa-var-location-arrow: \"\\f124\";\n@fa-var-lock: \"\\f023\";\n@fa-var-long-arrow-down: \"\\f175\";\n@fa-var-long-arrow-left: \"\\f177\";\n@fa-var-long-arrow-right: \"\\f178\";\n@fa-var-long-arrow-up: \"\\f176\";\n@fa-var-low-vision: \"\\f2a8\";\n@fa-var-magic: \"\\f0d0\";\n@fa-var-magnet: \"\\f076\";\n@fa-var-mail-forward: \"\\f064\";\n@fa-var-mail-reply: \"\\f112\";\n@fa-var-mail-reply-all: \"\\f122\";\n@fa-var-male: \"\\f183\";\n@fa-var-map: \"\\f279\";\n@fa-var-map-marker: \"\\f041\";\n@fa-var-map-o: \"\\f278\";\n@fa-var-map-pin: \"\\f276\";\n@fa-var-map-signs: \"\\f277\";\n@fa-var-mars: \"\\f222\";\n@fa-var-mars-double: \"\\f227\";\n@fa-var-mars-stroke: \"\\f229\";\n@fa-var-mars-stroke-h: \"\\f22b\";\n@fa-var-mars-stroke-v: \"\\f22a\";\n@fa-var-maxcdn: \"\\f136\";\n@fa-var-meanpath: \"\\f20c\";\n@fa-var-medium: \"\\f23a\";\n@fa-var-medkit: \"\\f0fa\";\n@fa-var-meetup: \"\\f2e0\";\n@fa-var-meh-o: \"\\f11a\";\n@fa-var-mercury: \"\\f223\";\n@fa-var-microchip: \"\\f2db\";\n@fa-var-microphone: \"\\f130\";\n@fa-var-microphone-slash: \"\\f131\";\n@fa-var-minus: \"\\f068\";\n@fa-var-minus-circle: \"\\f056\";\n@fa-var-minus-square: \"\\f146\";\n@fa-var-minus-square-o: \"\\f147\";\n@fa-var-mixcloud: \"\\f289\";\n@fa-var-mobile: \"\\f10b\";\n@fa-var-mobile-phone: \"\\f10b\";\n@fa-var-modx: \"\\f285\";\n@fa-var-money: \"\\f0d6\";\n@fa-var-moon-o: \"\\f186\";\n@fa-var-mortar-board: \"\\f19d\";\n@fa-var-motorcycle: \"\\f21c\";\n@fa-var-mouse-pointer: \"\\f245\";\n@fa-var-music: \"\\f001\";\n@fa-var-navicon: \"\\f0c9\";\n@fa-var-neuter: \"\\f22c\";\n@fa-var-newspaper-o: \"\\f1ea\";\n@fa-var-object-group: \"\\f247\";\n@fa-var-object-ungroup: \"\\f248\";\n@fa-var-odnoklassniki: \"\\f263\";\n@fa-var-odnoklassniki-square: \"\\f264\";\n@fa-var-opencart: \"\\f23d\";\n@fa-var-openid: \"\\f19b\";\n@fa-var-opera: \"\\f26a\";\n@fa-var-optin-monster: \"\\f23c\";\n@fa-var-outdent: \"\\f03b\";\n@fa-var-pagelines: \"\\f18c\";\n@fa-var-paint-brush: \"\\f1fc\";\n@fa-var-paper-plane: \"\\f1d8\";\n@fa-var-paper-plane-o: \"\\f1d9\";\n@fa-var-paperclip: \"\\f0c6\";\n@fa-var-paragraph: \"\\f1dd\";\n@fa-var-paste: \"\\f0ea\";\n@fa-var-pause: \"\\f04c\";\n@fa-var-pause-circle: \"\\f28b\";\n@fa-var-pause-circle-o: \"\\f28c\";\n@fa-var-paw: \"\\f1b0\";\n@fa-var-paypal: \"\\f1ed\";\n@fa-var-pencil: \"\\f040\";\n@fa-var-pencil-square: \"\\f14b\";\n@fa-var-pencil-square-o: \"\\f044\";\n@fa-var-percent: \"\\f295\";\n@fa-var-phone: \"\\f095\";\n@fa-var-phone-square: \"\\f098\";\n@fa-var-photo: \"\\f03e\";\n@fa-var-picture-o: \"\\f03e\";\n@fa-var-pie-chart: \"\\f200\";\n@fa-var-pied-piper: \"\\f2ae\";\n@fa-var-pied-piper-alt: \"\\f1a8\";\n@fa-var-pied-piper-pp: \"\\f1a7\";\n@fa-var-pinterest: \"\\f0d2\";\n@fa-var-pinterest-p: \"\\f231\";\n@fa-var-pinterest-square: \"\\f0d3\";\n@fa-var-plane: \"\\f072\";\n@fa-var-play: \"\\f04b\";\n@fa-var-play-circle: \"\\f144\";\n@fa-var-play-circle-o: \"\\f01d\";\n@fa-var-plug: \"\\f1e6\";\n@fa-var-plus: \"\\f067\";\n@fa-var-plus-circle: \"\\f055\";\n@fa-var-plus-square: \"\\f0fe\";\n@fa-var-plus-square-o: \"\\f196\";\n@fa-var-podcast: \"\\f2ce\";\n@fa-var-power-off: \"\\f011\";\n@fa-var-print: \"\\f02f\";\n@fa-var-product-hunt: \"\\f288\";\n@fa-var-puzzle-piece: \"\\f12e\";\n@fa-var-qq: \"\\f1d6\";\n@fa-var-qrcode: \"\\f029\";\n@fa-var-question: \"\\f128\";\n@fa-var-question-circle: \"\\f059\";\n@fa-var-question-circle-o: \"\\f29c\";\n@fa-var-quora: \"\\f2c4\";\n@fa-var-quote-left: \"\\f10d\";\n@fa-var-quote-right: \"\\f10e\";\n@fa-var-ra: \"\\f1d0\";\n@fa-var-random: \"\\f074\";\n@fa-var-ravelry: \"\\f2d9\";\n@fa-var-rebel: \"\\f1d0\";\n@fa-var-recycle: \"\\f1b8\";\n@fa-var-reddit: \"\\f1a1\";\n@fa-var-reddit-alien: \"\\f281\";\n@fa-var-reddit-square: \"\\f1a2\";\n@fa-var-refresh: \"\\f021\";\n@fa-var-registered: \"\\f25d\";\n@fa-var-remove: \"\\f00d\";\n@fa-var-renren: \"\\f18b\";\n@fa-var-reorder: \"\\f0c9\";\n@fa-var-repeat: \"\\f01e\";\n@fa-var-reply: \"\\f112\";\n@fa-var-reply-all: \"\\f122\";\n@fa-var-resistance: \"\\f1d0\";\n@fa-var-retweet: \"\\f079\";\n@fa-var-rmb: \"\\f157\";\n@fa-var-road: \"\\f018\";\n@fa-var-rocket: \"\\f135\";\n@fa-var-rotate-left: \"\\f0e2\";\n@fa-var-rotate-right: \"\\f01e\";\n@fa-var-rouble: \"\\f158\";\n@fa-var-rss: \"\\f09e\";\n@fa-var-rss-square: \"\\f143\";\n@fa-var-rub: \"\\f158\";\n@fa-var-ruble: \"\\f158\";\n@fa-var-rupee: \"\\f156\";\n@fa-var-s15: \"\\f2cd\";\n@fa-var-safari: \"\\f267\";\n@fa-var-save: \"\\f0c7\";\n@fa-var-scissors: \"\\f0c4\";\n@fa-var-scribd: \"\\f28a\";\n@fa-var-search: \"\\f002\";\n@fa-var-search-minus: \"\\f010\";\n@fa-var-search-plus: \"\\f00e\";\n@fa-var-sellsy: \"\\f213\";\n@fa-var-send: \"\\f1d8\";\n@fa-var-send-o: \"\\f1d9\";\n@fa-var-server: \"\\f233\";\n@fa-var-share: \"\\f064\";\n@fa-var-share-alt: \"\\f1e0\";\n@fa-var-share-alt-square: \"\\f1e1\";\n@fa-var-share-square: \"\\f14d\";\n@fa-var-share-square-o: \"\\f045\";\n@fa-var-shekel: \"\\f20b\";\n@fa-var-sheqel: \"\\f20b\";\n@fa-var-shield: \"\\f132\";\n@fa-var-ship: \"\\f21a\";\n@fa-var-shirtsinbulk: \"\\f214\";\n@fa-var-shopping-bag: \"\\f290\";\n@fa-var-shopping-basket: \"\\f291\";\n@fa-var-shopping-cart: \"\\f07a\";\n@fa-var-shower: \"\\f2cc\";\n@fa-var-sign-in: \"\\f090\";\n@fa-var-sign-language: \"\\f2a7\";\n@fa-var-sign-out: \"\\f08b\";\n@fa-var-signal: \"\\f012\";\n@fa-var-signing: \"\\f2a7\";\n@fa-var-simplybuilt: \"\\f215\";\n@fa-var-sitemap: \"\\f0e8\";\n@fa-var-skyatlas: \"\\f216\";\n@fa-var-skype: \"\\f17e\";\n@fa-var-slack: \"\\f198\";\n@fa-var-sliders: \"\\f1de\";\n@fa-var-slideshare: \"\\f1e7\";\n@fa-var-smile-o: \"\\f118\";\n@fa-var-snapchat: \"\\f2ab\";\n@fa-var-snapchat-ghost: \"\\f2ac\";\n@fa-var-snapchat-square: \"\\f2ad\";\n@fa-var-snowflake-o: \"\\f2dc\";\n@fa-var-soccer-ball-o: \"\\f1e3\";\n@fa-var-sort: \"\\f0dc\";\n@fa-var-sort-alpha-asc: \"\\f15d\";\n@fa-var-sort-alpha-desc: \"\\f15e\";\n@fa-var-sort-amount-asc: \"\\f160\";\n@fa-var-sort-amount-desc: \"\\f161\";\n@fa-var-sort-asc: \"\\f0de\";\n@fa-var-sort-desc: \"\\f0dd\";\n@fa-var-sort-down: \"\\f0dd\";\n@fa-var-sort-numeric-asc: \"\\f162\";\n@fa-var-sort-numeric-desc: \"\\f163\";\n@fa-var-sort-up: \"\\f0de\";\n@fa-var-soundcloud: \"\\f1be\";\n@fa-var-space-shuttle: \"\\f197\";\n@fa-var-spinner: \"\\f110\";\n@fa-var-spoon: \"\\f1b1\";\n@fa-var-spotify: \"\\f1bc\";\n@fa-var-square: \"\\f0c8\";\n@fa-var-square-o: \"\\f096\";\n@fa-var-stack-exchange: \"\\f18d\";\n@fa-var-stack-overflow: \"\\f16c\";\n@fa-var-star: \"\\f005\";\n@fa-var-star-half: \"\\f089\";\n@fa-var-star-half-empty: \"\\f123\";\n@fa-var-star-half-full: \"\\f123\";\n@fa-var-star-half-o: \"\\f123\";\n@fa-var-star-o: \"\\f006\";\n@fa-var-steam: \"\\f1b6\";\n@fa-var-steam-square: \"\\f1b7\";\n@fa-var-step-backward: \"\\f048\";\n@fa-var-step-forward: \"\\f051\";\n@fa-var-stethoscope: \"\\f0f1\";\n@fa-var-sticky-note: \"\\f249\";\n@fa-var-sticky-note-o: \"\\f24a\";\n@fa-var-stop: \"\\f04d\";\n@fa-var-stop-circle: \"\\f28d\";\n@fa-var-stop-circle-o: \"\\f28e\";\n@fa-var-street-view: \"\\f21d\";\n@fa-var-strikethrough: \"\\f0cc\";\n@fa-var-stumbleupon: \"\\f1a4\";\n@fa-var-stumbleupon-circle: \"\\f1a3\";\n@fa-var-subscript: \"\\f12c\";\n@fa-var-subway: \"\\f239\";\n@fa-var-suitcase: \"\\f0f2\";\n@fa-var-sun-o: \"\\f185\";\n@fa-var-superpowers: \"\\f2dd\";\n@fa-var-superscript: \"\\f12b\";\n@fa-var-support: \"\\f1cd\";\n@fa-var-table: \"\\f0ce\";\n@fa-var-tablet: \"\\f10a\";\n@fa-var-tachometer: \"\\f0e4\";\n@fa-var-tag: \"\\f02b\";\n@fa-var-tags: \"\\f02c\";\n@fa-var-tasks: \"\\f0ae\";\n@fa-var-taxi: \"\\f1ba\";\n@fa-var-telegram: \"\\f2c6\";\n@fa-var-television: \"\\f26c\";\n@fa-var-tencent-weibo: \"\\f1d5\";\n@fa-var-terminal: \"\\f120\";\n@fa-var-text-height: \"\\f034\";\n@fa-var-text-width: \"\\f035\";\n@fa-var-th: \"\\f00a\";\n@fa-var-th-large: \"\\f009\";\n@fa-var-th-list: \"\\f00b\";\n@fa-var-themeisle: \"\\f2b2\";\n@fa-var-thermometer: \"\\f2c7\";\n@fa-var-thermometer-0: \"\\f2cb\";\n@fa-var-thermometer-1: \"\\f2ca\";\n@fa-var-thermometer-2: \"\\f2c9\";\n@fa-var-thermometer-3: \"\\f2c8\";\n@fa-var-thermometer-4: \"\\f2c7\";\n@fa-var-thermometer-empty: \"\\f2cb\";\n@fa-var-thermometer-full: \"\\f2c7\";\n@fa-var-thermometer-half: \"\\f2c9\";\n@fa-var-thermometer-quarter: \"\\f2ca\";\n@fa-var-thermometer-three-quarters: \"\\f2c8\";\n@fa-var-thumb-tack: \"\\f08d\";\n@fa-var-thumbs-down: \"\\f165\";\n@fa-var-thumbs-o-down: \"\\f088\";\n@fa-var-thumbs-o-up: \"\\f087\";\n@fa-var-thumbs-up: \"\\f164\";\n@fa-var-ticket: \"\\f145\";\n@fa-var-times: \"\\f00d\";\n@fa-var-times-circle: \"\\f057\";\n@fa-var-times-circle-o: \"\\f05c\";\n@fa-var-times-rectangle: \"\\f2d3\";\n@fa-var-times-rectangle-o: \"\\f2d4\";\n@fa-var-tint: \"\\f043\";\n@fa-var-toggle-down: \"\\f150\";\n@fa-var-toggle-left: \"\\f191\";\n@fa-var-toggle-off: \"\\f204\";\n@fa-var-toggle-on: \"\\f205\";\n@fa-var-toggle-right: \"\\f152\";\n@fa-var-toggle-up: \"\\f151\";\n@fa-var-trademark: \"\\f25c\";\n@fa-var-train: \"\\f238\";\n@fa-var-transgender: \"\\f224\";\n@fa-var-transgender-alt: \"\\f225\";\n@fa-var-trash: \"\\f1f8\";\n@fa-var-trash-o: \"\\f014\";\n@fa-var-tree: \"\\f1bb\";\n@fa-var-trello: \"\\f181\";\n@fa-var-tripadvisor: \"\\f262\";\n@fa-var-trophy: \"\\f091\";\n@fa-var-truck: \"\\f0d1\";\n@fa-var-try: \"\\f195\";\n@fa-var-tty: \"\\f1e4\";\n@fa-var-tumblr: \"\\f173\";\n@fa-var-tumblr-square: \"\\f174\";\n@fa-var-turkish-lira: \"\\f195\";\n@fa-var-tv: \"\\f26c\";\n@fa-var-twitch: \"\\f1e8\";\n@fa-var-twitter: \"\\f099\";\n@fa-var-twitter-square: \"\\f081\";\n@fa-var-umbrella: \"\\f0e9\";\n@fa-var-underline: \"\\f0cd\";\n@fa-var-undo: \"\\f0e2\";\n@fa-var-universal-access: \"\\f29a\";\n@fa-var-university: \"\\f19c\";\n@fa-var-unlink: \"\\f127\";\n@fa-var-unlock: \"\\f09c\";\n@fa-var-unlock-alt: \"\\f13e\";\n@fa-var-unsorted: \"\\f0dc\";\n@fa-var-upload: \"\\f093\";\n@fa-var-usb: \"\\f287\";\n@fa-var-usd: \"\\f155\";\n@fa-var-user: \"\\f007\";\n@fa-var-user-circle: \"\\f2bd\";\n@fa-var-user-circle-o: \"\\f2be\";\n@fa-var-user-md: \"\\f0f0\";\n@fa-var-user-o: \"\\f2c0\";\n@fa-var-user-plus: \"\\f234\";\n@fa-var-user-secret: \"\\f21b\";\n@fa-var-user-times: \"\\f235\";\n@fa-var-users: \"\\f0c0\";\n@fa-var-vcard: \"\\f2bb\";\n@fa-var-vcard-o: \"\\f2bc\";\n@fa-var-venus: \"\\f221\";\n@fa-var-venus-double: \"\\f226\";\n@fa-var-venus-mars: \"\\f228\";\n@fa-var-viacoin: \"\\f237\";\n@fa-var-viadeo: \"\\f2a9\";\n@fa-var-viadeo-square: \"\\f2aa\";\n@fa-var-video-camera: \"\\f03d\";\n@fa-var-vimeo: \"\\f27d\";\n@fa-var-vimeo-square: \"\\f194\";\n@fa-var-vine: \"\\f1ca\";\n@fa-var-vk: \"\\f189\";\n@fa-var-volume-control-phone: \"\\f2a0\";\n@fa-var-volume-down: \"\\f027\";\n@fa-var-volume-off: \"\\f026\";\n@fa-var-volume-up: \"\\f028\";\n@fa-var-warning: \"\\f071\";\n@fa-var-wechat: \"\\f1d7\";\n@fa-var-weibo: \"\\f18a\";\n@fa-var-weixin: \"\\f1d7\";\n@fa-var-whatsapp: \"\\f232\";\n@fa-var-wheelchair: \"\\f193\";\n@fa-var-wheelchair-alt: \"\\f29b\";\n@fa-var-wifi: \"\\f1eb\";\n@fa-var-wikipedia-w: \"\\f266\";\n@fa-var-window-close: \"\\f2d3\";\n@fa-var-window-close-o: \"\\f2d4\";\n@fa-var-window-maximize: \"\\f2d0\";\n@fa-var-window-minimize: \"\\f2d1\";\n@fa-var-window-restore: \"\\f2d2\";\n@fa-var-windows: \"\\f17a\";\n@fa-var-won: \"\\f159\";\n@fa-var-wordpress: \"\\f19a\";\n@fa-var-wpbeginner: \"\\f297\";\n@fa-var-wpexplorer: \"\\f2de\";\n@fa-var-wpforms: \"\\f298\";\n@fa-var-wrench: \"\\f0ad\";\n@fa-var-xing: \"\\f168\";\n@fa-var-xing-square: \"\\f169\";\n@fa-var-y-combinator: \"\\f23b\";\n@fa-var-y-combinator-square: \"\\f1d4\";\n@fa-var-yahoo: \"\\f19e\";\n@fa-var-yc: \"\\f23b\";\n@fa-var-yc-square: \"\\f1d4\";\n@fa-var-yelp: \"\\f1e9\";\n@fa-var-yen: \"\\f157\";\n@fa-var-yoast: \"\\f2b1\";\n@fa-var-youtube: \"\\f167\";\n@fa-var-youtube-play: \"\\f16a\";\n@fa-var-youtube-square: \"\\f166\";\n\n","// Screen Readers\n// -------------------------\n\n.sr-only { .sr-only(); }\n.sr-only-focusable { .sr-only-focusable(); }\n","//\n// Patternfly Mixins\n// --------------------------------------------------\n// PatternFly-specific mixins\n\n// Patternfly button variants.\n.button-variant(@color; @background; @background-image-start; @background-image-stop; @border) {\n background-color: @background;\n #gradient > .vertical(@background-image-start, @background-image-stop);\n border-color: @border;\n color: @color;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open .dropdown-toggle& {\n background-color: @background;\n background-image: none;\n border-color: @border;\n color: @color;\n }\n &:active,\n &.active,\n .open .dropdown-toggle& {\n background-image: none;\n &:hover,\n &:focus,\n &.focus {\n background-color: darken(@background, 5%);\n border-color: darken(@border, 7%);\n }\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n background-color: @background;\n border-color: @border;\n }\n }\n}\n\n// SASS CONVERSION FIX.\n// Allows inclusion of sr-only rules in nested media queries where @extends .sr-only\n// will not work.\n.sr-only-pf() {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n.tab-indicator(@background: @gray-light-pf, @left: 15px, @right: 15px) {\n &:before {\n background: @background;\n bottom: -1px;\n content: \"\";\n display: block;\n height: 2px;\n left: @left;\n position: absolute;\n right: @right;\n }\n}\n\n// Ellipse overflow text\n.text-overflow-pf {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n word-wrap: normal;\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n.alert {\n border-width: 1px;\n padding-left: 47px;\n padding-right: (@alert-padding + 3);\n position: relative;\n word-wrap: break-word;\n .alert-link {\n color: @link-color;\n &:hover {\n color: @link-hover-color;\n }\n }\n > .btn.pull-right {\n margin-top: -3px;\n }\n > .pficon {\n font-size: 22px;\n position: absolute;\n left: 13px;\n top: 10px;\n }\n .close {\n .opacity(.85);\n &:hover,\n &:focus {\n .opacity(1);\n }\n }\n .pficon-info {\n color: @color-pf-black-700;\n }\n}\n\n.alert-dismissable {\n padding-right: (@alert-padding + 17);\n .close {\n right: -13px;\n top: 1px;\n }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n.badge {\n margin-left: 6px;\n}\n\n.nav-pills > li > a > .badge {\n margin-left: 6px;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n.breadcrumb {\n padding-left: 0;\n > .active strong {\n font-weight: 600;\n }\n > li {\n display: inline; /* IE8 */\n + li:before {\n color: @gray-light;\n content: @fa-var-angle-right;\n font-family: @icon-font-name-fa;\n font-size: (@font-size-base - 1);\n padding: 0 9px 0 7px;\n }\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n.btn {\n .box-shadow(0 2px 3px fade(@color-pf-black, 10%));\n &:active {\n .box-shadow(inset 0 2px 8px fade(@color-pf-black, 20%));\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n background-color: @color-pf-black-100 !important;\n background-image: none !important;\n border-color: @color-pf-black-300 !important;\n color: @color-pf-black-500 !important;\n opacity: 1;\n &:active {\n .box-shadow(none);\n }\n &.btn-link {\n background-color: transparent !important;\n border: 0;\n }\n }\n}\n\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-bg-img-start; @btn-danger-bg-img-stop; @btn-danger-border);\n}\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-bg-img-start; @btn-default-bg-img-stop; @btn-default-border);\n}\n\n.btn-link {\n &,\n &:active {\n .box-shadow(none);\n }\n}\n\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-bg-img-start; @btn-primary-bg-img-stop; @btn-primary-border);\n}\n\n.btn-xs,\n.btn-group-xs .btn {\n font-weight: @btn-xs-font-weight;\n}\n","//\n// Dropdowns\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n// Modified to use Font Awesome's angle-down icon\n.caret {\n font-family: @icon-font-name-fa;\n font-weight: normal;\n height: (@font-size-base - 3);\n position: relative;\n vertical-align: baseline;\n width: @font-size-base;\n &:before {\n bottom: 0;\n content: @fa-var-angle-down;\n left: 0;\n line-height: @font-size-base;\n position: absolute;\n text-align: center;\n top: -1px;\n right: 0;\n }\n .dropup & {\n &:before {\n content: @fa-var-angle-up;\n }\n }\n}\n\n// Bootstrap removes the focus ring on dropdowns; this replaces it for better accessibility\n.dropdown-toggle:focus {\n .tab-focus();\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg, @dropdown-divider-margin);\n }\n // Links within the dropdown menu\n > li > a {\n border-color: transparent;\n border-style: solid;\n border-width: 1px 0;\n padding: 1px 10px;\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n border-color: @dropdown-link-hover-border-color;\n .reset-filter();\n }\n &:active {\n background-color: @dropdown-link-focus-bg;\n border-color: @dropdown-link-active-border-color;\n color: @dropdown-link-focus-color !important;\n .reset-filter();\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n background-color: @dropdown-link-active-bg !important;\n border-color: @dropdown-link-active-border-color !important;\n .reset-filter();\n }\n}\n\n// Disabled state\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n border-color: transparent;\n }\n}\n\n// Selected state\n.dropdown-menu > .selected > a {\n background-color: @dropdown-link-active-bg;\n border-color: @dropdown-link-active-border-color;\n color: @color-pf-white;\n small {\n color: fade(@color-pf-white, 50%);\n }\n}\n\n// Nuke hover/focus effects\n.dropdown-menu > .disabled > a {\n &:hover,\n &:focus {\n border-color: transparent;\n }\n}\n\n// Dropdown section headers\n.dropdown-header {\n padding-left: 10px;\n padding-right: 10px;\n text-transform: uppercase;\n}\n\n// Position Menu closer to button\n.btn-group,\n.dropdown,\n.input-group-btn {\n > .dropdown-menu {\n margin-top: -1px;\n }\n}\n\n// Position Menu closer to button (dropup-menu)\n.dropup .dropdown-menu {\n margin-bottom: -1px;\n}\n\n// Add back styles for dropdown-submenu\n.dropdown-submenu {\n position:relative;\n &:hover {\n > a {\n background-color: @dropdown-link-hover-bg;\n border-color: @dropdown-link-hover-border-color;\n }\n > .dropdown-menu {\n display: block;\n }\n }\n &.pull-left {\n float: none !important;\n > .dropdown-menu {\n left: auto;\n margin-left: 10px;\n right: 100%;\n }\n }\n > a {\n padding-right: 20px !important;\n &:after {\n content: @fa-var-angle-right;\n font-family: @icon-font-name-fa;\n display: block;\n position: absolute;\n right: 10px;\n top: 2px;\n }\n }\n > .dropdown-menu {\n left: 100%;\n margin-top: 0;\n top: -6px;\n }\n .dropup & > .dropdown-menu {\n bottom: -5px;\n top: auto;\n }\n .open &.active > .dropdown-menu {\n display: block;\n }\n}\n\n// Kebab dropmenu\n.dropdown-kebab-pf {\n &.btn-group > .btn:first-child,\n .btn-link {\n color: @gray-darker;\n font-size: (@font-size-base + 4);\n line-height: 1;\n padding: 4px (@grid-gutter-width/4);\n margin-left: (@grid-gutter-width/(-4));\n margin-right: (@grid-gutter-width/(-4));\n &:active,\n &:focus,\n &:hover {\n color: @link-color;\n }\n }\n &.btn-group { margin-left: (@grid-gutter-width/4); }\n .dropdown-menu {\n left: -15px;\n margin-top: 11px;\n &.dropdown-menu-right {\n left: auto;\n right: -15px;\n &:after,\n &:before {\n left: auto;\n right: 6px;\n }\n }\n &:after,\n &:before {\n border-bottom-color: @dropdown-border;\n border-bottom-style: solid;\n border-bottom-width: 10px;\n border-left: 10px solid transparent;\n border-right: 10px solid transparent;\n content: \"\";\n display: inline-block;\n left: 6px;\n position: absolute;\n top: -11px;\n }\n &:after {\n border-bottom-color: @dropdown-bg;\n top: -10px;\n }\n }\n &.dropup .dropdown-menu {\n margin-bottom: 11px;\n margin-top: 0;\n &:after,\n &:before {\n border-bottom: none;\n border-top-color: @dropdown-border;\n border-top-style: solid;\n border-top-width: 10px;\n bottom: -11px;\n top: auto;\n }\n &:after {\n border-top-color: @dropdown-bg;\n bottom: -10px;\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n.form-horizontal-pf-align-left {\n .control-label {\n text-align: left;\n }\n // In order to provide the proper support .pf-is-required is needed on left aligned labels to ensure accurate spacing when there is no required fields.\n &.required-pf {\n .control-label {\n @media (min-width: @screen-sm-min) {\n &:not(.required-pf) {\n padding-left: @form-horizontal-pf-align-left-padding-left;\n }\n }\n }\n }\n}\n\n.chars-remaining-pf span {\n font-weight: 600;\n padding-right: 5px;\n}\n\n.chars-warn-remaining-pf {\n color: @brand-danger;\n}\n\n.fields-status-pf {\n color: @color-pf-black-500;\n margin-bottom: 15px;\n}\n\n.form-control {\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n .box-shadow(none);\n color: @color-pf-black-500;\n &:hover {\n border-color: @input-border;\n }\n }\n &:hover {\n border-color: @input-border-hover;\n .has-error & {\n border-color: darken(@state-danger-text, 10%);\n }\n .has-success & {\n border-color: darken(@state-success-text, 10%);\n }\n .has-warning & {\n border-color: darken(@state-warning-text, 10%);\n }\n }\n}\n\n.has-error, .has-success, .has-warning {\n .checkbox,\n .checkbox-inline,\n .control-label,\n .radio,\n .radio-inline,\n &.checkbox label,\n &.checkbox-inline label,\n &.radio label,\n &.radio-inline label {\n color: @text-color;\n }\n}\n\n.help-block {\n margin-bottom: 0px;\n}\n\n.input-group .input-group-btn .btn {\n .box-shadow(none);\n}\n\nlabel {\n font-weight: 600;\n &.required-pf:before {\n color: @brand-danger;\n content: \"*\";\n margin-right: 3px;\n }\n}\n\nspan.required-pf {\n color: @brand-danger;\n}\n\n.fields-section-pf {\n border-color: @color-pf-black-200;\n border-style: solid;\n border-width: 1px 0 0;\n margin-top: 25px;\n padding: 15px 0 0;\n}\n.fields-section-header-pf {\n border: none;\n font-size: @font-size-base;\n margin: 0;\n padding-right: @padding-large-horizontal;\n width: auto;\n .fa-angle-right {\n cursor: pointer;\n font-size: @font-size-large;\n width: @font-size-large;\n }\n}\n\n.form-control-pf-editable {\n display: flex;\n &.form-control-pf-full-width {\n display: block;\n > .form-control-pf-value {\n text-align: left;\n }\n .action-buttons {\n float: right;\n }\n }\n &.form-control-pf-edit {\n > .form-control-pf-value {\n display: none;\n }\n > :not(.form-control-pf-value):not(.spinner),\n > .bootstrap-select.btn-group:not(.input-group-btn) {\n display: inline-block;\n }\n }\n &.form-control-pf-updating {\n > .spinner {\n display: inline-block;\n }\n > :not(.spinner) {\n display: none;\n }\n }\n > .form-control-pf-value {\n background: none;\n border: 1px solid transparent;\n display: inline-block;\n padding: @padding-base-vertical @padding-base-horizontal;\n &:focus {\n border-color: @color-pf-black-400;\n }\n &:hover {\n border-color: @color-pf-black-400;\n cursor: pointer;\n }\n + :not(textarea) {\n flex: 1;\n }\n i {\n margin-left: @padding-base-horizontal;\n }\n }\n > :not(.form-control-pf-value) {\n display: none;\n }\n > .form-control-pf-textbox {\n position: relative;\n input {\n padding-right: @input-height-base;\n }\n .form-control-pf-empty {\n background: none;\n border: none;\n color: @color-pf-black-400;\n height: 100%;\n position: absolute;\n right: 0;\n top: 0;\n }\n }\n > .btn {\n margin-left: 3px;\n }\n > .spinner {\n margin: ((@input-height-base - (@font-size-base * 1.5)) * .5) 0;\n }\n > .bootstrap-select.btn-group:not(.input-group-btn) {\n display: none;\n }\n > textarea {\n display: block;\n min-height: 84px;\n resize: vertical;\n }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n border-radius: 0;\n font-size: 100%;\n font-weight: 600;\n h1 &,\n h2 &,\n h3 &,\n h4 &,\n h5 &,\n h6 & {\n font-size: 75%;\n }\n}\n","//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-top: 1px solid @list-group-top-border;\n .list-group-item:first-child {\n border-top: 0;\n }\n}\n.list-group-item {\n border-left: 0;\n border-right: 0;\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n }\n}\n\n.list-group-item-heading {\n font-weight: 600;\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n background-color: @color-pf-black-150;\n border-bottom: none;\n padding: @modal-title-padding-vertical @modal-title-padding-horizontal;\n}\n// Close icon\n.modal-header .close {\n margin-top: 2px;\n}\n\n// Title text within header\n.modal-title {\n font-size: 13px;\n font-weight: 700;\n}\n\n// Footer (for actions)\n.modal-footer {\n border-top: none;\n margin-top: 15px;\n padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;\n > .btn {\n padding-left: 10px;\n padding-right: 10px;\n > .fa-angle-left {\n margin-right: 5px;\n }\n > .fa-angle-right {\n margin-left: 5px;\n }\n }\n}\n\n// message-dialog pattern\n.message-dialog-pf .modal-body {\n display: flex;\n\n .fa, .fas, .far, .fab, .fal,\n .pficon {\n font-size: 30px;\n margin-right: 15px;\n }\n}\n","//\n// Pager\n// --------------------------------------------------\n\n.pager {\n li {\n > a,\n > span {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-bg-img-start; @btn-default-bg-img-stop; @btn-default-border);\n color: @gray-pf;\n font-weight: 600;\n line-height: 22px;\n padding: 2px 14px;\n > .i {\n font-size: 18px;\n vertical-align: top;\n margin: 2px 0;\n }\n }\n a:active {\n background-image: none;\n .box-shadow(inset 0 3px 5px fade(@color-pf-black, 12.5%));\n outline: 0;\n }\n }\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > a:active,\n > span {\n background: @pagination-bg;\n .box-shadow(none);\n color: @pager-disabled-color;\n cursor: not-allowed;\n }\n }\n .next {\n > a,\n > span {\n > .i {\n margin-left: 5px;\n }\n }\n }\n .previous {\n > a,\n > span {\n > .i {\n margin-right: 5px;\n }\n }\n }\n}\n\n.pager-sm {\n li {\n > a,\n > span {\n font-weight: 400;\n line-height: 16px;\n padding: 1px 10px;\n > .i {\n font-size: 12px;\n }\n }\n }\n}\n","//\n// Pagination\n// --------------------------------------------------\n\n.pagination {\n > li {\n > a,\n > span {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-bg-img-start; @btn-default-bg-img-stop; @btn-default-border);\n cursor: default;\n font-weight: 600;\n padding: @padding-base-vertical @padding-large-horizontal;\n > .i {\n font-size: 15px;\n vertical-align: top;\n margin: 2px 0;\n }\n }\n }\n > li > a,\n > li > span {\n &:active {\n .box-shadow(inset 0 2px 8px fade(@color-pf-black, 20%));\n }\n }\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n background-color: @btn-default-bg;\n border-color: @pagination-border;\n .box-shadow(inset 0 2px 8px fade(@color-pf-black, 20%));\n color: @btn-default-color;\n #gradient > .vertical(@btn-default-bg-img-start; @btn-default-bg-img-stop);\n }\n }\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n .box-shadow(none);\n cursor: not-allowed;\n #gradient > .vertical(@btn-default-bg-img-start; @btn-default-bg-img-stop);\n }\n }\n}\n\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n > li {\n > a,\n > span {\n font-weight: 400;\n > .i {\n font-size: 12px;\n margin-top: 2px;\n }\n }\n }\n}\n\n.content-view-pf-pagination {\n background-color: @table-bg-accent;\n border: 1px solid @table-border-color;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n &.table-view-pf-pagination {\n border-top: none;\n }\n .form-group {\n align-items: baseline;\n display: flex;\n flex-grow: 1;\n float: left; //IE9 fallback\n @supports (display: flex) {\n float: none;\n }\n margin: 5px;\n &:last-child {\n justify-content: flex-end; // if pagination controls wrap, pagination buttons stay on the right\n float: right; //IE9 fallback\n @supports (display: flex) {\n float: none;\n }\n }\n .pagination-pf-pagesize.bootstrap-select.btn-group,\n .pagination-pf-pagesize.btn-group {\n display: flex;\n float: none;\n margin-bottom: 0;\n margin-left: 0;\n margin-right: 5px;\n width: auto;\n }\n .dropdown-menu {\n min-width: auto;\n }\n }\n .pagination-pf-page {\n margin-left: 10px;\n margin-right: 5px;\n padding: 0 2px 2px;\n text-align: right;\n width: 2.5em;\n }\n .pagination {\n display: flex;\n margin: 0 0 0 10px;\n a {\n float: none;\n @supports (display: flex) {\n display: block;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n.panel-title {\n font-weight: 700;\n}\n\n//\n// Collapsable panels (aka, accordion)\n// --------------------------------------------------\n\n.panel-group {\n .panel {\n color: @gray-pf;\n + .panel {\n margin-top: -1px;\n }\n }\n .panel-default {\n border-color: @panel-default-border-color;\n border-top-color: @panel-default-border-color;\n .panel-heading {\n #gradient > .vertical(@btn-default-bg-img-start, @btn-default-bg-img-stop);\n + .panel-collapse .panel-body {\n border-top: 1px solid @panel-inner-border;\n }\n }\n }\n\n .panel-info {\n border-color: @panel-info-border;\n .panel-heading {\n background-color: @panel-group-pf-info-heading-bg;\n }\n + .panel-default {\n border-top-color: @panel-info-border;\n }\n }\n .panel-primary {\n border-color: @panel-primary-border;\n .panel-heading {\n background-color: @panel-group-pf-primary-heading-bg;\n }\n + .panel-default {\n border-top-color: @panel-primary-border;\n }\n + .panel-info {\n border-top-color: @panel-primary-border;\n }\n }\n .panel-success {\n border-color: @panel-success-border;\n .panel-heading {\n background-color: @panel-group-pf-success-heading-bg;\n }\n + .panel-default {\n border-top-color: @panel-success-border;\n }\n + .panel-info {\n border-top-color: @panel-success-border;\n }\n + .panel-primary {\n border-top-color: @panel-success-border;\n }\n }\n .panel-warning {\n border-color: @panel-warning-border;\n .panel-heading {\n background-color: @panel-group-pf-warning-heading-bg;\n }\n + .panel-default {\n border-top-color: @panel-warning-border;\n }\n + .panel-info {\n border-top-color: @panel-warning-border;\n }\n + .panel-primary {\n border-top-color: @panel-warning-border;\n }\n + .panel-success {\n border-top-color: @panel-warning-border;\n }\n }\n .panel-danger {\n border-color: @panel-danger-border;\n .panel-heading {\n background-color: @panel-group-pf-danger-heading-bg;\n }\n + .panel-default {\n border-top-color: @panel-danger-border;\n }\n + .panel-info {\n border-top-color: @panel-danger-border;\n }\n + .panel-primary {\n border-top-color: @panel-danger-border;\n }\n + .panel-success {\n border-top-color: @panel-danger-border;\n }\n + .panel-warning {\n border-top-color: @panel-danger-border;\n }\n }\n .panel-title {\n font-weight: 500;\n line-height: 1;\n > a {\n color: @gray-pf;\n font-weight: @btn-font-weight;\n &:before {\n content: \"\\f107\";\n display: inline-block;\n font-family: @icon-font-name-fa;\n font-size: 13px;\n margin-right: 5px;\n text-align: center;\n vertical-align: 0;\n width: 8px;\n }\n &:focus {\n outline: none;\n text-decoration: none;\n }\n &:hover {\n text-decoration: none;\n }\n &.collapsed:before {\n content: \"\\f105\";\n }\n }\n }\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n.popover {\n .box-shadow(0 2px 2px fade(@color-pf-black, 8%));\n padding: 0;\n &.bottom {\n .popover-title:before {\n content:\"\";\n position: absolute;\n top: @popover-position-top;\n left: 50%;\n transform: translateX(-50%);\n border-top-width: @popover-border-top-width;\n border-width: @popover-border-width;\n border-color: transparent;\n border-bottom-color: @popover-border-bottom-color;\n border-style: solid;\n }\n }\n}\n\n.popover-content {\n color: @gray-pf;\n line-height: 18px;\n padding: 10px 14px;\n}\n\n.popover-title {\n border-bottom: none;\n border-radius: 0;\n color: @gray-pf;\n font-size: (@font-size-base + 1);\n font-weight: 700;\n min-height: 34px;\n .close {\n height: 22px;\n position: absolute;\n right: 8px;\n top: 6px;\n }\n &.closable {\n padding-right: 30px;\n }\n}\n.popover-pf-info {\n color: @color-pf-black-900;\n &:hover, &:active {\n color : @color-pf-blue-500;\n }\n}\n","//\n// Progress Bar\n// --------------------------------------------------\n\n@keyframes progress-bar-stripes {\n from { background-position: 0 0; }\n to { background-position: 40px 0; }\n}\n\n.progress {\n .box-shadow(inset 0 0 1px fade(@color-pf-black, 25%));\n &.progress-label-left,\n &.progress-label-top-right {\n overflow: visible;\n position: relative;\n }\n &.progress-label-left {\n margin-left: 40px;\n }\n &.progress-sm {\n height: @progress-sm;\n margin-bottom: @progress-sm;\n }\n &.progress-xs {\n height: @progress-xs;\n margin-bottom: @progress-xs;\n }\n td > &:first-child:last-child {\n margin-bottom: 0;\n margin-top: 3px;\n }\n}\n\n.progress-bar {\n box-shadow: none;\n .progress-label-left & span,\n .progress-label-right & span,\n .progress-label-top-right & span {\n color: @text-color;\n position: absolute;\n text-align: right;\n }\n .progress-label-left & span {\n font-size: @font-size-large;\n left: -40px;\n top: 0;\n width: 35px;\n }\n .progress-label-right & span,\n .progress-label-top-right & span {\n font-size: @font-size-small;\n overflow: hidden;\n right: 0;\n text-overflow: ellipsis;\n white-space: nowrap;\n strong {\n font-weight: 600;\n }\n }\n .progress-label-right & span {\n max-width: @progress-description-label-width;\n top: 0;\n }\n .progress-label-top-right & span {\n max-width: 47%;\n top: (-(@line-height-computed * 1.5)); // -30px\n }\n .progress-label-left.progress-sm & span,\n .progress-label-top-right.progress-sm & span {\n font-size: @font-size-base;\n }\n .progress-sm & {\n line-height: @progress-sm;\n }\n .progress-xs & {\n line-height: @progress-xs;\n }\n}\n\n.progress-bar-remaining {\n background: transparent;\n}\n\n.progress-container {\n position: relative;\n &.progress-description-left {\n padding-left :(@progress-description-label-width + 5);\n }\n &.progress-label-right {\n padding-right :(@progress-description-label-width + 5);\n }\n}\n\n.progress-description {\n margin-bottom: (@line-height-computed / 2); // 10px\n max-width: 52%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n .count {\n font-size: (@font-size-base * 1.667); // 20px\n font-weight: 300;\n line-height: 1;\n margin-right: 5px;\n }\n .fa, .fas, .far, .fab, .fal,\n .pficon {\n font-size: 14px;\n margin-right: 3px;\n }\n .progress-description-left & {\n left: 0;\n margin-bottom: 0;\n max-width: @progress-description-label-width;\n position: absolute;\n top: 0;\n }\n .tooltip {\n white-space: normal;\n }\n}\n","//\n// Tables\n// --------------------------------------------------\n\n.table {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding-top @table-cell-padding @table-cell-padding-bottom;\n > a:hover {\n text-decoration: none;\n }\n }\n > th {\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: 600;\n }\n }\n }\n > thead {\n background-clip: padding-box;\n background-color: @color-pf-black-150;\n #gradient > .vertical(@start-color: @color-pf-black-100; @end-color: @color-pf-black-200; @start-percent: 0%; @end-percent: 100%);\n }\n}\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 1px;\n }\n }\n}\n\n.table-striped {\n > tbody > tr {\n &:nth-of-type(even) {\n background-color: @table-bg-accent;\n }\n &:nth-of-type(odd) {\n background-color: transparent;\n }\n }\n}\n\n.table-hover {\n > tbody > tr:hover {\n > td,\n > th {\n background-color: @table-bg-hover;\n border-bottom-color: @table-border-hover;\n }\n }\n}\n\n.table-treegrid {\n span.indent {\n margin-left: 10px;\n margin-right: 10px;\n }\n span.icon {\n display: inline-block;\n font-size: 13px;\n margin-right: 5px;\n min-width: 10px;\n text-align: center;\n }\n span.expand-icon, span.collapse-icon {\n cursor: pointer;\n }\n > tbody > tr.odd {\n background-color: @table-bg-accent;\n }\n}\n","//\n// Tabs\n// --------------------------------------------------\n\n.nav-tabs {\n font-size: @font-size-large;\n > li {\n > a {\n color: @nav-tabs-color;\n margin-right: -1px;\n padding-bottom: 5px;\n padding-top: 5px;\n &:active,\n &:focus,\n &:hover {\n background: transparent;\n border-color: @nav-tabs-border-color;\n color: @gray-darker;\n }\n }\n > .dropdown-menu {\n border-top: 0;\n border-color: @nav-tabs-border-color;\n &.pull-right {\n right: -1px;\n }\n }\n }\n + .nav-tabs-pf, &.nav-tabs-pf-secondary {\n font-size: @font-size-base;\n > li:first-child > a {\n padding-left: 15px;\n &:before {\n left: 15px !important;\n }\n }\n }\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: transparent;\n border-color: @nav-tabs-border-color;\n }\n }\n}\n\n.nav-tabs-pf {\n &.nav-justified {\n @media (min-width: @grid-float-breakpoint) {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n }\n > li {\n &:first-child > a {\n padding-left: 15px;\n }\n > a {\n border-bottom: 0;\n &:before {\n left: 0 !important;\n right: 0 !important;\n }\n }\n }\n }\n > li {\n margin-bottom: 0;\n &.active > a {\n .tab-indicator(@background: @nav-tabs-active-link-hover-color);\n &,\n &:active,\n &:focus,\n &:hover {\n background-color: transparent;\n border: 0 !important;\n color: @link-color;\n &:before {\n background: @nav-tabs-active-link-hover-color;\n }\n }\n }\n &:first-child {\n > a {\n padding-left: 0;\n &:before {\n left: 0 !important;\n }\n }\n }\n > a {\n border: 0;\n line-height: 1;\n margin-right: 0;\n padding-bottom: 10px;\n padding-top: 10px;\n &:active,\n &:focus,\n &:hover {\n .tab-indicator()\n }\n }\n > .dropdown-menu {\n left: 15px;\n margin-top: 1px;\n &.pull-right {\n left: auto;\n right: 15px;\n }\n }\n }\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: transparent;\n }\n }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n// Base class\n.tooltip {\n font-size: @tooltip-font-size;\n line-height: 1.4;\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n padding: 7px 12px;\n text-align: left;\n}\n","//\n// Typography\n// --------------------------------------------------\n\nh1,\n.h1,\nh2,\n.h2 {\n font-weight: 300;\n}\n\n.page-header .actions {\n margin-top: 8px;\n a > .pficon {\n margin-right: 4px;\n }\n}\n\n@media (min-width: @grid-float-breakpoint-max) {\n .page-header-bleed-left {\n margin-left: (-(@grid-gutter-width / 2));\n }\n .page-header-bleed-right {\n margin-right: ((-@grid-gutter-width / 2));\n .actions {\n margin-right: (@grid-gutter-width / 2);\n }\n }\n}\n"]}
\ No newline at end of file
diff --git a/dist/css/rcue.min.css b/dist/css/rcue.min.css
new file mode 100644
index 0000000000..fe73780886
--- /dev/null
+++ b/dist/css/rcue.min.css
@@ -0,0 +1,8 @@
+@font-face{font-family:"Open Sans";font-style:normal;font-weight:300;src:url(../fonts/OpenSans-Light-webfont.eot);src:local("Open Sans Light"),local("OpenSans-Light"),url(../fonts/OpenSans-Light-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-Light-webfont.woff2) format("woff2"),url(../fonts/OpenSans-Light-webfont.woff) format("woff"),url(../fonts/OpenSans-Light-webfont.ttf) format("truetype"),url(../fonts/OpenSans-Light-webfont.svg#OpenSans) format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:400;src:url(../fonts/OpenSans-Regular-webfont.eot);src:local("Open Sans"),local("OpenSans"),url(../fonts/OpenSans-Regular-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-Regular-webfont.woff2) format("woff2"),url(../fonts/OpenSans-Regular-webfont.woff) format("woff"),url(../fonts/OpenSans-Regular-webfont.ttf) format("truetype"),url(../fonts/OpenSans-Regular-webfont.svg#OpenSans) format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:300;src:url(../fonts/OpenSans-LightItalic-webfont.eot);src:local("Open Sans Light Italic"),local("OpenSansLight-Italic"),url(../fonts/OpenSans-LightItalic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-LightItalic-webfont.woff2) format("woff2"),url(../fonts/OpenSans-LightItalic-webfont.woff) format("woff"),url(../fonts/OpenSans-LightItalic-webfont.ttf) format("truetype"),url(../fonts/OpenSans-LightItalic-webfont.svg#OpenSans) format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:400;src:url(../fonts/OpenSans-Italic-webfont.eot);src:local("Open Sans Italic"),local("OpenSans-Italic"),url(../fonts/OpenSans-Italic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-Italic-webfont.woff2) format("woff2"),url(../fonts/OpenSans-Italic-webfont.woff) format("woff"),url(../fonts/OpenSans-Italic-webfont.ttf) format("truetype"),url(../fonts/OpenSans-Italic-webfont.svg#OpenSans) format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:600;src:url(../fonts/OpenSans-Semibold-webfont.eot);src:local("Open Sans Semibold"),local("OpenSans-Semibold-webfont"),url(../fonts/OpenSans-Semibold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-Semibold-webfont.woff2) format("woff2"),url(../fonts/OpenSans-Semibold-webfont.woff) format("woff"),url(../fonts/OpenSans-Semibold-webfont.ttf) format("truetype"),url(../fonts/OpenSans-Semibold-webfont.svg#OpenSans) format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:600;src:url(../fonts/OpenSans-SemiboldItalic-webfont.eot);src:local("Open Sans Semibold Italic"),local("OpenSans-SemiboldItalic-webfont"),url(../fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-SemiboldItalic-webfont.woff2) format("woff2"),url(../fonts/OpenSans-SemiboldItalic-webfont.woff) format("woff"),url(../fonts/OpenSans-SemiboldItalic-webfont.ttf) format("truetype"),url(../fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSans) format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:700;src:url(../fonts/OpenSans-Bold-webfont.eot);src:local("Open Sans Bold"),local("OpenSans-Bold"),url(../fonts/OpenSans-Bold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-Bold-webfont.woff2) format("woff2"),url(../fonts/OpenSans-Bold-webfont.woff) format("woff"),url(../fonts/OpenSans-Bold-webfont.ttf) format("truetype"),url(../fonts/OpenSans-Bold-webfont.svg#OpenSans) format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:700;src:url(../fonts/OpenSans-BoldItalic-webfont.eot);src:local("Open Sans Bold Italic"),local("OpenSans-BoldItalic"),url(../fonts/OpenSans-BoldItalic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-BoldItalic-webfont.woff2) format("woff2"),url(../fonts/OpenSans-BoldItalic-webfont.woff) format("woff"),url(../fonts/OpenSans-BoldItalic-webfont.ttf) format("truetype"),url(../fonts/OpenSans-BoldItalic-webfont.svg#OpenSans) format("svg")}@font-face{font-family:"Open Sans";font-style:italic;font-weight:800;src:url(../fonts/OpenSans-ExtraBoldItalic-webfont.eot);src:local("Open Sans Extrabold Italic"),local("OpenSans-ExtraboldItalic"),url(../fonts/OpenSans-ExtraBoldItalic-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-ExtraBoldItalic-webfont.woff2) format("woff2"),url(../fonts/OpenSans-ExtraBoldItalic-webfont.woff) format("woff"),url(../fonts/OpenSans-ExtraBoldItalic-webfont.ttf) format("truetype"),url(../fonts/OpenSans-ExtraBoldItalic-webfont.svg#OpenSans) format("svg")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:800;src:url(../fonts/OpenSans-ExtraBold-webfont.eot);src:local("Open Sans Extrabold"),local("OpenSans-Extrabold"),url(../fonts/OpenSans-ExtraBold-webfont.eot?#iefix) format("embedded-opentype"),url(../fonts/OpenSans-ExtraBold-webfont.woff2) format("woff2"),url(../fonts/OpenSans-ExtraBold-webfont.woff) format("woff"),url(../fonts/OpenSans-ExtraBold-webfont.ttf) format("truetype"),url(../fonts/OpenSans-ExtraBold-webfont.svg#OpenSans) format("svg")}/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */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:700}dfn{font-style:italic}h1{font-size:2em;margin:.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:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{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]{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;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}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{*,:after,:before{background:0 0!important;color:#000!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:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.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 td,.table-bordered th{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.woff2) format('woff2'),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:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro: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"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{box-sizing:border-box}:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:12px;line-height:1.66666667;color:#363636;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#0088ce;text-decoration:none}a:focus,a:hover{color:#00659c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:1px}.img-thumbnail{padding:4px;line-height:1.66666667;background-color:#fff;border:1px solid #ddd;border-radius:1px;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #f1f1f1}.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}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#9c9c9c}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.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,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.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:24px}.h2,h2{font-size:22px}.h3,h3{font-size:16px}.h4,h4{font-size:15px}.h5,h5{font-size:13px}.h6,h6{font-size:11px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:13px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:18px}}.small,small{font-size:91%}.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:#9c9c9c}.text-primary{color:#39a5dc}a.text-primary:focus,a.text-primary:hover{color:#228bc0}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#ec7a08}a.text-warning:focus,a.text-warning:hover{color:#bb6106}.text-danger{color:#c00}a.text-danger:focus,a.text-danger:hover{color:#900}.bg-primary{color:#fff;background-color:#39a5dc}a.bg-primary:focus,a.bg-primary:hover{background-color:#228bc0}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #f1f1f1}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.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:20px}dd,dt{line-height:1.66666667}dt{font-weight:700}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[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #9c9c9c}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:15px;border-left:5px solid #f1f1f1}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.66666667;color:#9c9c9c}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #f1f1f1;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.66666667}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,monospace}code{padding:2px 4px;font-size:90%;color:#004368;background-color:#def3ff;border-radius:1px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:1px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:11px;line-height:1.66666667;word-break:break-all;word-wrap:break-word;color:#363636;background-color:#fafafa;border:1px solid #ccc;border-radius:1px}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:20px;padding-right:20px}@media (min-width:768px){.container{width:760px}}@media (min-width:992px){.container{width:980px}}@media (min-width:1200px){.container{width:1180px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:20px;padding-right:20px}.row{margin-left:-20px;margin-right:-20px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:20px;padding-right:20px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-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-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-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-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-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-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-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:10px;padding-bottom:10px;color:#9c9c9c;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:10px;line-height:1.66666667;vertical-align:top;border-top:1px solid #d1d1d1}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #d1d1d1}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #d1d1d1}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #d1d1d1}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #d1d1d1}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f5f5f5}.table-hover>tbody>tr:hover{background-color:#def3ff}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>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#def3ff}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#c4eaff}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #d1d1d1}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:18px;line-height:inherit;color:#363636;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:3px;font-size:12px;line-height:1.66666667;color:#363636}.form-control{display:block;width:100%;height:26px;padding:2px 6px;font-size:12px;line-height:1.66666667;color:#363636;background-color:#fff;background-image:none;border:1px solid #bbb;border-radius:1px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#0088ce;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(0,136,206,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control:-moz-placeholder{color:#999;font-style:italic}.form-control::-moz-placeholder{color:#999;font-style:italic;opacity:1}.form-control:-ms-input-placeholder{color:#999;font-style:italic}.form-control::-webkit-input-placeholder{color:#999;font-style:italic}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#f5f5f5;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:26px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:22px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:33px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{padding-top:3px;padding-bottom:3px;margin-bottom:0;min-height:32px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:22px;padding:2px 6px;font-size:11px;line-height:1.5;border-radius:1px}select.input-sm{height:22px;line-height:22px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:22px;padding:2px 6px;font-size:11px;line-height:1.5;border-radius:1px}.form-group-sm select.form-control{height:22px;line-height:22px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:22px;min-height:31px;padding:3px 6px;font-size:11px;line-height:1.5}.input-lg{height:33px;padding:6px 10px;font-size:14px;line-height:1.3333333;border-radius:1px}select.input-lg{height:33px;line-height:33px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:33px;padding:6px 10px;font-size:14px;line-height:1.3333333;border-radius:1px}.form-group-lg select.form-control{height:33px;line-height:33px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:33px;min-height:34px;padding:7px 10px;font-size:14px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:32.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:26px;height:26px;line-height:26px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:33px;height:33px;line-height:33px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:22px;height:22px;line-height:22px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#ec7a08}.has-warning .form-control{border-color:#ec7a08;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#bb6106;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #faad60}.has-warning .input-group-addon{color:#ec7a08;border-color:#ec7a08;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#ec7a08}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#c00}.has-error .form-control{border-color:#c00;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#900;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #f33}.has-error .input-group-addon{color:#c00;border-color:#c00;background-color:#f2dede}.has-error .form-control-feedback{color:#c00}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#767676}@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 .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:3px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:23px}.form-horizontal .form-group{margin-left:-20px;margin-right:-20px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:3px}}.form-horizontal .has-feedback .form-control-feedback{right:20px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:7px;font-size:14px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:3px;font-size:11px}}.btn{display:inline-block;margin-bottom:0;font-weight:600;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:2px 6px;font-size:12px;line-height:1.66666667;border-radius:1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#4d5258;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#4d5258;background-color:#f1f1f1;border-color:#bbb}.btn-default.focus,.btn-default:focus{color:#4d5258;background-color:#d8d8d8;border-color:#7b7b7b}.btn-default:hover{color:#4d5258;background-color:#d8d8d8;border-color:#9c9c9c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#4d5258;background-color:#d8d8d8;border-color:#9c9c9c}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#4d5258;background-color:#c6c6c6;border-color:#7b7b7b}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#f1f1f1;border-color:#bbb}.btn-default .badge{color:#f1f1f1;background-color:#4d5258}.btn-primary{color:#fff;background-color:#0088ce;border-color:#00659c}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#00669b;border-color:#00121d}.btn-primary:hover{color:#fff;background-color:#00669b;border-color:#003d5f}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#00669b;border-color:#003d5f}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#004f77;border-color:#00121d}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#0088ce;border-color:#00659c}.btn-primary .badge{color:#0088ce;background-color:#fff}.btn-success{color:#fff;background-color:#3f9c35;border-color:#37892f}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#307628;border-color:#112a0e}.btn-success:hover{color:#fff;background-color:#307628;border-color:#255b1f}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#307628;border-color:#255b1f}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#255b1f;border-color:#112a0e}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#3f9c35;border-color:#37892f}.btn-success .badge{color:#3f9c35;background-color:#fff}.btn-info{color:#fff;background-color:#00659c;border-color:#005483}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#004469;border-color:#000203}.btn-info:hover{color:#fff;background-color:#004469;border-color:#002d45}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#004469;border-color:#002d45}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#002d45;border-color:#000203}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#00659c;border-color:#005483}.btn-info .badge{color:#00659c;background-color:#fff}.btn-warning{color:#fff;background-color:#ec7a08;border-color:#d36d07}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#bb6106;border-color:#582e03}.btn-warning:hover{color:#fff;background-color:#bb6106;border-color:#984f05}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#bb6106;border-color:#984f05}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#984f05;border-color:#582e03}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#ec7a08;border-color:#d36d07}.btn-warning .badge{color:#ec7a08;background-color:#fff}.btn-danger{color:#fff;background-color:#a30000;border-color:#8b0000}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#700000;border-color:#0b0000}.btn-danger:hover{color:#fff;background-color:#700000;border-color:#4e0000}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#700000;border-color:#4e0000}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#4c0000;border-color:#0b0000}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#a30000;border-color:#8b0000}.btn-danger .badge{color:#a30000;background-color:#fff}.btn-link{color:#0088ce;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#00659c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#9c9c9c;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:6px 10px;font-size:14px;line-height:1.3333333;border-radius:1px}.btn-group-sm>.btn,.btn-sm{padding:2px 6px;font-size:11px;line-height:1.5;border-radius:1px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:11px;line-height:1.5;border-radius:1px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition-property:height,visibility;transition-duration:.35s;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:0 dashed;border-right:0 solid transparent;border-left:0 solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:12px;text-align:left;background-color:#fff;border:1px solid #bbb;border-radius:1px;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{margin:9px 0;background-color:#ededed;height:1px;margin:4px 1px;overflow:hidden}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.66666667;color:#363636;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#4d5258;background-color:#def3ff}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#0088ce}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#9c9c9c}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;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:11px;line-height:1.66666667;color:#9c9c9c;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:0 dashed;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@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-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{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,.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:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-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{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:0 0 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 0 0}.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:1px;border-top-left-radius:1px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.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=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{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 .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:33px;padding:6px 10px;font-size:14px;line-height:1.3333333;border-radius:1px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:33px;line-height:33px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:22px;padding:2px 6px;font-size:11px;line-height:1.5;border-radius:1px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:22px;line-height:22px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:2px 6px;font-size:12px;font-weight:400;line-height:1;color:#363636;text-align:center;background-color:#f1f1f1;border:1px solid #bbb;border-radius:1px}.input-group-addon.input-sm{padding:2px 6px;font-size:11px;border-radius:1px}.input-group-addon.input-lg{padding:6px 10px;font-size:14px;border-radius:1px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;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:focus,.nav>li>a:hover{text-decoration:none;background-color:#f1f1f1}.nav>li.disabled>a{color:#9c9c9c}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#9c9c9c;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#f1f1f1;border-color:#0088ce}.nav .nav-divider{margin:9px 0;background-color:#e5e5e5;background-color:#ededed;height:1px;margin:4px 1px;overflow:hidden}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ededed}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.66666667;border:1px solid transparent;border-radius:1px 1px 0 0}.nav-tabs>li>a:hover{border-color:transparent transparent #ededed}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#0088ce;background-color:#fff;border:1px solid #ddd;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:1px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ededed}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ededed;border-radius:1px 1px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:1px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#39a5dc}.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:1px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ededed}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ededed;border-radius:1px 1px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:1px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:20px;padding-left:20px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-20px;margin-left:-20px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 20px;font-size:14px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-20px}}.navbar-toggle{position:relative;float:right;margin-right:20px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:1px}.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:7.5px -20px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-20px;margin-right:-20px;padding:10px 20px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:12px;margin-bottom:12px}@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 .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{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;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{margin-bottom:0;border-top-right-radius:1px;border-top-left-radius:1px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:12px;margin-bottom:12px}.navbar-btn.btn-sm{margin-top:14px;margin-bottom:14px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:20px;margin-right:20px}}@media (min-width:768px){.navbar-left{float:left!important;float:left}.navbar-right{float:right!important;float:right;margin-right:-20px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#c2c2c2}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#c2c2c2}.navbar-inverse .navbar-nav>li>a{color:#c2c2c2}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#c2c2c2}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#c2c2c2}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#c2c2c2}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:transparent;border-radius:1px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"\f105\00a0";padding:0 5px;color:#4d5258}.breadcrumb>.active{color:#4d5258}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:1px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:2px 6px;line-height:1.66666667;text-decoration:none;color:#0088ce;background-color:#f5f5f5;border:1px solid #bbb;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:1px;border-top-left-radius:1px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:1px;border-top-right-radius:1px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#00659c;background-color:#ededed;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;background-color:#39a5dc;border-color:#39a5dc;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#9c9c9c;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:6px 10px;font-size:14px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:1px;border-top-left-radius:1px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:1px;border-top-right-radius:1px}.pagination-sm>li>a,.pagination-sm>li>span{padding:2px 6px;font-size:11px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:1px;border-top-left-radius:1px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:1px;border-top-right-radius:1px}.pager{padding-left:0;margin:20px 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:#f5f5f5;border:1px solid #bbb;border-radius:0}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#ededed}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#8b8d8f;background-color:#f5f5f5;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#9c9c9c}.label-default[href]:focus,.label-default[href]:hover{background-color:#838383}.label-primary{background-color:#39a5dc}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#228bc0}.label-success{background-color:#3f9c35}.label-success[href]:focus,.label-success[href]:hover{background-color:#307628}.label-info{background-color:#00659c}.label-info[href]:focus,.label-info[href]:hover{background-color:#004469}.label-warning{background-color:#ec7a08}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#bb6106}.label-danger{background-color:#c00}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#900}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:11px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#9c9c9c;border-radius:1px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#0088ce;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f1f1f1}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:18px;font-weight:200}.jumbotron>hr{border-top-color:#d8d8d8}.container .jumbotron,.container-fluid .jumbotron{border-radius:1px;padding-left:20px;padding-right:20px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:54px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.66666667;background-color:#fff;border:1px solid #ddd;border-radius:1px;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#0088ce}.thumbnail .caption{padding:9px;color:#363636}.alert{padding:11px;margin-bottom:20px;border:1px solid transparent;border-radius:1px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:500}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:31px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#e9f4e9;border-color:#3f9c35;color:#363636}.alert-success hr{border-top-color:#37892f}.alert-success .alert-link{color:#1d1d1d}.alert-info{background-color:#f5f5f5;border-color:#8b8d8f;color:#363636}.alert-info hr{border-top-color:#7e8082}.alert-info .alert-link{color:#1d1d1d}.alert-warning{background-color:#fdf2e5;border-color:#ec7a08;color:#363636}.alert-warning hr{border-top-color:#d36d07}.alert-warning .alert-link{color:#1d1d1d}.alert-danger{background-color:#ffe6e6;border-color:#c00;color:#363636}.alert-danger hr{border-top-color:#b30000}.alert-danger .alert-link{color:#1d1d1d}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#ededed;border-radius:1px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:11px;line-height:20px;color:#fff;text-align:center;background-color:#39a5dc;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(3,3,3,.15) 25%,rgba(3,3,3,.15) 26%,transparent 27%,transparent 49%,rgba(3,3,3,.15) 50%,rgba(3,3,3,.15) 51%,transparent 52%,transparent 74%,rgba(3,3,3,.15) 75%,rgba(3,3,3,.15) 76%,transparent 77%);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#3f9c35}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(3,3,3,.15) 25%,rgba(3,3,3,.15) 26%,transparent 27%,transparent 49%,rgba(3,3,3,.15) 50%,rgba(3,3,3,.15) 51%,transparent 52%,transparent 74%,rgba(3,3,3,.15) 75%,rgba(3,3,3,.15) 76%,transparent 77%)}.progress-bar-info{background-color:#00659c}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(3,3,3,.15) 25%,rgba(3,3,3,.15) 26%,transparent 27%,transparent 49%,rgba(3,3,3,.15) 50%,rgba(3,3,3,.15) 51%,transparent 52%,transparent 74%,rgba(3,3,3,.15) 75%,rgba(3,3,3,.15) 76%,transparent 77%)}.progress-bar-warning{background-color:#ec7a08}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(3,3,3,.15) 25%,rgba(3,3,3,.15) 26%,transparent 27%,transparent 49%,rgba(3,3,3,.15) 50%,rgba(3,3,3,.15) 51%,transparent 52%,transparent 74%,rgba(3,3,3,.15) 75%,rgba(3,3,3,.15) 76%,transparent 77%)}.progress-bar-danger{background-color:#c00}.progress-striped .progress-bar-danger{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(3,3,3,.15) 25%,rgba(3,3,3,.15) 26%,transparent 27%,transparent 49%,rgba(3,3,3,.15) 50%,rgba(3,3,3,.15) 51%,transparent 52%,transparent 74%,rgba(3,3,3,.15) 75%,rgba(3,3,3,.15) 76%,transparent 77%)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{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:#fff;border:1px solid #f5f5f5}.list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#def3ff}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#fafafa;color:#9c9c9c;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#9c9c9c}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#39a5dc;border-color:#39a5dc}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e6f4fb}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#ec7a08;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#ec7a08}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#ec7a08;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#ec7a08;border-color:#ec7a08}.list-group-item-danger{color:#c00;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#c00}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#c00;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#c00;border-color:#c00}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:1px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:0;border-top-left-radius:0}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:14px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #d1d1d1;border-bottom-right-radius:0;border-bottom-left-radius:0}.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:0;border-top-left-radius:0}.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:0;border-bottom-left-radius:0}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.table-responsive:first-child>.table:first-child>tbody: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:first-child>thead:first-child>tr:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:0}.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:0}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:0;border-bottom-right-radius:0}.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:0}.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:0}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #d1d1d1}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.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:20px}.panel-group .panel{margin-bottom:0;border-radius:1px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #d1d1d1}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #d1d1d1}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#363636;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#363636}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#39a5dc}.panel-primary>.panel-heading{color:#fff;background-color:#39a5dc;border-color:#39a5dc}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#39a5dc}.panel-primary>.panel-heading .badge{color:#39a5dc;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#39a5dc}.panel-success{border-color:#3f9c35}.panel-success>.panel-heading{color:#fff;background-color:#3f9c35;border-color:#3f9c35}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3f9c35}.panel-success>.panel-heading .badge{color:#3f9c35;background-color:#fff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3f9c35}.panel-info{border-color:#00659c}.panel-info>.panel-heading{color:#fff;background-color:#00659c;border-color:#00659c}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#00659c}.panel-info>.panel-heading .badge{color:#00659c;background-color:#fff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#00659c}.panel-warning{border-color:#ec7a08}.panel-warning>.panel-heading{color:#fff;background-color:#ec7a08;border-color:#ec7a08}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ec7a08}.panel-warning>.panel-heading .badge{color:#ec7a08;background-color:#fff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ec7a08}.panel-danger{border-color:#c00}.panel-danger>.panel-heading{color:#fff;background-color:#c00;border-color:#c00}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#c00}.panel-danger>.panel-heading .badge{color:#c00;background-color:#fff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#c00}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:1px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:1px}.well-sm{padding:9px;border-radius:1px}.close{float:right;font-size:18px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;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:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-ms-transform:translate(0,-25%);transform:translate(0,-25%);transition:transform .3s ease-out}.modal.in .modal-dialog{-ms-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:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:1px;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.in{opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.66666667}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;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{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.66666667;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:11px;opacity:0}.tooltip.in{opacity:.9}.tooltip.top{margin-top:-3px;padding:8px 0}.tooltip.right{margin-left:3px;padding:0 8px}.tooltip.bottom{margin-top:3px;padding:8px 0}.tooltip.left{margin-left:-3px;padding:0 8px}.tooltip-inner{max-width:220px;padding:3px 8px;color:#fff;text-align:center;background-color:#393f44;border-radius:1px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-8px;border-width:8px 8px 0;border-top-color:#393f44}.tooltip.top-left .tooltip-arrow{bottom:0;right:8px;margin-bottom:-8px;border-width:8px 8px 0;border-top-color:#393f44}.tooltip.top-right .tooltip-arrow{bottom:0;left:8px;margin-bottom:-8px;border-width:8px 8px 0;border-top-color:#393f44}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-8px;border-width:8px 8px 8px 0;border-right-color:#393f44}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-8px;border-width:8px 0 8px 8px;border-left-color:#393f44}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-8px;border-width:0 8px 8px;border-bottom-color:#393f44}.tooltip.bottom-left .tooltip-arrow{top:0;right:8px;margin-top:-8px;border-width:0 8px 8px;border-bottom-color:#393f44}.tooltip.bottom-right .tooltip-arrow{top:0;left:8px;margin-top:-8px;border-width:0 8px 8px;border-bottom-color:#393f44}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:220px;padding:1px;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.66666667;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid #bbb;border-radius:1px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:12px;background-color:#f5f5f5;border-bottom:1px solid #e8e8e8;border-radius: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:#999;border-top-color:#bbb;bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:#bbb}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:#bbb;top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:#bbb}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{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:.5;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x}.carousel-control.right{left:auto;right:0;background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;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 #fff;border-radius:10px;cursor:pointer;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(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-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row: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}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.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!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.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!important}tr.visible-md{display:table-row!important}td.visible-md,th.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!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.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!important}tr.visible-print{display:table-row!important}td.visible-print,th.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}}/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.7.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.fa-rotate-90{-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;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}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.text-overflow-pf{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.alert{border-width:1px;padding-left:47px;padding-right:14px;position:relative;word-wrap:break-word}.alert .alert-link{color:#0088ce}.alert .alert-link:hover{color:#00659c}.alert>.btn.pull-right{margin-top:-3px}.alert>.pficon{font-size:22px;position:absolute;left:13px;top:10px}.alert .close{opacity:.85}.alert .close:focus,.alert .close:hover{opacity:1}.alert .pficon-info{color:#4d5258}.alert-dismissable{padding-right:28px}.alert-dismissable .close{right:-13px;top:1px}.badge{margin-left:6px}.nav-pills>li>a>.badge{margin-left:6px}.breadcrumb{padding-left:0}.breadcrumb>.active strong{font-weight:600}.breadcrumb>li{display:inline}.breadcrumb>li+li:before{color:#9c9c9c;content:"\f105";font-family:FontAwesome;font-size:11px;padding:0 9px 0 7px}.btn{box-shadow:0 2px 3px rgba(3,3,3,.1)}.btn:active{box-shadow:inset 0 2px 8px rgba(3,3,3,.2)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{background-color:#fafafa!important;background-image:none!important;border-color:#d1d1d1!important;color:#8b8d8f!important;opacity:1}.btn.disabled:active,.btn[disabled]:active,fieldset[disabled] .btn:active{box-shadow:none}.btn.disabled.btn-link,.btn[disabled].btn-link,fieldset[disabled] .btn.btn-link{background-color:transparent!important;border:0}.btn-danger{background-color:#a30000;background-image:linear-gradient(to bottom,#c00 0,#a30000 100%);background-repeat:repeat-x;border-color:#8b0000;color:#fff}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .dropdown-toggle.btn-danger{background-color:#a30000;background-image:none;border-color:#8b0000;color:#fff}.btn-danger.active,.btn-danger:active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open .dropdown-toggle.btn-danger.focus,.open .dropdown-toggle.btn-danger:focus,.open .dropdown-toggle.btn-danger:hover{background-color:#8a0000;border-color:#670000}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#a30000;border-color:#8b0000}.btn-default{background-color:#f1f1f1;background-image:linear-gradient(to bottom,#fafafa 0,#ededed 100%);background-repeat:repeat-x;border-color:#bbb;color:#4d5258}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .dropdown-toggle.btn-default{background-color:#f1f1f1;background-image:none;border-color:#bbb;color:#4d5258}.btn-default.active,.btn-default:active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open .dropdown-toggle.btn-default.focus,.open .dropdown-toggle.btn-default:focus,.open .dropdown-toggle.btn-default:hover{background-color:#e5e5e5;border-color:#a9a9a9}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#f1f1f1;border-color:#bbb}.btn-link,.btn-link:active{box-shadow:none}.btn-primary{background-color:#0088ce;background-image:linear-gradient(to bottom,#39a5dc 0,#0088ce 100%);background-repeat:repeat-x;border-color:#00659c;color:#fff}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .dropdown-toggle.btn-primary{background-color:#0088ce;background-image:none;border-color:#00659c;color:#fff}.btn-primary.active,.btn-primary:active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open .dropdown-toggle.btn-primary.focus,.open .dropdown-toggle.btn-primary:focus,.open .dropdown-toggle.btn-primary:hover{background-color:#0077b5;border-color:#004e78}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#0088ce;border-color:#00659c}.btn-group-xs .btn,.btn-group-xs>.btn,.btn-xs{font-weight:400}.caret{font-family:FontAwesome;font-weight:400;height:9px;position:relative;vertical-align:baseline;width:12px}.caret:before{bottom:0;content:"\f107";left:0;line-height:12px;position:absolute;text-align:center;top:-1px;right:0}.dropup .caret:before{content:"\f106"}.dropdown-toggle:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.dropdown-menu .divider{background-color:#ededed;height:1px;margin:4px 1px;overflow:hidden}.dropdown-menu>li>a{border-color:transparent;border-style:solid;border-width:1px 0;padding:1px 10px}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{border-color:#bee1f4}.dropdown-menu>li>a:active{background-color:#0088ce;border-color:#0088ce;color:#fff!important}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#0088ce!important;border-color:#0088ce!important}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{border-color:transparent}.dropdown-menu>.selected>a{background-color:#0088ce;border-color:#0088ce;color:#fff}.dropdown-menu>.selected>a small{color:rgba(255,255,255,.5)}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{border-color:transparent}.dropdown-header{padding-left:10px;padding-right:10px;text-transform:uppercase}.btn-group>.dropdown-menu,.dropdown>.dropdown-menu,.input-group-btn>.dropdown-menu{margin-top:-1px}.dropup .dropdown-menu{margin-bottom:-1px}.dropdown-submenu{position:relative}.dropdown-submenu:hover>a{background-color:#def3ff;border-color:#bee1f4}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu.pull-left{float:none!important}.dropdown-submenu.pull-left>.dropdown-menu{left:auto;margin-left:10px;right:100%}.dropdown-submenu>a{padding-right:20px!important}.dropdown-submenu>a:after{content:"\f105";font-family:FontAwesome;display:block;position:absolute;right:10px;top:2px}.dropdown-submenu>.dropdown-menu{left:100%;margin-top:0;top:-6px}.dropup .dropdown-submenu>.dropdown-menu{bottom:-5px;top:auto}.open .dropdown-submenu.active>.dropdown-menu{display:block}.dropdown-kebab-pf .btn-link,.dropdown-kebab-pf.btn-group>.btn:first-child{color:#252525;font-size:16px;line-height:1;padding:4px 10px;margin-left:-10px;margin-right:-10px}.dropdown-kebab-pf .btn-link:active,.dropdown-kebab-pf .btn-link:focus,.dropdown-kebab-pf .btn-link:hover,.dropdown-kebab-pf.btn-group>.btn:first-child:active,.dropdown-kebab-pf.btn-group>.btn:first-child:focus,.dropdown-kebab-pf.btn-group>.btn:first-child:hover{color:#0088ce}.dropdown-kebab-pf.btn-group{margin-left:10px}.dropdown-kebab-pf .dropdown-menu{left:-15px;margin-top:11px}.dropdown-kebab-pf .dropdown-menu.dropdown-menu-right{left:auto;right:-15px}.dropdown-kebab-pf .dropdown-menu.dropdown-menu-right:after,.dropdown-kebab-pf .dropdown-menu.dropdown-menu-right:before{left:auto;right:6px}.dropdown-kebab-pf .dropdown-menu:after,.dropdown-kebab-pf .dropdown-menu:before{border-bottom-color:#bbb;border-bottom-style:solid;border-bottom-width:10px;border-left:10px solid transparent;border-right:10px solid transparent;content:"";display:inline-block;left:6px;position:absolute;top:-11px}.dropdown-kebab-pf .dropdown-menu:after{border-bottom-color:#fff;top:-10px}.dropdown-kebab-pf.dropup .dropdown-menu{margin-bottom:11px;margin-top:0}.dropdown-kebab-pf.dropup .dropdown-menu:after,.dropdown-kebab-pf.dropup .dropdown-menu:before{border-bottom:none;border-top-color:#bbb;border-top-style:solid;border-top-width:10px;bottom:-11px;top:auto}.dropdown-kebab-pf.dropup .dropdown-menu:after{border-top-color:#fff;bottom:-10px}.form-horizontal-pf-align-left .control-label{text-align:left}@media (min-width:768px){.form-horizontal-pf-align-left.required-pf .control-label:not(.required-pf){padding-left:30px}}.chars-remaining-pf span{font-weight:600;padding-right:5px}.chars-warn-remaining-pf{color:#c00}.fields-status-pf{color:#8b8d8f;margin-bottom:15px}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{box-shadow:none;color:#8b8d8f}.form-control[disabled]:hover,.form-control[readonly]:hover,fieldset[disabled] .form-control:hover{border-color:#bbb}.form-control:hover{border-color:#7dc3e8}.has-error .form-control:hover{border-color:#900}.has-success .form-control:hover{border-color:#2b542c}.has-warning .form-control:hover{border-color:#bb6106}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label,.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label,.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#363636}.help-block{margin-bottom:0}.input-group .input-group-btn .btn{box-shadow:none}label{font-weight:600}label.required-pf:before{color:#c00;content:"*";margin-right:3px}span.required-pf{color:#c00}.fields-section-pf{border-color:#ededed;border-style:solid;border-width:1px 0 0;margin-top:25px;padding:15px 0 0}.fields-section-header-pf{border:none;font-size:12px;margin:0;padding-right:10px;width:auto}.fields-section-header-pf .fa-angle-right{cursor:pointer;font-size:14px;width:14px}.form-control-pf-editable{display:-ms-flexbox;display:flex}.form-control-pf-editable.form-control-pf-full-width{display:block}.form-control-pf-editable.form-control-pf-full-width>.form-control-pf-value{text-align:left}.form-control-pf-editable.form-control-pf-full-width .action-buttons{float:right}.form-control-pf-editable.form-control-pf-edit>.form-control-pf-value{display:none}.form-control-pf-editable.form-control-pf-edit>.bootstrap-select.btn-group:not(.input-group-btn),.form-control-pf-editable.form-control-pf-edit>:not(.form-control-pf-value):not(.spinner){display:inline-block}.form-control-pf-editable.form-control-pf-updating>.spinner{display:inline-block}.form-control-pf-editable.form-control-pf-updating>:not(.spinner){display:none}.form-control-pf-editable>.form-control-pf-value{background:0 0;border:1px solid transparent;display:inline-block;padding:2px 6px}.form-control-pf-editable>.form-control-pf-value:focus{border-color:#bbb}.form-control-pf-editable>.form-control-pf-value:hover{border-color:#bbb;cursor:pointer}.form-control-pf-editable>.form-control-pf-value+:not(textarea){-ms-flex:1;flex:1}.form-control-pf-editable>.form-control-pf-value i{margin-left:6px}.form-control-pf-editable>:not(.form-control-pf-value){display:none}.form-control-pf-editable>.form-control-pf-textbox{position:relative}.form-control-pf-editable>.form-control-pf-textbox input{padding-right:26px}.form-control-pf-editable>.form-control-pf-textbox .form-control-pf-empty{background:0 0;border:none;color:#bbb;height:100%;position:absolute;right:0;top:0}.form-control-pf-editable>.btn{margin-left:3px}.form-control-pf-editable>.spinner{margin:4px 0}.form-control-pf-editable>.bootstrap-select.btn-group:not(.input-group-btn){display:none}.form-control-pf-editable>textarea{display:block;min-height:84px;resize:vertical}.label{border-radius:0;font-size:100%;font-weight:600}h1 .label,h2 .label,h3 .label,h4 .label,h5 .label,h6 .label{font-size:75%}.list-group{border-top:1px solid #ededed}.list-group .list-group-item:first-child{border-top:0}.list-group-item{border-left:0;border-right:0}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#fafafa}.list-group-item-heading{font-weight:600}.modal-header{background-color:#f5f5f5;border-bottom:none;padding:10px 18px}.modal-header .close{margin-top:2px}.modal-title{font-size:13px;font-weight:700}.modal-footer{border-top:none;margin-top:15px;padding:14px 15px 15px}.modal-footer>.btn{padding-left:10px;padding-right:10px}.modal-footer>.btn>.fa-angle-left{margin-right:5px}.modal-footer>.btn>.fa-angle-right{margin-left:5px}.message-dialog-pf .modal-body{display:-ms-flexbox;display:flex}.message-dialog-pf .modal-body .fa,.message-dialog-pf .modal-body .fab,.message-dialog-pf .modal-body .fal,.message-dialog-pf .modal-body .far,.message-dialog-pf .modal-body .fas,.message-dialog-pf .modal-body .pficon{font-size:30px;margin-right:15px}.pager li>a,.pager li>span{background-color:#f1f1f1;background-image:linear-gradient(to bottom,#fafafa 0,#ededed 100%);background-repeat:repeat-x;border-color:#bbb;color:#4d5258;font-weight:600;line-height:22px;padding:2px 14px}.open .dropdown-toggle.pager li>a,.open .dropdown-toggle.pager li>span,.pager li>a.active,.pager li>a:active,.pager li>a:focus,.pager li>a:hover,.pager li>span.active,.pager li>span:active,.pager li>span:focus,.pager li>span:hover{background-color:#f1f1f1;background-image:none;border-color:#bbb;color:#4d5258}.open .dropdown-toggle.pager li>a,.open .dropdown-toggle.pager li>span,.pager li>a.active,.pager li>a:active,.pager li>span.active,.pager li>span:active{background-image:none}.open .dropdown-toggle.pager li>a.focus,.open .dropdown-toggle.pager li>a:focus,.open .dropdown-toggle.pager li>a:hover,.open .dropdown-toggle.pager li>span.focus,.open .dropdown-toggle.pager li>span:focus,.open .dropdown-toggle.pager li>span:hover,.pager li>a.active.focus,.pager li>a.active:focus,.pager li>a.active:hover,.pager li>a:active.focus,.pager li>a:active:focus,.pager li>a:active:hover,.pager li>span.active.focus,.pager li>span.active:focus,.pager li>span.active:hover,.pager li>span:active.focus,.pager li>span:active:focus,.pager li>span:active:hover{background-color:#e5e5e5;border-color:#a9a9a9}.pager li>a.disabled,.pager li>a.disabled.active,.pager li>a.disabled:active,.pager li>a.disabled:focus,.pager li>a.disabled:hover,.pager li>a[disabled],.pager li>a[disabled].active,.pager li>a[disabled]:active,.pager li>a[disabled]:focus,.pager li>a[disabled]:hover,.pager li>span.disabled,.pager li>span.disabled.active,.pager li>span.disabled:active,.pager li>span.disabled:focus,.pager li>span.disabled:hover,.pager li>span[disabled],.pager li>span[disabled].active,.pager li>span[disabled]:active,.pager li>span[disabled]:focus,.pager li>span[disabled]:hover,fieldset[disabled] .pager li>a,fieldset[disabled] .pager li>a.active,fieldset[disabled] .pager li>a:active,fieldset[disabled] .pager li>a:focus,fieldset[disabled] .pager li>a:hover,fieldset[disabled] .pager li>span,fieldset[disabled] .pager li>span.active,fieldset[disabled] .pager li>span:active,fieldset[disabled] .pager li>span:focus,fieldset[disabled] .pager li>span:hover{background-color:#f1f1f1;border-color:#bbb}.pager li>a>.i,.pager li>span>.i{font-size:18px;vertical-align:top;margin:2px 0}.pager li a:active{background-image:none;box-shadow:inset 0 3px 5px rgba(3,3,3,.125);outline:0}.pager .disabled>a,.pager .disabled>a:active,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{background:#f5f5f5;box-shadow:none;color:#8b8d8f;cursor:not-allowed}.pager .next>a>.i,.pager .next>span>.i{margin-left:5px}.pager .previous>a>.i,.pager .previous>span>.i{margin-right:5px}.pager-sm li>a,.pager-sm li>span{font-weight:400;line-height:16px;padding:1px 10px}.pager-sm li>a>.i,.pager-sm li>span>.i{font-size:12px}.pagination>li>a,.pagination>li>span{background-color:#f1f1f1;background-image:linear-gradient(to bottom,#fafafa 0,#ededed 100%);background-repeat:repeat-x;border-color:#bbb;color:#4d5258;cursor:default;font-weight:600;padding:2px 10px}.open .dropdown-toggle.pagination>li>a,.open .dropdown-toggle.pagination>li>span,.pagination>li>a.active,.pagination>li>a:active,.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span.active,.pagination>li>span:active,.pagination>li>span:focus,.pagination>li>span:hover{background-color:#f1f1f1;background-image:none;border-color:#bbb;color:#4d5258}.open .dropdown-toggle.pagination>li>a,.open .dropdown-toggle.pagination>li>span,.pagination>li>a.active,.pagination>li>a:active,.pagination>li>span.active,.pagination>li>span:active{background-image:none}.open .dropdown-toggle.pagination>li>a.focus,.open .dropdown-toggle.pagination>li>a:focus,.open .dropdown-toggle.pagination>li>a:hover,.open .dropdown-toggle.pagination>li>span.focus,.open .dropdown-toggle.pagination>li>span:focus,.open .dropdown-toggle.pagination>li>span:hover,.pagination>li>a.active.focus,.pagination>li>a.active:focus,.pagination>li>a.active:hover,.pagination>li>a:active.focus,.pagination>li>a:active:focus,.pagination>li>a:active:hover,.pagination>li>span.active.focus,.pagination>li>span.active:focus,.pagination>li>span.active:hover,.pagination>li>span:active.focus,.pagination>li>span:active:focus,.pagination>li>span:active:hover{background-color:#e5e5e5;border-color:#a9a9a9}.pagination>li>a.disabled,.pagination>li>a.disabled.active,.pagination>li>a.disabled:active,.pagination>li>a.disabled:focus,.pagination>li>a.disabled:hover,.pagination>li>a[disabled],.pagination>li>a[disabled].active,.pagination>li>a[disabled]:active,.pagination>li>a[disabled]:focus,.pagination>li>a[disabled]:hover,.pagination>li>span.disabled,.pagination>li>span.disabled.active,.pagination>li>span.disabled:active,.pagination>li>span.disabled:focus,.pagination>li>span.disabled:hover,.pagination>li>span[disabled],.pagination>li>span[disabled].active,.pagination>li>span[disabled]:active,.pagination>li>span[disabled]:focus,.pagination>li>span[disabled]:hover,fieldset[disabled] .pagination>li>a,fieldset[disabled] .pagination>li>a.active,fieldset[disabled] .pagination>li>a:active,fieldset[disabled] .pagination>li>a:focus,fieldset[disabled] .pagination>li>a:hover,fieldset[disabled] .pagination>li>span,fieldset[disabled] .pagination>li>span.active,fieldset[disabled] .pagination>li>span:active,fieldset[disabled] .pagination>li>span:focus,fieldset[disabled] .pagination>li>span:hover{background-color:#f1f1f1;border-color:#bbb}.pagination>li>a>.i,.pagination>li>span>.i{font-size:15px;vertical-align:top;margin:2px 0}.pagination>li>a:active,.pagination>li>span:active{box-shadow:inset 0 2px 8px rgba(3,3,3,.2)}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{background-color:#f1f1f1;border-color:#bbb;box-shadow:inset 0 2px 8px rgba(3,3,3,.2);color:#4d5258;background-image:linear-gradient(to bottom,#fafafa 0,#ededed 100%);background-repeat:repeat-x}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{box-shadow:none;cursor:not-allowed;background-image:linear-gradient(to bottom,#fafafa 0,#ededed 100%);background-repeat:repeat-x}.pagination-sm>li>a,.pagination-sm>li>span{padding:2px 6px;font-size:11px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:1px;border-top-left-radius:1px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:1px;border-top-right-radius:1px}.pagination-sm>li>a,.pagination-sm>li>span{font-weight:400}.pagination-sm>li>a>.i,.pagination-sm>li>span>.i{font-size:12px;margin-top:2px}.content-view-pf-pagination{background-color:#f5f5f5;border:1px solid #d1d1d1;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between}.content-view-pf-pagination.table-view-pf-pagination{border-top:none}.content-view-pf-pagination .form-group{-ms-flex-align:baseline;align-items:baseline;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;float:left;margin:5px}@supports (display:flex){.content-view-pf-pagination .form-group{float:none}}.content-view-pf-pagination .form-group:last-child{-ms-flex-pack:end;justify-content:flex-end;float:right}@supports (display:flex){.content-view-pf-pagination .form-group:last-child{float:none}}.content-view-pf-pagination .form-group .pagination-pf-pagesize.bootstrap-select.btn-group,.content-view-pf-pagination .form-group .pagination-pf-pagesize.btn-group{display:-ms-flexbox;display:flex;float:none;margin-bottom:0;margin-left:0;margin-right:5px;width:auto}.content-view-pf-pagination .form-group .dropdown-menu{min-width:auto}.content-view-pf-pagination .pagination-pf-page{margin-left:10px;margin-right:5px;padding:0 2px 2px;text-align:right;width:2.5em}.content-view-pf-pagination .pagination{display:-ms-flexbox;display:flex;margin:0 0 0 10px}.content-view-pf-pagination .pagination a{float:none}@supports (display:flex){.content-view-pf-pagination .pagination a{display:block}}.panel-title{font-weight:700}.panel-group .panel{color:#4d5258}.panel-group .panel+.panel{margin-top:-1px}.panel-group .panel-default{border-color:#bbb;border-top-color:#bbb}.panel-group .panel-default .panel-heading{background-image:linear-gradient(to bottom,#fafafa 0,#ededed 100%);background-repeat:repeat-x}.panel-group .panel-default .panel-heading+.panel-collapse .panel-body{border-top:1px solid #d1d1d1}.panel-group .panel-info{border-color:#00659c}.panel-group .panel-info .panel-heading{background-color:#dae5f4}.panel-group .panel-info+.panel-default{border-top-color:#00659c}.panel-group .panel-primary{border-color:#39a5dc}.panel-group .panel-primary .panel-heading{background-color:#def0f9}.panel-group .panel-primary+.panel-default{border-top-color:#39a5dc}.panel-group .panel-primary+.panel-info{border-top-color:#39a5dc}.panel-group .panel-success{border-color:#3f9c35}.panel-group .panel-success .panel-heading{background-color:#e9f4e9}.panel-group .panel-success+.panel-default{border-top-color:#3f9c35}.panel-group .panel-success+.panel-info{border-top-color:#3f9c35}.panel-group .panel-success+.panel-primary{border-top-color:#3f9c35}.panel-group .panel-warning{border-color:#ec7a08}.panel-group .panel-warning .panel-heading{background-color:#fdf2e5}.panel-group .panel-warning+.panel-default{border-top-color:#ec7a08}.panel-group .panel-warning+.panel-info{border-top-color:#ec7a08}.panel-group .panel-warning+.panel-primary{border-top-color:#ec7a08}.panel-group .panel-warning+.panel-success{border-top-color:#ec7a08}.panel-group .panel-danger{border-color:#c00}.panel-group .panel-danger .panel-heading{background-color:#ffe6e6}.panel-group .panel-danger+.panel-default{border-top-color:#c00}.panel-group .panel-danger+.panel-info{border-top-color:#c00}.panel-group .panel-danger+.panel-primary{border-top-color:#c00}.panel-group .panel-danger+.panel-success{border-top-color:#c00}.panel-group .panel-danger+.panel-warning{border-top-color:#c00}.panel-group .panel-title{font-weight:500;line-height:1}.panel-group .panel-title>a{color:#4d5258;font-weight:600}.panel-group .panel-title>a:before{content:"\f107";display:inline-block;font-family:FontAwesome;font-size:13px;margin-right:5px;text-align:center;vertical-align:0;width:8px}.panel-group .panel-title>a:focus{outline:0;text-decoration:none}.panel-group .panel-title>a:hover{text-decoration:none}.panel-group .panel-title>a.collapsed:before{content:"\f105"}.popover{box-shadow:0 2px 2px rgba(3,3,3,.08);padding:0}.popover.bottom .popover-title:before{content:"";position:absolute;top:-20px;left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%);border-top-width:0;border-width:10px;border-color:transparent;border-bottom-color:#f5f5f5;border-style:solid}.popover-content{color:#4d5258;line-height:18px;padding:10px 14px}.popover-title{border-bottom:none;border-radius:0;color:#4d5258;font-size:13px;font-weight:700;min-height:34px}.popover-title .close{height:22px;position:absolute;right:8px;top:6px}.popover-title.closable{padding-right:30px}.popover-pf-info{color:#292e34}.popover-pf-info:active,.popover-pf-info:hover{color:#00659c}@keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}.progress{box-shadow:inset 0 0 1px rgba(3,3,3,.25)}.progress.progress-label-left,.progress.progress-label-top-right{overflow:visible;position:relative}.progress.progress-label-left{margin-left:40px}.progress.progress-sm{height:14px;margin-bottom:14px}.progress.progress-xs{height:6px;margin-bottom:6px}td>.progress:first-child:last-child{margin-bottom:0;margin-top:3px}.progress-bar{box-shadow:none}.progress-label-left .progress-bar span,.progress-label-right .progress-bar span,.progress-label-top-right .progress-bar span{color:#363636;position:absolute;text-align:right}.progress-label-left .progress-bar span{font-size:14px;left:-40px;top:0;width:35px}.progress-label-right .progress-bar span,.progress-label-top-right .progress-bar span{font-size:11px;overflow:hidden;right:0;text-overflow:ellipsis;white-space:nowrap}.progress-label-right .progress-bar span strong,.progress-label-top-right .progress-bar span strong{font-weight:600}.progress-label-right .progress-bar span{max-width:85px;top:0}.progress-label-top-right .progress-bar span{max-width:47%;top:-30px}.progress-label-left.progress-sm .progress-bar span,.progress-label-top-right.progress-sm .progress-bar span{font-size:12px}.progress-sm .progress-bar{line-height:14px}.progress-xs .progress-bar{line-height:6px}.progress-bar-remaining{background:0 0}.progress-container{position:relative}.progress-container.progress-description-left{padding-left:90px}.progress-container.progress-label-right{padding-right:90px}.progress-description{margin-bottom:10px;max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-description .count{font-size:20.004px;font-weight:300;line-height:1;margin-right:5px}.progress-description .fa,.progress-description .fab,.progress-description .fal,.progress-description .far,.progress-description .fas,.progress-description .pficon{font-size:14px;margin-right:3px}.progress-description-left .progress-description{left:0;margin-bottom:0;max-width:85px;position:absolute;top:0}.progress-description .tooltip{white-space:normal}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:2px 10px 3px}.table>tbody>tr>td>a:hover,.table>tbody>tr>th>a:hover,.table>tfoot>tr>td>a:hover,.table>tfoot>tr>th>a:hover,.table>thead>tr>td>a:hover,.table>thead>tr>th>a:hover{text-decoration:none}.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>th{font-family:"Open Sans";font-style:normal;font-weight:600}.table>thead{background-clip:padding-box;background-color:#f5f5f5;background-image:linear-gradient(to bottom,#fafafa 0,#ededed 100%);background-repeat:repeat-x}.table-bordered{border:1px solid #d1d1d1}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #d1d1d1}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:1px}.table-striped>tbody>tr:nth-of-type(even){background-color:#f5f5f5}.table-striped>tbody>tr:nth-of-type(odd){background-color:transparent}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#def3ff;border-bottom-color:#7dc3e8}.table-treegrid span.indent{margin-left:10px;margin-right:10px}.table-treegrid span.icon{display:inline-block;font-size:13px;margin-right:5px;min-width:10px;text-align:center}.table-treegrid span.collapse-icon,.table-treegrid span.expand-icon{cursor:pointer}.table-treegrid>tbody>tr.odd{background-color:#f5f5f5}.nav-tabs{font-size:14px}.nav-tabs>li>a{color:#4d5258;margin-right:-1px;padding-bottom:5px;padding-top:5px}.nav-tabs>li>a:active,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{background:0 0;border-color:#ededed;color:#252525}.nav-tabs>li>.dropdown-menu{border-top:0;border-color:#ededed}.nav-tabs>li>.dropdown-menu.pull-right{right:-1px}.nav-tabs+.nav-tabs-pf,.nav-tabs.nav-tabs-pf-secondary{font-size:12px}.nav-tabs+.nav-tabs-pf>li:first-child>a,.nav-tabs.nav-tabs-pf-secondary>li:first-child>a{padding-left:15px}.nav-tabs+.nav-tabs-pf>li:first-child>a:before,.nav-tabs.nav-tabs-pf-secondary>li:first-child>a:before{left:15px!important}.nav-tabs .open>a,.nav-tabs .open>a:focus,.nav-tabs .open>a:hover{background-color:transparent;border-color:#ededed}@media (min-width:768px){.nav-tabs-pf.nav-justified{border-bottom:1px solid #ededed}}.nav-tabs-pf.nav-justified>li:first-child>a{padding-left:15px}.nav-tabs-pf.nav-justified>li>a{border-bottom:0}.nav-tabs-pf.nav-justified>li>a:before{left:0!important;right:0!important}.nav-tabs-pf>li{margin-bottom:0}.nav-tabs-pf>li.active>a:before{background:#0088ce;bottom:-1px;content:"";display:block;height:2px;left:15px;position:absolute;right:15px}.nav-tabs-pf>li.active>a,.nav-tabs-pf>li.active>a:active,.nav-tabs-pf>li.active>a:focus,.nav-tabs-pf>li.active>a:hover{background-color:transparent;border:0!important;color:#0088ce}.nav-tabs-pf>li.active>a:active:before,.nav-tabs-pf>li.active>a:before,.nav-tabs-pf>li.active>a:focus:before,.nav-tabs-pf>li.active>a:hover:before{background:#0088ce}.nav-tabs-pf>li:first-child>a{padding-left:0}.nav-tabs-pf>li:first-child>a:before{left:0!important}.nav-tabs-pf>li>a{border:0;line-height:1;margin-right:0;padding-bottom:10px;padding-top:10px}.nav-tabs-pf>li>a:active:before,.nav-tabs-pf>li>a:focus:before,.nav-tabs-pf>li>a:hover:before{background:#bbb;bottom:-1px;content:"";display:block;height:2px;left:15px;position:absolute;right:15px}.nav-tabs-pf>li>.dropdown-menu{left:15px;margin-top:1px}.nav-tabs-pf>li>.dropdown-menu.pull-right{left:auto;right:15px}.nav-tabs-pf .open>a,.nav-tabs-pf .open>a:focus,.nav-tabs-pf .open>a:hover{background-color:transparent}.tooltip{font-size:12px;line-height:1.4}.tooltip-inner{padding:7px 12px;text-align:left}.h1,.h2,h1,h2{font-weight:300}.page-header .actions{margin-top:8px}.page-header .actions a>.pficon{margin-right:4px}@media (min-width:767px){.page-header-bleed-left{margin-left:-20px}.page-header-bleed-right{margin-right:-20px}.page-header-bleed-right .actions{margin-right:20px}}
\ No newline at end of file
diff --git a/dist/css/rcue.min.css.map b/dist/css/rcue.min.css.map
new file mode 100644
index 0000000000..3e100984c2
--- /dev/null
+++ b/dist/css/rcue.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["src/less/fonts.less","tests/build/less/rcue.css","node_modules/bootstrap/less/normalize.less","node_modules/bootstrap/less/print.less","node_modules/bootstrap/less/glyphicons.less","node_modules/bootstrap/less/scaffolding.less","node_modules/bootstrap/less/mixins/vendor-prefixes.less","src/less/variables.less","node_modules/bootstrap/less/mixins/tab-focus.less","node_modules/bootstrap/less/carousel.less","node_modules/bootstrap/less/thumbnails.less","node_modules/bootstrap/less/mixins/image.less","node_modules/bootstrap/less/type.less","node_modules/bootstrap/less/mixins/text-emphasis.less","node_modules/bootstrap/less/mixins/background-variant.less","node_modules/bootstrap/less/mixins/text-overflow.less","node_modules/bootstrap/less/code.less","node_modules/bootstrap/less/grid.less","node_modules/bootstrap/less/mixins/grid.less","node_modules/bootstrap/less/mixins/grid-framework.less","node_modules/bootstrap/less/tables.less","node_modules/bootstrap/less/mixins/table-row.less","node_modules/bootstrap/less/forms.less","node_modules/bootstrap/less/mixins/forms.less","src/less/bootstrap-mixin-overrides.less","node_modules/bootstrap/less/buttons.less","node_modules/bootstrap/less/mixins/buttons.less","node_modules/bootstrap/less/mixins/opacity.less","node_modules/bootstrap/less/button-groups.less","node_modules/bootstrap/less/component-animations.less","node_modules/bootstrap/less/dropdowns.less","node_modules/bootstrap/less/mixins/nav-divider.less","node_modules/bootstrap/less/mixins/border-radius.less","node_modules/bootstrap/less/input-groups.less","node_modules/bootstrap/less/navs.less","node_modules/bootstrap/less/navbar.less","node_modules/bootstrap/less/mixins/nav-vertical-align.less","node_modules/bootstrap/less/utilities.less","node_modules/font-awesome/less/bordered-pulled.less","node_modules/bootstrap/less/breadcrumbs.less","node_modules/bootstrap/less/pagination.less","node_modules/bootstrap/less/mixins/pagination.less","node_modules/bootstrap/less/pager.less","node_modules/bootstrap/less/labels.less","node_modules/bootstrap/less/mixins/labels.less","node_modules/bootstrap/less/badges.less","node_modules/bootstrap/less/jumbotron.less","node_modules/bootstrap/less/alerts.less","node_modules/bootstrap/less/mixins/alerts.less","node_modules/bootstrap/less/progress-bars.less","node_modules/bootstrap/less/mixins/gradients.less","node_modules/bootstrap/less/mixins/progress-bar.less","node_modules/bootstrap/less/media.less","node_modules/bootstrap/less/list-group.less","node_modules/bootstrap/less/mixins/list-group.less","node_modules/bootstrap/less/panels.less","node_modules/bootstrap/less/mixins/panels.less","node_modules/bootstrap/less/responsive-embed.less","node_modules/bootstrap/less/wells.less","node_modules/bootstrap/less/close.less","node_modules/bootstrap/less/modals.less","node_modules/bootstrap/less/tooltip.less","node_modules/bootstrap/less/mixins/reset-text.less","node_modules/bootstrap/less/popovers.less","node_modules/bootstrap/less/mixins/clearfix.less","node_modules/bootstrap/less/mixins/center-block.less","node_modules/bootstrap/less/mixins/hide-text.less","node_modules/bootstrap/less/responsive-utilities.less","node_modules/bootstrap/less/mixins/responsive-visibility.less","node_modules/font-awesome/less/path.less","node_modules/font-awesome/less/core.less","node_modules/font-awesome/less/larger.less","node_modules/font-awesome/less/fixed-width.less","node_modules/font-awesome/less/list.less","node_modules/font-awesome/less/animated.less","node_modules/font-awesome/less/rotated-flipped.less","node_modules/font-awesome/less/mixins.less","node_modules/font-awesome/less/stacked.less","node_modules/font-awesome/less/icons.less","node_modules/font-awesome/less/variables.less","node_modules/font-awesome/less/screen-reader.less","src/less/mixins.less","src/less/alerts.less","src/less/badges.less","src/less/breadcrumbs.less","src/less/buttons.less","src/less/dropdowns.less","src/less/forms.less","src/less/labels.less","src/less/list-group.less","src/less/modals.less","src/less/pager.less","src/less/pagination.less","src/less/panels.less","src/less/popovers.less","src/less/progress-bars.less","src/less/tables.less","src/less/tabs.less","src/less/tooltip.less","src/less/type.less"],"names":[],"mappings":"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A,aADY,UACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,YAciB,gBACjB,MAAA,KADiB,gBACjB,MAAA,aADiB,gBACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,YAIW,eACX,MAAA,KAhBiB,gBACjB,KAAA,KADiB,gBACjB,KAAA,aADiB,gBACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,YAIW,eACX,KAAA,KAcmB,kBACnB,YAAA,KADmB,kBACnB,YAAA,aADmB,kBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,YADmB,iBACnB,YAAA,EFT+B,yBEzB/B,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UACE,MAAA,KAOU,WACZ,MAAA,KADY,WACZ,MAAA,aADY,WACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,YAciB,gBACjB,MAAA,KADiB,gBACjB,MAAA,aADiB,gBACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,YAIW,eACX,MAAA,KAhBiB,gBACjB,KAAA,KADiB,gBACjB,KAAA,aADiB,gBACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,YAIW,eACX,KAAA,KAcmB,kBACnB,YAAA,KADmB,kBACnB,YAAA,aADmB,kBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,YADmB,iBACnB,YAAA,GFA+B,yBElC/B,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UACE,MAAA,KAOU,WACZ,MAAA,KADY,WACZ,MAAA,aADY,WACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,YAciB,gBACjB,MAAA,KADiB,gBACjB,MAAA,aADiB,gBACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,YAIW,eACX,MAAA,KAhBiB,gBACjB,KAAA,KADiB,gBACjB,KAAA,aADiB,gBACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,YAIW,eACX,KAAA,KAcmB,kBACnB,YAAA,KADmB,kBACnB,YAAA,aADmB,kBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,YADmB,iBACnB,YAAA,GFS+B,0BE3C/B,UAAA,WAAA,WAAA,WAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UAAA,UACE,MAAA,KAOU,WACZ,MAAA,KADY,WACZ,MAAA,aADY,WACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,aADY,UACZ,MAAA,IADY,UACZ,MAAA,aADY,UACZ,MAAA,YAciB,gBACjB,MAAA,KADiB,gBACjB,MAAA,aADiB,gBACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,aADiB,eACjB,MAAA,IADiB,eACjB,MAAA,aADiB,eACjB,MAAA,YAIW,eACX,MAAA,KAhBiB,gBACjB,KAAA,KADiB,gBACjB,KAAA,aADiB,gBACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,aADiB,eACjB,KAAA,IADiB,eACjB,KAAA,aADiB,eACjB,KAAA,YAIW,eACX,KAAA,KAcmB,kBACnB,YAAA,KADmB,kBACnB,YAAA,aADmB,kBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,IADmB,iBACnB,YAAA,aADmB,iBACnB,YAAA,YADmB,iBACnB,YAAA,GCnEJ,MACE,iBAAA,YAEF,QACE,YAAA,KACA,eAAA,KAC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lB,QDlhBY,oBAAU,QCgMlB,QD/LmB,+BAAU,QCYlB,QDXM,6BAAU,QCclB,QDbJ,iBAAU,QCqWlB,QDpWgB,yBAAU,QCwelB,QDteC,kBADM,wBACI,QCsgBlB,QDrgBS,mBAAU,QCggBlB,QD/fS,oBAAU,QCwYlB,QDvYI,gBAAU,QC2YlB,QD1YQ,gBAAU,QC4PlB,QD3Pc,sBAAU,QCoUlB,QDnUQ,sBAAU,QCitBlB,QDhtBS,uBAAU,QC+sBlB,QD9sBM,qBAAU,QCgtBlB,QD/sBK,kBAAU,QCyelB,QDxeS,mBAAU,QCwBlB,QDvBI,eAAU,QCymBlB,QDxmBS,gBAAU,QCymBlB,QDxmBQ,gBAAU,QCyDlB,QDxDY,oBAAU,QCyDlB,QDxDK,iBAAU,QC+dlB,QD9dS,kBAAU,QC2ElB,QD1EM,gBAAU,QC0PlB,QDzPQ,gBAAU,QCiDlB,QDhDU,kBAAU,QC0VlB,QDzVa,uBAAU,QCwmBlB,QDvmBO,sBAAU,QCwmBlB,QDvmBQ,sBAAU,QCpClB,QDqCU,wBAAU,QCvClB,QDwCO,uBAAU,QCrClB,QDsCU,yBAAU,QCxClB,QDyCD,gBAAU,QC+WlB,QD9WU,kBACC,mBAAU,QC2alB,QD1aO,kBAAU,QCsUlB,QDrUc,wBAAU,QCkrBlB,QDhrBC,iBADA,iBAEI,qBAAU,QC0blB,QDzbK,kBAAU,QCkblB,QDjbY,sBAAU,QCwXlB,QDvXI,kBAAU,QCtDlB,QDuDM,gBAAU,QCmnBlB,QDlnBQ,gBACW,2BAAU,QC+alB,QD9aO,0BAAU,QC8flB,QD7fQ,0BAAU,QC+ElB,QD9EA,kBAAU,QCzBlB,QD0Be,yBAAU,QCmjBlB,QDljBQ,yBAAU,QCqLlB,QDpLG,oBAAU,QClBlB,QDmBI,gBAAU,QCsblB,QDrbS,iBAAU,QCgalB,QD/ZO,gBAAU,QCmjBlB,QDljBW,mBAAU,QC+NlB,QD9Na,wBAAU,QCgLlB,QD/KQ,wBAAU,QC4iBlB,QD3iBC,iBAAU,QC+IlB,QD9Ie,wBAAU,QCyElB,QDxES,yBAAU,QCyElB,QDxEM,uBAAU,QCkblB,QDjbS,wBAAU,QCuXlB,QDtXQ,wBAAU,QC2lBlB,QD1lBQ,wBAAU,QC2DlB,QD1DW,2BAAU,QCyblB,QDxbI,uBAAU,QC0SlB,QDzSO,sBAAU,QC0GlB,QDzGY,0BAAU,QCulBlB,QDtlBQ,0BAAU,QCuDlB,QDtDH,eAAU,QCnClB,QDoCe,sBAAU,QCnDlB,QDoDS,uBAAU,QCnDlB,QDoDK,oBAAU,QCnDlB,QDoDU,sBAAU,QCvDlB,QDwDU,wBACP,iBAAU,QC4dlB,QD3dS,kBAAU,QC8IlB,QD7IU,oBAAU,QCsFlB,QDrFI,gBAAU,QC+ZlB,QD9ZS,iBAAU,QCoWlB,QDnWW,oBAAU,QCpDlB,QDqDkB,8BAAU,QCuIlB,QDtIN,gBAAU,QCkNlB,QDjNQ,gBAAU,QC0SlB,QDzSQ,gBAAU,QC6KlB,QD5KO,eAAU,QCyIlB,QDxIc,qBAAU,QCyIlB,QDvImB,gCADb,mBACuB,QCiIlB,QDhIP,iBAAU,QC+YlB,QD9YW,oBAAU,QCAlB,QDCM,kBAAU,QCoalB,QDnaS,mBAAU,QCgElB,QD/DO,kBAAU,QC6TlB,QD5TY,sBAAU,QCuClB,QDtCU,wBAAU,QCmClB,QDlCG,mBAAU,QC+alB,QD9ac,yBAAU,QCkdlB,QDjdC,kBAAU,QC0KlB,QDzKa,uBAAU,QC2KlB,QD1KK,oBAAU,QC3ElB,QD4EQ,oBAAU,QC7ElB,QD8EW,uBACF,qBAAU,QClElB,QDmEa,0BAAU,QC+kBlB,QD9kBS,2BAAU,QC4HlB,QD3HK,wBAAU,QCTlB,QDUD,eAAU,QC2QlB,QDzQS,gBADC,iBACS,QC6ClB,QD5CY,oBAAU,QCkDlB,QDjDW,uBAAU,QCsiBlB,QDriBU,yBAAU,QCoiBlB,QDniBI,qBAAU,QC2elB,QD1eM,mBAAU,QC8NlB,QD7NS,oBAAU,QCoclB,QDnce,2BAAU,QCuRlB,QDtRG,sBAAU,QC6hBlB,QD5hBW,yBAAU,QCsGlB,QDrGE,mBAAU,QC8blB,QD7bO,kBAAU,QCqjBlB,QDpjBe,yBAAU,QCgLlB,QD/KC,kBAAU,QCukBlB,QDtkBS,mBAAU,QCqQlB,QDpQM,iBAAU,QCiWlB,QDhWW,oBAAU,QC2dlB,QD1dU,sBAAU,QCjDlB,QDkDU,wBAAU,QC+VlB,QD9VG,mBAAU,QCsjBlB,QDrjBW,sBACF,oBAAU,QCgGlB,QD/FM,kBAAU,QCoKlB,QDnKQ,kBAAU,QC0jBlB,QDzjBa,uBAAU,QCoClB,QDnCC,gBACD,eAAU,QC+YlB,QD9YU,iBAAU,QCoMlB,QDnMW,oBAAU,QCrDlB,QDsDI,gBAAU,QChFlB,QDiFe,uBAAU,QCrBlB,QDsBS,wBAAU,QCoLlB,QDnLO,uBAAU,QCkLlB,QDjLM,qBAAU,QCmLlB,QDlLU,uBAAU,QC+KlB,QD9Kc,6BAAU,QCrIlB,QDsIS,8BAAU,QCjIlB,QDkIK,2BAAU,QCjIlB,QDkIU,6BAAU,QCzIlB,QD0IJ,iBAAU,QC2JlB,QD1JS,kBAAU,QC6lBlB,QD5lBO,iBAAU,QCqelB,QDpeS,kBAAU,QCyGlB,QDxGW,qBAAU,QCzElB,QD0ES,sBAAU,QClIlB,QDmIG,iBACA,iBAAU,QCijBlB,QDhjBQ,iBACD,gBAAU,QC4OlB,QD3OS,iBAAU,QCdlB,QDeQ,iBAAU,QC0GlB,QDzGM,eACK,oBAAU,QC6XlB,QD5XI,gBACG,mBAAU,QC2FlB,QD1FU,qBAAU,QC6SlB,QD3SO,oBADJ,gBACc,QCqGlB,QDpGM,kBAAU,QCgblB,QD7aM,gBAFG,mBACA,mBACO,QClIlB,QDmIW,mBAAU,QCsOlB,QDrOQ,mBAAU,QCoOlB,QDnOc,yBAAU,QC+blB,QD9bI,qBAAU,QC2gBlB,QD1gBI,iBAAU,QCuclB,QDtcQ,iBAAU,QCyOlB,QDxOQ,iBAAU,QC6flB,QD5fY,qBAAU,QCmTlB,QDlTe,4BAAU,QCoTlB,QDnTU,8BAAU,QCgIlB,QD/HC,uBAAU,QC4HlB,QD3HE,iBAAU,QCqQlB,QDpQa,sBAAU,QCpFlB,QDqFM,oBAAU,QC9ElB,QD+EU,sBAAU,QCrFlB,QDsFS,uBAAU,QCrFlB,QDsFI,mBAAU,QChClB,QDkCK,gBADI,oBACM,QC0YlB,QDxYa,qBADA,qBACU,QC8YlB,QD5YO,oBADD,mBACW,QC2YlB,QD1YQ,oBAAU,QCUlB,QDTQ,oBAAU,QCuMlB,QDtMW,uBACP,gBAAU,QCqflB,QDnfS,iBADA,iBACU,QCoFlB,QDnFY,qBACC,sBAAU,QC+alB,QD9aO,qBAAU,QC7ClB,QD8CS,sBAAU,QC1ClB,QD4CE,gBADC,iBACS,QCpIlB,QDqIW,mBAAU,QC6WlB,QD5WS,oBAAU,QCyelB,QDveS,qBADJ,iBACc,QCrElB,QDsEU,uBAAU,QCqLlB,QDpLK,oBAAU,QCGlB,QDFc,0BAAU,QCnElB,QDoEM,wBAAU,QCnElB,QDoEG,mBAAU,QCiflB,QDhfY,uBAAU,QC8YlB,QD7YK,oBAAU,QCyZlB,QDxZM,kBAAU,QC9JlB,QD+JQ,kBAAU,QClElB,QDmES,mBAAU,QC1ClB,QD2CY,uBAAU,QC8BlB,QD7BO,sBAAU,QC1IlB,QD2IQ,sBAAU,QCsHlB,QDrHO,qBAAU,QCrOlB,QDsOK,kBAAU,QC4MlB,QD3Ma,uBAAU,QCUlB,QDTC,gBAAU,QC3KlB,QD4KY,oBAAU,QCuFlB,QDtFW,uBAAU,QC2QlB,QD1Qc,6BAAU,QCrOlB,QDsOS,8BAAU,QCrOlB,QDsOK,2BAAU,QCrOlB,QDsOU,6BAAU,QCzOlB,QD0OC,sBAAU,QCrOlB,QDsOS,uBAAU,QCrOlB,QDsOK,oBAAU,QCrOlB,QDsOU,sBAAU,QCzOlB,QD0OK,mBAAU,QCpDlB,QDqDO,kBAAU,QC4IlB,QD3IQ,kBAAU,QCwYlB,QDvYc,wBACN,kBAAU,QCuMlB,QDtMU,oBAAU,QCzGlB,QD0GU,sBAAU,QCyQlB,QDxQS,uBAAU,QCyQlB,QDxQI,mBAAU,QC+VlB,QD9VO,kBAAU,QC9GlB,QD+GY,sBACL,iBAAU,QCoRlB,QDnRa,sBAAU,QC+ClB,QD9CM,oBAAU,QCmBlB,QDlBa,yBAAU,QCoBlB,QDnBE,mBAAU,QCqUlB,QDpUQ,mBAAU,QC2BlB,QD1BM,iBAAU,QCgLlB,QD/KU,mBAAU,QC2BlB,QD1BW,sBAAU,QCuHlB,QDtHI,kBAAU,QCMlB,QDLgB,0BAAU,QCIlB,QDHE,oBAAU,QC6XlB,QD5XI,gBAAU,QChHlB,QDiHkB,0BACL,qBAAU,QCuQlB,QDtQc,2BACD,0BACH,uBAAU,QCsVlB,QDrVW,0BAAU,QCwIlB,QDvIF,gBAAU,QChGlB,QDiGa,qBAAU,QCvHlB,QDyHW,wBADN,kBACgB,QCtJlB,QDuJI,oBAAU,QCyOlB,QDxOI,gBAAU,QC0FlB,QDzFe,uBAAU,QC1DlB,QD2DQ,uBAAU,QCkWlB,QDjWM,qBAAU,QC4VlB,QD3VK,kBAAU,QClElB,QDmEc,wBAAU,QCgOlB,QD/NM,sBAAU,QC2JlB,QD1Jc,4BAAU,QC2JlB,QD1JF,kBAAU,QCsRlB,QDrRY,sBAAU,QC5LlB,QD6Le,6BAAU,QCxBlB,QDyBH,kBAAU,QCuPlB,QDtPQ,kBAAU,QC6IlB,QD5IqB,+BAAU,QC9JlB,QD+JS,gCAAU,QC9JlB,QD+JK,6BAAU,QC9JlB,QD+JU,+BAAU,QClKlB,QDmKN,iBAAU,QC8DlB,QD7DO,gBAAU,QCrHlB,QDsHU,kBAAU,QCvSlB,QDwSY,sBAAU,QC2ZlB,QD1ZM,oBAAU,QChNlB,QDiNU,sBAAU,QC7FlB,QD8FQ,sBAAU,QC7FlB,QD8FQ,sBAAU,QC+OlB,QD9OS,uBAAU,QCiMlB,QDhMG,kBAAU,QC6WlB,QD5Wc,wBAAU,QC0IlB,QDzIU,0BAAU,QC0IlB,QDzIE,oBAAU,QCqFlB,QDpFU,sBAAU,QCmFlB,QDlFU,wBAAU,QCnLlB,QDoLS,yBAAU,QC0KlB,QDzKe,gCAAU,QCpFlB,QDqFA,wBAAU,QCwPlB,QDvPG,mBAAU,QCjJlB,QDmJoB,+BADR,uBACkB,QC/MlB,QDiNM,6BADR,qBACkB,QC9MlB,QDgNW,gCADR,wBACkB,QCjNlB,QDmNT,eADC,gBACS,QCvGlB,QDwGQ,eAAU,QChClB,QDiCW,kBACH,eAAU,QCqYlB,QDnYQ,eADE,iBACQ,QC4ClB,QD3CQ,eAGA,eAFA,eACA,eACU,QCgDlB,QD9CW,kBACH,eAFE,iBAEQ,QCiNlB,QD/MQ,eADA,eACU,QC+ClB,QD9CY,mBACJ,eAAU,QC3PlB,QD4PS,gBAAU,QChGlB,QDiGa,qBAAU,QCpFlB,QDqFa,0BAAU,QC0PlB,QDzPS,2BAAU,QC0PlB,QDzPQ,2BAAU,QC0PlB,QDzPS,4BAAU,QC0PlB,QDzPQ,4BAAU,QC6PlB,QD5PS,6BAAU,QC6PlB,QD5PA,qBAAU,QCkUlB,QDjUU,uBAAU,QC8TlB,QD7TW,0BAAU,QCyalB,QDxaC,mBAAU,QCsalB,QDraK,gBAAU,QC2ZlB,QD1Ze,uBAAU,QC2ZlB,QD1ZS,wBAAU,QCoalB,QDnaG,mBAAU,QCxJlB,QDyJe,0BAAU,QC8PlB,QD7PG,qBAAU,QCgBlB,QDfK,kBAAU,QCpFlB,QDqFK,eAAU,QC3WlB,QD4Wc,qBAAU,QC/RlB,QDgSe,4BAAU,QC/RlB,QDgSF,kBAAU,QC+UlB,QD9Ue,yBAAU,QC+UlB,QD9UU,2BAAU,QCgDlB,QD/CM,yBAAU,QCkDlB,QDjDU,2BAAU,QC+ClB,QD9CS,4BAAU,QC+ClB,QD9CH,iBAAU,QCjWlB,QDkWU,mBAAU,QCmYlB,QDlYQ,mBAAU,QC7WlB,QD8WM,iBAAU,QCkClB,QDjCW,oBAAU,QC5KlB,QD6KK,iBAAU,QCgNlB,QD/Ma,sBAAU,QCxFlB,QDyFI,kBAAU,QC4TlB,QD3TQ,kBAAU,QCtIlB,QDuIM,gBAAU,QC6ClB,QD5CU,kBACE,oBAAU,QC5DlB,QD6DK,iBAAU,QC8PlB,QD7PS,kBAAU,QCuElB,QDtES,mBAAU,QC9WlB,QD+WI,eAAU,QCtSlB,QDuSO,cAAU,QCiWlB,QDhWW,iBAAU,QCuWlB,QDtWS,kBAAU,QC+IlB,QD9IW,qBAAU,QCkFlB,QDjFa,0BAAU,QC6NlB,QD5Nc,gCAAU,QC/WlB,QDgXO,+BAAU,QCjXlB,QDmXQ,+BADR,uBACkB,QCzRlB,QD0RC,wBAAU,QCnMlB,QDoMM,sBAAU,QCiWlB,QDhWU,wBAAU,QCoVlB,QDlVD,eADS,wBACC,QC0SlB,QDzSkB,yBAAU,QC0GlB,QDzGQ,yBAAU,QC4MlB,QD3MA,iBAAU,QCsLlB,QDrLkB,2BAAU,QCzLlB,QD0LE,qBAAU,QCoWlB,QDnWK,kBAAU,QC8DlB,QD5DM,gBADO,uBAED,sBAAU,QC8SlB,QD5SY,0BADF,wBACY,QC1FlB,QD2FD,iBAAU,QCsWlB,QDrWS,kBAAU,QClGlB,QDmGQ,kBAAU,QCgHlB,QD/Ge,yBAAU,QCiHlB,QDhHa,8BAAU,QCyNlB,QDxNC,uBAAU,QCuNlB,QDtNM,qBAAU,QC/NlB,QDgOG,gBAAU,QC5NlB,QD6NiB,yBAAU,QC2ElB,QD1ES,0BAAU,QCyElB,QDxEA,kBAAU,QCvNlB,QDwNQ,kBAAU,QCzClB,QD0CU,oBAAU,QCpClB,QDqCG,eAAU,QCtLlB,QDuLa,oBAAU,QC7UlB,QD8UK,iBAAU,QC1RlB,QD2RM,eAAU,QCsDlB,QDrDU,iBAAU,QCmLlB,QDlLO,gBAAU,QCrPlB,QDsPS,iBAAU,QCrPlB,QDsPU,mBAAU,QC7WlB,QD8We,0BAAU,QC7WlB,QD8WD,iBAAU,QC0LlB,QDzLe,wBAAU,QC0LlB,QDzLG,mBAAU,QCyFlB,QDxFW,sBACP,eAAU,QCzUlB,QD0UQ,eACC,gBAAU,QC+MlB,QD9MQ,gBAAU,QC4PlB,QD3PW,mBAAU,QCuKlB,QDtKW,sBAAU,QCtPlB,QDuPQ,sBAAU,QCiKlB,QDhKM,oBAAU,QC9PlB,QD+PU,sBAAU,QC/LlB,QDgMS,uBAAU,QCxLlB,QDyLS,wBAAU,QCrMlB,QDsMa,6BAAU,QC/LlB,QDkMG,wBAFA,wBACE,0BACQ,QCxMlB,QD0MU,0BADJ,sBACc,QC9MlB,QDgNM,wBADA,wBACU,QC/MlB,QDgNQ,wBACA,wBAAU,QCpMlB,QDqMO,uBAAU,QCjNlB,QDkNC,gBAAU,QCuRlB,QDtRW,mBAAU,QC5SlB,QD6SS,oBAAU,QC9ElB,QD+ES,qBACA,qBAGA,qBAFC,sBACH,mBACY,QCnElB,QDoEa,0BAAU,QC/TlB,QDgUJ,cAEG,iBADK,sBACK,QCqDlB,QDnDS,kBADJ,cACc,QCnQlB,QDoQY,sBAAU,QCzKlB,QD0KC,eAAU,QC3KlB,QD8KgB,uBAFQ,+BACV,qBACY,QCxJlB,QDyJU,yBAAU,QC2KlB,QD1KH,cAAU,QCiClB,QDhCY,kBACA,kBAAU,QC0QlB,QDxQa,uBADP,gBACiB,QCVlB,QDYU,yBADP,kBACiB,QCXlB,QDYE,mBAAU,QC1IlB,QD2IY,uBAAU,QClVlB,QDmVG,kBAAU,QCjJlB,QDkJW,qBAAU,QCblB,QDcM,mBAAU,QC+FlB,QD9FU,qBAAU,QCuElB,QDtEe,4BAAU,QCuElB,QDtEJ,gBAAU,QCzZlB,QD2ZY,oBADK,yBACK,QC5MlB,QD6MG,eAAU,QC0MlB,QDzMe,sBAAU,QCxalB,QDyaE,gBAAU,QCIlB,QDHc,sBAAU,QCuFlB,QDtFI,kBAAU,QC2MlB,QD1MM,gBAAU,QC+QlB,QD9Qe,uBAAU,QCzClB,QD0CC,gBAAU,QCwPlB,QDvPc,sBAAU,QCrZlB,QDsZI,kBAAU,QCvBlB,QDwBe,yBAAU,QC3LlB,QD4LE,mBAAU,QC5XlB,QD6Xc,yBAAU,QChYlB,QDiYM,uBAAU,QCnYlB,QDoYI,mBAAU,QCtYlB,QDuYU,qBAAU,QClYlB,QDmYQ,qBAAU,QClYlB,QDmYS,sBAAU,QC3blB,QD4bU,wBAAU,QC3blB,QD4bC,iBAAU,QC+KlB,QD9KY,qBAAU,QCnVlB,QDoVC,cAAU,QC9dlB,QD+dgB,sBAAU,QC5RlB,QD6RS,uBAAU,QC/ClB,QDgDU,yBAAU,QC9blB,QD+bK,sBAAU,QCtflB,QDufO,qBAAU,QC/BlB,QDgCS,sBAAU,QCzHlB,QD0HI,kBAAU,QCvIlB,QDwIe,yBAAU,QCvIlB,QDwIK,sBAAU,QC4JlB,QD3JO,qBAAU,QC4JlB,QD3JM,mBAAU,QCxclB,QDycI,eAAU,QCjblB,QDkbY,mBAAU,QCvJlB,QDwJU,qBAAU,QC3gBlB,QD4gBC,cAAU,QC7ZlB,QDgaS,eAFG,kBACA,kBACO,QCzKlB,QD0Ka,oBAAU,QCpGlB,QDqGU,sBAAU,QCxblB,QDybY,0BAAU,QC5WlB,QD6WE,oBAAU,QC9VlB,QD+VQ,oBAAU,QC9PlB,QD+PO,mBAAU,QCrJlB,QDsJO,kBAAU,QCelB,QDdc,wBAAU,QC2BlB,QD1BO,uBAAU,QCoClB,QDnCK,oBAAU,QCqClB,QDpCS,qBAAU,QC5alB,QD6ac,2BAAU,QC9alB,QD+aA,mBAAU,QC/VlB,QDgWK,gBAAU,QCoBlB,QDnBe,uBAAU,QC8KlB,QD7KO,sBAAU,QC/FlB,QDgGS,uBAAU,QC6ElB,QD5EM,qBAAU,QC9MlB,QD+MI,iBAAU,QC+KlB,QD9KO,gBAAU,QC7HlB,QD8HW,mBAAU,QCnHlB,QDoHS,oBACG,uBAAU,QCkIlB,QDjIY,2BAAU,QCkIlB,QDjIK,wBAAU,QC0KlB,QDzKO,uBAAU,QClIlB,QDmIO,sBAAU,QCyKlB,QDxKS,uBAAU,QCnIlB,QDoIU,yBAAU,QClIlB,QDmIQ,yBAAU,QCpIlB,QDqIC,kBAAU,QC1GlB,QD2GY,sBAAU,QC7QlB,QD8Qe,6BAAU,QC1UlB,QD2UE,uBAAU,QCzElB,QD0EK,oBAAU,QCkLlB,QDjLM,kBAAU,QCXlB,QDYW,qBAAU,QCuJlB,QDtJS,sBAAU,QCwJlB,QDtJC,eADE,iBACQ,QC/flB,QDggBY,mBAAU,QC4JlB,QD3JM,iBAAU,QC8GlB,QD7GS,kBAAU,QCwDlB,QDvDQ,kBAAU,QC9IlB,QDgJc,wBADV,cACoB,QC0LlB,QDzLS,yBAAU,QCjHlB,QDkHG,oBAAU,QCrHlB,QDsHY,wBAAU,QCnWlB,QDoWK,qBAEG,wBADL,mBACe,QC/gBlB,QDghBK,qBACa,kCAAU,QC9gBlB,QD+gBL,qBACG,wBAAU,QClhBlB,QDmhBK,qBACM,2BAAU,QCnhBlB,QDohBE,qBACI,yBAAU,QCxhBlB,QDyhBQ,yBAAU,QC3IlB,QD4IG,oBAAU,QC3OlB,QD4OY,wBAAU,QCxIlB,QDyIU,0BAAU,QCxIlB,QDyIK,uBAAU,QCwBlB,QDvBU,yBAAU,QCwBlB,QDvBC,kBAAU,QC/dlB,QDgegB,0BAAU,QClelB,QDmeD,iBAAU,QCpclB,QDqcgB,yBAAU,QCljBlB,QDmjBM,uBAAU,QCxPlB,QDyPQ,uBACI,2BAAU,QCzPlB,QD0PI,uBACG,0BAAU,QC7PlB,QD8PK,uBACE,yBAAU,QChQlB,QDiQI,qBAAU,QCrQlB,QDsQU,uBACA,uBAAU,QCxRlB,QD0RS,wBADD,uBACW,QC7RlB,QD8RW,2BAAU,QC1RlB,QD2RM,yBAAU,QCpSlB,QDqSO,wBAAU,QC3RlB,QD4RU,0BAAU,QC/RlB,QDgSM,wBAAU,QCjSlB,QDkSK,qBAAU,QC+DlB,QD9DS,sBAAU,QC/FlB,QDgGc,4BAAU,QC/blB,QDgcN,cAAU,QCtUlB,QDuUe,qBAAU,QCtUlB,QDuUU,uBAAU,QCkElB,QDjEU,yBAAU,QCrKlB,QDsKe,gCAAU,QCrKlB,QDsKF,sBAAU,QC5UlB,QD6US,uBAAU,QCwHlB,QDvHG,kBAAU,QCnFlB,QDoFQ,kBAAU,QCzelB,QD0eS,mBAAU,QC9WlB,QD+WM,iBAAU,QCxKlB,QDyKoB,6BAAU,QCpQlB,QDsQC,sBADR,cACkB,QCSlB,QDRI,kBAAU,QCjdlB,QDkdO,iBAAU,QCzoBlB,QD0oBS,kBAAU,QC/nBlB,QDgoBiB,2BAAU,QC3hBlB,QD4hBS,4BAAU,QC9hBlB,QD+hBQ,4BAAU,QC5hBlB,QD6hBQ,4BAAU,QCjiBlB,QDkiBA,oBAAU,QCpRlB,QDqRO,mBAAU,QC5NlB,QD6NU,qBAAU,QC5NlB,QD6NI,iBAAU,QC/NlB,QDgOM,eAAU,QClOlB,QDmOe,sBAAU,QCpelB,QDqeU,wBAAU,QCpelB,QDqeC,iBAAU,QCtSlB,QDuSQ,iBAAU,QCiFlB,QDhFY,qBAAU,QClkBlB,QDmkBQ,qBAAU,QCrXlB,QDsXW,wBAAU,QCpIlB,QDqIA,gBAAU,QCpclB,QDqcmB,2BAAU,QChelB,QDieC,oBAAU,QCpflB,QDqfI,gBAAU,QClNlB,QDmNgB,wBAAU,QC1XlB,QD2XD,eAAU,QCoDlB,QDnDiB,wBAAU,QC3JlB,QD4JI,oBAAU,QCzNlB,QD0NM,kBAAU,QClHlB,QDmHc,wBAAU,QC7LlB,QD8LU,0BAAU,QC7LlB,QD8LK,uBAAU,QC3ClB,QD4CU,yBAAU,QC3ClB,QD4CO,wBAAU,QCrGlB,QDsGW,2BAAU,QCrGlB,QDsGA,mBAAU,QC7UlB,QD8UU,qBAAU,QCnlBlB,QDolBU,uBAAU,QCnlBlB,QDolBI,mBAAU,QC/LlB,QDgMO,kBAAU,QClXlB,QDmXY,sBAAU,QCkFlB,QDjFK,mBAAU,QCmFlB,QDlFO,kBAAU,QC9clB,QD+ckB,4BAAU,QC2BlB,QD1BM,0BAAU,QCmElB,QDlEW,6BAAU,QCxKlB,QDyKJ,iBAAU,QC9lBlB,QD+lBoB,6BAAU,QCtoBlB,QDuoBW,gCAAU,QCqDlB,QDpDL,mBAAU,QCxlBlB,QDylB4B,uCAAU,QC5oBlB,QD8oBgB,+CADnB,4BAC6B,QC9qBlB,QDirBvB,gBAFI,oBACO,2BACD,QCvflB,QDwfS,iBAAU,QChYlB,QDiYU,mBAAU,QChYlB,QDkYc,yBADN,mBACgB,QC1HlB,QD2HK,sBAAU,QCzRlB,QD0RI,kBAAU,QCiClB,QDhCe,yBAAU,QCiClB,QDhCG,oBAAU,QClHlB,QDmHc,0BAAU,QClHlB,QDmHS,2BAAU,QClHlB,QDmHG,sBAAU,QCrNlB,QDsNS,uBAAU,QCpblB,QDqbE,iBAAU,QCmElB,QDlEY,qBAAU,QCpDlB,QDqDiB,8BACE,gCAAU,QCzYlB,QD0YV,cACU,wBAAU,QC7alB,QD8aO,uBAAU,QCtXlB,QDuXU,yBAAU,QClflB,QDmfU,2BAAU,QClflB,QDmfD,kBAAU,QCtTlB,QDuTc,wBAAU,QCptBlB,QDqtBU,0BAAU,QCptBlB,QDstBM,wBADP,iBACiB,QCrtBlB,QDutBU,0BADP,mBACiB,QCttBlB,QDutBK,uBAAU,QCJlB,QDKU,yBAAU,QCJlB,QDKC,kBAAU,QCHlB,QDIU,oBAAU,QC3WlB,QD4We,2BACR,mBAAU,QC5WlB,QD6WkB,6BACR,qBAAU,QC7WlB,QD8WI,iBAAU,QCtNlB,QDuNiB,0BAAU,QC3blB,QD4bE,oBAAU,QCtFlB,QDuFa,yBAEG,4BADL,uBACe,QCxElB,QDyEK,yBACa,sCAAU,QCvElB,QDwEL,yBACG,4BAAU,QC3ElB,QD4EK,yBACM,+BAAU,QC5ElB,QD6EE,yBACI,6BAAU,QCjFlB,QDkFH,kBAAU,QC3KlB,QD8KM,gBAFG,mBACJ,eACW,QCzrBlB,QD0rBW,mBAAU,QClPlB,QDmPgB,2BAAU,QCKlB,QDJQ,2BAAU,QCKlB,QDJO,0BAAU,QCKlB,QDJS,2BACH,wBAAU,QCDlB,QDEa,6BACH,0BAAU,QCFlB,QDGE,oBAAU,QCxsBlB,QDysBI,gBAAU,QCpblB,QDqbQ,gBAAU,QC1hBlB,QD2hBQ,gBAAU,QCxYlB,QDyYW,mBAAU,QC/OlB,QDgPQ,mBAAU,QCziBlB,QD0iBU,qBAAU,QCjUlB,QDkUU,uBAAU,QC7KlB,QD8KQ,uBAAU,QChIlB,QDiIO,sBAAU,QCJlB,QDKI,kBAAU,QCxUlB,QCzchB,SJ8BE,SAAA,SACA,MAAA,IACA,OAAA,IACA,QAAA,EACA,OAAA,KACA,SAAA,OACA,KAAM,cACN,OAAA,EvEoGC,0BACA,yBACC,SAAA,OACA,MA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"}
\ No newline at end of file
diff --git a/dist/fonts/FontAwesome.otf b/dist/fonts/FontAwesome.otf
new file mode 100644
index 0000000000..401ec0f36e
Binary files /dev/null and b/dist/fonts/FontAwesome.otf differ
diff --git a/dist/fonts/OpenSans-Bold-webfont.eot b/dist/fonts/OpenSans-Bold-webfont.eot
new file mode 100644
index 0000000000..ee4ba1e3bb
Binary files /dev/null and b/dist/fonts/OpenSans-Bold-webfont.eot differ
diff --git a/dist/fonts/OpenSans-Bold-webfont.svg b/dist/fonts/OpenSans-Bold-webfont.svg
new file mode 100644
index 0000000000..4774d8c4f9
--- /dev/null
+++ b/dist/fonts/OpenSans-Bold-webfont.svg
@@ -0,0 +1,19028 @@
+
+
+
diff --git a/dist/fonts/OpenSans-Bold-webfont.ttf b/dist/fonts/OpenSans-Bold-webfont.ttf
new file mode 100644
index 0000000000..fd79d43bea
Binary files /dev/null and b/dist/fonts/OpenSans-Bold-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-Bold-webfont.woff b/dist/fonts/OpenSans-Bold-webfont.woff
new file mode 100644
index 0000000000..f501db09f1
Binary files /dev/null and b/dist/fonts/OpenSans-Bold-webfont.woff differ
diff --git a/dist/fonts/OpenSans-Bold-webfont.woff2 b/dist/fonts/OpenSans-Bold-webfont.woff2
new file mode 100644
index 0000000000..34aac6f3cb
Binary files /dev/null and b/dist/fonts/OpenSans-Bold-webfont.woff2 differ
diff --git a/dist/fonts/OpenSans-BoldItalic-webfont.eot b/dist/fonts/OpenSans-BoldItalic-webfont.eot
new file mode 100644
index 0000000000..63f57868bf
Binary files /dev/null and b/dist/fonts/OpenSans-BoldItalic-webfont.eot differ
diff --git a/dist/fonts/OpenSans-BoldItalic-webfont.svg b/dist/fonts/OpenSans-BoldItalic-webfont.svg
new file mode 100644
index 0000000000..f49e45d186
--- /dev/null
+++ b/dist/fonts/OpenSans-BoldItalic-webfont.svg
@@ -0,0 +1,19036 @@
+
+
+
diff --git a/dist/fonts/OpenSans-BoldItalic-webfont.ttf b/dist/fonts/OpenSans-BoldItalic-webfont.ttf
new file mode 100644
index 0000000000..9bc800958a
Binary files /dev/null and b/dist/fonts/OpenSans-BoldItalic-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-BoldItalic-webfont.woff b/dist/fonts/OpenSans-BoldItalic-webfont.woff
new file mode 100644
index 0000000000..80fd8a9848
Binary files /dev/null and b/dist/fonts/OpenSans-BoldItalic-webfont.woff differ
diff --git a/dist/fonts/OpenSans-BoldItalic-webfont.woff2 b/dist/fonts/OpenSans-BoldItalic-webfont.woff2
new file mode 100644
index 0000000000..cc8d731926
Binary files /dev/null and b/dist/fonts/OpenSans-BoldItalic-webfont.woff2 differ
diff --git a/dist/fonts/OpenSans-ExtraBold-webfont.eot b/dist/fonts/OpenSans-ExtraBold-webfont.eot
new file mode 100644
index 0000000000..b7ffbdbc9d
Binary files /dev/null and b/dist/fonts/OpenSans-ExtraBold-webfont.eot differ
diff --git a/dist/fonts/OpenSans-ExtraBold-webfont.svg b/dist/fonts/OpenSans-ExtraBold-webfont.svg
new file mode 100644
index 0000000000..c3d41a7300
--- /dev/null
+++ b/dist/fonts/OpenSans-ExtraBold-webfont.svg
@@ -0,0 +1,19030 @@
+
+
+
diff --git a/dist/fonts/OpenSans-ExtraBold-webfont.ttf b/dist/fonts/OpenSans-ExtraBold-webfont.ttf
new file mode 100644
index 0000000000..21f6f84a07
Binary files /dev/null and b/dist/fonts/OpenSans-ExtraBold-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-ExtraBold-webfont.woff b/dist/fonts/OpenSans-ExtraBold-webfont.woff
new file mode 100644
index 0000000000..af67f189d3
Binary files /dev/null and b/dist/fonts/OpenSans-ExtraBold-webfont.woff differ
diff --git a/dist/fonts/OpenSans-ExtraBold-webfont.woff2 b/dist/fonts/OpenSans-ExtraBold-webfont.woff2
new file mode 100644
index 0000000000..473b2b4517
Binary files /dev/null and b/dist/fonts/OpenSans-ExtraBold-webfont.woff2 differ
diff --git a/dist/fonts/OpenSans-ExtraBoldItalic-webfont.eot b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.eot
new file mode 100644
index 0000000000..70335d8e49
Binary files /dev/null and b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.eot differ
diff --git a/dist/fonts/OpenSans-ExtraBoldItalic-webfont.svg b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.svg
new file mode 100644
index 0000000000..591a19cdce
--- /dev/null
+++ b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.svg
@@ -0,0 +1,19036 @@
+
+
+
diff --git a/dist/fonts/OpenSans-ExtraBoldItalic-webfont.ttf b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.ttf
new file mode 100644
index 0000000000..31cb688340
Binary files /dev/null and b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff
new file mode 100644
index 0000000000..3b8b0717dd
Binary files /dev/null and b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff differ
diff --git a/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff2 b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff2
new file mode 100644
index 0000000000..ff51f4f283
Binary files /dev/null and b/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff2 differ
diff --git a/dist/fonts/OpenSans-Italic-webfont.eot b/dist/fonts/OpenSans-Italic-webfont.eot
new file mode 100644
index 0000000000..6e56f5f8dd
Binary files /dev/null and b/dist/fonts/OpenSans-Italic-webfont.eot differ
diff --git a/dist/fonts/OpenSans-Italic-webfont.svg b/dist/fonts/OpenSans-Italic-webfont.svg
new file mode 100644
index 0000000000..c2f16d1728
--- /dev/null
+++ b/dist/fonts/OpenSans-Italic-webfont.svg
@@ -0,0 +1,19043 @@
+
+
+
diff --git a/dist/fonts/OpenSans-Italic-webfont.ttf b/dist/fonts/OpenSans-Italic-webfont.ttf
new file mode 100644
index 0000000000..c90da48ff3
Binary files /dev/null and b/dist/fonts/OpenSans-Italic-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-Italic-webfont.woff b/dist/fonts/OpenSans-Italic-webfont.woff
new file mode 100644
index 0000000000..9e17567af7
Binary files /dev/null and b/dist/fonts/OpenSans-Italic-webfont.woff differ
diff --git a/dist/fonts/OpenSans-Italic-webfont.woff2 b/dist/fonts/OpenSans-Italic-webfont.woff2
new file mode 100644
index 0000000000..9a96c63fa9
Binary files /dev/null and b/dist/fonts/OpenSans-Italic-webfont.woff2 differ
diff --git a/dist/fonts/OpenSans-Light-webfont.eot b/dist/fonts/OpenSans-Light-webfont.eot
new file mode 100644
index 0000000000..23bc6a9998
Binary files /dev/null and b/dist/fonts/OpenSans-Light-webfont.eot differ
diff --git a/dist/fonts/OpenSans-Light-webfont.svg b/dist/fonts/OpenSans-Light-webfont.svg
new file mode 100644
index 0000000000..ceb267c43b
--- /dev/null
+++ b/dist/fonts/OpenSans-Light-webfont.svg
@@ -0,0 +1,19026 @@
+
+
+
diff --git a/dist/fonts/OpenSans-Light-webfont.ttf b/dist/fonts/OpenSans-Light-webfont.ttf
new file mode 100644
index 0000000000..0d381897da
Binary files /dev/null and b/dist/fonts/OpenSans-Light-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-Light-webfont.woff b/dist/fonts/OpenSans-Light-webfont.woff
new file mode 100644
index 0000000000..fb34cf388c
Binary files /dev/null and b/dist/fonts/OpenSans-Light-webfont.woff differ
diff --git a/dist/fonts/OpenSans-Light-webfont.woff2 b/dist/fonts/OpenSans-Light-webfont.woff2
new file mode 100644
index 0000000000..9a71d1c783
Binary files /dev/null and b/dist/fonts/OpenSans-Light-webfont.woff2 differ
diff --git a/dist/fonts/OpenSans-LightItalic-webfont.eot b/dist/fonts/OpenSans-LightItalic-webfont.eot
new file mode 100644
index 0000000000..cf3a6ffc07
Binary files /dev/null and b/dist/fonts/OpenSans-LightItalic-webfont.eot differ
diff --git a/dist/fonts/OpenSans-LightItalic-webfont.svg b/dist/fonts/OpenSans-LightItalic-webfont.svg
new file mode 100644
index 0000000000..0461c39a60
--- /dev/null
+++ b/dist/fonts/OpenSans-LightItalic-webfont.svg
@@ -0,0 +1,19039 @@
+
+
+
diff --git a/dist/fonts/OpenSans-LightItalic-webfont.ttf b/dist/fonts/OpenSans-LightItalic-webfont.ttf
new file mode 100644
index 0000000000..68299c4bc6
Binary files /dev/null and b/dist/fonts/OpenSans-LightItalic-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-LightItalic-webfont.woff b/dist/fonts/OpenSans-LightItalic-webfont.woff
new file mode 100644
index 0000000000..360f4a4dca
Binary files /dev/null and b/dist/fonts/OpenSans-LightItalic-webfont.woff differ
diff --git a/dist/fonts/OpenSans-LightItalic-webfont.woff2 b/dist/fonts/OpenSans-LightItalic-webfont.woff2
new file mode 100644
index 0000000000..ec0bfee7d0
Binary files /dev/null and b/dist/fonts/OpenSans-LightItalic-webfont.woff2 differ
diff --git a/dist/fonts/OpenSans-Regular-webfont.eot b/dist/fonts/OpenSans-Regular-webfont.eot
new file mode 100644
index 0000000000..8d4b7d9e74
Binary files /dev/null and b/dist/fonts/OpenSans-Regular-webfont.eot differ
diff --git a/dist/fonts/OpenSans-Regular-webfont.svg b/dist/fonts/OpenSans-Regular-webfont.svg
new file mode 100644
index 0000000000..0ec5da573c
--- /dev/null
+++ b/dist/fonts/OpenSans-Regular-webfont.svg
@@ -0,0 +1,19030 @@
+
+
+
diff --git a/dist/fonts/OpenSans-Regular-webfont.ttf b/dist/fonts/OpenSans-Regular-webfont.ttf
new file mode 100644
index 0000000000..db433349b7
Binary files /dev/null and b/dist/fonts/OpenSans-Regular-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-Regular-webfont.woff b/dist/fonts/OpenSans-Regular-webfont.woff
new file mode 100644
index 0000000000..1251d51a64
Binary files /dev/null and b/dist/fonts/OpenSans-Regular-webfont.woff differ
diff --git a/dist/fonts/OpenSans-Regular-webfont.woff2 b/dist/fonts/OpenSans-Regular-webfont.woff2
new file mode 100644
index 0000000000..0964c7c460
Binary files /dev/null and b/dist/fonts/OpenSans-Regular-webfont.woff2 differ
diff --git a/dist/fonts/OpenSans-Semibold-webfont.eot b/dist/fonts/OpenSans-Semibold-webfont.eot
new file mode 100644
index 0000000000..5cf668dc94
Binary files /dev/null and b/dist/fonts/OpenSans-Semibold-webfont.eot differ
diff --git a/dist/fonts/OpenSans-Semibold-webfont.svg b/dist/fonts/OpenSans-Semibold-webfont.svg
new file mode 100644
index 0000000000..81fdf89af4
--- /dev/null
+++ b/dist/fonts/OpenSans-Semibold-webfont.svg
@@ -0,0 +1,19030 @@
+
+
+
diff --git a/dist/fonts/OpenSans-Semibold-webfont.ttf b/dist/fonts/OpenSans-Semibold-webfont.ttf
new file mode 100644
index 0000000000..1a7679e394
Binary files /dev/null and b/dist/fonts/OpenSans-Semibold-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-Semibold-webfont.woff b/dist/fonts/OpenSans-Semibold-webfont.woff
new file mode 100644
index 0000000000..409c725d02
Binary files /dev/null and b/dist/fonts/OpenSans-Semibold-webfont.woff differ
diff --git a/dist/fonts/OpenSans-Semibold-webfont.woff2 b/dist/fonts/OpenSans-Semibold-webfont.woff2
new file mode 100644
index 0000000000..d088697a09
Binary files /dev/null and b/dist/fonts/OpenSans-Semibold-webfont.woff2 differ
diff --git a/dist/fonts/OpenSans-SemiboldItalic-webfont.eot b/dist/fonts/OpenSans-SemiboldItalic-webfont.eot
new file mode 100644
index 0000000000..5b7ffea486
Binary files /dev/null and b/dist/fonts/OpenSans-SemiboldItalic-webfont.eot differ
diff --git a/dist/fonts/OpenSans-SemiboldItalic-webfont.svg b/dist/fonts/OpenSans-SemiboldItalic-webfont.svg
new file mode 100644
index 0000000000..6e9c820743
--- /dev/null
+++ b/dist/fonts/OpenSans-SemiboldItalic-webfont.svg
@@ -0,0 +1,19043 @@
+
+
+
diff --git a/dist/fonts/OpenSans-SemiboldItalic-webfont.ttf b/dist/fonts/OpenSans-SemiboldItalic-webfont.ttf
new file mode 100644
index 0000000000..59b6d16b06
Binary files /dev/null and b/dist/fonts/OpenSans-SemiboldItalic-webfont.ttf differ
diff --git a/dist/fonts/OpenSans-SemiboldItalic-webfont.woff b/dist/fonts/OpenSans-SemiboldItalic-webfont.woff
new file mode 100644
index 0000000000..5431477468
Binary files /dev/null and b/dist/fonts/OpenSans-SemiboldItalic-webfont.woff differ
diff --git a/dist/fonts/OpenSans-SemiboldItalic-webfont.woff2 b/dist/fonts/OpenSans-SemiboldItalic-webfont.woff2
new file mode 100644
index 0000000000..2d20d77050
Binary files /dev/null and b/dist/fonts/OpenSans-SemiboldItalic-webfont.woff2 differ
diff --git a/dist/fonts/PatternFlyIcons-webfont.eot b/dist/fonts/PatternFlyIcons-webfont.eot
new file mode 100644
index 0000000000..3a36879861
Binary files /dev/null and b/dist/fonts/PatternFlyIcons-webfont.eot differ
diff --git a/dist/fonts/PatternFlyIcons-webfont.svg b/dist/fonts/PatternFlyIcons-webfont.svg
new file mode 100644
index 0000000000..2c3738f261
--- /dev/null
+++ b/dist/fonts/PatternFlyIcons-webfont.svg
@@ -0,0 +1,140 @@
+
+
+
\ No newline at end of file
diff --git a/dist/fonts/PatternFlyIcons-webfont.ttf b/dist/fonts/PatternFlyIcons-webfont.ttf
new file mode 100644
index 0000000000..3ad9eebe21
Binary files /dev/null and b/dist/fonts/PatternFlyIcons-webfont.ttf differ
diff --git a/dist/fonts/PatternFlyIcons-webfont.woff b/dist/fonts/PatternFlyIcons-webfont.woff
new file mode 100644
index 0000000000..f019b7f89c
Binary files /dev/null and b/dist/fonts/PatternFlyIcons-webfont.woff differ
diff --git a/dist/fonts/fontawesome-webfont.eot b/dist/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000000..e9f60ca953
Binary files /dev/null and b/dist/fonts/fontawesome-webfont.eot differ
diff --git a/dist/fonts/fontawesome-webfont.svg b/dist/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000000..855c845e53
--- /dev/null
+++ b/dist/fonts/fontawesome-webfont.svg
@@ -0,0 +1,2671 @@
+
+
+
diff --git a/dist/fonts/fontawesome-webfont.ttf b/dist/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000000..35acda2fa1
Binary files /dev/null and b/dist/fonts/fontawesome-webfont.ttf differ
diff --git a/dist/fonts/fontawesome-webfont.woff b/dist/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000000..400014a4b0
Binary files /dev/null and b/dist/fonts/fontawesome-webfont.woff differ
diff --git a/dist/fonts/fontawesome-webfont.woff2 b/dist/fonts/fontawesome-webfont.woff2
new file mode 100644
index 0000000000..4d13fc6040
Binary files /dev/null and b/dist/fonts/fontawesome-webfont.woff2 differ
diff --git a/dist/fonts/glyphicons-halflings-regular.eot b/dist/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000000..b93a4953ff
Binary files /dev/null and b/dist/fonts/glyphicons-halflings-regular.eot differ
diff --git a/dist/fonts/glyphicons-halflings-regular.svg b/dist/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000000..94fb5490a2
--- /dev/null
+++ b/dist/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+
+
\ No newline at end of file
diff --git a/dist/fonts/glyphicons-halflings-regular.ttf b/dist/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000000..1413fc609a
Binary files /dev/null and b/dist/fonts/glyphicons-halflings-regular.ttf differ
diff --git a/dist/fonts/glyphicons-halflings-regular.woff b/dist/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000000..9e612858f8
Binary files /dev/null and b/dist/fonts/glyphicons-halflings-regular.woff differ
diff --git a/dist/fonts/glyphicons-halflings-regular.woff2 b/dist/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000000..64539b54c3
Binary files /dev/null and b/dist/fonts/glyphicons-halflings-regular.woff2 differ
diff --git a/dist/img/Logo_Horizontal_Reversed.svg b/dist/img/Logo_Horizontal_Reversed.svg
new file mode 100644
index 0000000000..5d7d0dc30f
--- /dev/null
+++ b/dist/img/Logo_Horizontal_Reversed.svg
@@ -0,0 +1,49 @@
+
+
+
diff --git a/dist/img/OpenShift-Logo-NoText.svg b/dist/img/OpenShift-Logo-NoText.svg
new file mode 100644
index 0000000000..263ea41560
--- /dev/null
+++ b/dist/img/OpenShift-Logo-NoText.svg
@@ -0,0 +1,51 @@
+
+
+
diff --git a/dist/img/OpenShift-Logo-Text.svg b/dist/img/OpenShift-Logo-Text.svg
new file mode 100644
index 0000000000..35d5289a39
--- /dev/null
+++ b/dist/img/OpenShift-Logo-Text.svg
@@ -0,0 +1,95 @@
+
+
+
diff --git a/dist/img/OpenShift-logo.svg b/dist/img/OpenShift-logo.svg
new file mode 100644
index 0000000000..22d69eea19
--- /dev/null
+++ b/dist/img/OpenShift-logo.svg
@@ -0,0 +1,69 @@
+
+
+
diff --git a/dist/img/RH_Atomic-Logo-NoText.svg b/dist/img/RH_Atomic-Logo-NoText.svg
new file mode 100644
index 0000000000..00ca589aea
--- /dev/null
+++ b/dist/img/RH_Atomic-Logo-NoText.svg
@@ -0,0 +1,53 @@
+
+
+
diff --git a/dist/img/RH_Atomic-Logo-Text.svg b/dist/img/RH_Atomic-Logo-Text.svg
new file mode 100644
index 0000000000..79a0cf7714
--- /dev/null
+++ b/dist/img/RH_Atomic-Logo-Text.svg
@@ -0,0 +1,91 @@
+
+
+
diff --git a/dist/img/RH_atomic.svg b/dist/img/RH_atomic.svg
new file mode 100644
index 0000000000..bc2d070e54
--- /dev/null
+++ b/dist/img/RH_atomic.svg
@@ -0,0 +1,88 @@
+
+
+
+
diff --git a/dist/img/apple-touch-icon-precomposed-114.png b/dist/img/apple-touch-icon-precomposed-114.png
new file mode 100644
index 0000000000..955e38d36b
Binary files /dev/null and b/dist/img/apple-touch-icon-precomposed-114.png differ
diff --git a/dist/img/apple-touch-icon-precomposed-144.png b/dist/img/apple-touch-icon-precomposed-144.png
new file mode 100644
index 0000000000..c5da67c96e
Binary files /dev/null and b/dist/img/apple-touch-icon-precomposed-144.png differ
diff --git a/dist/img/apple-touch-icon-precomposed-152.png b/dist/img/apple-touch-icon-precomposed-152.png
new file mode 100644
index 0000000000..d136a5f5ad
Binary files /dev/null and b/dist/img/apple-touch-icon-precomposed-152.png differ
diff --git a/dist/img/apple-touch-icon-precomposed-180.png b/dist/img/apple-touch-icon-precomposed-180.png
new file mode 100644
index 0000000000..e60a77b821
Binary files /dev/null and b/dist/img/apple-touch-icon-precomposed-180.png differ
diff --git a/dist/img/apple-touch-icon-precomposed-57.png b/dist/img/apple-touch-icon-precomposed-57.png
new file mode 100644
index 0000000000..2c692ad49c
Binary files /dev/null and b/dist/img/apple-touch-icon-precomposed-57.png differ
diff --git a/dist/img/apple-touch-icon-precomposed-72.png b/dist/img/apple-touch-icon-precomposed-72.png
new file mode 100644
index 0000000000..4c2ac89c62
Binary files /dev/null and b/dist/img/apple-touch-icon-precomposed-72.png differ
diff --git a/dist/img/apple-touch-icon-precomposed-76.png b/dist/img/apple-touch-icon-precomposed-76.png
new file mode 100644
index 0000000000..524eec85d3
Binary files /dev/null and b/dist/img/apple-touch-icon-precomposed-76.png differ
diff --git a/dist/img/bg-login-2.png b/dist/img/bg-login-2.png
new file mode 100644
index 0000000000..531d5638b4
Binary files /dev/null and b/dist/img/bg-login-2.png differ
diff --git a/dist/img/bg-login.jpg b/dist/img/bg-login.jpg
new file mode 100644
index 0000000000..3872ebb894
Binary files /dev/null and b/dist/img/bg-login.jpg differ
diff --git a/dist/img/bg-login.png b/dist/img/bg-login.png
new file mode 100644
index 0000000000..c408a6511b
Binary files /dev/null and b/dist/img/bg-login.png differ
diff --git a/dist/img/bg-modal-about-pf.png b/dist/img/bg-modal-about-pf.png
new file mode 100644
index 0000000000..7309fa85ff
Binary files /dev/null and b/dist/img/bg-modal-about-pf.png differ
diff --git a/dist/img/bg-navbar-pf-alt.svg b/dist/img/bg-navbar-pf-alt.svg
new file mode 100644
index 0000000000..b2054f91c4
--- /dev/null
+++ b/dist/img/bg-navbar-pf-alt.svg
@@ -0,0 +1,9 @@
+
+
+
+
diff --git a/dist/img/brand-alt.svg b/dist/img/brand-alt.svg
new file mode 100644
index 0000000000..f28adf951a
--- /dev/null
+++ b/dist/img/brand-alt.svg
@@ -0,0 +1,88 @@
+
+
+
+
diff --git a/dist/img/brand.svg b/dist/img/brand.svg
new file mode 100644
index 0000000000..aeb9611433
--- /dev/null
+++ b/dist/img/brand.svg
@@ -0,0 +1,87 @@
+
+
+
+
diff --git a/dist/img/dropbox-logo.svg b/dist/img/dropbox-logo.svg
new file mode 100644
index 0000000000..dce00644c6
--- /dev/null
+++ b/dist/img/dropbox-logo.svg
@@ -0,0 +1,15 @@
+
+
+
diff --git a/dist/img/facebook-logo.svg b/dist/img/facebook-logo.svg
new file mode 100644
index 0000000000..c302f57b99
--- /dev/null
+++ b/dist/img/facebook-logo.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/dist/img/favicon.ico b/dist/img/favicon.ico
new file mode 100644
index 0000000000..43c8163762
Binary files /dev/null and b/dist/img/favicon.ico differ
diff --git a/dist/img/fedora-logo.png b/dist/img/fedora-logo.png
new file mode 100644
index 0000000000..8b3186a0a7
Binary files /dev/null and b/dist/img/fedora-logo.png differ
diff --git a/dist/img/git-logo.svg b/dist/img/git-logo.svg
new file mode 100644
index 0000000000..825d8ecc6b
--- /dev/null
+++ b/dist/img/git-logo.svg
@@ -0,0 +1,21 @@
+
+
+
diff --git a/dist/img/github-logo.svg b/dist/img/github-logo.svg
new file mode 100644
index 0000000000..bea0e2daf6
--- /dev/null
+++ b/dist/img/github-logo.svg
@@ -0,0 +1,17 @@
+
+
+
diff --git a/dist/img/gmail.svg b/dist/img/gmail.svg
new file mode 100644
index 0000000000..7f908c3e3c
--- /dev/null
+++ b/dist/img/gmail.svg
@@ -0,0 +1,23 @@
+
+
+
diff --git a/dist/img/google-calendar.svg b/dist/img/google-calendar.svg
new file mode 100644
index 0000000000..a9c93ae63f
--- /dev/null
+++ b/dist/img/google-calendar.svg
@@ -0,0 +1,26 @@
+
+
+
diff --git a/dist/img/google-drive.svg b/dist/img/google-drive.svg
new file mode 100644
index 0000000000..617294d9ee
--- /dev/null
+++ b/dist/img/google-drive.svg
@@ -0,0 +1,17 @@
+
+
+
diff --git a/dist/img/google-logo.svg b/dist/img/google-logo.svg
new file mode 100644
index 0000000000..a9858a693b
--- /dev/null
+++ b/dist/img/google-logo.svg
@@ -0,0 +1,19 @@
+
+
+
diff --git a/dist/img/instagram-logo.png b/dist/img/instagram-logo.png
new file mode 100644
index 0000000000..3dec7dbaba
Binary files /dev/null and b/dist/img/instagram-logo.png differ
diff --git a/dist/img/kubernetes-Logo.svg b/dist/img/kubernetes-Logo.svg
new file mode 100644
index 0000000000..1ee245e5b9
--- /dev/null
+++ b/dist/img/kubernetes-Logo.svg
@@ -0,0 +1,60 @@
+
+
+
diff --git a/dist/img/kubernetes.svg b/dist/img/kubernetes.svg
new file mode 100644
index 0000000000..50abd41507
--- /dev/null
+++ b/dist/img/kubernetes.svg
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/dist/img/linkedin-logo.svg b/dist/img/linkedin-logo.svg
new file mode 100644
index 0000000000..81ee24f2e9
--- /dev/null
+++ b/dist/img/linkedin-logo.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/dist/img/logo-alt.svg b/dist/img/logo-alt.svg
new file mode 100644
index 0000000000..34c6980cb5
--- /dev/null
+++ b/dist/img/logo-alt.svg
@@ -0,0 +1,18 @@
+
+
+
+
diff --git a/dist/img/logo.svg b/dist/img/logo.svg
new file mode 100644
index 0000000000..a04f0f9b79
--- /dev/null
+++ b/dist/img/logo.svg
@@ -0,0 +1,22 @@
+
+
+
+
diff --git a/dist/img/open-id-logo.svg b/dist/img/open-id-logo.svg
new file mode 100644
index 0000000000..0666e618e7
--- /dev/null
+++ b/dist/img/open-id-logo.svg
@@ -0,0 +1,19 @@
+
+
+
diff --git a/dist/img/rcue-full.svg b/dist/img/rcue-full.svg
new file mode 100644
index 0000000000..1411125a0a
--- /dev/null
+++ b/dist/img/rcue-full.svg
@@ -0,0 +1,221 @@
+
+
+
diff --git a/dist/img/rcue.svg b/dist/img/rcue.svg
new file mode 100644
index 0000000000..a34b617481
--- /dev/null
+++ b/dist/img/rcue.svg
@@ -0,0 +1,92 @@
+
+
+
diff --git a/dist/img/redhat_reverse.png b/dist/img/redhat_reverse.png
new file mode 100644
index 0000000000..3a2fc56848
Binary files /dev/null and b/dist/img/redhat_reverse.png differ
diff --git a/dist/img/skype-logo.svg b/dist/img/skype-logo.svg
new file mode 100644
index 0000000000..84f9190d10
--- /dev/null
+++ b/dist/img/skype-logo.svg
@@ -0,0 +1,23 @@
+
+
+
diff --git a/dist/img/spinner-inverse-lg.gif b/dist/img/spinner-inverse-lg.gif
new file mode 100644
index 0000000000..83275124c6
Binary files /dev/null and b/dist/img/spinner-inverse-lg.gif differ
diff --git a/dist/img/spinner-inverse-sm.gif b/dist/img/spinner-inverse-sm.gif
new file mode 100644
index 0000000000..8cb064efe5
Binary files /dev/null and b/dist/img/spinner-inverse-sm.gif differ
diff --git a/dist/img/spinner-inverse-xs.gif b/dist/img/spinner-inverse-xs.gif
new file mode 100644
index 0000000000..7cf4d6f11f
Binary files /dev/null and b/dist/img/spinner-inverse-xs.gif differ
diff --git a/dist/img/spinner-inverse.gif b/dist/img/spinner-inverse.gif
new file mode 100644
index 0000000000..92380fe560
Binary files /dev/null and b/dist/img/spinner-inverse.gif differ
diff --git a/dist/img/spinner-lg.gif b/dist/img/spinner-lg.gif
new file mode 100644
index 0000000000..0effa66441
Binary files /dev/null and b/dist/img/spinner-lg.gif differ
diff --git a/dist/img/spinner-sm.gif b/dist/img/spinner-sm.gif
new file mode 100644
index 0000000000..eeaddc2597
Binary files /dev/null and b/dist/img/spinner-sm.gif differ
diff --git a/dist/img/spinner-xs.gif b/dist/img/spinner-xs.gif
new file mode 100644
index 0000000000..8bfd1bc2d2
Binary files /dev/null and b/dist/img/spinner-xs.gif differ
diff --git a/dist/img/spinner.gif b/dist/img/spinner.gif
new file mode 100644
index 0000000000..4c9ea9126a
Binary files /dev/null and b/dist/img/spinner.gif differ
diff --git a/dist/img/stack-exchange-logo.svg b/dist/img/stack-exchange-logo.svg
new file mode 100644
index 0000000000..3bf0e11a26
--- /dev/null
+++ b/dist/img/stack-exchange-logo.svg
@@ -0,0 +1,21 @@
+
+
+
diff --git a/dist/img/twitter-logo.svg b/dist/img/twitter-logo.svg
new file mode 100644
index 0000000000..fe38b13b43
--- /dev/null
+++ b/dist/img/twitter-logo.svg
@@ -0,0 +1,19 @@
+
+
+
diff --git a/dist/js/patternfly-functions-base.js b/dist/js/patternfly-functions-base.js
new file mode 100644
index 0000000000..9e4c01a2df
--- /dev/null
+++ b/dist/js/patternfly-functions-base.js
@@ -0,0 +1,7 @@
+// Util: definition of breakpoint sizes for tablet and desktop modes
+(function ($) {
+ 'use strict';
+ if (patternfly !== undefined) {
+ $.pfBreakpoints = patternfly.pfBreakpoints;
+ }
+}(jQuery));
\ No newline at end of file
diff --git a/dist/js/patternfly-functions-charts.js b/dist/js/patternfly-functions-charts.js
new file mode 100644
index 0000000000..f129619154
--- /dev/null
+++ b/dist/js/patternfly-functions-charts.js
@@ -0,0 +1,13 @@
+// Util: PatternFly C3 Chart Defaults
+(function ($) {
+ 'use strict';
+ if (patternfly !== undefined) {
+ $.fn.pfSetDonutChartTitle = patternfly.pfSetDonutChartTitle;
+ $.fn.pfDonutTooltipContents = patternfly.pfDonutTooltipContents;
+ $.fn.pfGetUtilizationDonutTooltipContentsFn = patternfly.pfGetUtilizationDonutTooltipContentsFn;
+ $.fn.pfGetBarChartTooltipContentsFn = patternfly.pfGetBarChartTooltipContentsFn;
+ $.fn.pfSingleLineChartTooltipContentsFn = patternfly.pfSingleLineChartTooltipContentsFn;
+ $.fn.pfPieTooltipContents = patternfly.pfPieTooltipContents;
+ $.fn.c3ChartDefaults = patternfly.c3ChartDefaults;
+ }
+}(jQuery));
diff --git a/dist/js/patternfly-functions-colors.js b/dist/js/patternfly-functions-colors.js
new file mode 100644
index 0000000000..d51f789c0e
--- /dev/null
+++ b/dist/js/patternfly-functions-colors.js
@@ -0,0 +1,8 @@
+// Util: PatternFly Palette colors
+(function ($) {
+ 'use strict';
+
+ if (patternfly !== undefined) {
+ $.pfPaletteColors = patternfly.pfPaletteColors;
+ }
+}(jQuery));
diff --git a/dist/js/patternfly-functions-count-chars.js b/dist/js/patternfly-functions-count-chars.js
new file mode 100644
index 0000000000..9c4ddb9c47
--- /dev/null
+++ b/dist/js/patternfly-functions-count-chars.js
@@ -0,0 +1,59 @@
+// Count and Display Remaining Characters
+(function ($) {
+
+ 'use strict';
+
+ $.fn.countRemainingChars = function (options) {
+
+ var settings = $.extend({
+ // These are the defaults.
+ charsMaxLimit: 100,
+ charsWarnRemaining: 5,
+ blockInputAtMaxLimit: false
+ }, options),
+ $taFld = this,
+ $countFld = $('#' + settings.countFld).text(settings.charsMaxLimit),
+ charsRemainingFn = function (charsLength) {
+ var charsRemaining = settings.charsMaxLimit - charsLength;
+ $countFld.text(charsRemaining);
+ $countFld.toggleClass('chars-warn-remaining-pf', charsRemaining <= settings.charsWarnRemaining);
+ if (charsRemaining < 0) {
+ $taFld.trigger("overCharsMaxLimitEvent", $taFld.attr('id'));
+ } else {
+ $taFld.trigger("underCharsMaxLimitEvent", $taFld.attr('id'));
+ }
+ };
+
+ this.on('paste', function (event) {
+ setTimeout(function () {
+ var charsLength = $taFld.val().length, maxTxt;
+
+ if (settings.blockInputAtMaxLimit && charsLength > settings.charsMaxLimit) {
+ maxTxt = $taFld.val();
+ maxTxt = maxTxt.substring(0, settings.charsMaxLimit);
+ $taFld.val(maxTxt);
+ charsLength = $taFld.val().length;
+ }
+
+ charsRemainingFn(charsLength);
+ }, 100);
+ });
+
+ this.keyup(function (event) {
+ charsRemainingFn($taFld.val().length);
+ });
+
+ this.keydown(function (event) {
+ var charsLength = $taFld.val().length;
+
+ if (settings.blockInputAtMaxLimit && charsLength >= settings.charsMaxLimit) {
+ // Except backspace
+ if (event.keyCode !== 8) {
+ event.preventDefault();
+ }
+ }
+ });
+
+ return this;
+ };
+}(jQuery));
diff --git a/dist/js/patternfly-functions-data-tables.js b/dist/js/patternfly-functions-data-tables.js
new file mode 100644
index 0000000000..38d528907b
--- /dev/null
+++ b/dist/js/patternfly-functions-data-tables.js
@@ -0,0 +1,149 @@
+// Util: DataTables Settings
+(function ($) {
+ 'use strict';
+ if ($.fn.dataTableExt) {
+ /* Set the defaults for DataTables initialisation */
+ $.extend(true, $.fn.dataTable.defaults, {
+ "bDestroy": true,
+ "bAutoWidth": false,
+ "iDisplayLength": 20,
+ "sDom":
+ "<'dataTables_header' f i r >" +
+ "<'table-responsive' t >" +
+ "<'dataTables_footer' p >",
+ "oLanguage": {
+ "sInfo": "Showing
_START_ to
_END_ of
_TOTAL_ Items",
+ "sInfoFiltered" : "(of
_MAX_)",
+ "sInfoEmpty" : "Showing
0 Results",
+ "sZeroRecords":
+ "
Suggestions
" +
+ "
" +
+ "- Check the javascript regular expression syntax of the search term.
" +
+ "- Check that the correct menu option is chosen (token ID vs. user ID).
" +
+ "- Use wildcards (* to match 0 or more characters, + to match 1 or more characters, ? to match 0 or 1 character).
" +
+ "- Clear the search field, then click Search to return to the 20 most recent records.
" +
+ "
",
+ "sSearch": ""
+ },
+ "sPaginationType": "bootstrap_input",
+ "oSearch": {
+ "sSearch": "",
+ "bRegex": true,
+ "bSmart": false
+ }
+ });
+
+ /* Default class modification */
+ $.extend($.fn.dataTableExt.oStdClasses, {
+ "sWrapper": "dataTables_wrapper"
+ });
+
+ /* API method to get paging information */
+ $.fn.dataTableExt.oApi.fnPagingInfo = function (oSettings) {
+ return {
+ "iStart": oSettings._iDisplayStart,
+ "iEnd": oSettings.fnDisplayEnd(),
+ "iLength": oSettings._iDisplayLength,
+ "iTotal": oSettings.fnRecordsTotal(),
+ "iFilteredTotal": oSettings.fnRecordsDisplay(),
+ "iPage": oSettings._iDisplayLength === -1 ? 0 : Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength),
+ "iTotalPages": oSettings._iDisplayLength === -1 ? 0 : Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength)
+ };
+ };
+
+ /* Combination of Bootstrap + Input Text style pagination control */
+ $.extend($.fn.dataTableExt.oPagination, {
+ "bootstrap_input": {
+ "fnInit": function (oSettings, nPaging, fnDraw) {
+ var fnClickHandler = function (e) {
+ e.preventDefault();
+ if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {
+ fnDraw(oSettings);
+ }
+ },
+ els,
+ nInput;
+
+ $(nPaging).append(
+ '' +
+ '' +
+ ''
+ );
+
+ els = $('li', nPaging);
+ $(els[0]).bind('click.DT', { action: "first" }, fnClickHandler);
+ $(els[1]).bind('click.DT', { action: "previous" }, fnClickHandler);
+ $(els[2]).bind('click.DT', { action: "next" }, fnClickHandler);
+ $(els[3]).bind('click.DT', { action: "last" }, fnClickHandler);
+
+ nInput = $('input', nPaging);
+ $(nInput).keyup(function (e) {
+ var iNewStart;
+ if (e.which === 38 || e.which === 39) {
+ this.value += 1;
+ } else if ((e.which === 37 || e.which === 40) && this.value > 1) {
+ this.value -= 1;
+ }
+
+ if (this.value === "" || !this.value.match(/[0-9]/)) {
+ /* Nothing entered or non-numeric character */
+ return;
+ }
+
+ iNewStart = oSettings._iDisplayLength * (this.value - 1);
+ if (iNewStart >= oSettings.fnRecordsDisplay()) {
+ /* Display overrun */
+ oSettings._iDisplayStart = (Math.ceil((oSettings.fnRecordsDisplay() - 1) /
+ oSettings._iDisplayLength) - 1) * oSettings._iDisplayLength;
+ fnDraw(oSettings);
+ return;
+ }
+
+ oSettings._iDisplayStart = iNewStart;
+ fnDraw(oSettings);
+ });
+ },
+
+ "fnUpdate": function (oSettings, fnDraw) {
+ var oPaging = oSettings.oInstance.fnPagingInfo(),
+ an = oSettings.aanFeatures.p,
+ ien = an.length,
+ iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength),
+ iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1,
+ i;
+
+ for (i = 0; i < ien; i += 1) {
+ $('.paginate_input', an[i]).val(iCurrentPage)
+ .siblings('.paginate_of').find('b').html(iPages);
+
+ // Add / remove disabled classes from the static elements
+ if (oPaging.iPage === 0) {
+ $('li.first', an[i]).addClass('disabled');
+ $('li.prev', an[i]).addClass('disabled');
+ } else {
+ $('li.first', an[i]).removeClass('disabled');
+ $('li.prev', an[i]).removeClass('disabled');
+ }
+
+ if (oPaging.iPage === oPaging.iTotalPages - 1 || oPaging.iTotalPages === 0) {
+ $('li.next', an[i]).addClass('disabled');
+ $('li.last', an[i]).addClass('disabled');
+ } else {
+ $('li.next', an[i]).removeClass('disabled');
+ $('li.last', an[i]).removeClass('disabled');
+ }
+ }
+ }
+ }
+ });
+ }
+}(jQuery));
diff --git a/dist/js/patternfly-functions-fixed-heights.js b/dist/js/patternfly-functions-fixed-heights.js
new file mode 100644
index 0000000000..2a783eef1f
--- /dev/null
+++ b/dist/js/patternfly-functions-fixed-heights.js
@@ -0,0 +1,109 @@
+// Util: PatternFly Collapse with fixed heights
+// Update the max-height of collapse elements based on the parent container's height.
+(function ($) {
+ 'use strict';
+
+ $.fn.initCollapseHeights = function (scrollSelector) {
+ var parentElement = this, setCollapseHeights, targetScrollSelector = scrollSelector;
+
+ setCollapseHeights = function () {
+ var height, openPanel, contentHeight, bodyHeight, overflowY = 'hidden';
+
+ height = parentElement.height();
+
+ // Close any open panel
+ openPanel = parentElement.find('.collapse.in');
+ if (openPanel && openPanel.length > 0) {
+ openPanel.removeClass('in');
+ }
+
+ // Determine the necessary height for the closed content
+ contentHeight = 0;
+ parentElement.children().each($.proxy(function (i, element) {
+ var $element = $(element);
+ contentHeight += $element.outerHeight(true);
+ }, parentElement)).end();
+
+ // Determine the height remaining for opened collapse panels
+ bodyHeight = height - contentHeight;
+
+ // Make sure we have enough height to be able to scroll the contents if necessary
+ if (bodyHeight < 25) {
+ bodyHeight = 25;
+
+ // Allow the parent to scroll so the child elements are accessible
+ overflowY = 'auto';
+ }
+
+ // Reopen the initially opened panel
+ if (openPanel && openPanel.length > 0) {
+ openPanel.addClass("in");
+ }
+
+ setTimeout(function () {
+ // Set the max-height for the collapse panels
+ parentElement.find('[data-toggle="collapse"]').each($.proxy(function (i, element) {
+ var $element, selector, $target, scrollElement, innerHeight = 0;
+ $element = $(element);
+
+ // Determine the selector to find the target
+ selector = $element.attr('data-target');
+ if (!selector) {
+ selector = $element.attr('href');
+ }
+
+ // Determine the scroll element (either the target or the child of the target based on the given selector)
+ $target = $(selector);
+ scrollElement = $target;
+ if (targetScrollSelector) {
+ scrollElement = $target.find(targetScrollSelector);
+ if (scrollElement.length === 1) {
+ innerHeight = 0;
+ $target.children().each($.proxy(function (j, sibling) {
+ var $sibling = $(sibling);
+ if (sibling !== scrollElement[0]) {
+ innerHeight += $sibling.outerHeight(true);
+ }
+ }, $target)).end();
+ bodyHeight -= innerHeight;
+ } else {
+ scrollElement = $target;
+ }
+ }
+ // Set the max-height and vertical scroll of the scroll element
+ scrollElement.css({'max-height': (bodyHeight - innerHeight) + 'px', 'overflow-y': 'auto'});
+ }, parentElement)).end();
+
+ parentElement.css({'overflow-y': overflowY});
+ }, 100);
+ };
+
+ setCollapseHeights();
+
+ // Update on window resizing
+ $(window).on('resize', setCollapseHeights);
+
+ };
+
+ $.fn.initFixedAccordion = function () {
+ var fixedAccordion = this, initOpen;
+
+ fixedAccordion.on('show.bs.collapse','.collapse', function (event) {
+ $(event.target.parentNode).addClass('panel-open');
+ });
+
+ fixedAccordion.on('hide.bs.collapse','.collapse', function (event) {
+ $(event.target.parentNode).removeClass('panel-open');
+ });
+
+ fixedAccordion.find('.panel').each(function (index, item) {
+ $(item).removeClass('panel-open');
+ });
+
+ initOpen = $(fixedAccordion.find('.collapse.in'))[0];
+ if (initOpen) {
+ $(initOpen.parentNode).addClass('panel-open');
+ }
+ };
+
+}(jQuery));
diff --git a/dist/js/patternfly-functions-list.js b/dist/js/patternfly-functions-list.js
new file mode 100644
index 0000000000..1ac8fa8c61
--- /dev/null
+++ b/dist/js/patternfly-functions-list.js
@@ -0,0 +1,79 @@
+// PatternFly pf-list
+(function ($) {
+ 'use strict';
+
+ $.fn.pfList = function () {
+ function init (list) {
+ // Ensure the state of the expansion elements is consistent
+ list.find('[data-list=expansion], .list-pf-item, .list-pf-expansion').each(function (index, element) {
+ var $expansion = $(element),
+ $collapse = $expansion.find('.collapse').first(),
+ expanded = $collapse.hasClass('in');
+ updateChevron($expansion, expanded);
+ if ($expansion.hasClass('list-pf-item')) {
+ updateActive($expansion, expanded);
+ }
+ });
+ list.find('.list-pf-container').each(function (index, element) {
+ var $element = $(element);
+ // The toggle element is the element with the data-list=toggle attribute
+ // or the entire .list-pf-container as a fallback
+ var $toggles = $element.find('[data-list=toggle]');
+ $toggles.length || ($toggles = $element);
+ $toggles.on('keydown', function (event) {
+ if (event.keyCode === 13 || event.keyCode === 32) {
+ toggleCollapse(this);
+ event.stopPropagation();
+ event.preventDefault();
+ }
+ });
+ $toggles.on('click', function (event) {
+ toggleCollapse(this);
+ event.stopPropagation();
+ event.preventDefault();
+ });
+ });
+ }
+
+ function toggleCollapse (toggle) {
+ var $toggle, $expansion, $collapse, expanded, $listItem;
+ $toggle = $(toggle);
+ // Find the parent expansion of the toggle
+ $expansion = $toggle.parentsUntil('.list-pf', '[data-list=expansion]').first();
+ $expansion.length || ($expansion = $toggle.closest('.list-pf-item, .list-pf-expansion'));
+
+ // toggle the "in" class of its first .collapse child
+ $collapse = $expansion.find('.collapse').first();
+ $collapse.toggleClass('in');
+
+ // update the state of the expansion element
+ updateChevron($expansion, $collapse.hasClass('in'));
+ $listItem = $expansion.closest('.list-pf-item');
+ updateActive($listItem, $listItem.find('.collapse').first().hasClass('in'));
+ }
+
+ function updateActive ($listItem, expanded) {
+ // Find the closest .list-pf-item of the expansion, and set its "active" class
+ if (expanded) {
+ $listItem.addClass('active');
+ } else {
+ $listItem.removeClass('active');
+ }
+ }
+
+ function updateChevron ($expansion, expanded) {
+ var $chevron = $expansion.find('.list-pf-chevron .fa').first();
+ if (expanded) {
+ $chevron.removeClass('fa-angle-right');
+ $chevron.addClass('fa-angle-down');
+ } else {
+ $chevron.addClass('fa-angle-right');
+ $chevron.removeClass('fa-angle-down');
+ }
+ }
+
+ init(this);
+
+ return this;
+ };
+}(jQuery));
diff --git a/dist/js/patternfly-functions-navigation.js b/dist/js/patternfly-functions-navigation.js
new file mode 100644
index 0000000000..366cde149b
--- /dev/null
+++ b/dist/js/patternfly-functions-navigation.js
@@ -0,0 +1,113 @@
+// Util: PatternFly Collapsible Left Hand Navigation
+// Must have navbar-toggle in navbar-pf-alt for expand/collapse
+(function ($) {
+
+ 'use strict';
+
+ $.fn.navigation = function () {
+
+ var navElement = $('.layout-pf-alt-fixed .nav-pf-vertical-alt'),
+ bodyContentElement = $('.container-pf-alt-nav-pf-vertical-alt'),
+ toggleNavBarButton = $('.navbar-toggle'),
+ explicitCollapse = false,
+ checkNavState = function () {
+ var width = $(window).width();
+
+ //Always remove the hidden & peek class
+ navElement.removeClass('hidden show-mobile-nav collapsed');
+
+ //Set the body class back to the default
+ bodyContentElement.removeClass('collapsed-nav hidden-nav');
+
+ // Check to see if the nav needs to collapse
+ if (width < $.pfBreakpoints.desktop || explicitCollapse) {
+ navElement.addClass('collapsed');
+ bodyContentElement.addClass('collapsed-nav');
+ }
+
+ // Check to see if we need to move down to the mobile state
+ if (width < $.pfBreakpoints.tablet) {
+ //Set the nav to being hidden
+ navElement.addClass('hidden');
+
+ //Make sure this is expanded
+ navElement.removeClass('collapsed');
+
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+ bodyContentElement.addClass('hidden-nav');
+ }
+ },
+ collapseMenu = function () {
+ //Make sure this is expanded
+ navElement.addClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.addClass('collapsed-nav');
+
+ explicitCollapse = true;
+ },
+ enableTransitions = function () {
+ // enable transitions only when toggleNavBarButton is clicked or window is resized
+ $('html').addClass('transitions');
+ },
+ expandMenu = function () {
+ //Make sure this is expanded
+ navElement.removeClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+
+ explicitCollapse = false;
+ },
+ bindMenuBehavior = function () {
+ toggleNavBarButton.on('click', function (e) {
+ var inMobileState = bodyContentElement.hasClass('hidden-nav');
+ enableTransitions();
+
+ if (inMobileState && navElement.hasClass('show-mobile-nav')) {
+ //In mobile state just need to hide the nav
+ navElement.removeClass('show-mobile-nav');
+ } else if (inMobileState) {
+ navElement.addClass('show-mobile-nav');
+ } else if (navElement.hasClass('collapsed')) {
+ expandMenu();
+ } else {
+ collapseMenu();
+ }
+ });
+ },
+ setTooltips = function () {
+ $('.nav-pf-vertical-alt [data-toggle="tooltip"]').tooltip({'container': 'body', 'delay': { 'show': '500', 'hide': '200' }});
+
+ $(".nav-pf-vertical-alt").on("show.bs.tooltip", function (e) {
+ return $(this).hasClass("collapsed");
+ });
+
+ },
+ init = function () {
+ //Set correct state on load
+ checkNavState();
+
+ // Bind Top level hamburger menu with menu behavior;
+ bindMenuBehavior();
+
+ //Set tooltips
+ setTooltips();
+ };
+
+ //Listen for the window resize event and collapse/hide as needed
+ $(window).on('resize', function () {
+ checkNavState();
+ enableTransitions();
+ });
+
+ init();
+
+ };
+
+ $(document).ready(function () {
+ if ($('.nav-pf-vertical-alt').length > 0) {
+ $.fn.navigation();
+ }
+ });
+
+}(jQuery));
diff --git a/dist/js/patternfly-functions-popovers.js b/dist/js/patternfly-functions-popovers.js
new file mode 100644
index 0000000000..9c7948313d
--- /dev/null
+++ b/dist/js/patternfly-functions-popovers.js
@@ -0,0 +1,37 @@
+// Util: PatternFly Popovers
+// Add data-close="true" to insert close X icon
+(function ($) {
+ 'use strict';
+
+ $.fn.popovers = function () {
+ // Initialize
+ this.popover();
+
+ // Add close icons
+ this.filter('[data-close=true]').each(function (index, element) {
+ var $this = $(element),
+ title = $this.attr('data-original-title') + '
';
+
+ $this.attr('data-original-title', title);
+ });
+
+ // Bind Close Icon to Toggle Display
+ this.on('click', function (e) {
+ var $this = $(this),
+ $title = $this.next('.popover').find('.popover-title');
+
+ // Only if data-close is true add class "x" to title for right padding
+ $title.find('.close').parent('.popover-title').addClass('closable');
+
+ // Bind x icon to close popover
+ $title.find('.close').on('click', function () {
+ $this.popover('hide');
+ });
+
+ // Prevent href="#" page scroll to top
+ e.preventDefault();
+ });
+
+ return this;
+ };
+}(jQuery));
diff --git a/dist/js/patternfly-functions-sidebar.js b/dist/js/patternfly-functions-sidebar.js
new file mode 100644
index 0000000000..fff58a3e09
--- /dev/null
+++ b/dist/js/patternfly-functions-sidebar.js
@@ -0,0 +1,31 @@
+// Util: PatternFly Sidebar
+// Set height of sidebar-pf to height of document minus height of navbar-pf if not mobile
+(function ($) {
+ 'use strict';
+ $.fn.sidebar = function () {
+ var documentHeight = 0,
+ navbarpfHeight = 0,
+ colHeight = 0;
+
+ if ($('.navbar-pf .navbar-toggle').is(':hidden')) {
+ documentHeight = $(document).height();
+ navbarpfHeight = $('.navbar-pf').outerHeight();
+ colHeight = documentHeight - navbarpfHeight;
+ }
+ $('.sidebar-pf').parent('.row').children('[class*="col-"]').css({"min-height" : colHeight});
+ };
+
+ $(document).ready(function () {
+ // Call sidebar() on ready if .sidebar-pf exists and .datatable does not exist
+ if ($('.sidebar-pf').length > 0 && $('.datatable').length === 0) {
+ $.fn.sidebar();
+ }
+ });
+
+ $(window).on('resize', function () {
+ // Call sidebar() on resize if .sidebar-pf exists
+ if ($('.sidebar-pf').length > 0) {
+ $.fn.sidebar();
+ }
+ });
+}(jQuery));
diff --git a/dist/js/patternfly-functions-tree-grid.js b/dist/js/patternfly-functions-tree-grid.js
new file mode 100644
index 0000000000..5c4eb65857
--- /dev/null
+++ b/dist/js/patternfly-functions-tree-grid.js
@@ -0,0 +1,82 @@
+// Util: PatternFly TreeGrid Tables
+(function ($) {
+ 'use strict';
+
+ function getParent (rows, node) {
+ var parent = node.attr('data-parent');
+
+ if (typeof parent === "string") {
+ if (isNaN(parent)) {
+ parent = $(parent);
+ if (parent.length > 1) {
+ parent = rows.closest(parent);
+ }
+ } else {
+ parent = $(rows[parseInt(parent, 10)]);
+ }
+ return parent;
+ }
+ return undefined;
+ }
+
+ function renderItem (item, parent) {
+ if (parent) {
+ parent.find('.treegrid-node > span.expand-icon')
+ .toggleClass('fa-angle-right', parent.hasClass('collapsed'))
+ .toggleClass('fa-angle-down', !parent.hasClass('collapsed'));
+ item.toggleClass('hidden', parent.hasClass('collapsed'));
+ if (parent.hasClass('collapsed')) {
+ item.addClass('collapsed');
+ }
+ }
+ }
+
+ function reStripe (tree) {
+ tree.find('tbody > tr').removeClass('odd');
+ tree.find('tbody > tr:not(.hidden):odd').addClass('odd');
+ }
+
+ $.fn.treegrid = function (options) {
+ var i, rows, _this;
+ rows = this.find('tbody > tr');
+ _this = this;
+ $.each(rows, function () {
+ var node, parent;
+ node = $(this);
+ parent = getParent(rows, node);
+ // Append expand icon dummies
+ node.children('.treegrid-node').prepend('
');
+
+ // Set up an event listener for the node
+ node.children('.treegrid-node').on('click', function (e) {
+ var icon = node.find('span.expand-icon');
+
+ if (options && typeof options.callback === 'function') {
+ options.callback(e);
+ }
+
+ if (icon.hasClass('fa-angle-right')) {
+ node.removeClass('collapsed');
+ }
+ if (icon.hasClass('fa-angle-down')) {
+ node.addClass('collapsed');
+ }
+ $.each(rows.slice(rows.index(node) + 1), function () {
+ renderItem($(this), getParent(rows, $(this)));
+ });
+ reStripe(_this);
+ });
+
+ if (parent) {
+ // Calculate indentation depth
+ i = parent.find('.treegrid-node > span.indent').length + 1;
+ for (; i > 0; i -= 1) {
+ node.children('.treegrid-node').prepend('
');
+ }
+ // Render expand/collapse icons
+ renderItem(node, parent);
+ }
+ });
+ reStripe(_this);
+ };
+}(jQuery));
diff --git a/dist/js/patternfly-functions-vertical-nav.js b/dist/js/patternfly-functions-vertical-nav.js
new file mode 100644
index 0000000000..ba164375a5
--- /dev/null
+++ b/dist/js/patternfly-functions-vertical-nav.js
@@ -0,0 +1,610 @@
+// Util: PatternFly Vertical Navigation
+// Must have navbar-toggle in navbar-pf-vertical for expand/collapse
+(function ($) {
+ 'use strict';
+
+ $.fn.setupVerticalNavigation = function (handleItemSelections, ignoreDrawer, userOptions) {
+
+ var options = $.extend({
+ hoverDelay: 500,
+ hideDelay: 700,
+ rememberOpenState: true,
+ storage: 'localStorage',
+ }, userOptions || {}),
+
+ navElement = $('.nav-pf-vertical'),
+ bodyContentElement = $('.container-pf-nav-pf-vertical'),
+ toggleNavBarButton = $('.navbar-toggle'),
+ handleResize = true,
+ explicitCollapse = false,
+ subDesktop = false,
+ storageLocation = options.storage === 'sessionStorage' ? 'sessionStorage' : 'localStorage',
+
+ inMobileState = function () {
+ return bodyContentElement.hasClass('hidden-nav');
+ },
+
+ forceResize = function (delay) {
+ setTimeout(function () {
+ $(window).trigger('resize');
+ }, delay);
+ },
+
+ showSecondaryMenu = function () {
+ if (inMobileState() || !subDesktop) {
+ navElement.addClass('secondary-visible-pf');
+ bodyContentElement.addClass('secondary-visible-pf');
+ }
+
+ // Dispatch a resize event when showing the secondary menu in non-subdesktop state to
+ // allow content to adjust to the secondary menu sizing
+ if (!subDesktop) {
+ forceResize(100);
+ }
+ },
+
+ hideSecondaryMenu = function () {
+ navElement.removeClass('secondary-visible-pf');
+ bodyContentElement.removeClass('secondary-visible-pf');
+
+ if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-secondary-nav-pf');
+ }
+
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+
+ navElement.find('.is-hover').each(function (index, item) {
+ $(item).removeClass('is-hover');
+ });
+ },
+
+ hideTertiaryMenu = function () {
+ navElement.removeClass('tertiary-visible-pf');
+ bodyContentElement.removeClass('tertiary-visible-pf');
+
+ if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-tertiary-nav-pf');
+ }
+
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+
+ navElement.find('.is-hover').each(function (index, item) {
+ $(item).removeClass('is-hover');
+ });
+ },
+
+ setActiveItem = function (item) {
+ // remove all .active
+ $('.nav-pf-vertical .list-group-item.active').removeClass('active');
+
+ // add .active to item and its parents
+ item.addClass('active').parents('.list-group-item').addClass('active');
+ },
+
+ updateSecondaryMenuDisplayAfterSelection = function () {
+ if (inMobileState()) {
+ navElement.removeClass('show-mobile-nav');
+ hideSecondaryMenu();
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+ } else {
+ showSecondaryMenu();
+ }
+ },
+
+ updateSecondaryCollapsedState = function (setCollapsed, collapsedItem) {
+ if (setCollapsed) {
+ collapsedItem.addClass('collapsed');
+ navElement.addClass('collapsed-secondary-nav-pf');
+ bodyContentElement.addClass('collapsed-secondary-nav-pf');
+ } else {
+ if (collapsedItem) {
+ collapsedItem.removeClass('collapsed');
+ } else {
+ // Remove any collapsed secondary menus
+ navElement.find('[data-toggle="collapse-secondary-nav"]').each(function (index, element) {
+ var $e = $(element);
+ $e.removeClass('collapsed');
+ });
+ }
+ navElement.removeClass('collapsed-secondary-nav-pf');
+ bodyContentElement.removeClass('collapsed-secondary-nav-pf');
+ }
+ },
+
+ updateTertiaryCollapsedState = function (setCollapsed, collapsedItem) {
+ if (setCollapsed) {
+ collapsedItem.addClass('collapsed');
+ navElement.addClass('collapsed-tertiary-nav-pf');
+ bodyContentElement.addClass('collapsed-tertiary-nav-pf');
+ updateSecondaryCollapsedState(false);
+ } else {
+ if (collapsedItem) {
+ collapsedItem.removeClass('collapsed');
+ } else {
+ // Remove any collapsed tertiary menus
+ navElement.find('[data-toggle="collapse-tertiary-nav"]').each(function (index, element) {
+ var $e = $(element);
+ $e.removeClass('collapsed');
+ });
+ }
+ navElement.removeClass('collapsed-tertiary-nav-pf');
+ bodyContentElement.removeClass('collapsed-tertiary-nav-pf');
+ }
+ },
+
+ updateMobileMenu = function (selected, secondaryItem) {
+ $(document).find('.list-group-item.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+ $(document).find('.list-group-item.mobile-secondary-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-secondary-item-pf');
+ });
+ if (selected) {
+ selected.addClass('mobile-nav-item-pf');
+ if (secondaryItem) {
+ secondaryItem.addClass('mobile-secondary-item-pf');
+ navElement.removeClass('show-mobile-secondary');
+ navElement.addClass('show-mobile-tertiary');
+ } else {
+ navElement.addClass('show-mobile-secondary');
+ navElement.removeClass('show-mobile-tertiary');
+ }
+ } else {
+ navElement.removeClass('show-mobile-secondary');
+ navElement.removeClass('show-mobile-tertiary');
+ }
+ },
+
+ enterMobileState = function () {
+ if (!navElement.hasClass('hidden')) {
+ //Set the nav to being hidden
+ navElement.addClass('hidden');
+ navElement.removeClass('collapsed');
+
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+ bodyContentElement.addClass('hidden-nav');
+
+ // Reset the collapsed states
+ updateSecondaryCollapsedState(false);
+ updateTertiaryCollapsedState(false);
+
+ explicitCollapse = false;
+ }
+ },
+
+ exitMobileState = function () {
+ // Always remove the hidden & peek class
+ navElement.removeClass('hidden show-mobile-nav');
+
+ // Set the body class back to the default
+ bodyContentElement.removeClass('hidden-nav');
+ },
+
+ checkNavState = function () {
+ var width = $(window).width(), makeSecondaryVisible;
+ if (!handleResize) {
+ return;
+ }
+ // Check to see if we need to enter/exit the mobile state
+ if (width < $.pfBreakpoints.tablet && !explicitCollapse) {
+ enterMobileState();
+ } else if (navElement.hasClass('hidden')) {
+ exitMobileState();
+ }
+
+ // Check to see if we need to enter/exit the sub desktop state
+ if (width < $.pfBreakpoints.desktop) {
+ if (!subDesktop) {
+ // Collapse the navigation bars when entering sub desktop mode
+ navElement.addClass('collapsed');
+ bodyContentElement.addClass('collapsed-nav');
+ }
+ if (width >= $.pfBreakpoints.tablet) {
+ hideSecondaryMenu();
+ }
+ subDesktop = true;
+ } else {
+ makeSecondaryVisible = subDesktop && (navElement.find('.secondary-nav-item-pf.active').length > 0);
+ subDesktop = false;
+ if (makeSecondaryVisible) {
+
+ showSecondaryMenu();
+ }
+ }
+
+ if (explicitCollapse) {
+ navElement.addClass('collapsed');
+ bodyContentElement.addClass('collapsed-nav');
+ } else {
+ navElement.removeClass('collapsed');
+ bodyContentElement.removeClass('collapsed-nav');
+ }
+ },
+
+ collapseMenu = function () {
+ //Make sure this is expanded
+ navElement.addClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.addClass('collapsed-nav');
+
+ if (subDesktop) {
+ hideSecondaryMenu();
+ }
+
+ explicitCollapse = true;
+ },
+
+ enableTransitions = function () {
+ // enable transitions only when toggleNavBarButton is clicked or window is resized
+ $('html').addClass('transitions');
+ },
+
+ expandMenu = function () {
+ //Make sure this is expanded
+ navElement.removeClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+
+ explicitCollapse = false;
+
+ // Dispatch a resize event when showing the expanding then menu to
+ // allow content to adjust to the menu sizing
+ if (!subDesktop) {
+ forceResize(100);
+ }
+ },
+
+ bindMenuBehavior = function () {
+ toggleNavBarButton.on('click', function (e) {
+ var $drawer;
+
+ enableTransitions();
+
+ if (inMobileState()) {
+ // Toggle the mobile nav
+ if (navElement.hasClass('show-mobile-nav')) {
+ navElement.removeClass('show-mobile-nav');
+ } else {
+ // Always start at the primary menu
+ updateMobileMenu();
+ navElement.addClass('show-mobile-nav');
+
+ // If the notification drawer is shown, hide it
+ if (!ignoreDrawer) {
+ $drawer = $('.drawer-pf');
+ if ($drawer.length) {
+ $('.drawer-pf-trigger').removeClass('open');
+ $drawer.addClass('hide');
+ }
+ }
+ }
+ } else if (navElement.hasClass('collapsed')) {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-primary', 'expanded');
+ }
+ expandMenu();
+ } else {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-primary', 'collapsed');
+ }
+ collapseMenu();
+ }
+ });
+ },
+
+ forceHideSecondaryMenu = function () {
+ navElement.addClass('force-hide-secondary-nav-pf');
+ setTimeout(function () {
+ navElement.removeClass('force-hide-secondary-nav-pf');
+ }, 500);
+ },
+
+ bindMenuItemsBehavior = function (handleSelection) {
+ $(document).find('.nav-pf-vertical .list-group-item').each(function (index, item) {
+ var onClickFn,
+ $item = $(item),
+ $nav = $item.closest('[class*="nav-pf-"]');
+
+ if ($nav.hasClass('nav-pf-vertical')) {
+ // Set main nav active item on click or show secondary nav if it has a secondary nav bar and we are in the mobile state
+ onClickFn = function (event) {
+ var $this = $(this), $secondaryItem, $tertiaryItem, $activeItem;
+
+ if (!$this.hasClass('secondary-nav-item-pf')) {
+ hideSecondaryMenu();
+ if (inMobileState()) {
+ updateMobileMenu();
+ navElement.removeClass('show-mobile-nav');
+ }
+ if (handleSelection) {
+ setActiveItem($this);
+ // Don't process the click on the item
+ event.stopImmediatePropagation();
+ }
+ } else if (inMobileState()) {
+ updateMobileMenu($this);
+ } else if (handleSelection) {
+ $activeItem = $secondaryItem = $item.find('.nav-pf-secondary-nav > .list-group > .list-group-item').eq(0);
+
+ if ($secondaryItem.hasClass('tertiary-nav-item-pf')) {
+ $activeItem = $secondaryItem.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
+ }
+
+ setActiveItem($activeItem);
+ event.stopImmediatePropagation();
+ }
+ };
+
+ } else if ($nav.hasClass('nav-pf-secondary-nav')) {
+ // Set secondary nav active item on click or show tertiary nav if it has a tertiary nav bar and we are in the mobile state
+ onClickFn = function (event) {
+ var $this = $(this), $tertiaryItem, $primaryItem;
+ if (!$this.hasClass('tertiary-nav-item-pf')) {
+ if (inMobileState()) {
+ updateMobileMenu();
+ navElement.removeClass('show-mobile-nav');
+ }
+ updateSecondaryMenuDisplayAfterSelection();
+ if (handleSelection) {
+ setActiveItem($item);
+ hideSecondaryMenu();
+ event.stopImmediatePropagation();
+ }
+ } else if (inMobileState()) {
+ $primaryItem = $item.parents('.list-group-item');
+ updateMobileMenu($this, $primaryItem);
+ event.stopImmediatePropagation();
+ } else if (handleSelection) {
+ $tertiaryItem = $item.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
+ setActiveItem($tertiaryItem);
+ event.stopImmediatePropagation();
+ }
+ };
+
+ } else if ($nav.hasClass('nav-pf-tertiary-nav')) {
+ // Set tertiary nav active item on click
+ onClickFn = function (event) {
+ if (inMobileState()) {
+ updateMobileMenu();
+ navElement.removeClass('show-mobile-nav');
+ }
+ updateSecondaryMenuDisplayAfterSelection();
+ if (handleSelection) {
+ setActiveItem($item);
+ hideTertiaryMenu();
+ hideSecondaryMenu();
+ event.stopImmediatePropagation();
+ }
+ };
+ }
+
+ // register event handler
+ $item.on('click.pf.secondarynav.data-api', onClickFn);
+ });
+
+ $(document).find('.secondary-nav-item-pf').each(function (index, secondaryItem) {
+ var $secondaryItem = $(secondaryItem);
+
+ // Collapse the secondary nav bar when the toggle is clicked
+ $secondaryItem.on('click.pf.secondarynav.data-api', '[data-toggle="collapse-secondary-nav"]', function (e) {
+ var $this = $(this);
+ if (inMobileState()) {
+ updateMobileMenu();
+ e.stopImmediatePropagation();
+ } else {
+ if ($this.hasClass('collapsed')) {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
+ }
+ updateSecondaryCollapsedState(false, $this);
+ forceHideSecondaryMenu();
+ } else {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'collapsed');
+ }
+ updateSecondaryCollapsedState(true, $this);
+ }
+ }
+ navElement.removeClass('hover-secondary-nav-pf');
+ if (handleSelection) {
+ // Don't process the click on the parent item
+ e.stopImmediatePropagation();
+ }
+ });
+
+ $secondaryItem.find('.tertiary-nav-item-pf').each(function (index, primaryItem) {
+ var $primaryItem = $(primaryItem);
+ // Collapse the tertiary nav bar when the toggle is clicked
+ $primaryItem.on('click.pf.tertiarynav.data-api', '[data-toggle="collapse-tertiary-nav"]', function (e) {
+ var $this = $(this);
+ if (inMobileState()) {
+ updateMobileMenu($secondaryItem);
+ e.stopImmediatePropagation();
+ } else {
+ if ($this.hasClass('collapsed')) {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
+ }
+ updateTertiaryCollapsedState(false, $this);
+ forceHideSecondaryMenu();
+ } else {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'collapsed');
+ }
+ updateTertiaryCollapsedState(true, $this);
+ }
+ }
+ navElement.removeClass('hover-secondary-nav-pf');
+ navElement.removeClass('hover-tertiary-nav-pf');
+ if (handleSelection) {
+ // Don't process the click on the parent item
+ e.stopImmediatePropagation();
+ }
+ });
+ });
+ });
+
+ // Show secondary nav bar on hover of secondary nav items
+ $(document).on('mouseenter.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if (!inMobileState()) {
+ if ($this[0].navUnHoverTimeout !== undefined) {
+ clearTimeout($this[0].navUnHoverTimeout);
+ $this[0].navUnHoverTimeout = undefined;
+ } else if ($this[0].navHoverTimeout === undefined) {
+ $this[0].navHoverTimeout = setTimeout(function () {
+ navElement.addClass('hover-secondary-nav-pf');
+ $this.addClass('is-hover');
+ $this[0].navHoverTimeout = undefined;
+ }, options.hoverDelay);
+ }
+ }
+ });
+
+ $(document).on('mouseleave.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if ($this[0].navHoverTimeout !== undefined) {
+ clearTimeout($this[0].navHoverTimeout);
+ $this[0].navHoverTimeout = undefined;
+ } else if ($this[0].navUnHoverTimeout === undefined &&
+ navElement.find('.secondary-nav-item-pf.is-hover').length > 0) {
+ $this[0].navUnHoverTimeout = setTimeout(function () {
+ if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-secondary-nav-pf');
+ }
+ $this.removeClass('is-hover');
+ $this[0].navUnHoverTimeout = undefined;
+ }, options.hideDelay);
+ }
+ });
+
+ // Show tertiary nav bar on hover of secondary nav items
+ $(document).on('mouseover.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if (!inMobileState()) {
+ if ($this[0].navUnHoverTimeout !== undefined) {
+ clearTimeout($this[0].navUnHoverTimeout);
+ $this[0].navUnHoverTimeout = undefined;
+ } else if ($this[0].navHoverTimeout === undefined) {
+ $this[0].navHoverTimeout = setTimeout(function () {
+ navElement.addClass('hover-tertiary-nav-pf');
+ $this.addClass('is-hover');
+ $this[0].navHoverTimeout = undefined;
+ }, options.hoverDelay);
+ }
+ }
+ });
+ $(document).on('mouseout.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if ($this[0].navHoverTimeout !== undefined) {
+ clearTimeout($this[0].navHoverTimeout);
+ $this[0].navHoverTimeout = undefined;
+ } else if ($this[0].navUnHoverTimeout === undefined) {
+ $this[0].navUnHoverTimeout = setTimeout(function () {
+ if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-tertiary-nav-pf');
+ }
+ $this.removeClass('is-hover');
+ $this[0].navUnHoverTimeout = undefined;
+ }, options.hideDelay);
+ }
+ });
+ },
+
+ loadFromLocalStorage = function () {
+ if (inMobileState()) {
+ return;
+ }
+
+ if (window[storageLocation].getItem('patternfly-navigation-primary') === 'collapsed') {
+ collapseMenu();
+ }
+
+ if ($('.nav-pf-vertical.nav-pf-vertical-collapsible-menus').length > 0) {
+ if (window[storageLocation].getItem('patternfly-navigation-secondary') === 'collapsed') {
+ updateSecondaryCollapsedState(true, $('.secondary-nav-item-pf.active [data-toggle=collapse-secondary-nav]'));
+ }
+
+ if (window[storageLocation].getItem('patternfly-navigation-tertiary') === 'collapsed') {
+ updateTertiaryCollapsedState(true, $('.tertiary-nav-item-pf.active [data-toggle=collapse-tertiary-nav]'));
+ }
+ }
+ },
+
+ setTooltips = function () {
+ var tooltipOptions = {
+ container: 'body',
+ placement: 'bottom',
+ delay: { 'show': '500', 'hide': '200' },
+ template: '
'
+ };
+ $('.nav-pf-vertical [data-toggle="tooltip"]').tooltip(tooltipOptions);
+
+ $('.nav-pf-vertical').on("show.bs.tooltip", function (e) {
+ return $(this).hasClass("collapsed");
+ });
+ },
+
+ init = function (handleItemSelections) {
+ // Hide the nav menus during initialization
+ navElement.addClass('hide-nav-pf');
+ bodyContentElement.addClass('hide-nav-pf');
+
+ //Set correct state on load
+ checkNavState();
+
+ // Bind Top level hamburger menu with menu behavior;
+ bindMenuBehavior();
+
+ // Bind menu items
+ bindMenuItemsBehavior(handleItemSelections);
+
+ //Set tooltips
+ setTooltips();
+
+ if (options.rememberOpenState) {
+ loadFromLocalStorage();
+ }
+
+ // Show the nav menus
+ navElement.removeClass('hide-nav-pf');
+ bodyContentElement.removeClass('hide-nav-pf');
+ forceResize(250);
+ },
+
+ self = {
+ hideMenu: function () {
+ handleResize = false;
+ enterMobileState();
+ },
+ showMenu: function () {
+ handleResize = true;
+ exitMobileState();
+ },
+ isVisible: function () {
+ return handleResize;
+ }
+ };
+
+ if (!$.fn.setupVerticalNavigation.self) {
+ $.fn.setupVerticalNavigation.self = self;
+ //Listen for the window resize event and collapse/hide as needed
+ $(window).on('resize', function () {
+ checkNavState();
+ enableTransitions();
+ });
+
+ init(handleItemSelections);
+ }
+ return $.fn.setupVerticalNavigation.self;
+ };
+}(jQuery));
diff --git a/dist/js/patternfly-functions.js b/dist/js/patternfly-functions.js
new file mode 100644
index 0000000000..8d445747d8
--- /dev/null
+++ b/dist/js/patternfly-functions.js
@@ -0,0 +1,1307 @@
+// Util: definition of breakpoint sizes for tablet and desktop modes
+(function ($) {
+ 'use strict';
+ if (patternfly !== undefined) {
+ $.pfBreakpoints = patternfly.pfBreakpoints;
+ }
+}(jQuery));
+// PatternFly pf-list
+(function ($) {
+ 'use strict';
+
+ $.fn.pfList = function () {
+ function init (list) {
+ // Ensure the state of the expansion elements is consistent
+ list.find('[data-list=expansion], .list-pf-item, .list-pf-expansion').each(function (index, element) {
+ var $expansion = $(element),
+ $collapse = $expansion.find('.collapse').first(),
+ expanded = $collapse.hasClass('in');
+ updateChevron($expansion, expanded);
+ if ($expansion.hasClass('list-pf-item')) {
+ updateActive($expansion, expanded);
+ }
+ });
+ list.find('.list-pf-container').each(function (index, element) {
+ var $element = $(element);
+ // The toggle element is the element with the data-list=toggle attribute
+ // or the entire .list-pf-container as a fallback
+ var $toggles = $element.find('[data-list=toggle]');
+ $toggles.length || ($toggles = $element);
+ $toggles.on('keydown', function (event) {
+ if (event.keyCode === 13 || event.keyCode === 32) {
+ toggleCollapse(this);
+ event.stopPropagation();
+ event.preventDefault();
+ }
+ });
+ $toggles.on('click', function (event) {
+ toggleCollapse(this);
+ event.stopPropagation();
+ event.preventDefault();
+ });
+ });
+ }
+
+ function toggleCollapse (toggle) {
+ var $toggle, $expansion, $collapse, expanded, $listItem;
+ $toggle = $(toggle);
+ // Find the parent expansion of the toggle
+ $expansion = $toggle.parentsUntil('.list-pf', '[data-list=expansion]').first();
+ $expansion.length || ($expansion = $toggle.closest('.list-pf-item, .list-pf-expansion'));
+
+ // toggle the "in" class of its first .collapse child
+ $collapse = $expansion.find('.collapse').first();
+ $collapse.toggleClass('in');
+
+ // update the state of the expansion element
+ updateChevron($expansion, $collapse.hasClass('in'));
+ $listItem = $expansion.closest('.list-pf-item');
+ updateActive($listItem, $listItem.find('.collapse').first().hasClass('in'));
+ }
+
+ function updateActive ($listItem, expanded) {
+ // Find the closest .list-pf-item of the expansion, and set its "active" class
+ if (expanded) {
+ $listItem.addClass('active');
+ } else {
+ $listItem.removeClass('active');
+ }
+ }
+
+ function updateChevron ($expansion, expanded) {
+ var $chevron = $expansion.find('.list-pf-chevron .fa').first();
+ if (expanded) {
+ $chevron.removeClass('fa-angle-right');
+ $chevron.addClass('fa-angle-down');
+ } else {
+ $chevron.addClass('fa-angle-right');
+ $chevron.removeClass('fa-angle-down');
+ }
+ }
+
+ init(this);
+
+ return this;
+ };
+}(jQuery));
+
+// Util: PatternFly Sidebar
+// Set height of sidebar-pf to height of document minus height of navbar-pf if not mobile
+(function ($) {
+ 'use strict';
+ $.fn.sidebar = function () {
+ var documentHeight = 0,
+ navbarpfHeight = 0,
+ colHeight = 0;
+
+ if ($('.navbar-pf .navbar-toggle').is(':hidden')) {
+ documentHeight = $(document).height();
+ navbarpfHeight = $('.navbar-pf').outerHeight();
+ colHeight = documentHeight - navbarpfHeight;
+ }
+ $('.sidebar-pf').parent('.row').children('[class*="col-"]').css({"min-height" : colHeight});
+ };
+
+ $(document).ready(function () {
+ // Call sidebar() on ready if .sidebar-pf exists and .datatable does not exist
+ if ($('.sidebar-pf').length > 0 && $('.datatable').length === 0) {
+ $.fn.sidebar();
+ }
+ });
+
+ $(window).on('resize', function () {
+ // Call sidebar() on resize if .sidebar-pf exists
+ if ($('.sidebar-pf').length > 0) {
+ $.fn.sidebar();
+ }
+ });
+}(jQuery));
+
+// Util: PatternFly Popovers
+// Add data-close="true" to insert close X icon
+(function ($) {
+ 'use strict';
+
+ $.fn.popovers = function () {
+ // Initialize
+ this.popover();
+
+ // Add close icons
+ this.filter('[data-close=true]').each(function (index, element) {
+ var $this = $(element),
+ title = $this.attr('data-original-title') + '
';
+
+ $this.attr('data-original-title', title);
+ });
+
+ // Bind Close Icon to Toggle Display
+ this.on('click', function (e) {
+ var $this = $(this),
+ $title = $this.next('.popover').find('.popover-title');
+
+ // Only if data-close is true add class "x" to title for right padding
+ $title.find('.close').parent('.popover-title').addClass('closable');
+
+ // Bind x icon to close popover
+ $title.find('.close').on('click', function () {
+ $this.popover('hide');
+ });
+
+ // Prevent href="#" page scroll to top
+ e.preventDefault();
+ });
+
+ return this;
+ };
+}(jQuery));
+
+// Util: DataTables Settings
+(function ($) {
+ 'use strict';
+ if ($.fn.dataTableExt) {
+ /* Set the defaults for DataTables initialisation */
+ $.extend(true, $.fn.dataTable.defaults, {
+ "bDestroy": true,
+ "bAutoWidth": false,
+ "iDisplayLength": 20,
+ "sDom":
+ "<'dataTables_header' f i r >" +
+ "<'table-responsive' t >" +
+ "<'dataTables_footer' p >",
+ "oLanguage": {
+ "sInfo": "Showing
_START_ to
_END_ of
_TOTAL_ Items",
+ "sInfoFiltered" : "(of
_MAX_)",
+ "sInfoEmpty" : "Showing
0 Results",
+ "sZeroRecords":
+ "
Suggestions
" +
+ "
" +
+ "- Check the javascript regular expression syntax of the search term.
" +
+ "- Check that the correct menu option is chosen (token ID vs. user ID).
" +
+ "- Use wildcards (* to match 0 or more characters, + to match 1 or more characters, ? to match 0 or 1 character).
" +
+ "- Clear the search field, then click Search to return to the 20 most recent records.
" +
+ "
",
+ "sSearch": ""
+ },
+ "sPaginationType": "bootstrap_input",
+ "oSearch": {
+ "sSearch": "",
+ "bRegex": true,
+ "bSmart": false
+ }
+ });
+
+ /* Default class modification */
+ $.extend($.fn.dataTableExt.oStdClasses, {
+ "sWrapper": "dataTables_wrapper"
+ });
+
+ /* API method to get paging information */
+ $.fn.dataTableExt.oApi.fnPagingInfo = function (oSettings) {
+ return {
+ "iStart": oSettings._iDisplayStart,
+ "iEnd": oSettings.fnDisplayEnd(),
+ "iLength": oSettings._iDisplayLength,
+ "iTotal": oSettings.fnRecordsTotal(),
+ "iFilteredTotal": oSettings.fnRecordsDisplay(),
+ "iPage": oSettings._iDisplayLength === -1 ? 0 : Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength),
+ "iTotalPages": oSettings._iDisplayLength === -1 ? 0 : Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength)
+ };
+ };
+
+ /* Combination of Bootstrap + Input Text style pagination control */
+ $.extend($.fn.dataTableExt.oPagination, {
+ "bootstrap_input": {
+ "fnInit": function (oSettings, nPaging, fnDraw) {
+ var fnClickHandler = function (e) {
+ e.preventDefault();
+ if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {
+ fnDraw(oSettings);
+ }
+ },
+ els,
+ nInput;
+
+ $(nPaging).append(
+ '' +
+ '' +
+ ''
+ );
+
+ els = $('li', nPaging);
+ $(els[0]).bind('click.DT', { action: "first" }, fnClickHandler);
+ $(els[1]).bind('click.DT', { action: "previous" }, fnClickHandler);
+ $(els[2]).bind('click.DT', { action: "next" }, fnClickHandler);
+ $(els[3]).bind('click.DT', { action: "last" }, fnClickHandler);
+
+ nInput = $('input', nPaging);
+ $(nInput).keyup(function (e) {
+ var iNewStart;
+ if (e.which === 38 || e.which === 39) {
+ this.value += 1;
+ } else if ((e.which === 37 || e.which === 40) && this.value > 1) {
+ this.value -= 1;
+ }
+
+ if (this.value === "" || !this.value.match(/[0-9]/)) {
+ /* Nothing entered or non-numeric character */
+ return;
+ }
+
+ iNewStart = oSettings._iDisplayLength * (this.value - 1);
+ if (iNewStart >= oSettings.fnRecordsDisplay()) {
+ /* Display overrun */
+ oSettings._iDisplayStart = (Math.ceil((oSettings.fnRecordsDisplay() - 1) /
+ oSettings._iDisplayLength) - 1) * oSettings._iDisplayLength;
+ fnDraw(oSettings);
+ return;
+ }
+
+ oSettings._iDisplayStart = iNewStart;
+ fnDraw(oSettings);
+ });
+ },
+
+ "fnUpdate": function (oSettings, fnDraw) {
+ var oPaging = oSettings.oInstance.fnPagingInfo(),
+ an = oSettings.aanFeatures.p,
+ ien = an.length,
+ iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength),
+ iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1,
+ i;
+
+ for (i = 0; i < ien; i += 1) {
+ $('.paginate_input', an[i]).val(iCurrentPage)
+ .siblings('.paginate_of').find('b').html(iPages);
+
+ // Add / remove disabled classes from the static elements
+ if (oPaging.iPage === 0) {
+ $('li.first', an[i]).addClass('disabled');
+ $('li.prev', an[i]).addClass('disabled');
+ } else {
+ $('li.first', an[i]).removeClass('disabled');
+ $('li.prev', an[i]).removeClass('disabled');
+ }
+
+ if (oPaging.iPage === oPaging.iTotalPages - 1 || oPaging.iTotalPages === 0) {
+ $('li.next', an[i]).addClass('disabled');
+ $('li.last', an[i]).addClass('disabled');
+ } else {
+ $('li.next', an[i]).removeClass('disabled');
+ $('li.last', an[i]).removeClass('disabled');
+ }
+ }
+ }
+ }
+ });
+ }
+}(jQuery));
+
+// Util: PatternFly Collapsible Left Hand Navigation
+// Must have navbar-toggle in navbar-pf-alt for expand/collapse
+(function ($) {
+
+ 'use strict';
+
+ $.fn.navigation = function () {
+
+ var navElement = $('.layout-pf-alt-fixed .nav-pf-vertical-alt'),
+ bodyContentElement = $('.container-pf-alt-nav-pf-vertical-alt'),
+ toggleNavBarButton = $('.navbar-toggle'),
+ explicitCollapse = false,
+ checkNavState = function () {
+ var width = $(window).width();
+
+ //Always remove the hidden & peek class
+ navElement.removeClass('hidden show-mobile-nav collapsed');
+
+ //Set the body class back to the default
+ bodyContentElement.removeClass('collapsed-nav hidden-nav');
+
+ // Check to see if the nav needs to collapse
+ if (width < $.pfBreakpoints.desktop || explicitCollapse) {
+ navElement.addClass('collapsed');
+ bodyContentElement.addClass('collapsed-nav');
+ }
+
+ // Check to see if we need to move down to the mobile state
+ if (width < $.pfBreakpoints.tablet) {
+ //Set the nav to being hidden
+ navElement.addClass('hidden');
+
+ //Make sure this is expanded
+ navElement.removeClass('collapsed');
+
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+ bodyContentElement.addClass('hidden-nav');
+ }
+ },
+ collapseMenu = function () {
+ //Make sure this is expanded
+ navElement.addClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.addClass('collapsed-nav');
+
+ explicitCollapse = true;
+ },
+ enableTransitions = function () {
+ // enable transitions only when toggleNavBarButton is clicked or window is resized
+ $('html').addClass('transitions');
+ },
+ expandMenu = function () {
+ //Make sure this is expanded
+ navElement.removeClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+
+ explicitCollapse = false;
+ },
+ bindMenuBehavior = function () {
+ toggleNavBarButton.on('click', function (e) {
+ var inMobileState = bodyContentElement.hasClass('hidden-nav');
+ enableTransitions();
+
+ if (inMobileState && navElement.hasClass('show-mobile-nav')) {
+ //In mobile state just need to hide the nav
+ navElement.removeClass('show-mobile-nav');
+ } else if (inMobileState) {
+ navElement.addClass('show-mobile-nav');
+ } else if (navElement.hasClass('collapsed')) {
+ expandMenu();
+ } else {
+ collapseMenu();
+ }
+ });
+ },
+ setTooltips = function () {
+ $('.nav-pf-vertical-alt [data-toggle="tooltip"]').tooltip({'container': 'body', 'delay': { 'show': '500', 'hide': '200' }});
+
+ $(".nav-pf-vertical-alt").on("show.bs.tooltip", function (e) {
+ return $(this).hasClass("collapsed");
+ });
+
+ },
+ init = function () {
+ //Set correct state on load
+ checkNavState();
+
+ // Bind Top level hamburger menu with menu behavior;
+ bindMenuBehavior();
+
+ //Set tooltips
+ setTooltips();
+ };
+
+ //Listen for the window resize event and collapse/hide as needed
+ $(window).on('resize', function () {
+ checkNavState();
+ enableTransitions();
+ });
+
+ init();
+
+ };
+
+ $(document).ready(function () {
+ if ($('.nav-pf-vertical-alt').length > 0) {
+ $.fn.navigation();
+ }
+ });
+
+}(jQuery));
+
+// Count and Display Remaining Characters
+(function ($) {
+
+ 'use strict';
+
+ $.fn.countRemainingChars = function (options) {
+
+ var settings = $.extend({
+ // These are the defaults.
+ charsMaxLimit: 100,
+ charsWarnRemaining: 5,
+ blockInputAtMaxLimit: false
+ }, options),
+ $taFld = this,
+ $countFld = $('#' + settings.countFld).text(settings.charsMaxLimit),
+ charsRemainingFn = function (charsLength) {
+ var charsRemaining = settings.charsMaxLimit - charsLength;
+ $countFld.text(charsRemaining);
+ $countFld.toggleClass('chars-warn-remaining-pf', charsRemaining <= settings.charsWarnRemaining);
+ if (charsRemaining < 0) {
+ $taFld.trigger("overCharsMaxLimitEvent", $taFld.attr('id'));
+ } else {
+ $taFld.trigger("underCharsMaxLimitEvent", $taFld.attr('id'));
+ }
+ };
+
+ this.on('paste', function (event) {
+ setTimeout(function () {
+ var charsLength = $taFld.val().length, maxTxt;
+
+ if (settings.blockInputAtMaxLimit && charsLength > settings.charsMaxLimit) {
+ maxTxt = $taFld.val();
+ maxTxt = maxTxt.substring(0, settings.charsMaxLimit);
+ $taFld.val(maxTxt);
+ charsLength = $taFld.val().length;
+ }
+
+ charsRemainingFn(charsLength);
+ }, 100);
+ });
+
+ this.keyup(function (event) {
+ charsRemainingFn($taFld.val().length);
+ });
+
+ this.keydown(function (event) {
+ var charsLength = $taFld.val().length;
+
+ if (settings.blockInputAtMaxLimit && charsLength >= settings.charsMaxLimit) {
+ // Except backspace
+ if (event.keyCode !== 8) {
+ event.preventDefault();
+ }
+ }
+ });
+
+ return this;
+ };
+}(jQuery));
+
+// Util: PatternFly Palette colors
+(function ($) {
+ 'use strict';
+
+ if (patternfly !== undefined) {
+ $.pfPaletteColors = patternfly.pfPaletteColors;
+ }
+}(jQuery));
+
+// Util: PatternFly C3 Chart Defaults
+(function ($) {
+ 'use strict';
+ if (patternfly !== undefined) {
+ $.fn.pfSetDonutChartTitle = patternfly.pfSetDonutChartTitle;
+ $.fn.pfDonutTooltipContents = patternfly.pfDonutTooltipContents;
+ $.fn.pfGetUtilizationDonutTooltipContentsFn = patternfly.pfGetUtilizationDonutTooltipContentsFn;
+ $.fn.pfGetBarChartTooltipContentsFn = patternfly.pfGetBarChartTooltipContentsFn;
+ $.fn.pfSingleLineChartTooltipContentsFn = patternfly.pfSingleLineChartTooltipContentsFn;
+ $.fn.pfPieTooltipContents = patternfly.pfPieTooltipContents;
+ $.fn.c3ChartDefaults = patternfly.c3ChartDefaults;
+ }
+}(jQuery));
+
+// Util: PatternFly Collapse with fixed heights
+// Update the max-height of collapse elements based on the parent container's height.
+(function ($) {
+ 'use strict';
+
+ $.fn.initCollapseHeights = function (scrollSelector) {
+ var parentElement = this, setCollapseHeights, targetScrollSelector = scrollSelector;
+
+ setCollapseHeights = function () {
+ var height, openPanel, contentHeight, bodyHeight, overflowY = 'hidden';
+
+ height = parentElement.height();
+
+ // Close any open panel
+ openPanel = parentElement.find('.collapse.in');
+ if (openPanel && openPanel.length > 0) {
+ openPanel.removeClass('in');
+ }
+
+ // Determine the necessary height for the closed content
+ contentHeight = 0;
+ parentElement.children().each($.proxy(function (i, element) {
+ var $element = $(element);
+ contentHeight += $element.outerHeight(true);
+ }, parentElement)).end();
+
+ // Determine the height remaining for opened collapse panels
+ bodyHeight = height - contentHeight;
+
+ // Make sure we have enough height to be able to scroll the contents if necessary
+ if (bodyHeight < 25) {
+ bodyHeight = 25;
+
+ // Allow the parent to scroll so the child elements are accessible
+ overflowY = 'auto';
+ }
+
+ // Reopen the initially opened panel
+ if (openPanel && openPanel.length > 0) {
+ openPanel.addClass("in");
+ }
+
+ setTimeout(function () {
+ // Set the max-height for the collapse panels
+ parentElement.find('[data-toggle="collapse"]').each($.proxy(function (i, element) {
+ var $element, selector, $target, scrollElement, innerHeight = 0;
+ $element = $(element);
+
+ // Determine the selector to find the target
+ selector = $element.attr('data-target');
+ if (!selector) {
+ selector = $element.attr('href');
+ }
+
+ // Determine the scroll element (either the target or the child of the target based on the given selector)
+ $target = $(selector);
+ scrollElement = $target;
+ if (targetScrollSelector) {
+ scrollElement = $target.find(targetScrollSelector);
+ if (scrollElement.length === 1) {
+ innerHeight = 0;
+ $target.children().each($.proxy(function (j, sibling) {
+ var $sibling = $(sibling);
+ if (sibling !== scrollElement[0]) {
+ innerHeight += $sibling.outerHeight(true);
+ }
+ }, $target)).end();
+ bodyHeight -= innerHeight;
+ } else {
+ scrollElement = $target;
+ }
+ }
+ // Set the max-height and vertical scroll of the scroll element
+ scrollElement.css({'max-height': (bodyHeight - innerHeight) + 'px', 'overflow-y': 'auto'});
+ }, parentElement)).end();
+
+ parentElement.css({'overflow-y': overflowY});
+ }, 100);
+ };
+
+ setCollapseHeights();
+
+ // Update on window resizing
+ $(window).on('resize', setCollapseHeights);
+
+ };
+
+ $.fn.initFixedAccordion = function () {
+ var fixedAccordion = this, initOpen;
+
+ fixedAccordion.on('show.bs.collapse','.collapse', function (event) {
+ $(event.target.parentNode).addClass('panel-open');
+ });
+
+ fixedAccordion.on('hide.bs.collapse','.collapse', function (event) {
+ $(event.target.parentNode).removeClass('panel-open');
+ });
+
+ fixedAccordion.find('.panel').each(function (index, item) {
+ $(item).removeClass('panel-open');
+ });
+
+ initOpen = $(fixedAccordion.find('.collapse.in'))[0];
+ if (initOpen) {
+ $(initOpen.parentNode).addClass('panel-open');
+ }
+ };
+
+}(jQuery));
+
+// Util: PatternFly TreeGrid Tables
+(function ($) {
+ 'use strict';
+
+ function getParent (rows, node) {
+ var parent = node.attr('data-parent');
+
+ if (typeof parent === "string") {
+ if (isNaN(parent)) {
+ parent = $(parent);
+ if (parent.length > 1) {
+ parent = rows.closest(parent);
+ }
+ } else {
+ parent = $(rows[parseInt(parent, 10)]);
+ }
+ return parent;
+ }
+ return undefined;
+ }
+
+ function renderItem (item, parent) {
+ if (parent) {
+ parent.find('.treegrid-node > span.expand-icon')
+ .toggleClass('fa-angle-right', parent.hasClass('collapsed'))
+ .toggleClass('fa-angle-down', !parent.hasClass('collapsed'));
+ item.toggleClass('hidden', parent.hasClass('collapsed'));
+ if (parent.hasClass('collapsed')) {
+ item.addClass('collapsed');
+ }
+ }
+ }
+
+ function reStripe (tree) {
+ tree.find('tbody > tr').removeClass('odd');
+ tree.find('tbody > tr:not(.hidden):odd').addClass('odd');
+ }
+
+ $.fn.treegrid = function (options) {
+ var i, rows, _this;
+ rows = this.find('tbody > tr');
+ _this = this;
+ $.each(rows, function () {
+ var node, parent;
+ node = $(this);
+ parent = getParent(rows, node);
+ // Append expand icon dummies
+ node.children('.treegrid-node').prepend('
');
+
+ // Set up an event listener for the node
+ node.children('.treegrid-node').on('click', function (e) {
+ var icon = node.find('span.expand-icon');
+
+ if (options && typeof options.callback === 'function') {
+ options.callback(e);
+ }
+
+ if (icon.hasClass('fa-angle-right')) {
+ node.removeClass('collapsed');
+ }
+ if (icon.hasClass('fa-angle-down')) {
+ node.addClass('collapsed');
+ }
+ $.each(rows.slice(rows.index(node) + 1), function () {
+ renderItem($(this), getParent(rows, $(this)));
+ });
+ reStripe(_this);
+ });
+
+ if (parent) {
+ // Calculate indentation depth
+ i = parent.find('.treegrid-node > span.indent').length + 1;
+ for (; i > 0; i -= 1) {
+ node.children('.treegrid-node').prepend('
');
+ }
+ // Render expand/collapse icons
+ renderItem(node, parent);
+ }
+ });
+ reStripe(_this);
+ };
+}(jQuery));
+
+// Util: PatternFly Vertical Navigation
+// Must have navbar-toggle in navbar-pf-vertical for expand/collapse
+(function ($) {
+ 'use strict';
+
+ $.fn.setupVerticalNavigation = function (handleItemSelections, ignoreDrawer, userOptions) {
+
+ var options = $.extend({
+ hoverDelay: 500,
+ hideDelay: 700,
+ rememberOpenState: true,
+ storage: 'localStorage',
+ }, userOptions || {}),
+
+ navElement = $('.nav-pf-vertical'),
+ bodyContentElement = $('.container-pf-nav-pf-vertical'),
+ toggleNavBarButton = $('.navbar-toggle'),
+ handleResize = true,
+ explicitCollapse = false,
+ subDesktop = false,
+ storageLocation = options.storage === 'sessionStorage' ? 'sessionStorage' : 'localStorage',
+
+ inMobileState = function () {
+ return bodyContentElement.hasClass('hidden-nav');
+ },
+
+ forceResize = function (delay) {
+ setTimeout(function () {
+ $(window).trigger('resize');
+ }, delay);
+ },
+
+ showSecondaryMenu = function () {
+ if (inMobileState() || !subDesktop) {
+ navElement.addClass('secondary-visible-pf');
+ bodyContentElement.addClass('secondary-visible-pf');
+ }
+
+ // Dispatch a resize event when showing the secondary menu in non-subdesktop state to
+ // allow content to adjust to the secondary menu sizing
+ if (!subDesktop) {
+ forceResize(100);
+ }
+ },
+
+ hideSecondaryMenu = function () {
+ navElement.removeClass('secondary-visible-pf');
+ bodyContentElement.removeClass('secondary-visible-pf');
+
+ if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-secondary-nav-pf');
+ }
+
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+
+ navElement.find('.is-hover').each(function (index, item) {
+ $(item).removeClass('is-hover');
+ });
+ },
+
+ hideTertiaryMenu = function () {
+ navElement.removeClass('tertiary-visible-pf');
+ bodyContentElement.removeClass('tertiary-visible-pf');
+
+ if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-tertiary-nav-pf');
+ }
+
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+
+ navElement.find('.is-hover').each(function (index, item) {
+ $(item).removeClass('is-hover');
+ });
+ },
+
+ setActiveItem = function (item) {
+ // remove all .active
+ $('.nav-pf-vertical .list-group-item.active').removeClass('active');
+
+ // add .active to item and its parents
+ item.addClass('active').parents('.list-group-item').addClass('active');
+ },
+
+ updateSecondaryMenuDisplayAfterSelection = function () {
+ if (inMobileState()) {
+ navElement.removeClass('show-mobile-nav');
+ hideSecondaryMenu();
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+ } else {
+ showSecondaryMenu();
+ }
+ },
+
+ updateSecondaryCollapsedState = function (setCollapsed, collapsedItem) {
+ if (setCollapsed) {
+ collapsedItem.addClass('collapsed');
+ navElement.addClass('collapsed-secondary-nav-pf');
+ bodyContentElement.addClass('collapsed-secondary-nav-pf');
+ } else {
+ if (collapsedItem) {
+ collapsedItem.removeClass('collapsed');
+ } else {
+ // Remove any collapsed secondary menus
+ navElement.find('[data-toggle="collapse-secondary-nav"]').each(function (index, element) {
+ var $e = $(element);
+ $e.removeClass('collapsed');
+ });
+ }
+ navElement.removeClass('collapsed-secondary-nav-pf');
+ bodyContentElement.removeClass('collapsed-secondary-nav-pf');
+ }
+ },
+
+ updateTertiaryCollapsedState = function (setCollapsed, collapsedItem) {
+ if (setCollapsed) {
+ collapsedItem.addClass('collapsed');
+ navElement.addClass('collapsed-tertiary-nav-pf');
+ bodyContentElement.addClass('collapsed-tertiary-nav-pf');
+ updateSecondaryCollapsedState(false);
+ } else {
+ if (collapsedItem) {
+ collapsedItem.removeClass('collapsed');
+ } else {
+ // Remove any collapsed tertiary menus
+ navElement.find('[data-toggle="collapse-tertiary-nav"]').each(function (index, element) {
+ var $e = $(element);
+ $e.removeClass('collapsed');
+ });
+ }
+ navElement.removeClass('collapsed-tertiary-nav-pf');
+ bodyContentElement.removeClass('collapsed-tertiary-nav-pf');
+ }
+ },
+
+ updateMobileMenu = function (selected, secondaryItem) {
+ $(document).find('.list-group-item.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+ $(document).find('.list-group-item.mobile-secondary-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-secondary-item-pf');
+ });
+ if (selected) {
+ selected.addClass('mobile-nav-item-pf');
+ if (secondaryItem) {
+ secondaryItem.addClass('mobile-secondary-item-pf');
+ navElement.removeClass('show-mobile-secondary');
+ navElement.addClass('show-mobile-tertiary');
+ } else {
+ navElement.addClass('show-mobile-secondary');
+ navElement.removeClass('show-mobile-tertiary');
+ }
+ } else {
+ navElement.removeClass('show-mobile-secondary');
+ navElement.removeClass('show-mobile-tertiary');
+ }
+ },
+
+ enterMobileState = function () {
+ if (!navElement.hasClass('hidden')) {
+ //Set the nav to being hidden
+ navElement.addClass('hidden');
+ navElement.removeClass('collapsed');
+
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+ bodyContentElement.addClass('hidden-nav');
+
+ // Reset the collapsed states
+ updateSecondaryCollapsedState(false);
+ updateTertiaryCollapsedState(false);
+
+ explicitCollapse = false;
+ }
+ },
+
+ exitMobileState = function () {
+ // Always remove the hidden & peek class
+ navElement.removeClass('hidden show-mobile-nav');
+
+ // Set the body class back to the default
+ bodyContentElement.removeClass('hidden-nav');
+ },
+
+ checkNavState = function () {
+ var width = $(window).width(), makeSecondaryVisible;
+ if (!handleResize) {
+ return;
+ }
+ // Check to see if we need to enter/exit the mobile state
+ if (width < $.pfBreakpoints.tablet && !explicitCollapse) {
+ enterMobileState();
+ } else if (navElement.hasClass('hidden')) {
+ exitMobileState();
+ }
+
+ // Check to see if we need to enter/exit the sub desktop state
+ if (width < $.pfBreakpoints.desktop) {
+ if (!subDesktop) {
+ // Collapse the navigation bars when entering sub desktop mode
+ navElement.addClass('collapsed');
+ bodyContentElement.addClass('collapsed-nav');
+ }
+ if (width >= $.pfBreakpoints.tablet) {
+ hideSecondaryMenu();
+ }
+ subDesktop = true;
+ } else {
+ makeSecondaryVisible = subDesktop && (navElement.find('.secondary-nav-item-pf.active').length > 0);
+ subDesktop = false;
+ if (makeSecondaryVisible) {
+
+ showSecondaryMenu();
+ }
+ }
+
+ if (explicitCollapse) {
+ navElement.addClass('collapsed');
+ bodyContentElement.addClass('collapsed-nav');
+ } else {
+ navElement.removeClass('collapsed');
+ bodyContentElement.removeClass('collapsed-nav');
+ }
+ },
+
+ collapseMenu = function () {
+ //Make sure this is expanded
+ navElement.addClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.addClass('collapsed-nav');
+
+ if (subDesktop) {
+ hideSecondaryMenu();
+ }
+
+ explicitCollapse = true;
+ },
+
+ enableTransitions = function () {
+ // enable transitions only when toggleNavBarButton is clicked or window is resized
+ $('html').addClass('transitions');
+ },
+
+ expandMenu = function () {
+ //Make sure this is expanded
+ navElement.removeClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+
+ explicitCollapse = false;
+
+ // Dispatch a resize event when showing the expanding then menu to
+ // allow content to adjust to the menu sizing
+ if (!subDesktop) {
+ forceResize(100);
+ }
+ },
+
+ bindMenuBehavior = function () {
+ toggleNavBarButton.on('click', function (e) {
+ var $drawer;
+
+ enableTransitions();
+
+ if (inMobileState()) {
+ // Toggle the mobile nav
+ if (navElement.hasClass('show-mobile-nav')) {
+ navElement.removeClass('show-mobile-nav');
+ } else {
+ // Always start at the primary menu
+ updateMobileMenu();
+ navElement.addClass('show-mobile-nav');
+
+ // If the notification drawer is shown, hide it
+ if (!ignoreDrawer) {
+ $drawer = $('.drawer-pf');
+ if ($drawer.length) {
+ $('.drawer-pf-trigger').removeClass('open');
+ $drawer.addClass('hide');
+ }
+ }
+ }
+ } else if (navElement.hasClass('collapsed')) {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-primary', 'expanded');
+ }
+ expandMenu();
+ } else {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-primary', 'collapsed');
+ }
+ collapseMenu();
+ }
+ });
+ },
+
+ forceHideSecondaryMenu = function () {
+ navElement.addClass('force-hide-secondary-nav-pf');
+ setTimeout(function () {
+ navElement.removeClass('force-hide-secondary-nav-pf');
+ }, 500);
+ },
+
+ bindMenuItemsBehavior = function (handleSelection) {
+ $(document).find('.nav-pf-vertical .list-group-item').each(function (index, item) {
+ var onClickFn,
+ $item = $(item),
+ $nav = $item.closest('[class*="nav-pf-"]');
+
+ if ($nav.hasClass('nav-pf-vertical')) {
+ // Set main nav active item on click or show secondary nav if it has a secondary nav bar and we are in the mobile state
+ onClickFn = function (event) {
+ var $this = $(this), $secondaryItem, $tertiaryItem, $activeItem;
+
+ if (!$this.hasClass('secondary-nav-item-pf')) {
+ hideSecondaryMenu();
+ if (inMobileState()) {
+ updateMobileMenu();
+ navElement.removeClass('show-mobile-nav');
+ }
+ if (handleSelection) {
+ setActiveItem($this);
+ // Don't process the click on the item
+ event.stopImmediatePropagation();
+ }
+ } else if (inMobileState()) {
+ updateMobileMenu($this);
+ } else if (handleSelection) {
+ $activeItem = $secondaryItem = $item.find('.nav-pf-secondary-nav > .list-group > .list-group-item').eq(0);
+
+ if ($secondaryItem.hasClass('tertiary-nav-item-pf')) {
+ $activeItem = $secondaryItem.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
+ }
+
+ setActiveItem($activeItem);
+ event.stopImmediatePropagation();
+ }
+ };
+
+ } else if ($nav.hasClass('nav-pf-secondary-nav')) {
+ // Set secondary nav active item on click or show tertiary nav if it has a tertiary nav bar and we are in the mobile state
+ onClickFn = function (event) {
+ var $this = $(this), $tertiaryItem, $primaryItem;
+ if (!$this.hasClass('tertiary-nav-item-pf')) {
+ if (inMobileState()) {
+ updateMobileMenu();
+ navElement.removeClass('show-mobile-nav');
+ }
+ updateSecondaryMenuDisplayAfterSelection();
+ if (handleSelection) {
+ setActiveItem($item);
+ hideSecondaryMenu();
+ event.stopImmediatePropagation();
+ }
+ } else if (inMobileState()) {
+ $primaryItem = $item.parents('.list-group-item');
+ updateMobileMenu($this, $primaryItem);
+ event.stopImmediatePropagation();
+ } else if (handleSelection) {
+ $tertiaryItem = $item.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
+ setActiveItem($tertiaryItem);
+ event.stopImmediatePropagation();
+ }
+ };
+
+ } else if ($nav.hasClass('nav-pf-tertiary-nav')) {
+ // Set tertiary nav active item on click
+ onClickFn = function (event) {
+ if (inMobileState()) {
+ updateMobileMenu();
+ navElement.removeClass('show-mobile-nav');
+ }
+ updateSecondaryMenuDisplayAfterSelection();
+ if (handleSelection) {
+ setActiveItem($item);
+ hideTertiaryMenu();
+ hideSecondaryMenu();
+ event.stopImmediatePropagation();
+ }
+ };
+ }
+
+ // register event handler
+ $item.on('click.pf.secondarynav.data-api', onClickFn);
+ });
+
+ $(document).find('.secondary-nav-item-pf').each(function (index, secondaryItem) {
+ var $secondaryItem = $(secondaryItem);
+
+ // Collapse the secondary nav bar when the toggle is clicked
+ $secondaryItem.on('click.pf.secondarynav.data-api', '[data-toggle="collapse-secondary-nav"]', function (e) {
+ var $this = $(this);
+ if (inMobileState()) {
+ updateMobileMenu();
+ e.stopImmediatePropagation();
+ } else {
+ if ($this.hasClass('collapsed')) {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
+ }
+ updateSecondaryCollapsedState(false, $this);
+ forceHideSecondaryMenu();
+ } else {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'collapsed');
+ }
+ updateSecondaryCollapsedState(true, $this);
+ }
+ }
+ navElement.removeClass('hover-secondary-nav-pf');
+ if (handleSelection) {
+ // Don't process the click on the parent item
+ e.stopImmediatePropagation();
+ }
+ });
+
+ $secondaryItem.find('.tertiary-nav-item-pf').each(function (index, primaryItem) {
+ var $primaryItem = $(primaryItem);
+ // Collapse the tertiary nav bar when the toggle is clicked
+ $primaryItem.on('click.pf.tertiarynav.data-api', '[data-toggle="collapse-tertiary-nav"]', function (e) {
+ var $this = $(this);
+ if (inMobileState()) {
+ updateMobileMenu($secondaryItem);
+ e.stopImmediatePropagation();
+ } else {
+ if ($this.hasClass('collapsed')) {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
+ }
+ updateTertiaryCollapsedState(false, $this);
+ forceHideSecondaryMenu();
+ } else {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'collapsed');
+ }
+ updateTertiaryCollapsedState(true, $this);
+ }
+ }
+ navElement.removeClass('hover-secondary-nav-pf');
+ navElement.removeClass('hover-tertiary-nav-pf');
+ if (handleSelection) {
+ // Don't process the click on the parent item
+ e.stopImmediatePropagation();
+ }
+ });
+ });
+ });
+
+ // Show secondary nav bar on hover of secondary nav items
+ $(document).on('mouseenter.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if (!inMobileState()) {
+ if ($this[0].navUnHoverTimeout !== undefined) {
+ clearTimeout($this[0].navUnHoverTimeout);
+ $this[0].navUnHoverTimeout = undefined;
+ } else if ($this[0].navHoverTimeout === undefined) {
+ $this[0].navHoverTimeout = setTimeout(function () {
+ navElement.addClass('hover-secondary-nav-pf');
+ $this.addClass('is-hover');
+ $this[0].navHoverTimeout = undefined;
+ }, options.hoverDelay);
+ }
+ }
+ });
+
+ $(document).on('mouseleave.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if ($this[0].navHoverTimeout !== undefined) {
+ clearTimeout($this[0].navHoverTimeout);
+ $this[0].navHoverTimeout = undefined;
+ } else if ($this[0].navUnHoverTimeout === undefined &&
+ navElement.find('.secondary-nav-item-pf.is-hover').length > 0) {
+ $this[0].navUnHoverTimeout = setTimeout(function () {
+ if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-secondary-nav-pf');
+ }
+ $this.removeClass('is-hover');
+ $this[0].navUnHoverTimeout = undefined;
+ }, options.hideDelay);
+ }
+ });
+
+ // Show tertiary nav bar on hover of secondary nav items
+ $(document).on('mouseover.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if (!inMobileState()) {
+ if ($this[0].navUnHoverTimeout !== undefined) {
+ clearTimeout($this[0].navUnHoverTimeout);
+ $this[0].navUnHoverTimeout = undefined;
+ } else if ($this[0].navHoverTimeout === undefined) {
+ $this[0].navHoverTimeout = setTimeout(function () {
+ navElement.addClass('hover-tertiary-nav-pf');
+ $this.addClass('is-hover');
+ $this[0].navHoverTimeout = undefined;
+ }, options.hoverDelay);
+ }
+ }
+ });
+ $(document).on('mouseout.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if ($this[0].navHoverTimeout !== undefined) {
+ clearTimeout($this[0].navHoverTimeout);
+ $this[0].navHoverTimeout = undefined;
+ } else if ($this[0].navUnHoverTimeout === undefined) {
+ $this[0].navUnHoverTimeout = setTimeout(function () {
+ if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-tertiary-nav-pf');
+ }
+ $this.removeClass('is-hover');
+ $this[0].navUnHoverTimeout = undefined;
+ }, options.hideDelay);
+ }
+ });
+ },
+
+ loadFromLocalStorage = function () {
+ if (inMobileState()) {
+ return;
+ }
+
+ if (window[storageLocation].getItem('patternfly-navigation-primary') === 'collapsed') {
+ collapseMenu();
+ }
+
+ if ($('.nav-pf-vertical.nav-pf-vertical-collapsible-menus').length > 0) {
+ if (window[storageLocation].getItem('patternfly-navigation-secondary') === 'collapsed') {
+ updateSecondaryCollapsedState(true, $('.secondary-nav-item-pf.active [data-toggle=collapse-secondary-nav]'));
+ }
+
+ if (window[storageLocation].getItem('patternfly-navigation-tertiary') === 'collapsed') {
+ updateTertiaryCollapsedState(true, $('.tertiary-nav-item-pf.active [data-toggle=collapse-tertiary-nav]'));
+ }
+ }
+ },
+
+ setTooltips = function () {
+ var tooltipOptions = {
+ container: 'body',
+ placement: 'bottom',
+ delay: { 'show': '500', 'hide': '200' },
+ template: '
'
+ };
+ $('.nav-pf-vertical [data-toggle="tooltip"]').tooltip(tooltipOptions);
+
+ $('.nav-pf-vertical').on("show.bs.tooltip", function (e) {
+ return $(this).hasClass("collapsed");
+ });
+ },
+
+ init = function (handleItemSelections) {
+ // Hide the nav menus during initialization
+ navElement.addClass('hide-nav-pf');
+ bodyContentElement.addClass('hide-nav-pf');
+
+ //Set correct state on load
+ checkNavState();
+
+ // Bind Top level hamburger menu with menu behavior;
+ bindMenuBehavior();
+
+ // Bind menu items
+ bindMenuItemsBehavior(handleItemSelections);
+
+ //Set tooltips
+ setTooltips();
+
+ if (options.rememberOpenState) {
+ loadFromLocalStorage();
+ }
+
+ // Show the nav menus
+ navElement.removeClass('hide-nav-pf');
+ bodyContentElement.removeClass('hide-nav-pf');
+ forceResize(250);
+ },
+
+ self = {
+ hideMenu: function () {
+ handleResize = false;
+ enterMobileState();
+ },
+ showMenu: function () {
+ handleResize = true;
+ exitMobileState();
+ },
+ isVisible: function () {
+ return handleResize;
+ }
+ };
+
+ if (!$.fn.setupVerticalNavigation.self) {
+ $.fn.setupVerticalNavigation.self = self;
+ //Listen for the window resize event and collapse/hide as needed
+ $(window).on('resize', function () {
+ checkNavState();
+ enableTransitions();
+ });
+
+ init(handleItemSelections);
+ }
+ return $.fn.setupVerticalNavigation.self;
+ };
+}(jQuery));
diff --git a/dist/js/patternfly-functions.min.js b/dist/js/patternfly-functions.min.js
new file mode 100644
index 0000000000..faf0ae9fc5
--- /dev/null
+++ b/dist/js/patternfly-functions.min.js
@@ -0,0 +1 @@
+!function($){"use strict";void 0!==patternfly&&($.pfBreakpoints=patternfly.pfBreakpoints)}(jQuery),function($){"use strict";$.fn.pfList=function(){function toggleCollapse(toggle){var $toggle,$expansion,$collapse,$listItem;$toggle=$(toggle),$expansion=$toggle.parentsUntil(".list-pf","[data-list=expansion]").first(),$expansion.length||($expansion=$toggle.closest(".list-pf-item, .list-pf-expansion")),$collapse=$expansion.find(".collapse").first(),$collapse.toggleClass("in"),updateChevron($expansion,$collapse.hasClass("in")),$listItem=$expansion.closest(".list-pf-item"),updateActive($listItem,$listItem.find(".collapse").first().hasClass("in"))}function updateActive($listItem,expanded){expanded?$listItem.addClass("active"):$listItem.removeClass("active")}function updateChevron($expansion,expanded){var $chevron=$expansion.find(".list-pf-chevron .fa").first();expanded?($chevron.removeClass("fa-angle-right"),$chevron.addClass("fa-angle-down")):($chevron.addClass("fa-angle-right"),$chevron.removeClass("fa-angle-down"))}return function(list){list.find("[data-list=expansion], .list-pf-item, .list-pf-expansion").each(function(index,element){var $expansion=$(element),$collapse=$expansion.find(".collapse").first(),expanded=$collapse.hasClass("in");updateChevron($expansion,expanded),$expansion.hasClass("list-pf-item")&&updateActive($expansion,expanded)}),list.find(".list-pf-container").each(function(index,element){var $element=$(element),$toggles=$element.find("[data-list=toggle]");$toggles.length||($toggles=$element),$toggles.on("keydown",function(event){13!==event.keyCode&&32!==event.keyCode||(toggleCollapse(this),event.stopPropagation(),event.preventDefault())}),$toggles.on("click",function(event){toggleCollapse(this),event.stopPropagation(),event.preventDefault()})})}(this),this}}(jQuery),function($){"use strict";$.fn.sidebar=function(){var documentHeight=0,navbarpfHeight=0,colHeight=0;$(".navbar-pf .navbar-toggle").is(":hidden")&&(documentHeight=$(document).height(),navbarpfHeight=$(".navbar-pf").outerHeight(),colHeight=documentHeight-navbarpfHeight),$(".sidebar-pf").parent(".row").children('[class*="col-"]').css({"min-height":colHeight})},$(document).ready(function(){$(".sidebar-pf").length>0&&0===$(".datatable").length&&$.fn.sidebar()}),$(window).on("resize",function(){$(".sidebar-pf").length>0&&$.fn.sidebar()})}(jQuery),function($){"use strict";$.fn.popovers=function(){return this.popover(),this.filter("[data-close=true]").each(function(index,element){var $this=$(element),title=$this.attr("data-original-title")+'
';$this.attr("data-original-title",title)}),this.on("click",function(e){var $this=$(this),$title=$this.next(".popover").find(".popover-title");$title.find(".close").parent(".popover-title").addClass("closable"),$title.find(".close").on("click",function(){$this.popover("hide")}),e.preventDefault()}),this}}(jQuery),function($){"use strict";$.fn.dataTableExt&&($.extend(!0,$.fn.dataTable.defaults,{bDestroy:!0,bAutoWidth:!1,iDisplayLength:20,sDom:"<'dataTables_header' f i r ><'table-responsive' t ><'dataTables_footer' p >",oLanguage:{sInfo:"Showing
_START_ to
_END_ of
_TOTAL_ Items",sInfoFiltered:"(of
_MAX_)",sInfoEmpty:"Showing
0 Results",sZeroRecords:"
Suggestions
- Check the javascript regular expression syntax of the search term.
- Check that the correct menu option is chosen (token ID vs. user ID).
- Use wildcards (* to match 0 or more characters, + to match 1 or more characters, ? to match 0 or 1 character).
- Clear the search field, then click Search to return to the 20 most recent records.
",sSearch:""},sPaginationType:"bootstrap_input",oSearch:{sSearch:"",bRegex:!0,bSmart:!1}}),$.extend($.fn.dataTableExt.oStdClasses,{sWrapper:"dataTables_wrapper"}),$.fn.dataTableExt.oApi.fnPagingInfo=function(oSettings){return{iStart:oSettings._iDisplayStart,iEnd:oSettings.fnDisplayEnd(),iLength:oSettings._iDisplayLength,iTotal:oSettings.fnRecordsTotal(),iFilteredTotal:oSettings.fnRecordsDisplay(),iPage:-1===oSettings._iDisplayLength?0:Math.ceil(oSettings._iDisplayStart/oSettings._iDisplayLength),iTotalPages:-1===oSettings._iDisplayLength?0:Math.ceil(oSettings.fnRecordsDisplay()/oSettings._iDisplayLength)}},$.extend($.fn.dataTableExt.oPagination,{bootstrap_input:{fnInit:function(oSettings,nPaging,fnDraw){var els,nInput,fnClickHandler=function(e){e.preventDefault(),oSettings.oApi._fnPageChange(oSettings,e.data.action)&&fnDraw(oSettings)};$(nPaging).append(''),els=$("li",nPaging),$(els[0]).bind("click.DT",{action:"first"},fnClickHandler),$(els[1]).bind("click.DT",{action:"previous"},fnClickHandler),$(els[2]).bind("click.DT",{action:"next"},fnClickHandler),$(els[3]).bind("click.DT",{action:"last"},fnClickHandler),nInput=$("input",nPaging),$(nInput).keyup(function(e){var iNewStart;if(38===e.which||39===e.which?this.value+=1:(37===e.which||40===e.which)&&this.value>1&&(this.value-=1),""!==this.value&&this.value.match(/[0-9]/)){if((iNewStart=oSettings._iDisplayLength*(this.value-1))>=oSettings.fnRecordsDisplay())return oSettings._iDisplayStart=(Math.ceil((oSettings.fnRecordsDisplay()-1)/oSettings._iDisplayLength)-1)*oSettings._iDisplayLength,void fnDraw(oSettings);oSettings._iDisplayStart=iNewStart,fnDraw(oSettings)}})},fnUpdate:function(oSettings,fnDraw){var i,oPaging=oSettings.oInstance.fnPagingInfo(),an=oSettings.aanFeatures.p,ien=an.length,iPages=Math.ceil(oSettings.fnRecordsDisplay()/oSettings._iDisplayLength),iCurrentPage=Math.ceil(oSettings._iDisplayStart/oSettings._iDisplayLength)+1;for(i=0;i
0&&$.fn.navigation()})}(jQuery),function($){"use strict";$.fn.countRemainingChars=function(options){var settings=$.extend({charsMaxLimit:100,charsWarnRemaining:5,blockInputAtMaxLimit:!1},options),$taFld=this,$countFld=$("#"+settings.countFld).text(settings.charsMaxLimit),charsRemainingFn=function(charsLength){var charsRemaining=settings.charsMaxLimit-charsLength;$countFld.text(charsRemaining),$countFld.toggleClass("chars-warn-remaining-pf",charsRemaining<=settings.charsWarnRemaining),charsRemaining<0?$taFld.trigger("overCharsMaxLimitEvent",$taFld.attr("id")):$taFld.trigger("underCharsMaxLimitEvent",$taFld.attr("id"))};return this.on("paste",function(event){setTimeout(function(){var maxTxt,charsLength=$taFld.val().length;settings.blockInputAtMaxLimit&&charsLength>settings.charsMaxLimit&&(maxTxt=$taFld.val(),maxTxt=maxTxt.substring(0,settings.charsMaxLimit),$taFld.val(maxTxt),charsLength=$taFld.val().length),charsRemainingFn(charsLength)},100)}),this.keyup(function(event){charsRemainingFn($taFld.val().length)}),this.keydown(function(event){var charsLength=$taFld.val().length;settings.blockInputAtMaxLimit&&charsLength>=settings.charsMaxLimit&&8!==event.keyCode&&event.preventDefault()}),this}}(jQuery),function($){"use strict";void 0!==patternfly&&($.pfPaletteColors=patternfly.pfPaletteColors)}(jQuery),function($){"use strict";void 0!==patternfly&&($.fn.pfSetDonutChartTitle=patternfly.pfSetDonutChartTitle,$.fn.pfDonutTooltipContents=patternfly.pfDonutTooltipContents,$.fn.pfGetUtilizationDonutTooltipContentsFn=patternfly.pfGetUtilizationDonutTooltipContentsFn,$.fn.pfGetBarChartTooltipContentsFn=patternfly.pfGetBarChartTooltipContentsFn,$.fn.pfSingleLineChartTooltipContentsFn=patternfly.pfSingleLineChartTooltipContentsFn,$.fn.pfPieTooltipContents=patternfly.pfPieTooltipContents,$.fn.c3ChartDefaults=patternfly.c3ChartDefaults)}(jQuery),function($){"use strict";$.fn.initCollapseHeights=function(scrollSelector){var setCollapseHeights,parentElement=this,targetScrollSelector=scrollSelector;setCollapseHeights=function(){var height,openPanel,contentHeight,bodyHeight,overflowY="hidden";height=parentElement.height(),openPanel=parentElement.find(".collapse.in"),openPanel&&openPanel.length>0&&openPanel.removeClass("in"),contentHeight=0,parentElement.children().each($.proxy(function(i,element){var $element=$(element);contentHeight+=$element.outerHeight(!0)},parentElement)).end(),bodyHeight=height-contentHeight,bodyHeight<25&&(bodyHeight=25,overflowY="auto"),openPanel&&openPanel.length>0&&openPanel.addClass("in"),setTimeout(function(){parentElement.find('[data-toggle="collapse"]').each($.proxy(function(i,element){var $element,selector,$target,scrollElement,innerHeight=0;$element=$(element),selector=$element.attr("data-target"),selector||(selector=$element.attr("href")),$target=$(selector),scrollElement=$target,targetScrollSelector&&(scrollElement=$target.find(targetScrollSelector),1===scrollElement.length?(innerHeight=0,$target.children().each($.proxy(function(j,sibling){var $sibling=$(sibling);sibling!==scrollElement[0]&&(innerHeight+=$sibling.outerHeight(!0))},$target)).end(),bodyHeight-=innerHeight):scrollElement=$target),scrollElement.css({"max-height":bodyHeight-innerHeight+"px","overflow-y":"auto"})},parentElement)).end(),parentElement.css({"overflow-y":overflowY})},100)},setCollapseHeights(),$(window).on("resize",setCollapseHeights)},$.fn.initFixedAccordion=function(){var initOpen,fixedAccordion=this;fixedAccordion.on("show.bs.collapse",".collapse",function(event){$(event.target.parentNode).addClass("panel-open")}),fixedAccordion.on("hide.bs.collapse",".collapse",function(event){$(event.target.parentNode).removeClass("panel-open")}),fixedAccordion.find(".panel").each(function(index,item){$(item).removeClass("panel-open")}),(initOpen=$(fixedAccordion.find(".collapse.in"))[0])&&$(initOpen.parentNode).addClass("panel-open")}}(jQuery),function($){"use strict";function getParent(rows,node){var parent=node.attr("data-parent");if("string"==typeof parent)return isNaN(parent)?(parent=$(parent),parent.length>1&&(parent=rows.closest(parent))):parent=$(rows[parseInt(parent,10)]),parent}function renderItem(item,parent){parent&&(parent.find(".treegrid-node > span.expand-icon").toggleClass("fa-angle-right",parent.hasClass("collapsed")).toggleClass("fa-angle-down",!parent.hasClass("collapsed")),item.toggleClass("hidden",parent.hasClass("collapsed")),parent.hasClass("collapsed")&&item.addClass("collapsed"))}function reStripe(tree){tree.find("tbody > tr").removeClass("odd"),tree.find("tbody > tr:not(.hidden):odd").addClass("odd")}$.fn.treegrid=function(options){var i,rows,_this;rows=this.find("tbody > tr"),_this=this,$.each(rows,function(){var node,parent;if(node=$(this),parent=getParent(rows,node),node.children(".treegrid-node").prepend(''),node.children(".treegrid-node").on("click",function(e){var icon=node.find("span.expand-icon");options&&"function"==typeof options.callback&&options.callback(e),icon.hasClass("fa-angle-right")&&node.removeClass("collapsed"),icon.hasClass("fa-angle-down")&&node.addClass("collapsed"),$.each(rows.slice(rows.index(node)+1),function(){renderItem($(this),getParent(rows,$(this)))}),reStripe(_this)}),parent){for(i=parent.find(".treegrid-node > span.indent").length+1;i>0;i-=1)node.children(".treegrid-node").prepend('');renderItem(node,parent)}}),reStripe(_this)}}(jQuery),function($){"use strict";$.fn.setupVerticalNavigation=function(handleItemSelections,ignoreDrawer,userOptions){var options=$.extend({hoverDelay:500,hideDelay:700,rememberOpenState:!0,storage:"localStorage"},userOptions||{}),navElement=$(".nav-pf-vertical"),bodyContentElement=$(".container-pf-nav-pf-vertical"),toggleNavBarButton=$(".navbar-toggle"),handleResize=!0,explicitCollapse=!1,subDesktop=!1,storageLocation="sessionStorage"===options.storage?"sessionStorage":"localStorage",inMobileState=function(){return bodyContentElement.hasClass("hidden-nav")},forceResize=function(delay){setTimeout(function(){$(window).trigger("resize")},delay)},showSecondaryMenu=function(){!inMobileState()&&subDesktop||(navElement.addClass("secondary-visible-pf"),bodyContentElement.addClass("secondary-visible-pf")),subDesktop||forceResize(100)},hideSecondaryMenu=function(){navElement.removeClass("secondary-visible-pf"),bodyContentElement.removeClass("secondary-visible-pf"),navElement.find(".secondary-nav-item-pf.is-hover").length<=1&&navElement.removeClass("hover-secondary-nav-pf"),navElement.find(".mobile-nav-item-pf").each(function(index,item){$(item).removeClass("mobile-nav-item-pf")}),navElement.find(".is-hover").each(function(index,item){$(item).removeClass("is-hover")})},hideTertiaryMenu=function(){navElement.removeClass("tertiary-visible-pf"),bodyContentElement.removeClass("tertiary-visible-pf"),navElement.find(".tertiary-nav-item-pf.is-hover").length<=1&&navElement.removeClass("hover-tertiary-nav-pf"),navElement.find(".mobile-nav-item-pf").each(function(index,item){$(item).removeClass("mobile-nav-item-pf")}),navElement.find(".is-hover").each(function(index,item){$(item).removeClass("is-hover")})},setActiveItem=function(item){$(".nav-pf-vertical .list-group-item.active").removeClass("active"),item.addClass("active").parents(".list-group-item").addClass("active")},updateSecondaryMenuDisplayAfterSelection=function(){inMobileState()?(navElement.removeClass("show-mobile-nav"),hideSecondaryMenu(),navElement.find(".mobile-nav-item-pf").each(function(index,item){$(item).removeClass("mobile-nav-item-pf")})):showSecondaryMenu()},updateSecondaryCollapsedState=function(setCollapsed,collapsedItem){setCollapsed?(collapsedItem.addClass("collapsed"),navElement.addClass("collapsed-secondary-nav-pf"),bodyContentElement.addClass("collapsed-secondary-nav-pf")):(collapsedItem?collapsedItem.removeClass("collapsed"):navElement.find('[data-toggle="collapse-secondary-nav"]').each(function(index,element){$(element).removeClass("collapsed")}),navElement.removeClass("collapsed-secondary-nav-pf"),bodyContentElement.removeClass("collapsed-secondary-nav-pf"))},updateTertiaryCollapsedState=function(setCollapsed,collapsedItem){setCollapsed?(collapsedItem.addClass("collapsed"),navElement.addClass("collapsed-tertiary-nav-pf"),bodyContentElement.addClass("collapsed-tertiary-nav-pf"),updateSecondaryCollapsedState(!1)):(collapsedItem?collapsedItem.removeClass("collapsed"):navElement.find('[data-toggle="collapse-tertiary-nav"]').each(function(index,element){$(element).removeClass("collapsed")}),navElement.removeClass("collapsed-tertiary-nav-pf"),bodyContentElement.removeClass("collapsed-tertiary-nav-pf"))},updateMobileMenu=function(selected,secondaryItem){$(document).find(".list-group-item.mobile-nav-item-pf").each(function(index,item){$(item).removeClass("mobile-nav-item-pf")}),$(document).find(".list-group-item.mobile-secondary-item-pf").each(function(index,item){$(item).removeClass("mobile-secondary-item-pf")}),selected?(selected.addClass("mobile-nav-item-pf"),secondaryItem?(secondaryItem.addClass("mobile-secondary-item-pf"),navElement.removeClass("show-mobile-secondary"),navElement.addClass("show-mobile-tertiary")):(navElement.addClass("show-mobile-secondary"),navElement.removeClass("show-mobile-tertiary"))):(navElement.removeClass("show-mobile-secondary"),navElement.removeClass("show-mobile-tertiary"))},enterMobileState=function(){navElement.hasClass("hidden")||(navElement.addClass("hidden"),navElement.removeClass("collapsed"),bodyContentElement.removeClass("collapsed-nav"),bodyContentElement.addClass("hidden-nav"),updateSecondaryCollapsedState(!1),updateTertiaryCollapsedState(!1),explicitCollapse=!1)},exitMobileState=function(){navElement.removeClass("hidden show-mobile-nav"),bodyContentElement.removeClass("hidden-nav")},checkNavState=function(){var makeSecondaryVisible,width=$(window).width();handleResize&&(width<$.pfBreakpoints.tablet&&!explicitCollapse?enterMobileState():navElement.hasClass("hidden")&&exitMobileState(),width<$.pfBreakpoints.desktop?(subDesktop||(navElement.addClass("collapsed"),bodyContentElement.addClass("collapsed-nav")),width>=$.pfBreakpoints.tablet&&hideSecondaryMenu(),subDesktop=!0):(makeSecondaryVisible=subDesktop&&navElement.find(".secondary-nav-item-pf.active").length>0,subDesktop=!1,makeSecondaryVisible&&showSecondaryMenu()),explicitCollapse?(navElement.addClass("collapsed"),bodyContentElement.addClass("collapsed-nav")):(navElement.removeClass("collapsed"),bodyContentElement.removeClass("collapsed-nav")))},collapseMenu=function(){navElement.addClass("collapsed"),bodyContentElement.addClass("collapsed-nav"),subDesktop&&hideSecondaryMenu(),explicitCollapse=!0},enableTransitions=function(){$("html").addClass("transitions")},expandMenu=function(){navElement.removeClass("collapsed"),bodyContentElement.removeClass("collapsed-nav"),explicitCollapse=!1,subDesktop||forceResize(100)},bindMenuBehavior=function(){toggleNavBarButton.on("click",function(e){var $drawer;enableTransitions(),inMobileState()?navElement.hasClass("show-mobile-nav")?navElement.removeClass("show-mobile-nav"):(updateMobileMenu(),navElement.addClass("show-mobile-nav"),ignoreDrawer||($drawer=$(".drawer-pf"),$drawer.length&&($(".drawer-pf-trigger").removeClass("open"),$drawer.addClass("hide")))):navElement.hasClass("collapsed")?(options.rememberOpenState&&window[storageLocation].setItem("patternfly-navigation-primary","expanded"),expandMenu()):(options.rememberOpenState&&window[storageLocation].setItem("patternfly-navigation-primary","collapsed"),collapseMenu())})},forceHideSecondaryMenu=function(){navElement.addClass("force-hide-secondary-nav-pf"),setTimeout(function(){navElement.removeClass("force-hide-secondary-nav-pf")},500)},bindMenuItemsBehavior=function(handleSelection){$(document).find(".nav-pf-vertical .list-group-item").each(function(index,item){var onClickFn,$item=$(item),$nav=$item.closest('[class*="nav-pf-"]');$nav.hasClass("nav-pf-vertical")?onClickFn=function(event){var $secondaryItem,$activeItem,$this=$(this);$this.hasClass("secondary-nav-item-pf")?inMobileState()?updateMobileMenu($this):handleSelection&&($activeItem=$secondaryItem=$item.find(".nav-pf-secondary-nav > .list-group > .list-group-item").eq(0),$secondaryItem.hasClass("tertiary-nav-item-pf")&&($activeItem=$secondaryItem.find(".nav-pf-tertiary-nav > .list-group > .list-group-item").eq(0)),setActiveItem($activeItem),event.stopImmediatePropagation()):(hideSecondaryMenu(),inMobileState()&&(updateMobileMenu(),navElement.removeClass("show-mobile-nav")),handleSelection&&(setActiveItem($this),event.stopImmediatePropagation()))}:$nav.hasClass("nav-pf-secondary-nav")?onClickFn=function(event){var $tertiaryItem,$primaryItem,$this=$(this);$this.hasClass("tertiary-nav-item-pf")?inMobileState()?($primaryItem=$item.parents(".list-group-item"),updateMobileMenu($this,$primaryItem),event.stopImmediatePropagation()):handleSelection&&($tertiaryItem=$item.find(".nav-pf-tertiary-nav > .list-group > .list-group-item").eq(0),setActiveItem($tertiaryItem),event.stopImmediatePropagation()):(inMobileState()&&(updateMobileMenu(),navElement.removeClass("show-mobile-nav")),updateSecondaryMenuDisplayAfterSelection(),handleSelection&&(setActiveItem($item),hideSecondaryMenu(),event.stopImmediatePropagation()))}:$nav.hasClass("nav-pf-tertiary-nav")&&(onClickFn=function(event){inMobileState()&&(updateMobileMenu(),navElement.removeClass("show-mobile-nav")),updateSecondaryMenuDisplayAfterSelection(),handleSelection&&(setActiveItem($item),hideTertiaryMenu(),hideSecondaryMenu(),event.stopImmediatePropagation())}),$item.on("click.pf.secondarynav.data-api",onClickFn)}),$(document).find(".secondary-nav-item-pf").each(function(index,secondaryItem){var $secondaryItem=$(secondaryItem);$secondaryItem.on("click.pf.secondarynav.data-api",'[data-toggle="collapse-secondary-nav"]',function(e){var $this=$(this);inMobileState()?(updateMobileMenu(),e.stopImmediatePropagation()):$this.hasClass("collapsed")?(options.rememberOpenState&&(window[storageLocation].setItem("patternfly-navigation-secondary","expanded"),window[storageLocation].setItem("patternfly-navigation-tertiary","expanded")),updateSecondaryCollapsedState(!1,$this),forceHideSecondaryMenu()):(options.rememberOpenState&&window[storageLocation].setItem("patternfly-navigation-secondary","collapsed"),updateSecondaryCollapsedState(!0,$this)),navElement.removeClass("hover-secondary-nav-pf"),handleSelection&&e.stopImmediatePropagation()}),$secondaryItem.find(".tertiary-nav-item-pf").each(function(index,primaryItem){$(primaryItem).on("click.pf.tertiarynav.data-api",'[data-toggle="collapse-tertiary-nav"]',function(e){var $this=$(this);inMobileState()?(updateMobileMenu($secondaryItem),e.stopImmediatePropagation()):$this.hasClass("collapsed")?(options.rememberOpenState&&(window[storageLocation].setItem("patternfly-navigation-secondary","expanded"),window[storageLocation].setItem("patternfly-navigation-tertiary","expanded")),updateTertiaryCollapsedState(!1,$this),forceHideSecondaryMenu()):(options.rememberOpenState&&window[storageLocation].setItem("patternfly-navigation-tertiary","collapsed"),updateTertiaryCollapsedState(!0,$this)),navElement.removeClass("hover-secondary-nav-pf"),navElement.removeClass("hover-tertiary-nav-pf"),handleSelection&&e.stopImmediatePropagation()})})}),$(document).on("mouseenter.pf.tertiarynav.data-api",".secondary-nav-item-pf",function(e){var $this=$(this);inMobileState()||(void 0!==$this[0].navUnHoverTimeout?(clearTimeout($this[0].navUnHoverTimeout),$this[0].navUnHoverTimeout=void 0):void 0===$this[0].navHoverTimeout&&($this[0].navHoverTimeout=setTimeout(function(){navElement.addClass("hover-secondary-nav-pf"),$this.addClass("is-hover"),$this[0].navHoverTimeout=void 0},options.hoverDelay)))}),$(document).on("mouseleave.pf.tertiarynav.data-api",".secondary-nav-item-pf",function(e){var $this=$(this);void 0!==$this[0].navHoverTimeout?(clearTimeout($this[0].navHoverTimeout),$this[0].navHoverTimeout=void 0):void 0===$this[0].navUnHoverTimeout&&navElement.find(".secondary-nav-item-pf.is-hover").length>0&&($this[0].navUnHoverTimeout=setTimeout(function(){navElement.find(".secondary-nav-item-pf.is-hover").length<=1&&navElement.removeClass("hover-secondary-nav-pf"),$this.removeClass("is-hover"),$this[0].navUnHoverTimeout=void 0},options.hideDelay))}),$(document).on("mouseover.pf.tertiarynav.data-api",".tertiary-nav-item-pf",function(e){var $this=$(this);inMobileState()||(void 0!==$this[0].navUnHoverTimeout?(clearTimeout($this[0].navUnHoverTimeout),$this[0].navUnHoverTimeout=void 0):void 0===$this[0].navHoverTimeout&&($this[0].navHoverTimeout=setTimeout(function(){navElement.addClass("hover-tertiary-nav-pf"),$this.addClass("is-hover"),$this[0].navHoverTimeout=void 0},options.hoverDelay)))}),$(document).on("mouseout.pf.tertiarynav.data-api",".tertiary-nav-item-pf",function(e){var $this=$(this);void 0!==$this[0].navHoverTimeout?(clearTimeout($this[0].navHoverTimeout),$this[0].navHoverTimeout=void 0):void 0===$this[0].navUnHoverTimeout&&($this[0].navUnHoverTimeout=setTimeout(function(){navElement.find(".tertiary-nav-item-pf.is-hover").length<=1&&navElement.removeClass("hover-tertiary-nav-pf"),$this.removeClass("is-hover"),$this[0].navUnHoverTimeout=void 0},options.hideDelay))})},loadFromLocalStorage=function(){inMobileState()||("collapsed"===window[storageLocation].getItem("patternfly-navigation-primary")&&collapseMenu(),$(".nav-pf-vertical.nav-pf-vertical-collapsible-menus").length>0&&("collapsed"===window[storageLocation].getItem("patternfly-navigation-secondary")&&updateSecondaryCollapsedState(!0,$(".secondary-nav-item-pf.active [data-toggle=collapse-secondary-nav]")),"collapsed"===window[storageLocation].getItem("patternfly-navigation-tertiary")&&updateTertiaryCollapsedState(!0,$(".tertiary-nav-item-pf.active [data-toggle=collapse-tertiary-nav]"))))},setTooltips=function(){var tooltipOptions={container:"body",placement:"bottom",delay:{show:"500",hide:"200"},template:''};$('.nav-pf-vertical [data-toggle="tooltip"]').tooltip(tooltipOptions),$(".nav-pf-vertical").on("show.bs.tooltip",function(e){return $(this).hasClass("collapsed")})},self={hideMenu:function(){handleResize=!1,enterMobileState()},showMenu:function(){handleResize=!0,exitMobileState()},isVisible:function(){return handleResize}};return $.fn.setupVerticalNavigation.self||($.fn.setupVerticalNavigation.self=self,$(window).on("resize",function(){checkNavState(),enableTransitions()}),function(handleItemSelections){navElement.addClass("hide-nav-pf"),bodyContentElement.addClass("hide-nav-pf"),checkNavState(),bindMenuBehavior(),bindMenuItemsBehavior(handleItemSelections),setTooltips(),options.rememberOpenState&&loadFromLocalStorage(),navElement.removeClass("hide-nav-pf"),bodyContentElement.removeClass("hide-nav-pf"),forceResize(250)}(handleItemSelections)),$.fn.setupVerticalNavigation.self}}(jQuery);
\ No newline at end of file
diff --git a/dist/js/patternfly-settings-base.d.ts b/dist/js/patternfly-settings-base.d.ts
new file mode 100644
index 0000000000..9fff77ff6f
--- /dev/null
+++ b/dist/js/patternfly-settings-base.d.ts
@@ -0,0 +1,9 @@
+interface Patternfly {
+ pfBreakpoints: {
+ tablet: number;
+ desktop: number;
+ };
+}
+interface Window {
+ patternfly: Patternfly;
+}
diff --git a/dist/js/patternfly-settings-base.js b/dist/js/patternfly-settings-base.js
new file mode 100644
index 0000000000..051662fd89
--- /dev/null
+++ b/dist/js/patternfly-settings-base.js
@@ -0,0 +1,16 @@
+(function (window) {
+ 'use strict';
+
+ var patternfly = {
+ version: "0.0.0-semantically-released",
+ };
+
+ // definition of breakpoint sizes for tablet and desktop modes
+ patternfly.pfBreakpoints = {
+ 'tablet': 768,
+ 'desktop': 1200
+ };
+
+ window.patternfly = patternfly;
+
+})(typeof window !== 'undefined' ? window : global);
diff --git a/dist/js/patternfly-settings-charts.d.ts b/dist/js/patternfly-settings-charts.d.ts
new file mode 100644
index 0000000000..0a0c195a0e
--- /dev/null
+++ b/dist/js/patternfly-settings-charts.d.ts
@@ -0,0 +1,92 @@
+///
+
+interface Window {
+ patternfly: Patternfly;
+}
+
+interface PFChartDataItem {
+ id: string;
+ index: number;
+ value: string;
+ name: string;
+ ratio: number;
+}
+
+type PFChartData = PFChartDataItem[];
+
+interface Patternfly {
+ pfSetDonutChartTitle(
+ selector: Node,
+ primary: string,
+ secondary: string
+ ): void;
+
+ pfDonutTooltipContents(
+ data: PFChartData,
+ defaultTitleFormat: string,
+ defaultValueFormat: string,
+ color: (id: number | string) => string
+ ): string;
+
+ pfGetUtilizationDonutTooltipContentsFn(
+ units: string | number
+ ): (data: PFChartData) => string;
+
+ pfGetBarChartTooltipContentsFn(
+ categories?: string[]
+ ): (data: PFChartData) => string;
+
+ pfSingleLineChartTooltipContentsFn(
+ categories?: string[]
+ ): (data: PFChartData) => string;
+
+ pfPieTooltipContents: Patternfly['pfDonutTooltipContents'];
+
+ c3ChartDefaults(): {
+ getDefaultAreaAxis(): c3.Axis
+ getDefaultAreaConfig(): c3.ChartConfiguration;
+ getDefaultAreaLegend(): c3.LegendOptions;
+ getDefaultAreaPoint(): c3.PointOptions;
+ getDefaultBarConfig(categories: string[]): c3.ChartConfiguration;
+ getDefaultBarGrid(): c3.Grid;
+ getDefaultBarLegend(): c3.LegendOptions;
+ getDefaultBarTooltip(categories: string[]): c3.TooltipOptions;
+ getDefaultColors(): c3.ChartConfiguration['color'];
+ getDefaultDonut(title: string): c3.ChartConfiguration['donut'];
+ getDefaultDonutColors(): c3.ChartConfiguration['color'];
+ getDefaultDonutConfig(title: string): c3.ChartConfiguration;
+ getDefaultDonutLegend(): c3.LegendOptions;
+ getDefaultDonutSize(): c3.ChartConfiguration['size'];
+ getDefaultDonutTooltip(): c3.TooltipOptions;
+ getDefaultGroupedBarConfig(): c3.ChartConfiguration;
+ getDefaultGroupedBarGrid(): c3.Grid;
+ getDefaultGroupedBarLegend(): c3.LegendOptions;
+ getDefaultLineAxis(): c3.Axis;
+ getDefaultLineConfig(): c3.ChartConfiguration;
+ getDefaultLineGrid(): c3.Grid;
+ getDefaultLineLegend(): c3.LegendOptions;
+ getDefaultLinePoint(): c3.PointOptions;
+ getDefaultPie(): c3.ChartConfiguration['pie'];
+ getDefaultPieColors(): c3.ChartConfiguration['color'];
+ getDefaultPieConfig(): c3.ChartConfiguration;
+ getDefaultPieLegend(): c3.LegendOptions;
+ getDefaultPieSize(): c3.ChartConfiguration['size'];
+ getDefaultPieTooltip(): c3.TooltipOptions;
+ getDefaultRelationshipDonutColors(): c3.ChartConfiguration['color'];
+ getDefaultRelationshipDonutConfig(): c3.ChartConfiguration;
+ getDefaultSingleAreaConfig(): c3.ChartConfiguration;
+ getDefaultSingleAreaTooltip(): c3.TooltipOptions;
+ getDefaultSingleLineConfig(): c3.ChartConfiguration;
+ getDefaultSingleLineTooltip(): c3.TooltipOptions;
+ getDefaultSparklineArea(): c3.ChartConfiguration['area'];
+ getDefaultSparklineAxis(): c3.Axis;
+ getDefaultSparklineConfig(): c3.ChartConfiguration;
+ getDefaultSparklineLegend(): c3.LegendOptions;
+ getDefaultSparklinePoint(): c3.PointOptions;
+ getDefaultSparklineSize(): c3.ChartConfiguration['size'];
+ getDefaultSparklineTooltip(): c3.TooltipOptions;
+ getDefaultStackedBarConfig(): c3.ChartConfiguration;
+ getDefaultStackedBarGrid(): c3.Grid;
+ getDefaultStackedBarLegend(): c3.LegendOptions;
+ };
+}
diff --git a/dist/js/patternfly-settings-charts.js b/dist/js/patternfly-settings-charts.js
new file mode 100644
index 0000000000..e084f7444e
--- /dev/null
+++ b/dist/js/patternfly-settings-charts.js
@@ -0,0 +1,449 @@
+(function (window) {
+ 'use strict';
+
+ // Ensure we are assigning these to the patternfly property of the window argument, and not the implicit global patternfly
+ var patternfly = window.patternfly;
+
+ // Util: PatternFly C3 Chart Defaults
+ patternfly.pfSetDonutChartTitle = function (selector, primary, secondary) {
+ var donutChartRightTitle = window.d3.select(selector).select('text.c3-chart-arcs-title');
+ donutChartRightTitle.text("");
+ donutChartRightTitle.insert('tspan').text(primary).classed('donut-title-big-pf', true).attr('dy', 0).attr('x', 0);
+ donutChartRightTitle.insert('tspan').text(secondary).classed('donut-title-small-pf', true).attr('dy', 20).attr('x', 0);
+ };
+
+ patternfly.pfDonutTooltipContents = function (d, defaultTitleFormat, defaultValueFormat, color) {
+ return '';
+ };
+
+ patternfly.pfGetUtilizationDonutTooltipContentsFn = function (units) {
+ return function (d) {
+ return '' +
+ (Math.round(d[0].ratio * 1000) / 10) + '%' + ' ' + units + ' ' + d[0].name +
+ '';
+ };
+ };
+
+ patternfly.pfGetBarChartTooltipContentsFn = function (categories) {
+ return function (d) {
+ var name = categories ? categories[d[0].index] : d[0].index;
+ return '';
+ };
+ };
+
+ patternfly.pfSingleLineChartTooltipContentsFn = function (categories) {
+ return function (d) {
+ var name = categories ? categories[d[0].index] : d[0].index;
+ return '';
+ };
+ };
+
+ patternfly.pfPieTooltipContents = function (d, defaultTitleFormat, defaultValueFormat, color) {
+ return patternfly.pfDonutTooltipContents(d, defaultTitleFormat, defaultValueFormat, color);
+ };
+
+ patternfly.c3ChartDefaults = function () {
+ var
+ getDefaultColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.blue300,
+ patternfly.pfPaletteColors.green,
+ patternfly.pfPaletteColors.orange,
+ patternfly.pfPaletteColors.red
+ ]
+ };
+ },
+ getDefaultBarGrid = function () {
+ return {
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultBarTooltip = function (categories) {
+ return {
+ contents: patternfly.pfGetBarChartTooltipContentsFn(categories)
+ };
+ },
+ getDefaultBarLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultBarConfig = function (categories) {
+ return {
+ color: this.getDefaultColors(),
+ grid: this.getDefaultBarGrid(),
+ tooltip: this.getDefaultBarTooltip(categories),
+ legend: this.getDefaultBarLegend()
+ };
+ },
+ getDefaultGroupedBarGrid = function () {
+ return {
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultGroupedBarLegend = function () {
+ return {
+ show: true,
+ position: 'bottom'
+ };
+ },
+ getDefaultGroupedBarConfig = function () {
+ return {
+ color: this.getDefaultColors(),
+ grid: this.getDefaultGroupedBarGrid(),
+ legend: this.getDefaultGroupedBarLegend()
+ };
+ },
+ getDefaultStackedBarGrid = function () {
+ return {
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultStackedBarLegend = function () {
+ return {
+ show: true,
+ position: 'bottom'
+ };
+ },
+ getDefaultStackedBarConfig = function () {
+ return {
+ color: this.getDefaultColors(),
+ grid: this.getDefaultStackedBarGrid(),
+ legend: this.getDefaultStackedBarLegend()
+ };
+ },
+ getDefaultDonut = function (title) {
+ return {
+ title: title,
+ label: {
+ show: false
+ },
+ width: 11
+ };
+ },
+ getDefaultDonutSize = function () {
+ return {
+ height: 171 // produces a diameter of 150 and a centered chart when there is no legend
+ // Don't set a width here, the default is to center horizontally in the parent container
+ };
+ },
+ getDefaultDonutColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.black300
+ ]
+ };
+ },
+ getDefaultRelationshipDonutColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.red100,
+ patternfly.pfPaletteColors.orange400,
+ patternfly.pfPaletteColors.green400,
+ patternfly.pfPaletteColors.cyan500,
+ patternfly.pfPaletteColors.gold200,
+ ]
+ };
+ },
+ getDefaultDonutTooltip = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultDonutLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultDonutConfig = function (title) {
+ return {
+ donut: this.getDefaultDonut(title),
+ size: this.getDefaultDonutSize(),
+ legend: this.getDefaultDonutLegend(),
+ color: this.getDefaultDonutColors(),
+ tooltip: this.getDefaultDonutTooltip()
+ };
+ },
+ getDefaultRelationshipDonutConfig = function (title) {
+ return {
+ donut: this.getDefaultDonut(title),
+ size: this.getDefaultDonutSize(),
+ legend: this.getDefaultDonutLegend(),
+ color: this.getDefaultRelationshipDonutColors(),
+ tooltip: this.getDefaultDonutTooltip()
+ };
+ },
+ getDefaultPie = function () {
+ return {
+ expand: true,
+ label: {
+ show: false
+ }
+ };
+ },
+ getDefaultPieSize = function () {
+ return {
+ height: 171 // produces a diameter of 150 and a centered chart when there is no legend
+ // Don't set a width here, default is to center horizontally in the parent container
+ };
+ },
+ getDefaultPieColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.black300
+ ]
+ };
+ },
+ getDefaultPieTooltip = function () {
+ return {
+ contents: patternfly.pfPieTooltipContents
+ };
+ },
+ getDefaultPieLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultPieConfig = function () {
+ return {
+ pie: this.getDefaultPie(),
+ size: this.getDefaultPieSize(),
+ legend: this.getDefaultPieLegend(),
+ color: this.getDefaultPieColors(),
+ tooltip: this.getDefaultPieTooltip()
+ };
+ },
+ getDefaultSparklineArea = function () {
+ return {
+ zerobased: true
+ };
+ },
+ getDefaultSparklineSize = function () {
+ return {
+ height: 60
+ };
+ },
+ getDefaultSparklineAxis = function () {
+ return {
+ x: {
+ show: false
+ },
+ y: {
+ show: false
+ }
+ };
+ },
+ getDefaultSparklineLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultSparklinePoint = function () {
+ return {
+ r: 1,
+ focus: {
+ expand: {
+ r: 4
+ }
+ }
+ };
+ },
+ getDefaultSparklineTooltip = function () {
+ return {
+ // because a sparkline should only contain a single data column,
+ // the tooltip will only work for a single data column
+ contents: function (d) {
+ return '' + d[0].value + ' ' + d[0].name + '';
+ }
+ };
+ },
+ getDefaultSparklineConfig = function () {
+ return {
+ area: getDefaultSparklineArea(),
+ size: getDefaultSparklineSize(),
+ axis: getDefaultSparklineAxis(),
+ color: getDefaultColors(),
+ legend: getDefaultSparklineLegend(),
+ point: getDefaultSparklinePoint(),
+ tooltip: getDefaultSparklineTooltip()
+ };
+ },
+ getDefaultLineAxis = function () {
+ return {
+ x: {
+ show: true
+ },
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultLineGrid = function () {
+ return {
+ x: {
+ show: false
+ },
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultLineLegend = function () {
+ return {
+ show: true
+ };
+ },
+ getDefaultLinePoint = function () {
+ return {
+ r: 3,
+ focus: {
+ expand: {
+ r: 5
+ }
+ }
+ };
+ },
+ getDefaultLineConfig = function () {
+ return {
+ axis: getDefaultLineAxis(),
+ grid: getDefaultLineGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultLineLegend(),
+ point: getDefaultLinePoint()
+ };
+ },
+ getDefaultSingleLineTooltip = function () {
+ return {
+ contents: patternfly.pfGetBarChartTooltipContentsFn()
+ };
+ },
+ getDefaultSingleLineLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultSingleLineConfig = function () {
+ return {
+ axis: getDefaultLineAxis(),
+ grid: getDefaultLineGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultSingleLineLegend(),
+ point: getDefaultLinePoint(),
+ tooltip: getDefaultSingleLineTooltip()
+ };
+ },
+ getDefaultAreaAxis = function () {
+ return getDefaultLineAxis();
+ },
+ getDefaultAreaGrid = function () {
+ return getDefaultLineGrid();
+ },
+ getDefaultAreaLegend = function () {
+ return getDefaultLineLegend();
+ },
+ getDefaultAreaPoint = function () {
+ return getDefaultLinePoint();
+ },
+ getDefaultAreaConfig = function () {
+ return {
+ axis: getDefaultAreaAxis(),
+ grid: getDefaultAreaGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultAreaLegend(),
+ point: getDefaultAreaPoint()
+ };
+ },
+ getDefaultSingleAreaTooltip = function () {
+ return {
+ contents: patternfly.pfGetBarChartTooltipContentsFn()
+ };
+ },
+ getDefaultSingleAreaLegend = function () {
+ return getDefaultSingleLineLegend();
+ },
+ getDefaultSingleAreaConfig = function () {
+ return {
+ axis: getDefaultAreaAxis(),
+ grid: getDefaultAreaGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultSingleAreaLegend(),
+ point: getDefaultAreaPoint(),
+ tooltip: getDefaultSingleAreaTooltip()
+ };
+ };
+ return {
+ getDefaultColors: getDefaultColors,
+ getDefaultBarGrid: getDefaultBarGrid,
+ getDefaultBarTooltip: getDefaultBarTooltip,
+ getDefaultBarLegend: getDefaultBarLegend,
+ getDefaultBarConfig: getDefaultBarConfig,
+ getDefaultGroupedBarGrid: getDefaultGroupedBarGrid,
+ getDefaultGroupedBarLegend: getDefaultGroupedBarLegend,
+ getDefaultGroupedBarConfig: getDefaultGroupedBarConfig,
+ getDefaultStackedBarGrid: getDefaultStackedBarGrid,
+ getDefaultStackedBarLegend: getDefaultStackedBarLegend,
+ getDefaultStackedBarConfig: getDefaultStackedBarConfig,
+ getDefaultDonut: getDefaultDonut,
+ getDefaultDonutSize: getDefaultDonutSize,
+ getDefaultDonutColors: getDefaultDonutColors,
+ getDefaultDonutTooltip: getDefaultDonutTooltip,
+ getDefaultDonutLegend: getDefaultDonutLegend,
+ getDefaultDonutConfig: getDefaultDonutConfig,
+ getDefaultRelationshipDonutConfig: getDefaultRelationshipDonutConfig,
+ getDefaultPie: getDefaultPie,
+ getDefaultPieSize: getDefaultPieSize,
+ getDefaultPieColors: getDefaultPieColors,
+ getDefaultRelationshipDonutColors: getDefaultRelationshipDonutColors,
+ getDefaultPieTooltip: getDefaultPieTooltip,
+ getDefaultPieLegend: getDefaultPieLegend,
+ getDefaultPieConfig: getDefaultPieConfig,
+ getDefaultSparklineArea: getDefaultSparklineArea,
+ getDefaultSparklineSize: getDefaultSparklineSize,
+ getDefaultSparklineAxis: getDefaultSparklineAxis,
+ getDefaultSparklineLegend: getDefaultSparklineLegend,
+ getDefaultSparklinePoint: getDefaultSparklinePoint,
+ getDefaultSparklineTooltip: getDefaultSparklineTooltip,
+ getDefaultSparklineConfig: getDefaultSparklineConfig,
+ getDefaultLineAxis: getDefaultLineAxis,
+ getDefaultLineGrid: getDefaultLineGrid,
+ getDefaultLineLegend: getDefaultLineLegend,
+ getDefaultLinePoint: getDefaultLinePoint,
+ getDefaultLineConfig: getDefaultLineConfig,
+ getDefaultSingleLineTooltip: getDefaultSingleLineTooltip,
+ getDefaultSingleLineConfig: getDefaultSingleLineConfig,
+ getDefaultAreaAxis: getDefaultAreaAxis,
+ getDefaultAreaGrid: getDefaultAreaGrid,
+ getDefaultAreaLegend: getDefaultAreaLegend,
+ getDefaultAreaPoint: getDefaultAreaPoint,
+ getDefaultAreaConfig: getDefaultAreaConfig,
+ getDefaultSingleAreaTooltip: getDefaultSingleAreaTooltip,
+ getDefaultSingleAreaConfig: getDefaultSingleAreaConfig
+ };
+ };
+})(typeof window !== 'undefined' ? window : global);
diff --git a/dist/js/patternfly-settings-colors.d.ts b/dist/js/patternfly-settings-colors.d.ts
new file mode 100644
index 0000000000..8e179b4a24
--- /dev/null
+++ b/dist/js/patternfly-settings-colors.d.ts
@@ -0,0 +1,88 @@
+interface Window {
+ patternfly: Patternfly;
+}
+
+interface Patternfly {
+ pfPaletteColors: {
+ black: string;
+ black100: string;
+ black200: string;
+ black300: string;
+ black400: string;
+ black500: string;
+ black600: string;
+ black700: string;
+ black800: string;
+ black900: string;
+ blue: string;
+ blue100: string;
+ blue200: string;
+ blue300: string;
+ blue400: string;
+ blue500: string;
+ blue600: string;
+ blue700: string;
+ gold: string;
+ gold100: string;
+ gold200: string;
+ gold300: string;
+ gold400: string;
+ gold500: string;
+ gold600: string;
+ gold700: string;
+ orange: string;
+ orange100: string;
+ orange200: string;
+ orange300: string;
+ orange400: string;
+ orange500: string;
+ orange600: string;
+ orange700: string;
+ lightBlue: string;
+ lightBlue100: string;
+ lightBlue200: string;
+ lightBlue300: string;
+ lightBlue400: string;
+ lightBlue500: string;
+ lightBlue600: string;
+ lightBlue700: string;
+ green: string;
+ green100: string;
+ green200: string;
+ green300: string;
+ green400: string;
+ green500: string;
+ green600: string;
+ green700: string;
+ lightGreen: string;
+ lightGreen100: string;
+ lightGreen200: string;
+ lightGreen300: string;
+ lightGreen400: string;
+ lightGreen500: string;
+ lightGreen600: string;
+ lightGreen700: string;
+ cyan: string;
+ cyan100: string;
+ cyan200: string;
+ cyan300: string;
+ cyan400: string;
+ cyan500: string;
+ cyan600: string;
+ cyan700: string;
+ purple: string;
+ purple100: string;
+ purple200: string;
+ purple300: string;
+ purple400: string;
+ purple500: string;
+ purple600: string;
+ purple700: string;
+ red: string;
+ red100: string;
+ red200: string;
+ red300: string;
+ red400: string;
+ red500: string;
+ };
+}
diff --git a/dist/js/patternfly-settings-colors.js b/dist/js/patternfly-settings-colors.js
new file mode 100644
index 0000000000..870310fdc7
--- /dev/null
+++ b/dist/js/patternfly-settings-colors.js
@@ -0,0 +1,91 @@
+(function (window) {
+ 'use strict';
+
+ // Ensure we are assigning these to the patternfly property of the window argument, and not the implicit global patternfly
+ var patternfly = window.patternfly;
+
+ // Util: PatternFly Palette colors
+ patternfly.pfPaletteColors = {
+ black: '#030303',
+ black100: '#fafafa',
+ black200: '#ededed',
+ black300: '#d1d1d1',
+ black400: '#bbbbbb',
+ black500: '#8b8d8f',
+ black600: '#72767b',
+ black700: '#4d5258',
+ black800: '#393f44',
+ black900: '#292e34',
+ blue: '#0088ce',
+ blue100: '#bee1f4',
+ blue200: '#7dc3e8',
+ blue300: '#39a5dc',
+ blue400: '#0088ce',
+ blue500: '#00659c',
+ blue600: '#004368',
+ blue700: '#002235',
+ gold: '#f0ab00',
+ gold100: '#fbeabc',
+ gold200: '#f9d67a',
+ gold300: '#f5c12e',
+ gold400: '#f0ab00',
+ gold500: '#b58100',
+ gold600: '#795600',
+ gold700: '#3d2c00',
+ orange: '#ec7a08',
+ orange100: '#fbdebf',
+ orange200: '#f7bd7f',
+ orange300: '#f39d3c',
+ orange400: '#ec7a08',
+ orange500: '#b35c00',
+ orange600: '#773d00',
+ orange700: '#3b1f00',
+ lightBlue: '#00b9e4',
+ lightBlue100: '#beedf9',
+ lightBlue200: '#7cdbf3',
+ lightBlue300: '#35caed',
+ lightBlue400: '#00b9e4',
+ lightBlue500: '#008bad',
+ lightBlue600: '#005c73',
+ lightBlue700: '#002d39',
+ green: '#3f9c35',
+ green100: '#cfe7cd',
+ green200: '#9ecf99',
+ green300: '#6ec664',
+ green400: '#3f9c35',
+ green500: '#2d7623',
+ green600: '#1e4f18',
+ green700: '#0f280d',
+ lightGreen: '#92d400',
+ lightGreen100: '#e4f5bc',
+ lightGreen200: '#c8eb79',
+ lightGreen300: '#ace12e',
+ lightGreen400: '#92d400',
+ lightGreen500: '#6ca100',
+ lightGreen600: '#486b00',
+ lightGreen700: '#253600',
+ cyan: '#007a87',
+ cyan100: '#bedee1',
+ cyan200: '#7dbdc3',
+ cyan300: '#3a9ca6',
+ cyan400: '#007a87',
+ cyan500: '#005c66',
+ cyan600: '#003d44',
+ cyan700: '#001f22',
+ purple: '#703fec',
+ purple100: '#c7bfff',
+ purple200: '#a18fff',
+ purple300: '#8461f7',
+ purple400: '#703fec',
+ purple500: '#582fc0',
+ purple600: '#40199a',
+ purple700: '#1f0066',
+ red: '#cc0000',
+ red100: '#cc0000',
+ red200: '#a30000',
+ red300: '#8b0000',
+ red400: '#470000',
+ red500: '#2c0000'
+ };
+})(typeof window !== 'undefined' ? window : global);
+
diff --git a/dist/js/patternfly-settings.d.ts b/dist/js/patternfly-settings.d.ts
new file mode 100644
index 0000000000..021be885a6
--- /dev/null
+++ b/dist/js/patternfly-settings.d.ts
@@ -0,0 +1,3 @@
+///
+///
+///
\ No newline at end of file
diff --git a/dist/js/patternfly-settings.js b/dist/js/patternfly-settings.js
new file mode 100644
index 0000000000..b48bac5b35
--- /dev/null
+++ b/dist/js/patternfly-settings.js
@@ -0,0 +1,558 @@
+(function (window) {
+ 'use strict';
+
+ var patternfly = {
+ version: "0.0.0-semantically-released",
+ };
+
+ // definition of breakpoint sizes for tablet and desktop modes
+ patternfly.pfBreakpoints = {
+ 'tablet': 768,
+ 'desktop': 1200
+ };
+
+ window.patternfly = patternfly;
+
+})(typeof window !== 'undefined' ? window : global);
+
+(function (window) {
+ 'use strict';
+
+ // Ensure we are assigning these to the patternfly property of the window argument, and not the implicit global patternfly
+ var patternfly = window.patternfly;
+
+ // Util: PatternFly Palette colors
+ patternfly.pfPaletteColors = {
+ black: '#030303',
+ black100: '#fafafa',
+ black200: '#ededed',
+ black300: '#d1d1d1',
+ black400: '#bbbbbb',
+ black500: '#8b8d8f',
+ black600: '#72767b',
+ black700: '#4d5258',
+ black800: '#393f44',
+ black900: '#292e34',
+ blue: '#0088ce',
+ blue100: '#bee1f4',
+ blue200: '#7dc3e8',
+ blue300: '#39a5dc',
+ blue400: '#0088ce',
+ blue500: '#00659c',
+ blue600: '#004368',
+ blue700: '#002235',
+ gold: '#f0ab00',
+ gold100: '#fbeabc',
+ gold200: '#f9d67a',
+ gold300: '#f5c12e',
+ gold400: '#f0ab00',
+ gold500: '#b58100',
+ gold600: '#795600',
+ gold700: '#3d2c00',
+ orange: '#ec7a08',
+ orange100: '#fbdebf',
+ orange200: '#f7bd7f',
+ orange300: '#f39d3c',
+ orange400: '#ec7a08',
+ orange500: '#b35c00',
+ orange600: '#773d00',
+ orange700: '#3b1f00',
+ lightBlue: '#00b9e4',
+ lightBlue100: '#beedf9',
+ lightBlue200: '#7cdbf3',
+ lightBlue300: '#35caed',
+ lightBlue400: '#00b9e4',
+ lightBlue500: '#008bad',
+ lightBlue600: '#005c73',
+ lightBlue700: '#002d39',
+ green: '#3f9c35',
+ green100: '#cfe7cd',
+ green200: '#9ecf99',
+ green300: '#6ec664',
+ green400: '#3f9c35',
+ green500: '#2d7623',
+ green600: '#1e4f18',
+ green700: '#0f280d',
+ lightGreen: '#92d400',
+ lightGreen100: '#e4f5bc',
+ lightGreen200: '#c8eb79',
+ lightGreen300: '#ace12e',
+ lightGreen400: '#92d400',
+ lightGreen500: '#6ca100',
+ lightGreen600: '#486b00',
+ lightGreen700: '#253600',
+ cyan: '#007a87',
+ cyan100: '#bedee1',
+ cyan200: '#7dbdc3',
+ cyan300: '#3a9ca6',
+ cyan400: '#007a87',
+ cyan500: '#005c66',
+ cyan600: '#003d44',
+ cyan700: '#001f22',
+ purple: '#703fec',
+ purple100: '#c7bfff',
+ purple200: '#a18fff',
+ purple300: '#8461f7',
+ purple400: '#703fec',
+ purple500: '#582fc0',
+ purple600: '#40199a',
+ purple700: '#1f0066',
+ red: '#cc0000',
+ red100: '#cc0000',
+ red200: '#a30000',
+ red300: '#8b0000',
+ red400: '#470000',
+ red500: '#2c0000'
+ };
+})(typeof window !== 'undefined' ? window : global);
+
+
+(function (window) {
+ 'use strict';
+
+ // Ensure we are assigning these to the patternfly property of the window argument, and not the implicit global patternfly
+ var patternfly = window.patternfly;
+
+ // Util: PatternFly C3 Chart Defaults
+ patternfly.pfSetDonutChartTitle = function (selector, primary, secondary) {
+ var donutChartRightTitle = window.d3.select(selector).select('text.c3-chart-arcs-title');
+ donutChartRightTitle.text("");
+ donutChartRightTitle.insert('tspan').text(primary).classed('donut-title-big-pf', true).attr('dy', 0).attr('x', 0);
+ donutChartRightTitle.insert('tspan').text(secondary).classed('donut-title-small-pf', true).attr('dy', 20).attr('x', 0);
+ };
+
+ patternfly.pfDonutTooltipContents = function (d, defaultTitleFormat, defaultValueFormat, color) {
+ return '';
+ };
+
+ patternfly.pfGetUtilizationDonutTooltipContentsFn = function (units) {
+ return function (d) {
+ return '' +
+ (Math.round(d[0].ratio * 1000) / 10) + '%' + ' ' + units + ' ' + d[0].name +
+ '';
+ };
+ };
+
+ patternfly.pfGetBarChartTooltipContentsFn = function (categories) {
+ return function (d) {
+ var name = categories ? categories[d[0].index] : d[0].index;
+ return '';
+ };
+ };
+
+ patternfly.pfSingleLineChartTooltipContentsFn = function (categories) {
+ return function (d) {
+ var name = categories ? categories[d[0].index] : d[0].index;
+ return '';
+ };
+ };
+
+ patternfly.pfPieTooltipContents = function (d, defaultTitleFormat, defaultValueFormat, color) {
+ return patternfly.pfDonutTooltipContents(d, defaultTitleFormat, defaultValueFormat, color);
+ };
+
+ patternfly.c3ChartDefaults = function () {
+ var
+ getDefaultColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.blue300,
+ patternfly.pfPaletteColors.green,
+ patternfly.pfPaletteColors.orange,
+ patternfly.pfPaletteColors.red
+ ]
+ };
+ },
+ getDefaultBarGrid = function () {
+ return {
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultBarTooltip = function (categories) {
+ return {
+ contents: patternfly.pfGetBarChartTooltipContentsFn(categories)
+ };
+ },
+ getDefaultBarLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultBarConfig = function (categories) {
+ return {
+ color: this.getDefaultColors(),
+ grid: this.getDefaultBarGrid(),
+ tooltip: this.getDefaultBarTooltip(categories),
+ legend: this.getDefaultBarLegend()
+ };
+ },
+ getDefaultGroupedBarGrid = function () {
+ return {
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultGroupedBarLegend = function () {
+ return {
+ show: true,
+ position: 'bottom'
+ };
+ },
+ getDefaultGroupedBarConfig = function () {
+ return {
+ color: this.getDefaultColors(),
+ grid: this.getDefaultGroupedBarGrid(),
+ legend: this.getDefaultGroupedBarLegend()
+ };
+ },
+ getDefaultStackedBarGrid = function () {
+ return {
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultStackedBarLegend = function () {
+ return {
+ show: true,
+ position: 'bottom'
+ };
+ },
+ getDefaultStackedBarConfig = function () {
+ return {
+ color: this.getDefaultColors(),
+ grid: this.getDefaultStackedBarGrid(),
+ legend: this.getDefaultStackedBarLegend()
+ };
+ },
+ getDefaultDonut = function (title) {
+ return {
+ title: title,
+ label: {
+ show: false
+ },
+ width: 11
+ };
+ },
+ getDefaultDonutSize = function () {
+ return {
+ height: 171 // produces a diameter of 150 and a centered chart when there is no legend
+ // Don't set a width here, the default is to center horizontally in the parent container
+ };
+ },
+ getDefaultDonutColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.black300
+ ]
+ };
+ },
+ getDefaultRelationshipDonutColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.red100,
+ patternfly.pfPaletteColors.orange400,
+ patternfly.pfPaletteColors.green400,
+ patternfly.pfPaletteColors.cyan500,
+ patternfly.pfPaletteColors.gold200,
+ ]
+ };
+ },
+ getDefaultDonutTooltip = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultDonutLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultDonutConfig = function (title) {
+ return {
+ donut: this.getDefaultDonut(title),
+ size: this.getDefaultDonutSize(),
+ legend: this.getDefaultDonutLegend(),
+ color: this.getDefaultDonutColors(),
+ tooltip: this.getDefaultDonutTooltip()
+ };
+ },
+ getDefaultRelationshipDonutConfig = function (title) {
+ return {
+ donut: this.getDefaultDonut(title),
+ size: this.getDefaultDonutSize(),
+ legend: this.getDefaultDonutLegend(),
+ color: this.getDefaultRelationshipDonutColors(),
+ tooltip: this.getDefaultDonutTooltip()
+ };
+ },
+ getDefaultPie = function () {
+ return {
+ expand: true,
+ label: {
+ show: false
+ }
+ };
+ },
+ getDefaultPieSize = function () {
+ return {
+ height: 171 // produces a diameter of 150 and a centered chart when there is no legend
+ // Don't set a width here, default is to center horizontally in the parent container
+ };
+ },
+ getDefaultPieColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.black300
+ ]
+ };
+ },
+ getDefaultPieTooltip = function () {
+ return {
+ contents: patternfly.pfPieTooltipContents
+ };
+ },
+ getDefaultPieLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultPieConfig = function () {
+ return {
+ pie: this.getDefaultPie(),
+ size: this.getDefaultPieSize(),
+ legend: this.getDefaultPieLegend(),
+ color: this.getDefaultPieColors(),
+ tooltip: this.getDefaultPieTooltip()
+ };
+ },
+ getDefaultSparklineArea = function () {
+ return {
+ zerobased: true
+ };
+ },
+ getDefaultSparklineSize = function () {
+ return {
+ height: 60
+ };
+ },
+ getDefaultSparklineAxis = function () {
+ return {
+ x: {
+ show: false
+ },
+ y: {
+ show: false
+ }
+ };
+ },
+ getDefaultSparklineLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultSparklinePoint = function () {
+ return {
+ r: 1,
+ focus: {
+ expand: {
+ r: 4
+ }
+ }
+ };
+ },
+ getDefaultSparklineTooltip = function () {
+ return {
+ // because a sparkline should only contain a single data column,
+ // the tooltip will only work for a single data column
+ contents: function (d) {
+ return '' + d[0].value + ' ' + d[0].name + '';
+ }
+ };
+ },
+ getDefaultSparklineConfig = function () {
+ return {
+ area: getDefaultSparklineArea(),
+ size: getDefaultSparklineSize(),
+ axis: getDefaultSparklineAxis(),
+ color: getDefaultColors(),
+ legend: getDefaultSparklineLegend(),
+ point: getDefaultSparklinePoint(),
+ tooltip: getDefaultSparklineTooltip()
+ };
+ },
+ getDefaultLineAxis = function () {
+ return {
+ x: {
+ show: true
+ },
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultLineGrid = function () {
+ return {
+ x: {
+ show: false
+ },
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultLineLegend = function () {
+ return {
+ show: true
+ };
+ },
+ getDefaultLinePoint = function () {
+ return {
+ r: 3,
+ focus: {
+ expand: {
+ r: 5
+ }
+ }
+ };
+ },
+ getDefaultLineConfig = function () {
+ return {
+ axis: getDefaultLineAxis(),
+ grid: getDefaultLineGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultLineLegend(),
+ point: getDefaultLinePoint()
+ };
+ },
+ getDefaultSingleLineTooltip = function () {
+ return {
+ contents: patternfly.pfGetBarChartTooltipContentsFn()
+ };
+ },
+ getDefaultSingleLineLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultSingleLineConfig = function () {
+ return {
+ axis: getDefaultLineAxis(),
+ grid: getDefaultLineGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultSingleLineLegend(),
+ point: getDefaultLinePoint(),
+ tooltip: getDefaultSingleLineTooltip()
+ };
+ },
+ getDefaultAreaAxis = function () {
+ return getDefaultLineAxis();
+ },
+ getDefaultAreaGrid = function () {
+ return getDefaultLineGrid();
+ },
+ getDefaultAreaLegend = function () {
+ return getDefaultLineLegend();
+ },
+ getDefaultAreaPoint = function () {
+ return getDefaultLinePoint();
+ },
+ getDefaultAreaConfig = function () {
+ return {
+ axis: getDefaultAreaAxis(),
+ grid: getDefaultAreaGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultAreaLegend(),
+ point: getDefaultAreaPoint()
+ };
+ },
+ getDefaultSingleAreaTooltip = function () {
+ return {
+ contents: patternfly.pfGetBarChartTooltipContentsFn()
+ };
+ },
+ getDefaultSingleAreaLegend = function () {
+ return getDefaultSingleLineLegend();
+ },
+ getDefaultSingleAreaConfig = function () {
+ return {
+ axis: getDefaultAreaAxis(),
+ grid: getDefaultAreaGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultSingleAreaLegend(),
+ point: getDefaultAreaPoint(),
+ tooltip: getDefaultSingleAreaTooltip()
+ };
+ };
+ return {
+ getDefaultColors: getDefaultColors,
+ getDefaultBarGrid: getDefaultBarGrid,
+ getDefaultBarTooltip: getDefaultBarTooltip,
+ getDefaultBarLegend: getDefaultBarLegend,
+ getDefaultBarConfig: getDefaultBarConfig,
+ getDefaultGroupedBarGrid: getDefaultGroupedBarGrid,
+ getDefaultGroupedBarLegend: getDefaultGroupedBarLegend,
+ getDefaultGroupedBarConfig: getDefaultGroupedBarConfig,
+ getDefaultStackedBarGrid: getDefaultStackedBarGrid,
+ getDefaultStackedBarLegend: getDefaultStackedBarLegend,
+ getDefaultStackedBarConfig: getDefaultStackedBarConfig,
+ getDefaultDonut: getDefaultDonut,
+ getDefaultDonutSize: getDefaultDonutSize,
+ getDefaultDonutColors: getDefaultDonutColors,
+ getDefaultDonutTooltip: getDefaultDonutTooltip,
+ getDefaultDonutLegend: getDefaultDonutLegend,
+ getDefaultDonutConfig: getDefaultDonutConfig,
+ getDefaultRelationshipDonutConfig: getDefaultRelationshipDonutConfig,
+ getDefaultPie: getDefaultPie,
+ getDefaultPieSize: getDefaultPieSize,
+ getDefaultPieColors: getDefaultPieColors,
+ getDefaultRelationshipDonutColors: getDefaultRelationshipDonutColors,
+ getDefaultPieTooltip: getDefaultPieTooltip,
+ getDefaultPieLegend: getDefaultPieLegend,
+ getDefaultPieConfig: getDefaultPieConfig,
+ getDefaultSparklineArea: getDefaultSparklineArea,
+ getDefaultSparklineSize: getDefaultSparklineSize,
+ getDefaultSparklineAxis: getDefaultSparklineAxis,
+ getDefaultSparklineLegend: getDefaultSparklineLegend,
+ getDefaultSparklinePoint: getDefaultSparklinePoint,
+ getDefaultSparklineTooltip: getDefaultSparklineTooltip,
+ getDefaultSparklineConfig: getDefaultSparklineConfig,
+ getDefaultLineAxis: getDefaultLineAxis,
+ getDefaultLineGrid: getDefaultLineGrid,
+ getDefaultLineLegend: getDefaultLineLegend,
+ getDefaultLinePoint: getDefaultLinePoint,
+ getDefaultLineConfig: getDefaultLineConfig,
+ getDefaultSingleLineTooltip: getDefaultSingleLineTooltip,
+ getDefaultSingleLineConfig: getDefaultSingleLineConfig,
+ getDefaultAreaAxis: getDefaultAreaAxis,
+ getDefaultAreaGrid: getDefaultAreaGrid,
+ getDefaultAreaLegend: getDefaultAreaLegend,
+ getDefaultAreaPoint: getDefaultAreaPoint,
+ getDefaultAreaConfig: getDefaultAreaConfig,
+ getDefaultSingleAreaTooltip: getDefaultSingleAreaTooltip,
+ getDefaultSingleAreaConfig: getDefaultSingleAreaConfig
+ };
+ };
+})(typeof window !== 'undefined' ? window : global);
diff --git a/dist/js/patternfly-settings.min.js b/dist/js/patternfly-settings.min.js
new file mode 100644
index 0000000000..0fc91b25df
--- /dev/null
+++ b/dist/js/patternfly-settings.min.js
@@ -0,0 +1 @@
+!function(window){"use strict";var patternfly={version:"0.0.0-semantically-released"};patternfly.pfBreakpoints={tablet:768,desktop:1200},window.patternfly=patternfly}("undefined"!=typeof window?window:global),function(window){"use strict";window.patternfly.pfPaletteColors={black:"#030303",black100:"#fafafa",black200:"#ededed",black300:"#d1d1d1",black400:"#bbbbbb",black500:"#8b8d8f",black600:"#72767b",black700:"#4d5258",black800:"#393f44",black900:"#292e34",blue:"#0088ce",blue100:"#bee1f4",blue200:"#7dc3e8",blue300:"#39a5dc",blue400:"#0088ce",blue500:"#00659c",blue600:"#004368",blue700:"#002235",gold:"#f0ab00",gold100:"#fbeabc",gold200:"#f9d67a",gold300:"#f5c12e",gold400:"#f0ab00",gold500:"#b58100",gold600:"#795600",gold700:"#3d2c00",orange:"#ec7a08",orange100:"#fbdebf",orange200:"#f7bd7f",orange300:"#f39d3c",orange400:"#ec7a08",orange500:"#b35c00",orange600:"#773d00",orange700:"#3b1f00",lightBlue:"#00b9e4",lightBlue100:"#beedf9",lightBlue200:"#7cdbf3",lightBlue300:"#35caed",lightBlue400:"#00b9e4",lightBlue500:"#008bad",lightBlue600:"#005c73",lightBlue700:"#002d39",green:"#3f9c35",green100:"#cfe7cd",green200:"#9ecf99",green300:"#6ec664",green400:"#3f9c35",green500:"#2d7623",green600:"#1e4f18",green700:"#0f280d",lightGreen:"#92d400",lightGreen100:"#e4f5bc",lightGreen200:"#c8eb79",lightGreen300:"#ace12e",lightGreen400:"#92d400",lightGreen500:"#6ca100",lightGreen600:"#486b00",lightGreen700:"#253600",cyan:"#007a87",cyan100:"#bedee1",cyan200:"#7dbdc3",cyan300:"#3a9ca6",cyan400:"#007a87",cyan500:"#005c66",cyan600:"#003d44",cyan700:"#001f22",purple:"#703fec",purple100:"#c7bfff",purple200:"#a18fff",purple300:"#8461f7",purple400:"#703fec",purple500:"#582fc0",purple600:"#40199a",purple700:"#1f0066",red:"#cc0000",red100:"#cc0000",red200:"#a30000",red300:"#8b0000",red400:"#470000",red500:"#2c0000"}}("undefined"!=typeof window?window:global),function(window){"use strict";var patternfly=window.patternfly;patternfly.pfSetDonutChartTitle=function(selector,primary,secondary){var donutChartRightTitle=window.d3.select(selector).select("text.c3-chart-arcs-title");donutChartRightTitle.text(""),donutChartRightTitle.insert("tspan").text(primary).classed("donut-title-big-pf",!0).attr("dy",0).attr("x",0),donutChartRightTitle.insert("tspan").text(secondary).classed("donut-title-small-pf",!0).attr("dy",20).attr("x",0)},patternfly.pfDonutTooltipContents=function(d,defaultTitleFormat,defaultValueFormat,color){return'"},patternfly.pfGetUtilizationDonutTooltipContentsFn=function(units){return function(d){return''+Math.round(1e3*d[0].ratio)/10+"% "+units+" "+d[0].name+""}},patternfly.pfGetBarChartTooltipContentsFn=function(categories){return function(d){return'"}},patternfly.pfSingleLineChartTooltipContentsFn=function(categories){return function(d){return'"}},patternfly.pfPieTooltipContents=function(d,defaultTitleFormat,defaultValueFormat,color){return patternfly.pfDonutTooltipContents(d,defaultTitleFormat,defaultValueFormat,color)},patternfly.c3ChartDefaults=function(){var getDefaultColors=function(){return{pattern:[patternfly.pfPaletteColors.blue,patternfly.pfPaletteColors.blue300,patternfly.pfPaletteColors.green,patternfly.pfPaletteColors.orange,patternfly.pfPaletteColors.red]}},getDefaultBarGrid=function(){return{y:{show:!0}}},getDefaultBarTooltip=function(categories){return{contents:patternfly.pfGetBarChartTooltipContentsFn(categories)}},getDefaultBarLegend=function(){return{show:!1}},getDefaultBarConfig=function(categories){return{color:this.getDefaultColors(),grid:this.getDefaultBarGrid(),tooltip:this.getDefaultBarTooltip(categories),legend:this.getDefaultBarLegend()}},getDefaultGroupedBarGrid=function(){return{y:{show:!0}}},getDefaultGroupedBarLegend=function(){return{show:!0,position:"bottom"}},getDefaultGroupedBarConfig=function(){return{color:this.getDefaultColors(),grid:this.getDefaultGroupedBarGrid(),legend:this.getDefaultGroupedBarLegend()}},getDefaultStackedBarGrid=function(){return{y:{show:!0}}},getDefaultStackedBarLegend=function(){return{show:!0,position:"bottom"}},getDefaultStackedBarConfig=function(){return{color:this.getDefaultColors(),grid:this.getDefaultStackedBarGrid(),legend:this.getDefaultStackedBarLegend()}},getDefaultDonut=function(title){return{title:title,label:{show:!1},width:11}},getDefaultDonutSize=function(){return{height:171}},getDefaultDonutColors=function(){return{pattern:[patternfly.pfPaletteColors.blue,patternfly.pfPaletteColors.black300]}},getDefaultRelationshipDonutColors=function(){return{pattern:[patternfly.pfPaletteColors.blue,patternfly.pfPaletteColors.red100,patternfly.pfPaletteColors.orange400,patternfly.pfPaletteColors.green400,patternfly.pfPaletteColors.cyan500,patternfly.pfPaletteColors.gold200]}},getDefaultDonutTooltip=function(){return{show:!1}},getDefaultDonutLegend=function(){return{show:!1}},getDefaultDonutConfig=function(title){return{donut:this.getDefaultDonut(title),size:this.getDefaultDonutSize(),legend:this.getDefaultDonutLegend(),color:this.getDefaultDonutColors(),tooltip:this.getDefaultDonutTooltip()}},getDefaultRelationshipDonutConfig=function(title){return{donut:this.getDefaultDonut(title),size:this.getDefaultDonutSize(),legend:this.getDefaultDonutLegend(),color:this.getDefaultRelationshipDonutColors(),tooltip:this.getDefaultDonutTooltip()}},getDefaultPie=function(){return{expand:!0,label:{show:!1}}},getDefaultPieSize=function(){return{height:171}},getDefaultPieColors=function(){return{pattern:[patternfly.pfPaletteColors.blue,patternfly.pfPaletteColors.black300]}},getDefaultPieTooltip=function(){return{contents:patternfly.pfPieTooltipContents}},getDefaultPieLegend=function(){return{show:!1}},getDefaultPieConfig=function(){return{pie:this.getDefaultPie(),size:this.getDefaultPieSize(),legend:this.getDefaultPieLegend(),color:this.getDefaultPieColors(),tooltip:this.getDefaultPieTooltip()}},getDefaultSparklineArea=function(){return{zerobased:!0}},getDefaultSparklineSize=function(){return{height:60}},getDefaultSparklineAxis=function(){return{x:{show:!1},y:{show:!1}}},getDefaultSparklineLegend=function(){return{show:!1}},getDefaultSparklinePoint=function(){return{r:1,focus:{expand:{r:4}}}},getDefaultSparklineTooltip=function(){return{contents:function(d){return''+d[0].value+" "+d[0].name+""}}},getDefaultSparklineConfig=function(){return{area:getDefaultSparklineArea(),size:getDefaultSparklineSize(),axis:getDefaultSparklineAxis(),color:getDefaultColors(),legend:getDefaultSparklineLegend(),point:getDefaultSparklinePoint(),tooltip:getDefaultSparklineTooltip()}},getDefaultLineAxis=function(){return{x:{show:!0},y:{show:!0}}},getDefaultLineGrid=function(){return{x:{show:!1},y:{show:!0}}},getDefaultLineLegend=function(){return{show:!0}},getDefaultLinePoint=function(){return{r:3,focus:{expand:{r:5}}}},getDefaultLineConfig=function(){return{axis:getDefaultLineAxis(),grid:getDefaultLineGrid(),color:getDefaultColors(),legend:getDefaultLineLegend(),point:getDefaultLinePoint()}},getDefaultSingleLineTooltip=function(){return{contents:patternfly.pfGetBarChartTooltipContentsFn()}},getDefaultSingleLineLegend=function(){return{show:!1}},getDefaultSingleLineConfig=function(){return{axis:getDefaultLineAxis(),grid:getDefaultLineGrid(),color:getDefaultColors(),legend:getDefaultSingleLineLegend(),point:getDefaultLinePoint(),tooltip:getDefaultSingleLineTooltip()}},getDefaultAreaAxis=function(){return getDefaultLineAxis()},getDefaultAreaGrid=function(){return getDefaultLineGrid()},getDefaultAreaLegend=function(){return getDefaultLineLegend()},getDefaultAreaPoint=function(){return getDefaultLinePoint()},getDefaultAreaConfig=function(){return{axis:getDefaultAreaAxis(),grid:getDefaultAreaGrid(),color:getDefaultColors(),legend:getDefaultAreaLegend(),point:getDefaultAreaPoint()}},getDefaultSingleAreaTooltip=function(){return{contents:patternfly.pfGetBarChartTooltipContentsFn()}},getDefaultSingleAreaLegend=function(){return getDefaultSingleLineLegend()};return{getDefaultColors:getDefaultColors,getDefaultBarGrid:getDefaultBarGrid,getDefaultBarTooltip:getDefaultBarTooltip,getDefaultBarLegend:getDefaultBarLegend,getDefaultBarConfig:getDefaultBarConfig,getDefaultGroupedBarGrid:getDefaultGroupedBarGrid,getDefaultGroupedBarLegend:getDefaultGroupedBarLegend,getDefaultGroupedBarConfig:getDefaultGroupedBarConfig,getDefaultStackedBarGrid:getDefaultStackedBarGrid,getDefaultStackedBarLegend:getDefaultStackedBarLegend,getDefaultStackedBarConfig:getDefaultStackedBarConfig,getDefaultDonut:getDefaultDonut,getDefaultDonutSize:getDefaultDonutSize,getDefaultDonutColors:getDefaultDonutColors,getDefaultDonutTooltip:getDefaultDonutTooltip,getDefaultDonutLegend:getDefaultDonutLegend,getDefaultDonutConfig:getDefaultDonutConfig,getDefaultRelationshipDonutConfig:getDefaultRelationshipDonutConfig,getDefaultPie:getDefaultPie,getDefaultPieSize:getDefaultPieSize,getDefaultPieColors:getDefaultPieColors,getDefaultRelationshipDonutColors:getDefaultRelationshipDonutColors,getDefaultPieTooltip:getDefaultPieTooltip,getDefaultPieLegend:getDefaultPieLegend,getDefaultPieConfig:getDefaultPieConfig,getDefaultSparklineArea:getDefaultSparklineArea,getDefaultSparklineSize:getDefaultSparklineSize,getDefaultSparklineAxis:getDefaultSparklineAxis,getDefaultSparklineLegend:getDefaultSparklineLegend,getDefaultSparklinePoint:getDefaultSparklinePoint,getDefaultSparklineTooltip:getDefaultSparklineTooltip,getDefaultSparklineConfig:getDefaultSparklineConfig,getDefaultLineAxis:getDefaultLineAxis,getDefaultLineGrid:getDefaultLineGrid,getDefaultLineLegend:getDefaultLineLegend,getDefaultLinePoint:getDefaultLinePoint,getDefaultLineConfig:getDefaultLineConfig,getDefaultSingleLineTooltip:getDefaultSingleLineTooltip,getDefaultSingleLineConfig:getDefaultSingleLineConfig,getDefaultAreaAxis:getDefaultAreaAxis,getDefaultAreaGrid:getDefaultAreaGrid,getDefaultAreaLegend:getDefaultAreaLegend,getDefaultAreaPoint:getDefaultAreaPoint,getDefaultAreaConfig:getDefaultAreaConfig,getDefaultSingleAreaTooltip:getDefaultSingleAreaTooltip,getDefaultSingleAreaConfig:function(){return{axis:getDefaultAreaAxis(),grid:getDefaultAreaGrid(),color:getDefaultColors(),legend:getDefaultSingleAreaLegend(),point:getDefaultAreaPoint(),tooltip:getDefaultSingleAreaTooltip()}}}}}("undefined"!=typeof window?window:global);
\ No newline at end of file
diff --git a/dist/js/patternfly.dataTables.pfColVis.js b/dist/js/patternfly.dataTables.pfColVis.js
new file mode 100644
index 0000000000..9052dbafaa
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfColVis.js
@@ -0,0 +1,151 @@
+/**
+ * @summary pfColVis for DataTables
+ * @description An extension providing columns visibility control functionality for DataTables. This ensures
+ * DataTables meets the Patternfly design pattern with a toolbar.
+ *
+ * To enable a colvis, the user just need to specify a region for placing colvis menu. By default, the colvis
+ * menu includes the items derived from all columns of Datatables. And of course user can also limit the
+ * generation of the column's visibility checkbox through picking out column index.
+ *
+ * The toolbar is expected to contain the classes as shown in the example below.
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ * ...
+ *
+ */
+(function (factory) {
+ "use strict";
+ if (typeof define === "function" && define.amd ) {
+ // AMD
+ define (["jquery", "datatables.net"], function ($) {
+ return factory ($, window, document);
+ });
+ } else if (typeof exports === "object") {
+ // CommonJS
+ module.exports = function (root, $) {
+ if (!root) {
+ root = window;
+ }
+ if (!$ || !$.fn.dataTable) {
+ $ = require("datatables.net")(root, $).$;
+ }
+ return factory($, root, root.document);
+ };
+ } else {
+ // Browser
+ factory(jQuery, window, document);
+ }
+}(function ($, window, document, undefined) {
+ "use strict";
+ var DataTable = $.fn.dataTable;
+
+ DataTable.pfColVis = {};
+
+ /**
+ * Initialize
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ DataTable.pfColVis.init = function (dt) {
+ var i;
+ var ctx = dt.settings()[0];
+ var opts = (ctx.oInit.pfConfig) ? ctx.oInit.pfConfig : {};
+
+ if (opts.colvisMenuSelector === undefined) {
+ return;
+ }
+
+ ctx._pfColVis = {};
+ ctx._pfColVis.colvisMenu = $(opts.colvisMenuSelector, opts.toolbarSelector);
+
+ // Attach event handler for checkbox of ColVis menu
+ ctx._pfColVis.colvisMenu.on('click', 'li', { 'dt': dt }, colvisMenuHandler);
+ };
+
+ // Local functions
+
+ /**
+ * Handle actions when ColVis menu items are toggled
+ *
+ * @param {object} jquery eventObject - click event of ColVis menu items
+ * @private
+ */
+ function colvisMenuHandler (event) {
+ var $check = $(this).children(':checkbox');
+ if (event.target.nodeName !== 'INPUT') {
+ event.stopPropagation();
+ $check.prop('checked', !$check.prop('checked'));
+ }
+ event.data.dt.column($check.val()).visible($check.prop('checked'));
+ }
+
+ // DataTables creation
+ $(document).on("init.dt", function (e, ctx, json) {
+ if (e.namespace !== "dt") {
+ return;
+ }
+ DataTable.pfColVis.init(new DataTable.Api(ctx));
+ });
+ return DataTable.pfColVis;
+}));
\ No newline at end of file
diff --git a/dist/js/patternfly.dataTables.pfEmpty.js b/dist/js/patternfly.dataTables.pfEmpty.js
new file mode 100644
index 0000000000..7018eb2bcd
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfEmpty.js
@@ -0,0 +1,253 @@
+/**
+ * @summary pfEmpty for DataTables
+ * @description A collection of API methods providing functionality to hide and show elements when DataTables is empty.
+ * This ensures DataTables meets the Patternfly design pattern with a toolbar and empty state.
+ *
+ * When DataTable is redrawn and data length is zero, controls under the toolbar-pf-actions and toolbar-pf-results
+ * classes are disabled; including the filter drop down, filter input, action buttons, kebab, find, etc. (You may
+ * re-enable specific controls via the DataTables "draw.dt" event.) In addition, the DataTables empty table header and
+ * row are hidden while the empty state (i.e., blank slate) layout is shown.
+ *
+ * The toolbar and empty state layouts are expected to contain the classes as shown in the example below.
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
Empty State Title
+ * ...
+ *
+ *
+ *
+ * Note: This functionality requires the following Javascript library files to be loaded:
+ *
+ * https://cdn.datatables.net/select/1.2.0/js/dataTables.select.min.js
+ */
+(function (factory) {
+ "use strict";
+ if (typeof define === "function" && define.amd ) {
+ // AMD
+ define (["jquery", "datatables.net"], function ($) {
+ return factory ($, window, document);
+ });
+ } else if (typeof exports === "object") {
+ // CommonJS
+ module.exports = function (root, $) {
+ if (!root) {
+ root = window;
+ }
+ if (!$ || !$.fn.dataTable) {
+ $ = require("datatables.net")(root, $).$;
+ }
+ return factory($, root, root.document);
+ };
+ } else {
+ // Browser
+ factory(jQuery, window, document);
+ }
+}(function ($, window, document, undefined) {
+ "use strict";
+ var DataTable = $.fn.dataTable;
+ var ACTIONS_SELECTOR = ".toolbar-pf-actions"; // Toolbar actions
+ var RESULTS_SELECTOR = ".toolbar-pf-results"; // Toolbar results row
+
+ DataTable.pfEmpty = {};
+
+ /**
+ * Initialize
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ DataTable.pfEmpty.init = function (dt) {
+ var ctx = dt.settings()[0];
+ var opts = (ctx.oInit.pfConfig) ? ctx.oInit.pfConfig : {};
+
+ ctx._pfEmpty = {};
+ ctx._pfEmpty.emptyState = $(opts.emptyStateSelector); // Empty state (Blank slate)
+ ctx._pfEmpty.isEmptyState = false; // Flag indicating DatTable entered an empty state
+ ctx._pfEmpty.pagination = $(opts.paginationSelector); // Pagination
+ ctx._pfEmpty.tbody = $("tbody", dt.table().container()); // Table body
+ ctx._pfEmpty.thead = $("thead", dt.table().container()); // Table head
+ ctx._pfEmpty.toolbarActions = $(ACTIONS_SELECTOR, opts.toolbarSelector); // Toolbar actions
+ ctx._pfEmpty.toolbarResults = $(RESULTS_SELECTOR, opts.toolbarSelector); // Toolbar results row
+
+ // Update table on DataTables draw event
+ dt.on("draw.dt", function () {
+ updateState(dt);
+ });
+
+ // Initialize
+ updateState(dt);
+ };
+
+ // Local functions
+
+ /**
+ * Disable and hide elements when DataTables has no data
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateEmptyState (dt) {
+ var ctx = dt.settings()[0];
+
+ // Show blank slate
+ if (ctx._pfEmpty.emptyState !== undefined && ctx._pfEmpty.emptyState.length !== 0) {
+ ctx._pfEmpty.emptyState.removeClass("hidden");
+ }
+ // Hide zero records message
+ if (ctx._pfEmpty.tbody !== undefined && ctx._pfEmpty.tbody.length !== 0) {
+ ctx._pfEmpty.tbody.addClass("hidden");
+ }
+ // Hide column headers
+ if (ctx._pfEmpty.thead !== undefined && ctx._pfEmpty.thead.length !== 0) {
+ ctx._pfEmpty.thead.addClass("hidden");
+ }
+ // Disable all buttons
+ if (ctx._pfEmpty.toolbarActions !== undefined && ctx._pfEmpty.toolbarActions.length !== 0) {
+ $("button", ctx._pfEmpty.toolbarActions).prop("disabled", true);
+ }
+ // Disable all inputs
+ if (ctx._pfEmpty.toolbarActions !== undefined && ctx._pfEmpty.toolbarActions.length !== 0) {
+ $("input", ctx._pfEmpty.toolbarActions).prop("disabled", true);
+ }
+ // Hide results container
+ if (ctx._pfEmpty.toolbarResults !== undefined && ctx._pfEmpty.toolbarResults.length !== 0) {
+ ctx._pfEmpty.toolbarResults.children().addClass("hidden");
+ }
+ // Hide pagination
+ if (ctx._pfEmpty.pagination !== undefined && ctx._pfEmpty.pagination.length !== 0) {
+ ctx._pfEmpty.pagination.addClass("hidden");
+ }
+ // Enable on empty
+ if (ctx._pfEmpty.enableOnEmpty !== undefined) {
+ $(ctx._pfEmpty.enableOnEmpty).prop("disabled", false);
+ }
+ // Enable on empty
+ if (ctx._pfEmpty.enableOnEmpty !== undefined) {
+ $(ctx._pfEmpty.enableOnEmpty).prop("disabled", false);
+ }
+ }
+
+ /**
+ * Enable and show elements when DataTables has data
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateNonEmptyState (dt) {
+ var ctx = dt.settings()[0];
+
+ // Hide blank slate
+ if (ctx._pfEmpty.emptyState !== undefined && ctx._pfEmpty.emptyState.length !== 0) {
+ ctx._pfEmpty.emptyState.addClass("hidden");
+ }
+ // Show table body
+ if (ctx._pfEmpty.tbody !== undefined && ctx._pfEmpty.tbody.length !== 0) {
+ ctx._pfEmpty.tbody.removeClass("hidden");
+ }
+ // Show column headers
+ if (ctx._pfEmpty.thead !== undefined && ctx._pfEmpty.thead.length !== 0) {
+ ctx._pfEmpty.thead.removeClass("hidden");
+ }
+ // Enable all buttons
+ if (ctx._pfEmpty.toolbarActions !== undefined && ctx._pfEmpty.toolbarActions.length !== 0) {
+ $("button", ctx._pfEmpty.toolbarActions).prop("disabled", false);
+ }
+ // Enable all inputs
+ if (ctx._pfEmpty.toolbarActions !== undefined && ctx._pfEmpty.toolbarActions.length !== 0) {
+ $("input", ctx._pfEmpty.toolbarActions).prop("disabled", false);
+ }
+ // Show results container
+ if (ctx._pfEmpty.toolbarResults !== undefined && ctx._pfEmpty.toolbarResults.length !== 0) {
+ ctx._pfEmpty.toolbarResults.children().removeClass("hidden");
+ }
+ // Show pagination
+ if (ctx._pfEmpty.pagination !== undefined && ctx._pfEmpty.pagination.length !== 0) {
+ ctx._pfEmpty.pagination.removeClass("hidden");
+ }
+ }
+
+ /**
+ * Update elements upon empty DataTable state
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateState (dt) {
+ var ctx = dt.settings()[0];
+
+ // Don't enable or show elements unless DataTable was empty
+ if (dt.data().length === 0) {
+ ctx._pfEmpty.isEmptyState = true;
+ updateEmptyState(dt);
+ } else if (ctx._pfEmpty.isEmptyState === true) {
+ ctx._pfEmpty.isEmptyState = false;
+ updateNonEmptyState(dt);
+ }
+ }
+
+ // DataTables API
+
+ /**
+ * Update state upon empty or non-empty DataTable
+ *
+ * Example: dt.table().pfEmpty.updateState();
+ */
+ DataTable.Api.register("pfEmpty.updateState()", function () {
+ return this.iterator("table", function (ctx) {
+ updateState(new DataTable.Api(ctx));
+ });
+ });
+
+ // DataTables creation
+ $(document).on("init.dt", function (e, ctx, json) {
+ if (e.namespace !== "dt") {
+ return;
+ }
+ DataTable.pfEmpty.init(new DataTable.Api(ctx));
+ });
+ return DataTable.pfEmpty;
+}));
diff --git a/dist/js/patternfly.dataTables.pfEmpty.min.js b/dist/js/patternfly.dataTables.pfEmpty.min.js
new file mode 100644
index 0000000000..7d2bfcf2bd
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfEmpty.min.js
@@ -0,0 +1 @@
+!function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function($){return factory($,window,document)}):"object"==typeof exports?module.exports=function(root,$){return root||(root=window),$&&$.fn.dataTable||($=require("datatables.net")(root,$).$),factory($,root,root.document)}:factory(jQuery,window,document)}(function($,window,document,undefined){"use strict";function updateEmptyState(dt){var ctx=dt.settings()[0];ctx._pfEmpty.emptyState!==undefined&&0!==ctx._pfEmpty.emptyState.length&&ctx._pfEmpty.emptyState.removeClass("hidden"),ctx._pfEmpty.tbody!==undefined&&0!==ctx._pfEmpty.tbody.length&&ctx._pfEmpty.tbody.addClass("hidden"),ctx._pfEmpty.thead!==undefined&&0!==ctx._pfEmpty.thead.length&&ctx._pfEmpty.thead.addClass("hidden"),ctx._pfEmpty.toolbarActions!==undefined&&0!==ctx._pfEmpty.toolbarActions.length&&$("button",ctx._pfEmpty.toolbarActions).prop("disabled",!0),ctx._pfEmpty.toolbarActions!==undefined&&0!==ctx._pfEmpty.toolbarActions.length&&$("input",ctx._pfEmpty.toolbarActions).prop("disabled",!0),ctx._pfEmpty.toolbarResults!==undefined&&0!==ctx._pfEmpty.toolbarResults.length&&ctx._pfEmpty.toolbarResults.children().addClass("hidden"),ctx._pfEmpty.pagination!==undefined&&0!==ctx._pfEmpty.pagination.length&&ctx._pfEmpty.pagination.addClass("hidden"),ctx._pfEmpty.enableOnEmpty!==undefined&&$(ctx._pfEmpty.enableOnEmpty).prop("disabled",!1),ctx._pfEmpty.enableOnEmpty!==undefined&&$(ctx._pfEmpty.enableOnEmpty).prop("disabled",!1)}function updateNonEmptyState(dt){var ctx=dt.settings()[0];ctx._pfEmpty.emptyState!==undefined&&0!==ctx._pfEmpty.emptyState.length&&ctx._pfEmpty.emptyState.addClass("hidden"),ctx._pfEmpty.tbody!==undefined&&0!==ctx._pfEmpty.tbody.length&&ctx._pfEmpty.tbody.removeClass("hidden"),ctx._pfEmpty.thead!==undefined&&0!==ctx._pfEmpty.thead.length&&ctx._pfEmpty.thead.removeClass("hidden"),ctx._pfEmpty.toolbarActions!==undefined&&0!==ctx._pfEmpty.toolbarActions.length&&$("button",ctx._pfEmpty.toolbarActions).prop("disabled",!1),ctx._pfEmpty.toolbarActions!==undefined&&0!==ctx._pfEmpty.toolbarActions.length&&$("input",ctx._pfEmpty.toolbarActions).prop("disabled",!1),ctx._pfEmpty.toolbarResults!==undefined&&0!==ctx._pfEmpty.toolbarResults.length&&ctx._pfEmpty.toolbarResults.children().removeClass("hidden"),ctx._pfEmpty.pagination!==undefined&&0!==ctx._pfEmpty.pagination.length&&ctx._pfEmpty.pagination.removeClass("hidden")}function updateState(dt){var ctx=dt.settings()[0];0===dt.data().length?(ctx._pfEmpty.isEmptyState=!0,updateEmptyState(dt)):!0===ctx._pfEmpty.isEmptyState&&(ctx._pfEmpty.isEmptyState=!1,updateNonEmptyState(dt))}var DataTable=$.fn.dataTable;return DataTable.pfEmpty={},DataTable.pfEmpty.init=function(dt){var ctx=dt.settings()[0],opts=ctx.oInit.pfConfig?ctx.oInit.pfConfig:{};ctx._pfEmpty={},ctx._pfEmpty.emptyState=$(opts.emptyStateSelector),ctx._pfEmpty.isEmptyState=!1,ctx._pfEmpty.pagination=$(opts.paginationSelector),ctx._pfEmpty.tbody=$("tbody",dt.table().container()),ctx._pfEmpty.thead=$("thead",dt.table().container()),ctx._pfEmpty.toolbarActions=$(".toolbar-pf-actions",opts.toolbarSelector),ctx._pfEmpty.toolbarResults=$(".toolbar-pf-results",opts.toolbarSelector),dt.on("draw.dt",function(){updateState(dt)}),updateState(dt)},DataTable.Api.register("pfEmpty.updateState()",function(){return this.iterator("table",function(ctx){updateState(new DataTable.Api(ctx))})}),$(document).on("init.dt",function(e,ctx,json){"dt"===e.namespace&&DataTable.pfEmpty.init(new DataTable.Api(ctx))}),DataTable.pfEmpty});
\ No newline at end of file
diff --git a/dist/js/patternfly.dataTables.pfFilter.js b/dist/js/patternfly.dataTables.pfFilter.js
new file mode 100644
index 0000000000..aa1de55030
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfFilter.js
@@ -0,0 +1,429 @@
+/**
+ * @summary pfFilter for DataTables
+ * @description A collection of API methods providing simple filter functionality for DataTables. This ensures
+ * DataTables meets the Patternfly design pattern with a toolbar.
+ *
+ * To apply a filter, the user must press enter in the given filter input. The user may apply a filter to a different
+ * column via the given filter drop down. After a filter has been applied, the filter results text, active filter
+ * controls, and a clear all control are shown.
+ *
+ * The toolbar and empty state layouts are expected to contain the classes as shown in the example below.
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ * ...
+ *
+ *
+ * Note: This functionality requires the following Javascript library files to be loaded:
+ *
+ * https://cdn.datatables.net/select/1.2.0/js/dataTables.select.min.js
+ */
+(function (factory) {
+ "use strict";
+ if (typeof define === "function" && define.amd ) {
+ // AMD
+ define (["jquery", "datatables.net"], function ($) {
+ return factory ($, window, document);
+ });
+ } else if (typeof exports === "object") {
+ // CommonJS
+ module.exports = function (root, $) {
+ if (!root) {
+ root = window;
+ }
+ if (!$ || !$.fn.dataTable) {
+ $ = require("datatables.net")(root, $).$;
+ }
+ return factory($, root, root.document);
+ };
+ } else {
+ // Browser
+ factory(jQuery, window, document);
+ }
+}(function ($, window, document, undefined) {
+ "use strict";
+ var DataTable = $.fn.dataTable;
+ var ACTIVE_FILTER_CONTROLS_SELECTOR = ".list-inline"; // Active filter controls
+ var CLEAR_FILTERS_SELECTOR = ".toolbar-pf-results a"; // Clear filters control
+ var FILTER_SELECTOR = ".toolbar-pf-filter"; // Filter input
+ var FILTER_BUTTON_SELECTOR = FILTER_SELECTOR + " button"; // Filter button
+ var FILTER_INPUT_SELECTOR = FILTER_SELECTOR + " input"; // Filter input
+ var FILTER_LABEL_SELECTOR = FILTER_SELECTOR + " label"; // Filter label
+ var RESULTS_SELECTOR = ".toolbar-pf-results"; // Toolbar results row
+ var FILTER_RESULTS_SELECTOR = RESULTS_SELECTOR + " h5"; // Toolbar filter results
+
+ DataTable.pfFilter = {};
+
+ /**
+ * Initialize
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ DataTable.pfFilter.init = function (dt) {
+ var i;
+ var ctx = dt.settings()[0];
+ var opts = (ctx.oInit.pfConfig) ? ctx.oInit.pfConfig : {};
+
+ ctx._pfFilter = {};
+ ctx._pfFilter.filterButton = $(FILTER_BUTTON_SELECTOR, opts.toolbarSelector); // Filter button
+ ctx._pfFilter.filterCols = opts.filterCols; // Filter colums config
+ ctx._pfFilter.filterLabel = $(FILTER_LABEL_SELECTOR, opts.toolbarSelector); // Filter label
+ ctx._pfFilter.filterInput = $(FILTER_INPUT_SELECTOR, opts.toolbarSelector); // Filter input
+ ctx._pfFilter.filters = []; // Applied filters array
+ ctx._pfFilter.activeFilterControls = $(ACTIVE_FILTER_CONTROLS_SELECTOR, opts.toolbarSelector); // Active filter controls
+ ctx._pfFilter.activeFilters = ctx._pfFilter.activeFilterControls.closest("div"); // Active filters container
+ ctx._pfFilter.clearFilters = $(CLEAR_FILTERS_SELECTOR, opts.toolbarSelector); // Clear filters control
+ ctx._pfFilter.results = $(RESULTS_SELECTOR, opts.toolbarSelector); // Toolbar results row
+ ctx._pfFilter.filterCaseInsensitive = opts.filterCaseInsensitive; // Filter filter case insensitive
+ ctx._pfFilter.filterResults = $(FILTER_RESULTS_SELECTOR, opts.toolbarSelector); // Toolbar filter results
+
+ if (ctx._pfFilter.filterCols === undefined) {
+ return;
+ }
+
+ // Set default filter properties
+ for (i = 0; i < ctx._pfFilter.filterCols.length; i++) {
+ if (ctx._pfFilter.filterCols[i] === null) {
+ continue;
+ }
+ ctx._pfFilter.filterColumn = i; // Current filter column
+ ctx._pfFilter.filterName = $(ctx._pfFilter.filterCols[i].optionSelector).text(); // Name of current filter
+ if (ctx._pfFilter.filterCols[i].default === true) {
+ break;
+ }
+ }
+
+ // Handle click on filter menu to set current filter column and name
+ for (i = 0; i < ctx._pfFilter.filterCols.length; i++) {
+ handleFilterOption(dt, i); // Need to pass value of i as a function
+ }
+
+ // Handle actions when enter is pressed within filter input
+ handleFilterInput(dt);
+
+ // Handle actions when clear filters control is selected
+ handleClearFilters(dt);
+
+ // Simple filter
+ $.fn.dataTable.ext.search.push(function (ctx, data, dataIndex) {
+ var showThisRow = true;
+ // Must match all filters
+ if (ctx._pfFilter) {
+ $.each(ctx._pfFilter.filters, function (index, filter) {
+ if (ctx._pfFilter.filterCaseInsensitive !== undefined && ctx._pfFilter.filterCaseInsensitive === true) {
+ if (data[filter.column].toLowerCase().indexOf(filter.value.toLowerCase()) === -1) {
+ showThisRow = false;
+ }
+ } else {
+ if (data[filter.column].indexOf(filter.value) === -1) {
+ showThisRow = false;
+ }
+ }
+ });
+ }
+ return showThisRow;
+ });
+ };
+
+ // Local functions
+
+ /**
+ * Add active filter control
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @param {object} filter Properties associated with a new filter
+ * @param {string} filter.column - Column associated with DataTable
+ * @param {string} filter.name - Name of the filter
+ * @param {string} filter.value - Value of the filter
+ * @private
+ */
+ function addActiveFilterControl (dt, filter) {
+ var ctx = dt.settings()[0];
+ var i;
+
+ // Append active filter control
+ ctx._pfFilter.activeFilterControls.append('' + filter.name + ': ' +
+ filter.value + '');
+
+ // Handle click to clear active filter
+ $("a", ctx._pfFilter.activeFilterControls).last().on("click", function (e) {
+ // Find existing filter and remove
+ for (i = 0; i < ctx._pfFilter.filters.length; i++) {
+ if (ctx._pfFilter.filters[i].column === filter.column && ctx._pfFilter.filters[i].value === filter.value) {
+ ctx._pfFilter.filters.splice(i, 1);
+ $(this).parents("li").remove();
+ break;
+ }
+ }
+ if (ctx._pfFilter.filters.length === 0) {
+ ctx._pfFilter.activeFilters.addClass("hidden"); // Hide
+ }
+ dt.draw();
+ updateFilterResults(dt);
+ });
+ // Show active filters
+ ctx._pfFilter.activeFilters.removeClass("hidden");
+ }
+
+ /**
+ * Add filter
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @param {object} filter Properties associated with a new filter
+ * @param {string} filter.column - Column associated with DataTable
+ * @param {string} filter.name - Name of the filter
+ * @param {string} filter.value - Value of the filter
+ * @private
+ */
+ function addFilter (dt, filter) {
+ var ctx = dt.settings()[0];
+ var found = false;
+
+ // Find existing entry
+ $.grep(ctx._pfFilter.filters, function (f) {
+ if (f.column === filter.column && f.value === filter.value) {
+ found = true;
+ }
+ });
+
+ // Add new filter
+ if (!found) {
+ ctx._pfFilter.filters.push(filter);
+ dt.draw();
+ addActiveFilterControl(dt, filter);
+ updateFilterResults(dt);
+ }
+ ctx._pfFilter.filterInput.val(""); // Clear input
+ }
+
+ /**
+ * Clear filters
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function clearFilters (dt) {
+ var ctx = dt.settings()[0];
+ ctx._pfFilter.filters.length = 0; // Reset filters
+ ctx._pfFilter.activeFilterControls.html(""); // Remove active filter controls
+ ctx._pfFilter.activeFilters.addClass("hidden"); // Hide active filters area
+ dt.draw();
+ }
+
+ /**
+ * Handle actions when clear filters control is selected
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function handleClearFilters (dt) {
+ var ctx = dt.settings()[0];
+ if (ctx._pfFilter.clearFilters === undefined || ctx._pfFilter.clearFilters.length === 0) {
+ return;
+ }
+ ctx._pfFilter.clearFilters.on("click", function (e) {
+ clearFilters(dt);
+ });
+ }
+
+ /**
+ * Handle actions when enter is pressed within filter input
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function handleFilterInput (dt) {
+ var ctx = dt.settings()[0];
+ if (ctx._pfFilter.filterInput === undefined || ctx._pfFilter.filterInput.length === 0) {
+ return;
+ }
+ ctx._pfFilter.filterInput.on("keypress", function (e) {
+ var keycode = (e.keyCode ? e.keyCode : e.which);
+ if (keycode === 13) {
+ e.preventDefault();
+ if (this.value.trim().length > 0) {
+ addFilter(dt, {
+ column: ctx._pfFilter.filterColumn,
+ name: ctx._pfFilter.filterName,
+ value: this.value
+ });
+ }
+ return false;
+ }
+ return true;
+ });
+ }
+
+ /**
+ * Handle actions when filter options are selected
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @param {number} i The column associated with this handler
+ * @private
+ */
+ function handleFilterOption (dt, i) {
+ var ctx = dt.settings()[0];
+ if (ctx._pfFilter.filterCols[i] === null || ctx._pfFilter.filterCols[i].optionSelector === undefined) {
+ return;
+ }
+ $(ctx._pfFilter.filterCols[i].optionSelector).on("click", function (e) {
+ // Set input placeholder
+ if (ctx._pfFilter.filterInput !== undefined && ctx._pfFilter.filterInput.length !== 0) {
+ ctx._pfFilter.filterInput.get(0).placeholder = ctx._pfFilter.filterCols[i].placeholder;
+ }
+ // Set filter label
+ if (ctx._pfFilter.filterLabel !== undefined && ctx._pfFilter.filterLabel.length !== 0) {
+ ctx._pfFilter.filterLabel.html($(this).text());
+ }
+ // Set filter button
+ if (ctx._pfFilter.filterButton !== undefined && ctx._pfFilter.filterButton.length !== 0) {
+ ctx._pfFilter.filterButton.html($(this).text() + ' ');
+ }
+ ctx._pfFilter.filterColumn = i; // Save filter column when applying filter
+ ctx._pfFilter.filterName = $(this).text(); // Save filter name for active filter control
+ });
+ }
+
+ /**
+ * Update active filter results
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateFilterResults (dt) {
+ var ctx = dt.settings()[0];
+ var filteredRows = dt.rows({"page": "current", "search": "applied"}).flatten().length;
+ if (ctx._pfFilter.filterResults === undefined || ctx._pfFilter.filterResults.length === 0) {
+ return;
+ }
+ ctx._pfFilter.filterResults.html(filteredRows + " Results");
+ }
+
+ // DataTables API
+
+ /**
+ * Add filter
+ *
+ * Example: dt.table().pfFilter.addFilter({
+ * column: 2,
+ * name: "Browser",
+ * value: "Firefox"
+ * });
+ *
+ * @param {object} filter Properties associated with a new filter
+ * @param {string} filter.column - Column associated with DataTable
+ * @param {string} filter.name - Name of the filter
+ * @param {string} filter.value - Value of the filter
+ */
+ DataTable.Api.register("pfFilter.addFilter()", function (filter) {
+ return this.iterator("table", function (ctx) {
+ addFilter(new DataTable.Api(ctx), filter);
+ });
+ });
+
+ /**
+ * Clear filters
+ *
+ * Example: dt.table().pfFilter.clearFilters();
+ *
+ */
+ DataTable.Api.register("pfFilter.clearFilters()", function () {
+ return this.iterator("table", function (ctx) {
+ clearFilters(new DataTable.Api(ctx));
+ });
+ });
+
+ // DataTables creation
+ $(document).on("init.dt", function (e, ctx, json) {
+ if (e.namespace !== "dt") {
+ return;
+ }
+ DataTable.pfFilter.init(new DataTable.Api(ctx));
+ });
+ return DataTable.pfFilter;
+}));
diff --git a/dist/js/patternfly.dataTables.pfFilter.min.js b/dist/js/patternfly.dataTables.pfFilter.min.js
new file mode 100644
index 0000000000..64854f9b7f
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfFilter.min.js
@@ -0,0 +1 @@
+!function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function($){return factory($,window,document)}):"object"==typeof exports?module.exports=function(root,$){return root||(root=window),$&&$.fn.dataTable||($=require("datatables.net")(root,$).$),factory($,root,root.document)}:factory(jQuery,window,document)}(function($,window,document,undefined){"use strict";function addActiveFilterControl(dt,filter){var i,ctx=dt.settings()[0];ctx._pfFilter.activeFilterControls.append(''+filter.name+": "+filter.value+''),$("a",ctx._pfFilter.activeFilterControls).last().on("click",function(e){for(i=0;i0&&addFilter(dt,{column:ctx._pfFilter.filterColumn,name:ctx._pfFilter.filterName,value:this.value}),!1)})}function handleFilterOption(dt,i){var ctx=dt.settings()[0];null!==ctx._pfFilter.filterCols[i]&&ctx._pfFilter.filterCols[i].optionSelector!==undefined&&$(ctx._pfFilter.filterCols[i].optionSelector).on("click",function(e){ctx._pfFilter.filterInput!==undefined&&0!==ctx._pfFilter.filterInput.length&&(ctx._pfFilter.filterInput.get(0).placeholder=ctx._pfFilter.filterCols[i].placeholder),ctx._pfFilter.filterLabel!==undefined&&0!==ctx._pfFilter.filterLabel.length&&ctx._pfFilter.filterLabel.html($(this).text()),ctx._pfFilter.filterButton!==undefined&&0!==ctx._pfFilter.filterButton.length&&ctx._pfFilter.filterButton.html($(this).text()+' '),ctx._pfFilter.filterColumn=i,ctx._pfFilter.filterName=$(this).text()})}function updateFilterResults(dt){var ctx=dt.settings()[0],filteredRows=dt.rows({page:"current",search:"applied"}).flatten().length;ctx._pfFilter.filterResults!==undefined&&0!==ctx._pfFilter.filterResults.length&&ctx._pfFilter.filterResults.html(filteredRows+" Results")}var DataTable=$.fn.dataTable;return DataTable.pfFilter={},DataTable.pfFilter.init=function(dt){var i,ctx=dt.settings()[0],opts=ctx.oInit.pfConfig?ctx.oInit.pfConfig:{};if(ctx._pfFilter={},ctx._pfFilter.filterButton=$(".toolbar-pf-filter button",opts.toolbarSelector),ctx._pfFilter.filterCols=opts.filterCols,ctx._pfFilter.filterLabel=$(".toolbar-pf-filter label",opts.toolbarSelector),ctx._pfFilter.filterInput=$(".toolbar-pf-filter input",opts.toolbarSelector),ctx._pfFilter.filters=[],ctx._pfFilter.activeFilterControls=$(".list-inline",opts.toolbarSelector),ctx._pfFilter.activeFilters=ctx._pfFilter.activeFilterControls.closest("div"),ctx._pfFilter.clearFilters=$(".toolbar-pf-results a",opts.toolbarSelector),ctx._pfFilter.results=$(".toolbar-pf-results",opts.toolbarSelector),ctx._pfFilter.filterCaseInsensitive=opts.filterCaseInsensitive,ctx._pfFilter.filterResults=$(".toolbar-pf-results h5",opts.toolbarSelector),ctx._pfFilter.filterCols!==undefined){for(i=0;i
+ *
+ *
+ *
+ */
+(function (factory) {
+ "use strict";
+ if (typeof define === "function" && define.amd ) {
+ // AMD
+ define (["jquery", "datatables.net"], function ($) {
+ return factory ($, window, document);
+ });
+ } else if (typeof exports === "object") {
+ // CommonJS
+ module.exports = function (root, $) {
+ if (!root) {
+ root = window;
+ }
+ if (!$ || !$.fn.dataTable) {
+ $ = require("datatables.net")(root, $).$;
+ }
+ return factory($, root, root.document);
+ };
+ } else {
+ // Browser
+ factory(jQuery, window, document);
+ }
+}(function ($, window, document, undefined) {
+ "use strict";
+ var DataTable = $.fn.dataTable;
+ var BACK_ACTIONS_SELECTOR = ".pagination-pf-back"; // Back navigation actions
+ var CURRENT_ITEMS_SELECTOR = ".pagination-pf-items-current"; // Current items text (e.g., 1-15)
+ var CURRENT_PAGE_SELECTOR = ".pagination-pf-page"; // Current page input
+ var FIRST_PAGE_SELECTOR = ".pagination-pf-back .fa-angle-double-left"; // First page button
+ var FORWARD_ACTIONS_SELECTOR = ".pagination-pf-forward"; // Forward navigation actions
+ var LAST_PAGE_SELECTOR = ".pagination-pf-forward .fa-angle-double-right"; // Last page button
+ var PAGE_SIZE_SELECTOR = "select.pagination-pf-pagesize"; // Page size selection
+ var TOTAL_ITEMS_SELECTOR = ".pagination-pf-items-total"; // Total items
+ var TOTAL_PAGES_SELECTOR = ".pagination-pf-pages"; // Total pages text
+ var PREVIOUS_PAGE_SELECTOR = ".pagination-pf-back .fa-angle-left"; // Previous page button
+ var NEXT_PAGE_SELECTOR = ".pagination-pf-forward .fa-angle-right"; // Next page button
+
+ DataTable.pfPagination = {};
+
+ /**
+ * Initialize
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ DataTable.pfPagination.init = function (dt) {
+ var ctx = dt.settings()[0];
+ var opts = (ctx.oInit.pfConfig) ? ctx.oInit.pfConfig : {};
+
+ ctx._pfPagination = {};
+ ctx._pfPagination.backActions = $(BACK_ACTIONS_SELECTOR, opts.paginationSelector); // Back navigation actions
+ ctx._pfPagination.currentItems = $(CURRENT_ITEMS_SELECTOR, opts.paginationSelector); // Current items
+ ctx._pfPagination.currentPage = $(CURRENT_PAGE_SELECTOR, opts.paginationSelector); // Current page
+ ctx._pfPagination.firstPage = $(FIRST_PAGE_SELECTOR, opts.paginationSelector); // First page button
+ ctx._pfPagination.forwardActions = $(FORWARD_ACTIONS_SELECTOR, opts.paginationSelector); // Forward navigation actions
+ ctx._pfPagination.lastPage = $(LAST_PAGE_SELECTOR, opts.paginationSelector); // Last page button
+ ctx._pfPagination.nextPage = $(NEXT_PAGE_SELECTOR, opts.paginationSelector); // Next page button
+ ctx._pfPagination.pageSize = $(PAGE_SIZE_SELECTOR, opts.paginationSelector); // Page size selection
+ ctx._pfPagination.previousPage = $(PREVIOUS_PAGE_SELECTOR, opts.paginationSelector); // Next page button
+ ctx._pfPagination.totalItems = $(TOTAL_ITEMS_SELECTOR, opts.paginationSelector); // Total items
+ ctx._pfPagination.totalPages = $(TOTAL_PAGES_SELECTOR, opts.paginationSelector); // Total pages
+
+ // Set initial page size
+ ctx._pfPagination.currentPageSize = (opts.pageSize !== undefined) ? opts.pageSize : 15;
+
+ // Handle page navigation
+ handleCurrentPage(dt);
+ handleFirstPage(dt);
+ handleLastPage(dt);
+ handlePageSize(dt);
+ handleNextPage(dt);
+ handlePreviousPage(dt);
+
+ // Update table on DataTables draw event
+ dt.on("draw.page", function () {
+ updateCurrentPage(dt);
+ updateCurrentItems(dt);
+ updateTotalItems(dt);
+ updateTotalPages(dt);
+ updateBackActions(dt);
+ updateForwardActions(dt);
+ });
+
+ // Initialize page info
+ dt.table().page.len(ctx._pfPagination.currentPageSize);
+ dt.table().draw('page');
+ };
+
+ // Local functions
+
+ /**
+ * Handle page navigation when enter is pressed
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function handleCurrentPage (dt) {
+ var ctx = dt.settings()[0];
+ if (ctx._pfPagination.currentPage === undefined || ctx._pfPagination.currentPage.length === 0) {
+ return;
+ }
+ ctx._pfPagination.currentPage.on("keypress", function (e) {
+ var page, pageInfo = dt.table().page.info();
+ var keycode = (e.keyCode ? e.keyCode : e.which);
+ if (keycode === 13) {
+ e.preventDefault();
+ page = parseInt(this.value) - 1;
+ if (page >= 0 && page < pageInfo.pages) {
+ dt.table().page(page).draw('page');
+ } else {
+ updateCurrentPage(dt); // Always update to replace bad values
+ }
+ return false;
+ }
+ return true;
+ });
+ }
+
+ /**
+ * Handle page navigation when first button is selected
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function handleFirstPage (dt) {
+ var ctx = dt.settings()[0];
+ if (ctx._pfPagination.firstPage === undefined || ctx._pfPagination.firstPage.length === 0) {
+ return;
+ }
+ $(ctx._pfPagination.firstPage).closest('li').on("click", function (e) {
+ dt.table().page('first').draw('page');
+ });
+ }
+
+ /**
+ * Handle page navigation when last button is selected
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function handleLastPage (dt) {
+ var ctx = dt.settings()[0];
+ if (ctx._pfPagination.lastPage === undefined || ctx._pfPagination.lastPage.length === 0) {
+ return;
+ }
+ $(ctx._pfPagination.lastPage).closest('li').on("click", function (e) {
+ dt.table().page('last').draw('page');
+ });
+ }
+
+ /**
+ * Handle page navigation when next button is selected
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function handleNextPage (dt) {
+ var ctx = dt.settings()[0];
+ if (ctx._pfPagination.nextPage === undefined || ctx._pfPagination.nextPage.length === 0) {
+ return;
+ }
+ $(ctx._pfPagination.nextPage).closest('a').on("click", function (e) {
+ dt.table().page('next').draw('page');
+ });
+ }
+
+ /**
+ * Handle page size when selected
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function handlePageSize (dt) {
+ var ctx = dt.settings()[0];
+ if (ctx._pfPagination.pageSize === undefined || ctx._pfPagination.pageSize.length === 0) {
+ return;
+ }
+ ctx._pfPagination.pageSize.on("change", function (e) {
+ ctx._pfPagination.currentPageSize = parseInt(this.value);
+ dt.table().page.len(ctx._pfPagination.currentPageSize).draw('page');
+ });
+ }
+
+ /**
+ * Handle page navigation when previous button is selected
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function handlePreviousPage (dt) {
+ var ctx = dt.settings()[0];
+ if (ctx._pfPagination.previousPage === undefined || ctx._pfPagination.previousPage.length === 0) {
+ return;
+ }
+ $(ctx._pfPagination.previousPage).closest('a').on("click", function (e) {
+ dt.table().page('previous').draw('page');
+ });
+ }
+
+ /**
+ * Update current page
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateCurrentPage (dt) {
+ var ctx = dt.settings()[0];
+ var pageInfo = dt.table().page.info();
+ var page = (pageInfo.recordsDisplay === 0) ? 0 : pageInfo.page + 1;
+ if (ctx._pfPagination.currentPage === undefined || ctx._pfPagination.currentPage.length === 0) {
+ return;
+ }
+ // Disable if pagination is not available due to filtering
+ if (pageInfo.recordsDisplay > pageInfo.length) {
+ $(ctx._pfPagination.currentPage).prop("disabled", false);
+ } else {
+ $(ctx._pfPagination.currentPage).prop("disabled", true);
+ }
+ // Set current page value
+ $(ctx._pfPagination.currentPage).val(page);
+ }
+
+ /**
+ * Update back navigation actions
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateBackActions (dt) {
+ var ctx = dt.settings()[0];
+ var pageInfo = dt.table().page.info();
+ if (pageInfo.page === 0) {
+ $("li", ctx._pfPagination.backActions).each(function () {
+ $(this).addClass("disabled");
+ });
+ } else {
+ $("li", ctx._pfPagination.backActions).each(function () {
+ $(this).removeClass("disabled");
+ });
+ }
+ }
+
+ /**
+ * Update current items
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateCurrentItems (dt) {
+ var ctx = dt.settings()[0];
+ var pageInfo = dt.table().page.info();
+ var start = (pageInfo.recordsDisplay === 0) ? 0 : pageInfo.start + 1;
+ ctx._pfPagination.currentItems.html(start + "-" + pageInfo.end);
+ }
+
+ /**
+ * Update forward navigation actions
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateForwardActions (dt) {
+ var ctx = dt.settings()[0];
+ var pageInfo = dt.table().page.info();
+ if (pageInfo.recordsDisplay === 0 || pageInfo.page === pageInfo.pages - 1) {
+ $("li", ctx._pfPagination.forwardActions).each(function () {
+ $(this).addClass("disabled");
+ });
+ } else {
+ $("li", ctx._pfPagination.forwardActions).each(function () {
+ $(this).removeClass("disabled");
+ });
+ }
+ }
+
+ /**
+ * Update total items
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateTotalItems (dt) {
+ var ctx = dt.settings()[0];
+ var pageInfo = dt.table().page.info();
+
+ ctx._pfPagination.totalItems.html(pageInfo.recordsDisplay);
+ }
+
+ /**
+ * Update total pages
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateTotalPages (dt) {
+ var ctx = dt.settings()[0];
+ var pageInfo = dt.table().page.info();
+
+ ctx._pfPagination.totalPages.html(pageInfo.pages);
+ }
+
+ // DataTables API
+
+ /**
+ * Navigate to next page
+ *
+ * Example: dt.table().pfPagination.next();
+ */
+ DataTable.Api.register("pfPagination.next()", function () {
+ return this.iterator("table", function (ctx) {
+ handleNextPage(new DataTable.Api(ctx));
+ });
+ });
+
+ /**
+ * Navigate to previous page
+ *
+ * Example: dt.table().pfPagination.previous();
+ */
+ DataTable.Api.register("pfPagination.previous()", function () {
+ return this.iterator("table", function (ctx) {
+ handlePreviousPage(new DataTable.Api(ctx));
+ });
+ });
+
+ // DataTables creation
+ $(document).on("init.dt", function (e, ctx, json) {
+ if (e.namespace !== "dt") {
+ return;
+ }
+ DataTable.pfPagination.init(new DataTable.Api(ctx));
+ });
+ return DataTable.pfPagination;
+}));
diff --git a/dist/js/patternfly.dataTables.pfPagination.min.js b/dist/js/patternfly.dataTables.pfPagination.min.js
new file mode 100644
index 0000000000..733dd3f4f5
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfPagination.min.js
@@ -0,0 +1 @@
+!function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function($){return factory($,window,document)}):"object"==typeof exports?module.exports=function(root,$){return root||(root=window),$&&$.fn.dataTable||($=require("datatables.net")(root,$).$),factory($,root,root.document)}:factory(jQuery,window,document)}(function($,window,document,undefined){"use strict";function handleCurrentPage(dt){var ctx=dt.settings()[0];ctx._pfPagination.currentPage!==undefined&&0!==ctx._pfPagination.currentPage.length&&ctx._pfPagination.currentPage.on("keypress",function(e){var page,pageInfo=dt.table().page.info();return 13!==(e.keyCode?e.keyCode:e.which)||(e.preventDefault(),page=parseInt(this.value)-1,page>=0&&pagepageInfo.length?$(ctx._pfPagination.currentPage).prop("disabled",!1):$(ctx._pfPagination.currentPage).prop("disabled",!0),$(ctx._pfPagination.currentPage).val(page))}function updateBackActions(dt){var ctx=dt.settings()[0];0===dt.table().page.info().page?$("li",ctx._pfPagination.backActions).each(function(){$(this).addClass("disabled")}):$("li",ctx._pfPagination.backActions).each(function(){$(this).removeClass("disabled")})}function updateCurrentItems(dt){var ctx=dt.settings()[0],pageInfo=dt.table().page.info(),start=0===pageInfo.recordsDisplay?0:pageInfo.start+1;ctx._pfPagination.currentItems.html(start+"-"+pageInfo.end)}function updateForwardActions(dt){var ctx=dt.settings()[0],pageInfo=dt.table().page.info();0===pageInfo.recordsDisplay||pageInfo.page===pageInfo.pages-1?$("li",ctx._pfPagination.forwardActions).each(function(){$(this).addClass("disabled")}):$("li",ctx._pfPagination.forwardActions).each(function(){$(this).removeClass("disabled")})}function updateTotalItems(dt){var ctx=dt.settings()[0],pageInfo=dt.table().page.info();ctx._pfPagination.totalItems.html(pageInfo.recordsDisplay)}function updateTotalPages(dt){var ctx=dt.settings()[0],pageInfo=dt.table().page.info();ctx._pfPagination.totalPages.html(pageInfo.pages)}var DataTable=$.fn.dataTable;return DataTable.pfPagination={},DataTable.pfPagination.init=function(dt){var ctx=dt.settings()[0],opts=ctx.oInit.pfConfig?ctx.oInit.pfConfig:{};ctx._pfPagination={},ctx._pfPagination.backActions=$(".pagination-pf-back",opts.paginationSelector),ctx._pfPagination.currentItems=$(".pagination-pf-items-current",opts.paginationSelector),ctx._pfPagination.currentPage=$(".pagination-pf-page",opts.paginationSelector),ctx._pfPagination.firstPage=$(".pagination-pf-back .fa-angle-double-left",opts.paginationSelector),ctx._pfPagination.forwardActions=$(".pagination-pf-forward",opts.paginationSelector),ctx._pfPagination.lastPage=$(".pagination-pf-forward .fa-angle-double-right",opts.paginationSelector),ctx._pfPagination.nextPage=$(".pagination-pf-forward .fa-angle-right",opts.paginationSelector),ctx._pfPagination.pageSize=$("select.pagination-pf-pagesize",opts.paginationSelector),ctx._pfPagination.previousPage=$(".pagination-pf-back .fa-angle-left",opts.paginationSelector),ctx._pfPagination.totalItems=$(".pagination-pf-items-total",opts.paginationSelector),ctx._pfPagination.totalPages=$(".pagination-pf-pages",opts.paginationSelector),ctx._pfPagination.currentPageSize=opts.pageSize!==undefined?opts.pageSize:15,handleCurrentPage(dt),handleFirstPage(dt),handleLastPage(dt),handlePageSize(dt),handleNextPage(dt),handlePreviousPage(dt),dt.on("draw.page",function(){updateCurrentPage(dt),updateCurrentItems(dt),updateTotalItems(dt),updateTotalPages(dt),updateBackActions(dt),updateForwardActions(dt)}),dt.table().page.len(ctx._pfPagination.currentPageSize),dt.table().draw("page")},DataTable.Api.register("pfPagination.next()",function(){return this.iterator("table",function(ctx){handleNextPage(new DataTable.Api(ctx))})}),DataTable.Api.register("pfPagination.previous()",function(){return this.iterator("table",function(ctx){handlePreviousPage(new DataTable.Api(ctx))})}),$(document).on("init.dt",function(e,ctx,json){"dt"===e.namespace&&DataTable.pfPagination.init(new DataTable.Api(ctx))}),DataTable.pfPagination});
\ No newline at end of file
diff --git a/dist/js/patternfly.dataTables.pfResize.js b/dist/js/patternfly.dataTables.pfResize.js
new file mode 100644
index 0000000000..bdec5af17b
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfResize.js
@@ -0,0 +1,214 @@
+/**
+ * @summary pfResize for DataTables
+ * @description A collection of API methods providing resize functionality in DataTables. This ensures DataTables
+ * meets the Patternfly design pattern for IE browsers. Inline actions are typically located in the last column of
+ * DataTables and expected to be styled with table-view-pf-actions. Inline action buttons must also be wrapped with the
+ * table-view-pf-btn class.
+ *
+ * Example:
+ *
+ *
+ * ...
+ *
+ * ...
+ *
+ *
+ * Note: This functionality requires the following Javascript library files to be loaded:
+ *
+ * https://cdn.datatables.net/select/1.2.0/js/dataTables.select.min.js
+ */
+(function (factory) {
+ "use strict";
+ if (typeof define === "function" && define.amd ) {
+ // AMD
+ define (["jquery", "datatables.net"], function ($) {
+ return factory ($, window, document);
+ });
+ } else if (typeof exports === "object") {
+ // CommonJS
+ module.exports = function (root, $) {
+ if (!root) {
+ root = window;
+ }
+ if (!$ || !$.fn.dataTable) {
+ $ = require("datatables.net")(root, $).$;
+ }
+ return factory($, root, root.document);
+ };
+ } else {
+ // Browser
+ factory(jQuery, window, document);
+ }
+}(function ($, window, document, undefined) {
+ "use strict";
+ var DataTable = $.fn.dataTable;
+ var BUTTON_ACTIONS_SELECTOR = "td.table-view-pf-actions .table-view-pf-btn";
+ var KEBAB_ACTIONS_SELECTOR = "td.table-view-pf-actions .dropdown";
+
+ DataTable.pfResize = {};
+
+ /**
+ * Initialize
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ DataTable.pfResize.init = function (dt) {
+ var ctx = dt.settings()[0];
+
+ ctx._pfResize = {};
+
+ if (isIE()) {
+ // Resize buttons to fill table cells.
+ $(window).on("resize", function () {
+ resize(dt);
+ });
+
+ // Initialize
+ resize(dt);
+ }
+ };
+
+ // Local functions
+
+ /**
+ * Get inline actions
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function getActions (dt) {
+ return $(BUTTON_ACTIONS_SELECTOR + ", " + KEBAB_ACTIONS_SELECTOR, dt.table().container());
+ }
+
+ /**
+ * Detect IE
+ *
+ * @return {boolean} True if IE is detected
+ * @private
+ */
+ function isIE () {
+ return /(MSIE|Trident\/|Edge\/)/i.test(window.navigator.userAgent);
+ }
+
+ /**
+ * Reset table cell height prior to resizing inline actions
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @param {Object} actions Inline actions to reset height
+ * @private
+ */
+ function resetTableCells (dt, actions) {
+ if (actions === undefined || actions.length === 0) {
+ return;
+ }
+ $(actions).each(function (index, el) {
+ $(el).css({height: "auto"});
+ });
+ }
+
+ /**
+ * Resize inline actions
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function resize (dt) {
+ var actions = $(BUTTON_ACTIONS_SELECTOR + ", " + KEBAB_ACTIONS_SELECTOR, dt.table().container());
+ resetTableCells(dt, actions);
+ resizeInlineActions(dt, actions);
+ }
+
+ /**
+ * Resize inline actions to fill table cells
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @param {Object} actions Inline actions to resize
+ * @private
+ */
+ function resizeInlineActions (dt, actions) {
+ if (actions === undefined || actions.length === 0) {
+ return;
+ }
+ $(actions).each(function (index, el) {
+ var parent = $(el).parent("td");
+ if (parent === undefined || parent.length === 0) {
+ return;
+ }
+ $(el).css({height: parent[0].clientHeight});
+ });
+ }
+
+ // DataTables API
+
+ /**
+ * Resize inline actions
+ *
+ * Example: dt.table().pfResize.resize();
+ */
+ DataTable.Api.register("pfResize.resize()", function () {
+ return this.iterator("table", function (ctx) {
+ resize(new DataTable.Api(ctx));
+ });
+ });
+
+ // DataTables creation
+ $(document).on("init.dt", function (e, ctx, json) {
+ if (e.namespace !== "dt") {
+ return;
+ }
+ DataTable.pfResize.init(new DataTable.Api(ctx));
+ });
+ return DataTable.pfResize;
+}));
diff --git a/dist/js/patternfly.dataTables.pfResize.min.js b/dist/js/patternfly.dataTables.pfResize.min.js
new file mode 100644
index 0000000000..c41dd8b46c
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfResize.min.js
@@ -0,0 +1 @@
+!function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function($){return factory($,window,document)}):"object"==typeof exports?module.exports=function(root,$){return root||(root=window),$&&$.fn.dataTable||($=require("datatables.net")(root,$).$),factory($,root,root.document)}:factory(jQuery,window,document)}(function($,window,document,undefined){"use strict";function isIE(){return/(MSIE|Trident\/|Edge\/)/i.test(window.navigator.userAgent)}function resetTableCells(dt,actions){actions!==undefined&&0!==actions.length&&$(actions).each(function(index,el){$(el).css({height:"auto"})})}function resize(dt){var actions=$(BUTTON_ACTIONS_SELECTOR+", "+KEBAB_ACTIONS_SELECTOR,dt.table().container());resetTableCells(dt,actions),resizeInlineActions(dt,actions)}function resizeInlineActions(dt,actions){actions!==undefined&&0!==actions.length&&$(actions).each(function(index,el){var parent=$(el).parent("td");parent!==undefined&&0!==parent.length&&$(el).css({height:parent[0].clientHeight})})}var DataTable=$.fn.dataTable,BUTTON_ACTIONS_SELECTOR="td.table-view-pf-actions .table-view-pf-btn",KEBAB_ACTIONS_SELECTOR="td.table-view-pf-actions .dropdown";return DataTable.pfResize={},DataTable.pfResize.init=function(dt){dt.settings()[0]._pfResize={},isIE()&&($(window).on("resize",function(){resize(dt)}),resize(dt))},DataTable.Api.register("pfResize.resize()",function(){return this.iterator("table",function(ctx){resize(new DataTable.Api(ctx))})}),$(document).on("init.dt",function(e,ctx,json){"dt"===e.namespace&&DataTable.pfResize.init(new DataTable.Api(ctx))}),DataTable.pfResize});
\ No newline at end of file
diff --git a/dist/js/patternfly.dataTables.pfSelect.js b/dist/js/patternfly.dataTables.pfSelect.js
new file mode 100644
index 0000000000..4ab5523084
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfSelect.js
@@ -0,0 +1,281 @@
+/**
+ * @summary pfSelect for DataTables
+ * @description A collection of API methods providing individual row selection and select all functionality in
+ * DataTables using traditional HTML checkboxes. This ensures DataTables meets the Patternfly design pattern while
+ * maintaining accessibility.
+ *
+ * The following selection styles are supported for user interaction with DataTables:
+ *
+ * api - Selection can only be performed via the API
+ * multi - Multiple items can be selected
+ * multi+shift - a hybrid between the os style and multi
+ * os - Operating system style selection with complex behaviors such as ctrl/cmd, shift and an unmodified click
+ * single - Only a single item can be selected
+ *
+ * For details see: https://datatables.net/reference/option/select.style
+ *
+ * Note that when a selection is made, the selection results text is also updated in the toolbar. The toolbar layouts is
+ * expected to contain the classes as shown in the example below. Selection checkboxes are also expected to be located
+ * in the first column.
+ *
+ * Example:
+ *
+ *
+ *
+ *
+ * ...
+ *
+ *
+ * Note: This functionality requires the following Javascript library files to be loaded:
+ *
+ * https://cdn.datatables.net/select/1.2.0/js/dataTables.select.min.js
+ */
+(function (factory) {
+ "use strict";
+ if (typeof define === "function" && define.amd ) {
+ // AMD
+ define (["jquery", "datatables.net"], function ($) {
+ return factory ($, window, document);
+ });
+ } else if (typeof exports === "object") {
+ // CommonJS
+ module.exports = function (root, $) {
+ if (!root) {
+ root = window;
+ }
+ if (!$ || !$.fn.dataTable) {
+ $ = require("datatables.net")(root, $).$;
+ }
+ return factory($, root, root.document);
+ };
+ } else {
+ // Browser
+ factory(jQuery, window, document);
+ }
+}(function ($, window, document, undefined) {
+ "use strict";
+ var DataTable = $.fn.dataTable;
+ var RESULTS_SELECTOR = ".table-view-pf-select-results"; // Toolbar selection results
+ var SELECT_ALL_SELECTOR = 'th:first-child input[type="checkbox"]'; // Default checkbox for selecting all rows
+ var SELECT_SELECTOR = 'td:first-child input[type="checkbox"]'; // Default checkboxes for row selection
+
+ DataTable.pfSelect = {};
+
+ /**
+ * Initialize
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ DataTable.pfSelect.init = function (dt) {
+ var ctx = dt.settings()[0];
+ var opts = (ctx.oInit.pfConfig) ? ctx.oInit.pfConfig : {};
+ var select = (ctx.oInit.select) ? ctx.oInit.select : {};
+ var style = dt.select.style();
+
+ ctx._pfSelect = {};
+ ctx._pfSelect.selectAllSelector = (opts.selectAllSelector !== undefined)
+ ? opts.selectAllSelector : SELECT_ALL_SELECTOR; // Select all checkbox
+ ctx._pfSelect.selector = (select.selector !== undefined)
+ ? select.selector : SELECT_SELECTOR; // Select checkbox
+ ctx._pfSelect.results = $(RESULTS_SELECTOR, opts.toolbarSelector); // Toolbar selection results
+
+ if (style === "api") {
+ // Select all checkbox
+ $(dt.table().container()).on("click", ctx._pfSelect.selectAllSelector, function (evt) {
+ evt.preventDefault();
+ });
+
+ // Select checkboxes
+ $(dt.table().container()).on("click", ctx._pfSelect.selector, function (evt) {
+ evt.preventDefault();
+ });
+
+ dt.table().on("select.dt", function () {
+ syncSelectCheckboxes(dt);
+ });
+ } else {
+ // Select all checkbox
+ $(dt.table().container()).on("click", ctx._pfSelect.selectAllSelector, function (evt) {
+ selectAllRows(dt, evt.target.checked);
+ });
+
+ // Select checkboxes
+ $(dt.table().container()).on("click", ctx._pfSelect.selector, function (evt) {
+ if (style !== "multi" || style !== "multi+shift") {
+ syncSelectCheckboxes(dt); // No need to sync checkbox selections when "multi" is used
+ } else {
+ syncSelectAllCheckbox(dt); // Still need to sync select all checkbox
+ }
+ });
+ }
+
+ // Sync checkbox selections when paging and filtering is applied
+ dt.table().on("draw.dt", function () {
+ syncSelectCheckboxes(dt);
+ });
+
+ // Initialize selected rows text
+ updateSelectedRowsText(dt);
+ };
+
+ // Local functions
+
+ /**
+ * Select all rows on current page
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @param {boolean} select True to select all rows on current page, defaults to false
+ * @private
+ */
+ function selectAllRows (dt, select) {
+ var ctx = dt.settings()[0];
+
+ // Retrieve all rows taking into account currently applied filter
+ var filteredRows = dt.rows({"page": "current", "search": "applied"});
+
+ // Check if style is single
+ if (dt.select.style() === "single") {
+ throw new Error("Cannot select all rows with selection style 'single'");
+ }
+
+ // Select rows
+ if (select) {
+ filteredRows.select();
+ } else {
+ filteredRows.deselect();
+ }
+ $(ctx._pfSelect.selector, dt.table().container()).prop("checked", select); // De/select checkboxes in view
+ syncSelectAllCheckbox(dt);
+ }
+
+ /**
+ * Sync select all checkbox with row selections on current page
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function syncSelectAllCheckbox (dt) {
+ var ctx = dt.settings()[0];
+
+ // Retrieve all rows taking into account currently applied filter
+ var filteredRows = dt.rows({"page": "current", "search": "applied"}).flatten().length;
+ var selectedFilteredRows = dt.rows({"page": "current", "search": "applied", "selected": true}).flatten().length;
+
+ // De/select the select all checkbox
+ var selectAll = $(ctx._pfSelect.selectAllSelector, dt.table().container())[0];
+ if (selectAll) {
+ selectAll.checked = (filteredRows !== 0 && filteredRows === selectedFilteredRows);
+ }
+ updateSelectedRowsText(dt);
+ }
+
+ /**
+ * Sync select checkboxes with row selections on current page
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function syncSelectCheckboxes (dt) {
+ var ctx = dt.settings()[0];
+
+ $(ctx._pfSelect.selector, dt.table().container()).prop("checked", false); // Deselect all checkboxes
+ dt.rows({"page": "current", "search": "applied", "selected": true}).every(function (index) {
+ $(ctx._pfSelect.selector, dt.table().row(index).node()).prop("checked", true); // Select checkbox for selected row
+ });
+ syncSelectAllCheckbox(dt);
+ }
+
+ /**
+ * Update selection results text
+ *
+ * @param {DataTable.Api} dt DataTable
+ * @private
+ */
+ function updateSelectedRowsText (dt) {
+ var ctx = dt.settings()[0];
+ var selectedRows = dt.rows({"selected": true}).flatten().length;
+ var totalRows = dt.rows().flatten().length;
+ if (ctx._pfSelect.results !== undefined && ctx._pfSelect.results.length !== 0) {
+ $(ctx._pfSelect.results).html("" + selectedRows + " of " +
+ totalRows + " selected");
+ }
+ }
+
+ // DataTables API
+
+ /**
+ * Select all rows on current page
+ *
+ * Example: dt.table().pfSelect.selectAllRows(true);
+ *
+ * @param {boolean} select True to select all rows on current page, defaults to false
+ */
+ DataTable.Api.register("pfSelect.selectAllRows()", function (select) {
+ return this.iterator("table", function (ctx) {
+ selectAllRows(new DataTable.Api(ctx), select);
+ });
+ });
+
+ // DataTables creation
+ $(document).on("preInit.dt.dtSelect", function (e, ctx) {
+ if (e.namespace !== "dt") {
+ return;
+ }
+ DataTable.pfSelect.init(new DataTable.Api(ctx));
+ });
+ return DataTable.pfSelect;
+}));
diff --git a/dist/js/patternfly.dataTables.pfSelect.min.js b/dist/js/patternfly.dataTables.pfSelect.min.js
new file mode 100644
index 0000000000..244fa73393
--- /dev/null
+++ b/dist/js/patternfly.dataTables.pfSelect.min.js
@@ -0,0 +1 @@
+!function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function($){return factory($,window,document)}):"object"==typeof exports?module.exports=function(root,$){return root||(root=window),$&&$.fn.dataTable||($=require("datatables.net")(root,$).$),factory($,root,root.document)}:factory(jQuery,window,document)}(function($,window,document,undefined){"use strict";function selectAllRows(dt,select){var ctx=dt.settings()[0],filteredRows=dt.rows({page:"current",search:"applied"});if("single"===dt.select.style())throw new Error("Cannot select all rows with selection style 'single'");select?filteredRows.select():filteredRows.deselect(),$(ctx._pfSelect.selector,dt.table().container()).prop("checked",select),syncSelectAllCheckbox(dt)}function syncSelectAllCheckbox(dt){var ctx=dt.settings()[0],filteredRows=dt.rows({page:"current",search:"applied"}).flatten().length,selectedFilteredRows=dt.rows({page:"current",search:"applied",selected:!0}).flatten().length,selectAll=$(ctx._pfSelect.selectAllSelector,dt.table().container())[0];selectAll&&(selectAll.checked=0!==filteredRows&&filteredRows===selectedFilteredRows),updateSelectedRowsText(dt)}function syncSelectCheckboxes(dt){var ctx=dt.settings()[0];$(ctx._pfSelect.selector,dt.table().container()).prop("checked",!1),dt.rows({page:"current",search:"applied",selected:!0}).every(function(index){$(ctx._pfSelect.selector,dt.table().row(index).node()).prop("checked",!0)}),syncSelectAllCheckbox(dt)}function updateSelectedRowsText(dt){var ctx=dt.settings()[0],selectedRows=dt.rows({selected:!0}).flatten().length,totalRows=dt.rows().flatten().length;ctx._pfSelect.results!==undefined&&0!==ctx._pfSelect.results.length&&$(ctx._pfSelect.results).html(""+selectedRows+" of "+totalRows+" selected")}var DataTable=$.fn.dataTable;return DataTable.pfSelect={},DataTable.pfSelect.init=function(dt){var ctx=dt.settings()[0],opts=ctx.oInit.pfConfig?ctx.oInit.pfConfig:{},select=ctx.oInit.select?ctx.oInit.select:{},style=dt.select.style();ctx._pfSelect={},ctx._pfSelect.selectAllSelector=opts.selectAllSelector!==undefined?opts.selectAllSelector:'th:first-child input[type="checkbox"]',ctx._pfSelect.selector=select.selector!==undefined?select.selector:'td:first-child input[type="checkbox"]',ctx._pfSelect.results=$(".table-view-pf-select-results",opts.toolbarSelector),"api"===style?($(dt.table().container()).on("click",ctx._pfSelect.selectAllSelector,function(evt){evt.preventDefault()}),$(dt.table().container()).on("click",ctx._pfSelect.selector,function(evt){evt.preventDefault()}),dt.table().on("select.dt",function(){syncSelectCheckboxes(dt)})):($(dt.table().container()).on("click",ctx._pfSelect.selectAllSelector,function(evt){selectAllRows(dt,evt.target.checked)}),$(dt.table().container()).on("click",ctx._pfSelect.selector,function(evt){"multi"!==style||"multi+shift"!==style?syncSelectCheckboxes(dt):syncSelectAllCheckbox(dt)})),dt.table().on("draw.dt",function(){syncSelectCheckboxes(dt)}),updateSelectedRowsText(dt)},DataTable.Api.register("pfSelect.selectAllRows()",function(select){return this.iterator("table",function(ctx){selectAllRows(new DataTable.Api(ctx),select)})}),$(document).on("preInit.dt.dtSelect",function(e,ctx){"dt"===e.namespace&&DataTable.pfSelect.init(new DataTable.Api(ctx))}),DataTable.pfSelect});
\ No newline at end of file
diff --git a/dist/js/patternfly.js b/dist/js/patternfly.js
new file mode 100644
index 0000000000..18891f275b
--- /dev/null
+++ b/dist/js/patternfly.js
@@ -0,0 +1,1866 @@
+(function (window) {
+ 'use strict';
+
+ var patternfly = {
+ version: "0.0.0-semantically-released",
+ };
+
+ // definition of breakpoint sizes for tablet and desktop modes
+ patternfly.pfBreakpoints = {
+ 'tablet': 768,
+ 'desktop': 1200
+ };
+
+ window.patternfly = patternfly;
+
+})(typeof window !== 'undefined' ? window : global);
+
+(function (window) {
+ 'use strict';
+
+ // Ensure we are assigning these to the patternfly property of the window argument, and not the implicit global patternfly
+ var patternfly = window.patternfly;
+
+ // Util: PatternFly Palette colors
+ patternfly.pfPaletteColors = {
+ black: '#030303',
+ black100: '#fafafa',
+ black200: '#ededed',
+ black300: '#d1d1d1',
+ black400: '#bbbbbb',
+ black500: '#8b8d8f',
+ black600: '#72767b',
+ black700: '#4d5258',
+ black800: '#393f44',
+ black900: '#292e34',
+ blue: '#0088ce',
+ blue100: '#bee1f4',
+ blue200: '#7dc3e8',
+ blue300: '#39a5dc',
+ blue400: '#0088ce',
+ blue500: '#00659c',
+ blue600: '#004368',
+ blue700: '#002235',
+ gold: '#f0ab00',
+ gold100: '#fbeabc',
+ gold200: '#f9d67a',
+ gold300: '#f5c12e',
+ gold400: '#f0ab00',
+ gold500: '#b58100',
+ gold600: '#795600',
+ gold700: '#3d2c00',
+ orange: '#ec7a08',
+ orange100: '#fbdebf',
+ orange200: '#f7bd7f',
+ orange300: '#f39d3c',
+ orange400: '#ec7a08',
+ orange500: '#b35c00',
+ orange600: '#773d00',
+ orange700: '#3b1f00',
+ lightBlue: '#00b9e4',
+ lightBlue100: '#beedf9',
+ lightBlue200: '#7cdbf3',
+ lightBlue300: '#35caed',
+ lightBlue400: '#00b9e4',
+ lightBlue500: '#008bad',
+ lightBlue600: '#005c73',
+ lightBlue700: '#002d39',
+ green: '#3f9c35',
+ green100: '#cfe7cd',
+ green200: '#9ecf99',
+ green300: '#6ec664',
+ green400: '#3f9c35',
+ green500: '#2d7623',
+ green600: '#1e4f18',
+ green700: '#0f280d',
+ lightGreen: '#92d400',
+ lightGreen100: '#e4f5bc',
+ lightGreen200: '#c8eb79',
+ lightGreen300: '#ace12e',
+ lightGreen400: '#92d400',
+ lightGreen500: '#6ca100',
+ lightGreen600: '#486b00',
+ lightGreen700: '#253600',
+ cyan: '#007a87',
+ cyan100: '#bedee1',
+ cyan200: '#7dbdc3',
+ cyan300: '#3a9ca6',
+ cyan400: '#007a87',
+ cyan500: '#005c66',
+ cyan600: '#003d44',
+ cyan700: '#001f22',
+ purple: '#703fec',
+ purple100: '#c7bfff',
+ purple200: '#a18fff',
+ purple300: '#8461f7',
+ purple400: '#703fec',
+ purple500: '#582fc0',
+ purple600: '#40199a',
+ purple700: '#1f0066',
+ red: '#cc0000',
+ red100: '#cc0000',
+ red200: '#a30000',
+ red300: '#8b0000',
+ red400: '#470000',
+ red500: '#2c0000'
+ };
+})(typeof window !== 'undefined' ? window : global);
+
+
+(function (window) {
+ 'use strict';
+
+ // Ensure we are assigning these to the patternfly property of the window argument, and not the implicit global patternfly
+ var patternfly = window.patternfly;
+
+ // Util: PatternFly C3 Chart Defaults
+ patternfly.pfSetDonutChartTitle = function (selector, primary, secondary) {
+ var donutChartRightTitle = window.d3.select(selector).select('text.c3-chart-arcs-title');
+ donutChartRightTitle.text("");
+ donutChartRightTitle.insert('tspan').text(primary).classed('donut-title-big-pf', true).attr('dy', 0).attr('x', 0);
+ donutChartRightTitle.insert('tspan').text(secondary).classed('donut-title-small-pf', true).attr('dy', 20).attr('x', 0);
+ };
+
+ patternfly.pfDonutTooltipContents = function (d, defaultTitleFormat, defaultValueFormat, color) {
+ return '';
+ };
+
+ patternfly.pfGetUtilizationDonutTooltipContentsFn = function (units) {
+ return function (d) {
+ return '' +
+ (Math.round(d[0].ratio * 1000) / 10) + '%' + ' ' + units + ' ' + d[0].name +
+ '';
+ };
+ };
+
+ patternfly.pfGetBarChartTooltipContentsFn = function (categories) {
+ return function (d) {
+ var name = categories ? categories[d[0].index] : d[0].index;
+ return '';
+ };
+ };
+
+ patternfly.pfSingleLineChartTooltipContentsFn = function (categories) {
+ return function (d) {
+ var name = categories ? categories[d[0].index] : d[0].index;
+ return '';
+ };
+ };
+
+ patternfly.pfPieTooltipContents = function (d, defaultTitleFormat, defaultValueFormat, color) {
+ return patternfly.pfDonutTooltipContents(d, defaultTitleFormat, defaultValueFormat, color);
+ };
+
+ patternfly.c3ChartDefaults = function () {
+ var
+ getDefaultColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.blue300,
+ patternfly.pfPaletteColors.green,
+ patternfly.pfPaletteColors.orange,
+ patternfly.pfPaletteColors.red
+ ]
+ };
+ },
+ getDefaultBarGrid = function () {
+ return {
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultBarTooltip = function (categories) {
+ return {
+ contents: patternfly.pfGetBarChartTooltipContentsFn(categories)
+ };
+ },
+ getDefaultBarLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultBarConfig = function (categories) {
+ return {
+ color: this.getDefaultColors(),
+ grid: this.getDefaultBarGrid(),
+ tooltip: this.getDefaultBarTooltip(categories),
+ legend: this.getDefaultBarLegend()
+ };
+ },
+ getDefaultGroupedBarGrid = function () {
+ return {
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultGroupedBarLegend = function () {
+ return {
+ show: true,
+ position: 'bottom'
+ };
+ },
+ getDefaultGroupedBarConfig = function () {
+ return {
+ color: this.getDefaultColors(),
+ grid: this.getDefaultGroupedBarGrid(),
+ legend: this.getDefaultGroupedBarLegend()
+ };
+ },
+ getDefaultStackedBarGrid = function () {
+ return {
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultStackedBarLegend = function () {
+ return {
+ show: true,
+ position: 'bottom'
+ };
+ },
+ getDefaultStackedBarConfig = function () {
+ return {
+ color: this.getDefaultColors(),
+ grid: this.getDefaultStackedBarGrid(),
+ legend: this.getDefaultStackedBarLegend()
+ };
+ },
+ getDefaultDonut = function (title) {
+ return {
+ title: title,
+ label: {
+ show: false
+ },
+ width: 11
+ };
+ },
+ getDefaultDonutSize = function () {
+ return {
+ height: 171 // produces a diameter of 150 and a centered chart when there is no legend
+ // Don't set a width here, the default is to center horizontally in the parent container
+ };
+ },
+ getDefaultDonutColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.black300
+ ]
+ };
+ },
+ getDefaultRelationshipDonutColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.red100,
+ patternfly.pfPaletteColors.orange400,
+ patternfly.pfPaletteColors.green400,
+ patternfly.pfPaletteColors.cyan500,
+ patternfly.pfPaletteColors.gold200,
+ ]
+ };
+ },
+ getDefaultDonutTooltip = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultDonutLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultDonutConfig = function (title) {
+ return {
+ donut: this.getDefaultDonut(title),
+ size: this.getDefaultDonutSize(),
+ legend: this.getDefaultDonutLegend(),
+ color: this.getDefaultDonutColors(),
+ tooltip: this.getDefaultDonutTooltip()
+ };
+ },
+ getDefaultRelationshipDonutConfig = function (title) {
+ return {
+ donut: this.getDefaultDonut(title),
+ size: this.getDefaultDonutSize(),
+ legend: this.getDefaultDonutLegend(),
+ color: this.getDefaultRelationshipDonutColors(),
+ tooltip: this.getDefaultDonutTooltip()
+ };
+ },
+ getDefaultPie = function () {
+ return {
+ expand: true,
+ label: {
+ show: false
+ }
+ };
+ },
+ getDefaultPieSize = function () {
+ return {
+ height: 171 // produces a diameter of 150 and a centered chart when there is no legend
+ // Don't set a width here, default is to center horizontally in the parent container
+ };
+ },
+ getDefaultPieColors = function () {
+ return {
+ pattern: [
+ patternfly.pfPaletteColors.blue,
+ patternfly.pfPaletteColors.black300
+ ]
+ };
+ },
+ getDefaultPieTooltip = function () {
+ return {
+ contents: patternfly.pfPieTooltipContents
+ };
+ },
+ getDefaultPieLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultPieConfig = function () {
+ return {
+ pie: this.getDefaultPie(),
+ size: this.getDefaultPieSize(),
+ legend: this.getDefaultPieLegend(),
+ color: this.getDefaultPieColors(),
+ tooltip: this.getDefaultPieTooltip()
+ };
+ },
+ getDefaultSparklineArea = function () {
+ return {
+ zerobased: true
+ };
+ },
+ getDefaultSparklineSize = function () {
+ return {
+ height: 60
+ };
+ },
+ getDefaultSparklineAxis = function () {
+ return {
+ x: {
+ show: false
+ },
+ y: {
+ show: false
+ }
+ };
+ },
+ getDefaultSparklineLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultSparklinePoint = function () {
+ return {
+ r: 1,
+ focus: {
+ expand: {
+ r: 4
+ }
+ }
+ };
+ },
+ getDefaultSparklineTooltip = function () {
+ return {
+ // because a sparkline should only contain a single data column,
+ // the tooltip will only work for a single data column
+ contents: function (d) {
+ return '' + d[0].value + ' ' + d[0].name + '';
+ }
+ };
+ },
+ getDefaultSparklineConfig = function () {
+ return {
+ area: getDefaultSparklineArea(),
+ size: getDefaultSparklineSize(),
+ axis: getDefaultSparklineAxis(),
+ color: getDefaultColors(),
+ legend: getDefaultSparklineLegend(),
+ point: getDefaultSparklinePoint(),
+ tooltip: getDefaultSparklineTooltip()
+ };
+ },
+ getDefaultLineAxis = function () {
+ return {
+ x: {
+ show: true
+ },
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultLineGrid = function () {
+ return {
+ x: {
+ show: false
+ },
+ y: {
+ show: true
+ }
+ };
+ },
+ getDefaultLineLegend = function () {
+ return {
+ show: true
+ };
+ },
+ getDefaultLinePoint = function () {
+ return {
+ r: 3,
+ focus: {
+ expand: {
+ r: 5
+ }
+ }
+ };
+ },
+ getDefaultLineConfig = function () {
+ return {
+ axis: getDefaultLineAxis(),
+ grid: getDefaultLineGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultLineLegend(),
+ point: getDefaultLinePoint()
+ };
+ },
+ getDefaultSingleLineTooltip = function () {
+ return {
+ contents: patternfly.pfGetBarChartTooltipContentsFn()
+ };
+ },
+ getDefaultSingleLineLegend = function () {
+ return {
+ show: false
+ };
+ },
+ getDefaultSingleLineConfig = function () {
+ return {
+ axis: getDefaultLineAxis(),
+ grid: getDefaultLineGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultSingleLineLegend(),
+ point: getDefaultLinePoint(),
+ tooltip: getDefaultSingleLineTooltip()
+ };
+ },
+ getDefaultAreaAxis = function () {
+ return getDefaultLineAxis();
+ },
+ getDefaultAreaGrid = function () {
+ return getDefaultLineGrid();
+ },
+ getDefaultAreaLegend = function () {
+ return getDefaultLineLegend();
+ },
+ getDefaultAreaPoint = function () {
+ return getDefaultLinePoint();
+ },
+ getDefaultAreaConfig = function () {
+ return {
+ axis: getDefaultAreaAxis(),
+ grid: getDefaultAreaGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultAreaLegend(),
+ point: getDefaultAreaPoint()
+ };
+ },
+ getDefaultSingleAreaTooltip = function () {
+ return {
+ contents: patternfly.pfGetBarChartTooltipContentsFn()
+ };
+ },
+ getDefaultSingleAreaLegend = function () {
+ return getDefaultSingleLineLegend();
+ },
+ getDefaultSingleAreaConfig = function () {
+ return {
+ axis: getDefaultAreaAxis(),
+ grid: getDefaultAreaGrid(),
+ color: getDefaultColors(),
+ legend: getDefaultSingleAreaLegend(),
+ point: getDefaultAreaPoint(),
+ tooltip: getDefaultSingleAreaTooltip()
+ };
+ };
+ return {
+ getDefaultColors: getDefaultColors,
+ getDefaultBarGrid: getDefaultBarGrid,
+ getDefaultBarTooltip: getDefaultBarTooltip,
+ getDefaultBarLegend: getDefaultBarLegend,
+ getDefaultBarConfig: getDefaultBarConfig,
+ getDefaultGroupedBarGrid: getDefaultGroupedBarGrid,
+ getDefaultGroupedBarLegend: getDefaultGroupedBarLegend,
+ getDefaultGroupedBarConfig: getDefaultGroupedBarConfig,
+ getDefaultStackedBarGrid: getDefaultStackedBarGrid,
+ getDefaultStackedBarLegend: getDefaultStackedBarLegend,
+ getDefaultStackedBarConfig: getDefaultStackedBarConfig,
+ getDefaultDonut: getDefaultDonut,
+ getDefaultDonutSize: getDefaultDonutSize,
+ getDefaultDonutColors: getDefaultDonutColors,
+ getDefaultDonutTooltip: getDefaultDonutTooltip,
+ getDefaultDonutLegend: getDefaultDonutLegend,
+ getDefaultDonutConfig: getDefaultDonutConfig,
+ getDefaultRelationshipDonutConfig: getDefaultRelationshipDonutConfig,
+ getDefaultPie: getDefaultPie,
+ getDefaultPieSize: getDefaultPieSize,
+ getDefaultPieColors: getDefaultPieColors,
+ getDefaultRelationshipDonutColors: getDefaultRelationshipDonutColors,
+ getDefaultPieTooltip: getDefaultPieTooltip,
+ getDefaultPieLegend: getDefaultPieLegend,
+ getDefaultPieConfig: getDefaultPieConfig,
+ getDefaultSparklineArea: getDefaultSparklineArea,
+ getDefaultSparklineSize: getDefaultSparklineSize,
+ getDefaultSparklineAxis: getDefaultSparklineAxis,
+ getDefaultSparklineLegend: getDefaultSparklineLegend,
+ getDefaultSparklinePoint: getDefaultSparklinePoint,
+ getDefaultSparklineTooltip: getDefaultSparklineTooltip,
+ getDefaultSparklineConfig: getDefaultSparklineConfig,
+ getDefaultLineAxis: getDefaultLineAxis,
+ getDefaultLineGrid: getDefaultLineGrid,
+ getDefaultLineLegend: getDefaultLineLegend,
+ getDefaultLinePoint: getDefaultLinePoint,
+ getDefaultLineConfig: getDefaultLineConfig,
+ getDefaultSingleLineTooltip: getDefaultSingleLineTooltip,
+ getDefaultSingleLineConfig: getDefaultSingleLineConfig,
+ getDefaultAreaAxis: getDefaultAreaAxis,
+ getDefaultAreaGrid: getDefaultAreaGrid,
+ getDefaultAreaLegend: getDefaultAreaLegend,
+ getDefaultAreaPoint: getDefaultAreaPoint,
+ getDefaultAreaConfig: getDefaultAreaConfig,
+ getDefaultSingleAreaTooltip: getDefaultSingleAreaTooltip,
+ getDefaultSingleAreaConfig: getDefaultSingleAreaConfig
+ };
+ };
+})(typeof window !== 'undefined' ? window : global);
+
+// Util: definition of breakpoint sizes for tablet and desktop modes
+(function ($) {
+ 'use strict';
+ if (patternfly !== undefined) {
+ $.pfBreakpoints = patternfly.pfBreakpoints;
+ }
+}(jQuery));
+// PatternFly pf-list
+(function ($) {
+ 'use strict';
+
+ $.fn.pfList = function () {
+ function init (list) {
+ // Ensure the state of the expansion elements is consistent
+ list.find('[data-list=expansion], .list-pf-item, .list-pf-expansion').each(function (index, element) {
+ var $expansion = $(element),
+ $collapse = $expansion.find('.collapse').first(),
+ expanded = $collapse.hasClass('in');
+ updateChevron($expansion, expanded);
+ if ($expansion.hasClass('list-pf-item')) {
+ updateActive($expansion, expanded);
+ }
+ });
+ list.find('.list-pf-container').each(function (index, element) {
+ var $element = $(element);
+ // The toggle element is the element with the data-list=toggle attribute
+ // or the entire .list-pf-container as a fallback
+ var $toggles = $element.find('[data-list=toggle]');
+ $toggles.length || ($toggles = $element);
+ $toggles.on('keydown', function (event) {
+ if (event.keyCode === 13 || event.keyCode === 32) {
+ toggleCollapse(this);
+ event.stopPropagation();
+ event.preventDefault();
+ }
+ });
+ $toggles.on('click', function (event) {
+ toggleCollapse(this);
+ event.stopPropagation();
+ event.preventDefault();
+ });
+ });
+ }
+
+ function toggleCollapse (toggle) {
+ var $toggle, $expansion, $collapse, expanded, $listItem;
+ $toggle = $(toggle);
+ // Find the parent expansion of the toggle
+ $expansion = $toggle.parentsUntil('.list-pf', '[data-list=expansion]').first();
+ $expansion.length || ($expansion = $toggle.closest('.list-pf-item, .list-pf-expansion'));
+
+ // toggle the "in" class of its first .collapse child
+ $collapse = $expansion.find('.collapse').first();
+ $collapse.toggleClass('in');
+
+ // update the state of the expansion element
+ updateChevron($expansion, $collapse.hasClass('in'));
+ $listItem = $expansion.closest('.list-pf-item');
+ updateActive($listItem, $listItem.find('.collapse').first().hasClass('in'));
+ }
+
+ function updateActive ($listItem, expanded) {
+ // Find the closest .list-pf-item of the expansion, and set its "active" class
+ if (expanded) {
+ $listItem.addClass('active');
+ } else {
+ $listItem.removeClass('active');
+ }
+ }
+
+ function updateChevron ($expansion, expanded) {
+ var $chevron = $expansion.find('.list-pf-chevron .fa').first();
+ if (expanded) {
+ $chevron.removeClass('fa-angle-right');
+ $chevron.addClass('fa-angle-down');
+ } else {
+ $chevron.addClass('fa-angle-right');
+ $chevron.removeClass('fa-angle-down');
+ }
+ }
+
+ init(this);
+
+ return this;
+ };
+}(jQuery));
+
+// Util: PatternFly Sidebar
+// Set height of sidebar-pf to height of document minus height of navbar-pf if not mobile
+(function ($) {
+ 'use strict';
+ $.fn.sidebar = function () {
+ var documentHeight = 0,
+ navbarpfHeight = 0,
+ colHeight = 0;
+
+ if ($('.navbar-pf .navbar-toggle').is(':hidden')) {
+ documentHeight = $(document).height();
+ navbarpfHeight = $('.navbar-pf').outerHeight();
+ colHeight = documentHeight - navbarpfHeight;
+ }
+ $('.sidebar-pf').parent('.row').children('[class*="col-"]').css({"min-height" : colHeight});
+ };
+
+ $(document).ready(function () {
+ // Call sidebar() on ready if .sidebar-pf exists and .datatable does not exist
+ if ($('.sidebar-pf').length > 0 && $('.datatable').length === 0) {
+ $.fn.sidebar();
+ }
+ });
+
+ $(window).on('resize', function () {
+ // Call sidebar() on resize if .sidebar-pf exists
+ if ($('.sidebar-pf').length > 0) {
+ $.fn.sidebar();
+ }
+ });
+}(jQuery));
+
+// Util: PatternFly Popovers
+// Add data-close="true" to insert close X icon
+(function ($) {
+ 'use strict';
+
+ $.fn.popovers = function () {
+ // Initialize
+ this.popover();
+
+ // Add close icons
+ this.filter('[data-close=true]').each(function (index, element) {
+ var $this = $(element),
+ title = $this.attr('data-original-title') + '';
+
+ $this.attr('data-original-title', title);
+ });
+
+ // Bind Close Icon to Toggle Display
+ this.on('click', function (e) {
+ var $this = $(this),
+ $title = $this.next('.popover').find('.popover-title');
+
+ // Only if data-close is true add class "x" to title for right padding
+ $title.find('.close').parent('.popover-title').addClass('closable');
+
+ // Bind x icon to close popover
+ $title.find('.close').on('click', function () {
+ $this.popover('hide');
+ });
+
+ // Prevent href="#" page scroll to top
+ e.preventDefault();
+ });
+
+ return this;
+ };
+}(jQuery));
+
+// Util: DataTables Settings
+(function ($) {
+ 'use strict';
+ if ($.fn.dataTableExt) {
+ /* Set the defaults for DataTables initialisation */
+ $.extend(true, $.fn.dataTable.defaults, {
+ "bDestroy": true,
+ "bAutoWidth": false,
+ "iDisplayLength": 20,
+ "sDom":
+ "<'dataTables_header' f i r >" +
+ "<'table-responsive' t >" +
+ "<'dataTables_footer' p >",
+ "oLanguage": {
+ "sInfo": "Showing _START_ to _END_ of _TOTAL_ Items",
+ "sInfoFiltered" : "(of _MAX_)",
+ "sInfoEmpty" : "Showing 0 Results",
+ "sZeroRecords":
+ "Suggestions
" +
+ "" +
+ "- Check the javascript regular expression syntax of the search term.
" +
+ "- Check that the correct menu option is chosen (token ID vs. user ID).
" +
+ "- Use wildcards (* to match 0 or more characters, + to match 1 or more characters, ? to match 0 or 1 character).
" +
+ "- Clear the search field, then click Search to return to the 20 most recent records.
" +
+ "
",
+ "sSearch": ""
+ },
+ "sPaginationType": "bootstrap_input",
+ "oSearch": {
+ "sSearch": "",
+ "bRegex": true,
+ "bSmart": false
+ }
+ });
+
+ /* Default class modification */
+ $.extend($.fn.dataTableExt.oStdClasses, {
+ "sWrapper": "dataTables_wrapper"
+ });
+
+ /* API method to get paging information */
+ $.fn.dataTableExt.oApi.fnPagingInfo = function (oSettings) {
+ return {
+ "iStart": oSettings._iDisplayStart,
+ "iEnd": oSettings.fnDisplayEnd(),
+ "iLength": oSettings._iDisplayLength,
+ "iTotal": oSettings.fnRecordsTotal(),
+ "iFilteredTotal": oSettings.fnRecordsDisplay(),
+ "iPage": oSettings._iDisplayLength === -1 ? 0 : Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength),
+ "iTotalPages": oSettings._iDisplayLength === -1 ? 0 : Math.ceil(oSettings.fnRecordsDisplay() / oSettings._iDisplayLength)
+ };
+ };
+
+ /* Combination of Bootstrap + Input Text style pagination control */
+ $.extend($.fn.dataTableExt.oPagination, {
+ "bootstrap_input": {
+ "fnInit": function (oSettings, nPaging, fnDraw) {
+ var fnClickHandler = function (e) {
+ e.preventDefault();
+ if (oSettings.oApi._fnPageChange(oSettings, e.data.action)) {
+ fnDraw(oSettings);
+ }
+ },
+ els,
+ nInput;
+
+ $(nPaging).append(
+ '' +
+ '' +
+ ''
+ );
+
+ els = $('li', nPaging);
+ $(els[0]).bind('click.DT', { action: "first" }, fnClickHandler);
+ $(els[1]).bind('click.DT', { action: "previous" }, fnClickHandler);
+ $(els[2]).bind('click.DT', { action: "next" }, fnClickHandler);
+ $(els[3]).bind('click.DT', { action: "last" }, fnClickHandler);
+
+ nInput = $('input', nPaging);
+ $(nInput).keyup(function (e) {
+ var iNewStart;
+ if (e.which === 38 || e.which === 39) {
+ this.value += 1;
+ } else if ((e.which === 37 || e.which === 40) && this.value > 1) {
+ this.value -= 1;
+ }
+
+ if (this.value === "" || !this.value.match(/[0-9]/)) {
+ /* Nothing entered or non-numeric character */
+ return;
+ }
+
+ iNewStart = oSettings._iDisplayLength * (this.value - 1);
+ if (iNewStart >= oSettings.fnRecordsDisplay()) {
+ /* Display overrun */
+ oSettings._iDisplayStart = (Math.ceil((oSettings.fnRecordsDisplay() - 1) /
+ oSettings._iDisplayLength) - 1) * oSettings._iDisplayLength;
+ fnDraw(oSettings);
+ return;
+ }
+
+ oSettings._iDisplayStart = iNewStart;
+ fnDraw(oSettings);
+ });
+ },
+
+ "fnUpdate": function (oSettings, fnDraw) {
+ var oPaging = oSettings.oInstance.fnPagingInfo(),
+ an = oSettings.aanFeatures.p,
+ ien = an.length,
+ iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength),
+ iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1,
+ i;
+
+ for (i = 0; i < ien; i += 1) {
+ $('.paginate_input', an[i]).val(iCurrentPage)
+ .siblings('.paginate_of').find('b').html(iPages);
+
+ // Add / remove disabled classes from the static elements
+ if (oPaging.iPage === 0) {
+ $('li.first', an[i]).addClass('disabled');
+ $('li.prev', an[i]).addClass('disabled');
+ } else {
+ $('li.first', an[i]).removeClass('disabled');
+ $('li.prev', an[i]).removeClass('disabled');
+ }
+
+ if (oPaging.iPage === oPaging.iTotalPages - 1 || oPaging.iTotalPages === 0) {
+ $('li.next', an[i]).addClass('disabled');
+ $('li.last', an[i]).addClass('disabled');
+ } else {
+ $('li.next', an[i]).removeClass('disabled');
+ $('li.last', an[i]).removeClass('disabled');
+ }
+ }
+ }
+ }
+ });
+ }
+}(jQuery));
+
+// Util: PatternFly Collapsible Left Hand Navigation
+// Must have navbar-toggle in navbar-pf-alt for expand/collapse
+(function ($) {
+
+ 'use strict';
+
+ $.fn.navigation = function () {
+
+ var navElement = $('.layout-pf-alt-fixed .nav-pf-vertical-alt'),
+ bodyContentElement = $('.container-pf-alt-nav-pf-vertical-alt'),
+ toggleNavBarButton = $('.navbar-toggle'),
+ explicitCollapse = false,
+ checkNavState = function () {
+ var width = $(window).width();
+
+ //Always remove the hidden & peek class
+ navElement.removeClass('hidden show-mobile-nav collapsed');
+
+ //Set the body class back to the default
+ bodyContentElement.removeClass('collapsed-nav hidden-nav');
+
+ // Check to see if the nav needs to collapse
+ if (width < $.pfBreakpoints.desktop || explicitCollapse) {
+ navElement.addClass('collapsed');
+ bodyContentElement.addClass('collapsed-nav');
+ }
+
+ // Check to see if we need to move down to the mobile state
+ if (width < $.pfBreakpoints.tablet) {
+ //Set the nav to being hidden
+ navElement.addClass('hidden');
+
+ //Make sure this is expanded
+ navElement.removeClass('collapsed');
+
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+ bodyContentElement.addClass('hidden-nav');
+ }
+ },
+ collapseMenu = function () {
+ //Make sure this is expanded
+ navElement.addClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.addClass('collapsed-nav');
+
+ explicitCollapse = true;
+ },
+ enableTransitions = function () {
+ // enable transitions only when toggleNavBarButton is clicked or window is resized
+ $('html').addClass('transitions');
+ },
+ expandMenu = function () {
+ //Make sure this is expanded
+ navElement.removeClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+
+ explicitCollapse = false;
+ },
+ bindMenuBehavior = function () {
+ toggleNavBarButton.on('click', function (e) {
+ var inMobileState = bodyContentElement.hasClass('hidden-nav');
+ enableTransitions();
+
+ if (inMobileState && navElement.hasClass('show-mobile-nav')) {
+ //In mobile state just need to hide the nav
+ navElement.removeClass('show-mobile-nav');
+ } else if (inMobileState) {
+ navElement.addClass('show-mobile-nav');
+ } else if (navElement.hasClass('collapsed')) {
+ expandMenu();
+ } else {
+ collapseMenu();
+ }
+ });
+ },
+ setTooltips = function () {
+ $('.nav-pf-vertical-alt [data-toggle="tooltip"]').tooltip({'container': 'body', 'delay': { 'show': '500', 'hide': '200' }});
+
+ $(".nav-pf-vertical-alt").on("show.bs.tooltip", function (e) {
+ return $(this).hasClass("collapsed");
+ });
+
+ },
+ init = function () {
+ //Set correct state on load
+ checkNavState();
+
+ // Bind Top level hamburger menu with menu behavior;
+ bindMenuBehavior();
+
+ //Set tooltips
+ setTooltips();
+ };
+
+ //Listen for the window resize event and collapse/hide as needed
+ $(window).on('resize', function () {
+ checkNavState();
+ enableTransitions();
+ });
+
+ init();
+
+ };
+
+ $(document).ready(function () {
+ if ($('.nav-pf-vertical-alt').length > 0) {
+ $.fn.navigation();
+ }
+ });
+
+}(jQuery));
+
+// Count and Display Remaining Characters
+(function ($) {
+
+ 'use strict';
+
+ $.fn.countRemainingChars = function (options) {
+
+ var settings = $.extend({
+ // These are the defaults.
+ charsMaxLimit: 100,
+ charsWarnRemaining: 5,
+ blockInputAtMaxLimit: false
+ }, options),
+ $taFld = this,
+ $countFld = $('#' + settings.countFld).text(settings.charsMaxLimit),
+ charsRemainingFn = function (charsLength) {
+ var charsRemaining = settings.charsMaxLimit - charsLength;
+ $countFld.text(charsRemaining);
+ $countFld.toggleClass('chars-warn-remaining-pf', charsRemaining <= settings.charsWarnRemaining);
+ if (charsRemaining < 0) {
+ $taFld.trigger("overCharsMaxLimitEvent", $taFld.attr('id'));
+ } else {
+ $taFld.trigger("underCharsMaxLimitEvent", $taFld.attr('id'));
+ }
+ };
+
+ this.on('paste', function (event) {
+ setTimeout(function () {
+ var charsLength = $taFld.val().length, maxTxt;
+
+ if (settings.blockInputAtMaxLimit && charsLength > settings.charsMaxLimit) {
+ maxTxt = $taFld.val();
+ maxTxt = maxTxt.substring(0, settings.charsMaxLimit);
+ $taFld.val(maxTxt);
+ charsLength = $taFld.val().length;
+ }
+
+ charsRemainingFn(charsLength);
+ }, 100);
+ });
+
+ this.keyup(function (event) {
+ charsRemainingFn($taFld.val().length);
+ });
+
+ this.keydown(function (event) {
+ var charsLength = $taFld.val().length;
+
+ if (settings.blockInputAtMaxLimit && charsLength >= settings.charsMaxLimit) {
+ // Except backspace
+ if (event.keyCode !== 8) {
+ event.preventDefault();
+ }
+ }
+ });
+
+ return this;
+ };
+}(jQuery));
+
+// Util: PatternFly Palette colors
+(function ($) {
+ 'use strict';
+
+ if (patternfly !== undefined) {
+ $.pfPaletteColors = patternfly.pfPaletteColors;
+ }
+}(jQuery));
+
+// Util: PatternFly C3 Chart Defaults
+(function ($) {
+ 'use strict';
+ if (patternfly !== undefined) {
+ $.fn.pfSetDonutChartTitle = patternfly.pfSetDonutChartTitle;
+ $.fn.pfDonutTooltipContents = patternfly.pfDonutTooltipContents;
+ $.fn.pfGetUtilizationDonutTooltipContentsFn = patternfly.pfGetUtilizationDonutTooltipContentsFn;
+ $.fn.pfGetBarChartTooltipContentsFn = patternfly.pfGetBarChartTooltipContentsFn;
+ $.fn.pfSingleLineChartTooltipContentsFn = patternfly.pfSingleLineChartTooltipContentsFn;
+ $.fn.pfPieTooltipContents = patternfly.pfPieTooltipContents;
+ $.fn.c3ChartDefaults = patternfly.c3ChartDefaults;
+ }
+}(jQuery));
+
+// Util: PatternFly Collapse with fixed heights
+// Update the max-height of collapse elements based on the parent container's height.
+(function ($) {
+ 'use strict';
+
+ $.fn.initCollapseHeights = function (scrollSelector) {
+ var parentElement = this, setCollapseHeights, targetScrollSelector = scrollSelector;
+
+ setCollapseHeights = function () {
+ var height, openPanel, contentHeight, bodyHeight, overflowY = 'hidden';
+
+ height = parentElement.height();
+
+ // Close any open panel
+ openPanel = parentElement.find('.collapse.in');
+ if (openPanel && openPanel.length > 0) {
+ openPanel.removeClass('in');
+ }
+
+ // Determine the necessary height for the closed content
+ contentHeight = 0;
+ parentElement.children().each($.proxy(function (i, element) {
+ var $element = $(element);
+ contentHeight += $element.outerHeight(true);
+ }, parentElement)).end();
+
+ // Determine the height remaining for opened collapse panels
+ bodyHeight = height - contentHeight;
+
+ // Make sure we have enough height to be able to scroll the contents if necessary
+ if (bodyHeight < 25) {
+ bodyHeight = 25;
+
+ // Allow the parent to scroll so the child elements are accessible
+ overflowY = 'auto';
+ }
+
+ // Reopen the initially opened panel
+ if (openPanel && openPanel.length > 0) {
+ openPanel.addClass("in");
+ }
+
+ setTimeout(function () {
+ // Set the max-height for the collapse panels
+ parentElement.find('[data-toggle="collapse"]').each($.proxy(function (i, element) {
+ var $element, selector, $target, scrollElement, innerHeight = 0;
+ $element = $(element);
+
+ // Determine the selector to find the target
+ selector = $element.attr('data-target');
+ if (!selector) {
+ selector = $element.attr('href');
+ }
+
+ // Determine the scroll element (either the target or the child of the target based on the given selector)
+ $target = $(selector);
+ scrollElement = $target;
+ if (targetScrollSelector) {
+ scrollElement = $target.find(targetScrollSelector);
+ if (scrollElement.length === 1) {
+ innerHeight = 0;
+ $target.children().each($.proxy(function (j, sibling) {
+ var $sibling = $(sibling);
+ if (sibling !== scrollElement[0]) {
+ innerHeight += $sibling.outerHeight(true);
+ }
+ }, $target)).end();
+ bodyHeight -= innerHeight;
+ } else {
+ scrollElement = $target;
+ }
+ }
+ // Set the max-height and vertical scroll of the scroll element
+ scrollElement.css({'max-height': (bodyHeight - innerHeight) + 'px', 'overflow-y': 'auto'});
+ }, parentElement)).end();
+
+ parentElement.css({'overflow-y': overflowY});
+ }, 100);
+ };
+
+ setCollapseHeights();
+
+ // Update on window resizing
+ $(window).on('resize', setCollapseHeights);
+
+ };
+
+ $.fn.initFixedAccordion = function () {
+ var fixedAccordion = this, initOpen;
+
+ fixedAccordion.on('show.bs.collapse','.collapse', function (event) {
+ $(event.target.parentNode).addClass('panel-open');
+ });
+
+ fixedAccordion.on('hide.bs.collapse','.collapse', function (event) {
+ $(event.target.parentNode).removeClass('panel-open');
+ });
+
+ fixedAccordion.find('.panel').each(function (index, item) {
+ $(item).removeClass('panel-open');
+ });
+
+ initOpen = $(fixedAccordion.find('.collapse.in'))[0];
+ if (initOpen) {
+ $(initOpen.parentNode).addClass('panel-open');
+ }
+ };
+
+}(jQuery));
+
+// Util: PatternFly TreeGrid Tables
+(function ($) {
+ 'use strict';
+
+ function getParent (rows, node) {
+ var parent = node.attr('data-parent');
+
+ if (typeof parent === "string") {
+ if (isNaN(parent)) {
+ parent = $(parent);
+ if (parent.length > 1) {
+ parent = rows.closest(parent);
+ }
+ } else {
+ parent = $(rows[parseInt(parent, 10)]);
+ }
+ return parent;
+ }
+ return undefined;
+ }
+
+ function renderItem (item, parent) {
+ if (parent) {
+ parent.find('.treegrid-node > span.expand-icon')
+ .toggleClass('fa-angle-right', parent.hasClass('collapsed'))
+ .toggleClass('fa-angle-down', !parent.hasClass('collapsed'));
+ item.toggleClass('hidden', parent.hasClass('collapsed'));
+ if (parent.hasClass('collapsed')) {
+ item.addClass('collapsed');
+ }
+ }
+ }
+
+ function reStripe (tree) {
+ tree.find('tbody > tr').removeClass('odd');
+ tree.find('tbody > tr:not(.hidden):odd').addClass('odd');
+ }
+
+ $.fn.treegrid = function (options) {
+ var i, rows, _this;
+ rows = this.find('tbody > tr');
+ _this = this;
+ $.each(rows, function () {
+ var node, parent;
+ node = $(this);
+ parent = getParent(rows, node);
+ // Append expand icon dummies
+ node.children('.treegrid-node').prepend('');
+
+ // Set up an event listener for the node
+ node.children('.treegrid-node').on('click', function (e) {
+ var icon = node.find('span.expand-icon');
+
+ if (options && typeof options.callback === 'function') {
+ options.callback(e);
+ }
+
+ if (icon.hasClass('fa-angle-right')) {
+ node.removeClass('collapsed');
+ }
+ if (icon.hasClass('fa-angle-down')) {
+ node.addClass('collapsed');
+ }
+ $.each(rows.slice(rows.index(node) + 1), function () {
+ renderItem($(this), getParent(rows, $(this)));
+ });
+ reStripe(_this);
+ });
+
+ if (parent) {
+ // Calculate indentation depth
+ i = parent.find('.treegrid-node > span.indent').length + 1;
+ for (; i > 0; i -= 1) {
+ node.children('.treegrid-node').prepend('');
+ }
+ // Render expand/collapse icons
+ renderItem(node, parent);
+ }
+ });
+ reStripe(_this);
+ };
+}(jQuery));
+
+// Util: PatternFly Vertical Navigation
+// Must have navbar-toggle in navbar-pf-vertical for expand/collapse
+(function ($) {
+ 'use strict';
+
+ $.fn.setupVerticalNavigation = function (handleItemSelections, ignoreDrawer, userOptions) {
+
+ var options = $.extend({
+ hoverDelay: 500,
+ hideDelay: 700,
+ rememberOpenState: true,
+ storage: 'localStorage',
+ }, userOptions || {}),
+
+ navElement = $('.nav-pf-vertical'),
+ bodyContentElement = $('.container-pf-nav-pf-vertical'),
+ toggleNavBarButton = $('.navbar-toggle'),
+ handleResize = true,
+ explicitCollapse = false,
+ subDesktop = false,
+ storageLocation = options.storage === 'sessionStorage' ? 'sessionStorage' : 'localStorage',
+
+ inMobileState = function () {
+ return bodyContentElement.hasClass('hidden-nav');
+ },
+
+ forceResize = function (delay) {
+ setTimeout(function () {
+ $(window).trigger('resize');
+ }, delay);
+ },
+
+ showSecondaryMenu = function () {
+ if (inMobileState() || !subDesktop) {
+ navElement.addClass('secondary-visible-pf');
+ bodyContentElement.addClass('secondary-visible-pf');
+ }
+
+ // Dispatch a resize event when showing the secondary menu in non-subdesktop state to
+ // allow content to adjust to the secondary menu sizing
+ if (!subDesktop) {
+ forceResize(100);
+ }
+ },
+
+ hideSecondaryMenu = function () {
+ navElement.removeClass('secondary-visible-pf');
+ bodyContentElement.removeClass('secondary-visible-pf');
+
+ if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-secondary-nav-pf');
+ }
+
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+
+ navElement.find('.is-hover').each(function (index, item) {
+ $(item).removeClass('is-hover');
+ });
+ },
+
+ hideTertiaryMenu = function () {
+ navElement.removeClass('tertiary-visible-pf');
+ bodyContentElement.removeClass('tertiary-visible-pf');
+
+ if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-tertiary-nav-pf');
+ }
+
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+
+ navElement.find('.is-hover').each(function (index, item) {
+ $(item).removeClass('is-hover');
+ });
+ },
+
+ setActiveItem = function (item) {
+ // remove all .active
+ $('.nav-pf-vertical .list-group-item.active').removeClass('active');
+
+ // add .active to item and its parents
+ item.addClass('active').parents('.list-group-item').addClass('active');
+ },
+
+ updateSecondaryMenuDisplayAfterSelection = function () {
+ if (inMobileState()) {
+ navElement.removeClass('show-mobile-nav');
+ hideSecondaryMenu();
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+ } else {
+ showSecondaryMenu();
+ }
+ },
+
+ updateSecondaryCollapsedState = function (setCollapsed, collapsedItem) {
+ if (setCollapsed) {
+ collapsedItem.addClass('collapsed');
+ navElement.addClass('collapsed-secondary-nav-pf');
+ bodyContentElement.addClass('collapsed-secondary-nav-pf');
+ } else {
+ if (collapsedItem) {
+ collapsedItem.removeClass('collapsed');
+ } else {
+ // Remove any collapsed secondary menus
+ navElement.find('[data-toggle="collapse-secondary-nav"]').each(function (index, element) {
+ var $e = $(element);
+ $e.removeClass('collapsed');
+ });
+ }
+ navElement.removeClass('collapsed-secondary-nav-pf');
+ bodyContentElement.removeClass('collapsed-secondary-nav-pf');
+ }
+ },
+
+ updateTertiaryCollapsedState = function (setCollapsed, collapsedItem) {
+ if (setCollapsed) {
+ collapsedItem.addClass('collapsed');
+ navElement.addClass('collapsed-tertiary-nav-pf');
+ bodyContentElement.addClass('collapsed-tertiary-nav-pf');
+ updateSecondaryCollapsedState(false);
+ } else {
+ if (collapsedItem) {
+ collapsedItem.removeClass('collapsed');
+ } else {
+ // Remove any collapsed tertiary menus
+ navElement.find('[data-toggle="collapse-tertiary-nav"]').each(function (index, element) {
+ var $e = $(element);
+ $e.removeClass('collapsed');
+ });
+ }
+ navElement.removeClass('collapsed-tertiary-nav-pf');
+ bodyContentElement.removeClass('collapsed-tertiary-nav-pf');
+ }
+ },
+
+ updateMobileMenu = function (selected, secondaryItem) {
+ $(document).find('.list-group-item.mobile-nav-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-nav-item-pf');
+ });
+ $(document).find('.list-group-item.mobile-secondary-item-pf').each(function (index, item) {
+ $(item).removeClass('mobile-secondary-item-pf');
+ });
+ if (selected) {
+ selected.addClass('mobile-nav-item-pf');
+ if (secondaryItem) {
+ secondaryItem.addClass('mobile-secondary-item-pf');
+ navElement.removeClass('show-mobile-secondary');
+ navElement.addClass('show-mobile-tertiary');
+ } else {
+ navElement.addClass('show-mobile-secondary');
+ navElement.removeClass('show-mobile-tertiary');
+ }
+ } else {
+ navElement.removeClass('show-mobile-secondary');
+ navElement.removeClass('show-mobile-tertiary');
+ }
+ },
+
+ enterMobileState = function () {
+ if (!navElement.hasClass('hidden')) {
+ //Set the nav to being hidden
+ navElement.addClass('hidden');
+ navElement.removeClass('collapsed');
+
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+ bodyContentElement.addClass('hidden-nav');
+
+ // Reset the collapsed states
+ updateSecondaryCollapsedState(false);
+ updateTertiaryCollapsedState(false);
+
+ explicitCollapse = false;
+ }
+ },
+
+ exitMobileState = function () {
+ // Always remove the hidden & peek class
+ navElement.removeClass('hidden show-mobile-nav');
+
+ // Set the body class back to the default
+ bodyContentElement.removeClass('hidden-nav');
+ },
+
+ checkNavState = function () {
+ var width = $(window).width(), makeSecondaryVisible;
+ if (!handleResize) {
+ return;
+ }
+ // Check to see if we need to enter/exit the mobile state
+ if (width < $.pfBreakpoints.tablet && !explicitCollapse) {
+ enterMobileState();
+ } else if (navElement.hasClass('hidden')) {
+ exitMobileState();
+ }
+
+ // Check to see if we need to enter/exit the sub desktop state
+ if (width < $.pfBreakpoints.desktop) {
+ if (!subDesktop) {
+ // Collapse the navigation bars when entering sub desktop mode
+ navElement.addClass('collapsed');
+ bodyContentElement.addClass('collapsed-nav');
+ }
+ if (width >= $.pfBreakpoints.tablet) {
+ hideSecondaryMenu();
+ }
+ subDesktop = true;
+ } else {
+ makeSecondaryVisible = subDesktop && (navElement.find('.secondary-nav-item-pf.active').length > 0);
+ subDesktop = false;
+ if (makeSecondaryVisible) {
+
+ showSecondaryMenu();
+ }
+ }
+
+ if (explicitCollapse) {
+ navElement.addClass('collapsed');
+ bodyContentElement.addClass('collapsed-nav');
+ } else {
+ navElement.removeClass('collapsed');
+ bodyContentElement.removeClass('collapsed-nav');
+ }
+ },
+
+ collapseMenu = function () {
+ //Make sure this is expanded
+ navElement.addClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.addClass('collapsed-nav');
+
+ if (subDesktop) {
+ hideSecondaryMenu();
+ }
+
+ explicitCollapse = true;
+ },
+
+ enableTransitions = function () {
+ // enable transitions only when toggleNavBarButton is clicked or window is resized
+ $('html').addClass('transitions');
+ },
+
+ expandMenu = function () {
+ //Make sure this is expanded
+ navElement.removeClass('collapsed');
+ //Set the body class to the correct state
+ bodyContentElement.removeClass('collapsed-nav');
+
+ explicitCollapse = false;
+
+ // Dispatch a resize event when showing the expanding then menu to
+ // allow content to adjust to the menu sizing
+ if (!subDesktop) {
+ forceResize(100);
+ }
+ },
+
+ bindMenuBehavior = function () {
+ toggleNavBarButton.on('click', function (e) {
+ var $drawer;
+
+ enableTransitions();
+
+ if (inMobileState()) {
+ // Toggle the mobile nav
+ if (navElement.hasClass('show-mobile-nav')) {
+ navElement.removeClass('show-mobile-nav');
+ } else {
+ // Always start at the primary menu
+ updateMobileMenu();
+ navElement.addClass('show-mobile-nav');
+
+ // If the notification drawer is shown, hide it
+ if (!ignoreDrawer) {
+ $drawer = $('.drawer-pf');
+ if ($drawer.length) {
+ $('.drawer-pf-trigger').removeClass('open');
+ $drawer.addClass('hide');
+ }
+ }
+ }
+ } else if (navElement.hasClass('collapsed')) {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-primary', 'expanded');
+ }
+ expandMenu();
+ } else {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-primary', 'collapsed');
+ }
+ collapseMenu();
+ }
+ });
+ },
+
+ forceHideSecondaryMenu = function () {
+ navElement.addClass('force-hide-secondary-nav-pf');
+ setTimeout(function () {
+ navElement.removeClass('force-hide-secondary-nav-pf');
+ }, 500);
+ },
+
+ bindMenuItemsBehavior = function (handleSelection) {
+ $(document).find('.nav-pf-vertical .list-group-item').each(function (index, item) {
+ var onClickFn,
+ $item = $(item),
+ $nav = $item.closest('[class*="nav-pf-"]');
+
+ if ($nav.hasClass('nav-pf-vertical')) {
+ // Set main nav active item on click or show secondary nav if it has a secondary nav bar and we are in the mobile state
+ onClickFn = function (event) {
+ var $this = $(this), $secondaryItem, $tertiaryItem, $activeItem;
+
+ if (!$this.hasClass('secondary-nav-item-pf')) {
+ hideSecondaryMenu();
+ if (inMobileState()) {
+ updateMobileMenu();
+ navElement.removeClass('show-mobile-nav');
+ }
+ if (handleSelection) {
+ setActiveItem($this);
+ // Don't process the click on the item
+ event.stopImmediatePropagation();
+ }
+ } else if (inMobileState()) {
+ updateMobileMenu($this);
+ } else if (handleSelection) {
+ $activeItem = $secondaryItem = $item.find('.nav-pf-secondary-nav > .list-group > .list-group-item').eq(0);
+
+ if ($secondaryItem.hasClass('tertiary-nav-item-pf')) {
+ $activeItem = $secondaryItem.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
+ }
+
+ setActiveItem($activeItem);
+ event.stopImmediatePropagation();
+ }
+ };
+
+ } else if ($nav.hasClass('nav-pf-secondary-nav')) {
+ // Set secondary nav active item on click or show tertiary nav if it has a tertiary nav bar and we are in the mobile state
+ onClickFn = function (event) {
+ var $this = $(this), $tertiaryItem, $primaryItem;
+ if (!$this.hasClass('tertiary-nav-item-pf')) {
+ if (inMobileState()) {
+ updateMobileMenu();
+ navElement.removeClass('show-mobile-nav');
+ }
+ updateSecondaryMenuDisplayAfterSelection();
+ if (handleSelection) {
+ setActiveItem($item);
+ hideSecondaryMenu();
+ event.stopImmediatePropagation();
+ }
+ } else if (inMobileState()) {
+ $primaryItem = $item.parents('.list-group-item');
+ updateMobileMenu($this, $primaryItem);
+ event.stopImmediatePropagation();
+ } else if (handleSelection) {
+ $tertiaryItem = $item.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
+ setActiveItem($tertiaryItem);
+ event.stopImmediatePropagation();
+ }
+ };
+
+ } else if ($nav.hasClass('nav-pf-tertiary-nav')) {
+ // Set tertiary nav active item on click
+ onClickFn = function (event) {
+ if (inMobileState()) {
+ updateMobileMenu();
+ navElement.removeClass('show-mobile-nav');
+ }
+ updateSecondaryMenuDisplayAfterSelection();
+ if (handleSelection) {
+ setActiveItem($item);
+ hideTertiaryMenu();
+ hideSecondaryMenu();
+ event.stopImmediatePropagation();
+ }
+ };
+ }
+
+ // register event handler
+ $item.on('click.pf.secondarynav.data-api', onClickFn);
+ });
+
+ $(document).find('.secondary-nav-item-pf').each(function (index, secondaryItem) {
+ var $secondaryItem = $(secondaryItem);
+
+ // Collapse the secondary nav bar when the toggle is clicked
+ $secondaryItem.on('click.pf.secondarynav.data-api', '[data-toggle="collapse-secondary-nav"]', function (e) {
+ var $this = $(this);
+ if (inMobileState()) {
+ updateMobileMenu();
+ e.stopImmediatePropagation();
+ } else {
+ if ($this.hasClass('collapsed')) {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
+ }
+ updateSecondaryCollapsedState(false, $this);
+ forceHideSecondaryMenu();
+ } else {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'collapsed');
+ }
+ updateSecondaryCollapsedState(true, $this);
+ }
+ }
+ navElement.removeClass('hover-secondary-nav-pf');
+ if (handleSelection) {
+ // Don't process the click on the parent item
+ e.stopImmediatePropagation();
+ }
+ });
+
+ $secondaryItem.find('.tertiary-nav-item-pf').each(function (index, primaryItem) {
+ var $primaryItem = $(primaryItem);
+ // Collapse the tertiary nav bar when the toggle is clicked
+ $primaryItem.on('click.pf.tertiarynav.data-api', '[data-toggle="collapse-tertiary-nav"]', function (e) {
+ var $this = $(this);
+ if (inMobileState()) {
+ updateMobileMenu($secondaryItem);
+ e.stopImmediatePropagation();
+ } else {
+ if ($this.hasClass('collapsed')) {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
+ }
+ updateTertiaryCollapsedState(false, $this);
+ forceHideSecondaryMenu();
+ } else {
+ if (options.rememberOpenState) {
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'collapsed');
+ }
+ updateTertiaryCollapsedState(true, $this);
+ }
+ }
+ navElement.removeClass('hover-secondary-nav-pf');
+ navElement.removeClass('hover-tertiary-nav-pf');
+ if (handleSelection) {
+ // Don't process the click on the parent item
+ e.stopImmediatePropagation();
+ }
+ });
+ });
+ });
+
+ // Show secondary nav bar on hover of secondary nav items
+ $(document).on('mouseenter.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if (!inMobileState()) {
+ if ($this[0].navUnHoverTimeout !== undefined) {
+ clearTimeout($this[0].navUnHoverTimeout);
+ $this[0].navUnHoverTimeout = undefined;
+ } else if ($this[0].navHoverTimeout === undefined) {
+ $this[0].navHoverTimeout = setTimeout(function () {
+ navElement.addClass('hover-secondary-nav-pf');
+ $this.addClass('is-hover');
+ $this[0].navHoverTimeout = undefined;
+ }, options.hoverDelay);
+ }
+ }
+ });
+
+ $(document).on('mouseleave.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if ($this[0].navHoverTimeout !== undefined) {
+ clearTimeout($this[0].navHoverTimeout);
+ $this[0].navHoverTimeout = undefined;
+ } else if ($this[0].navUnHoverTimeout === undefined &&
+ navElement.find('.secondary-nav-item-pf.is-hover').length > 0) {
+ $this[0].navUnHoverTimeout = setTimeout(function () {
+ if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-secondary-nav-pf');
+ }
+ $this.removeClass('is-hover');
+ $this[0].navUnHoverTimeout = undefined;
+ }, options.hideDelay);
+ }
+ });
+
+ // Show tertiary nav bar on hover of secondary nav items
+ $(document).on('mouseover.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if (!inMobileState()) {
+ if ($this[0].navUnHoverTimeout !== undefined) {
+ clearTimeout($this[0].navUnHoverTimeout);
+ $this[0].navUnHoverTimeout = undefined;
+ } else if ($this[0].navHoverTimeout === undefined) {
+ $this[0].navHoverTimeout = setTimeout(function () {
+ navElement.addClass('hover-tertiary-nav-pf');
+ $this.addClass('is-hover');
+ $this[0].navHoverTimeout = undefined;
+ }, options.hoverDelay);
+ }
+ }
+ });
+ $(document).on('mouseout.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
+ var $this = $(this);
+ if ($this[0].navHoverTimeout !== undefined) {
+ clearTimeout($this[0].navHoverTimeout);
+ $this[0].navHoverTimeout = undefined;
+ } else if ($this[0].navUnHoverTimeout === undefined) {
+ $this[0].navUnHoverTimeout = setTimeout(function () {
+ if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
+ navElement.removeClass('hover-tertiary-nav-pf');
+ }
+ $this.removeClass('is-hover');
+ $this[0].navUnHoverTimeout = undefined;
+ }, options.hideDelay);
+ }
+ });
+ },
+
+ loadFromLocalStorage = function () {
+ if (inMobileState()) {
+ return;
+ }
+
+ if (window[storageLocation].getItem('patternfly-navigation-primary') === 'collapsed') {
+ collapseMenu();
+ }
+
+ if ($('.nav-pf-vertical.nav-pf-vertical-collapsible-menus').length > 0) {
+ if (window[storageLocation].getItem('patternfly-navigation-secondary') === 'collapsed') {
+ updateSecondaryCollapsedState(true, $('.secondary-nav-item-pf.active [data-toggle=collapse-secondary-nav]'));
+ }
+
+ if (window[storageLocation].getItem('patternfly-navigation-tertiary') === 'collapsed') {
+ updateTertiaryCollapsedState(true, $('.tertiary-nav-item-pf.active [data-toggle=collapse-tertiary-nav]'));
+ }
+ }
+ },
+
+ setTooltips = function () {
+ var tooltipOptions = {
+ container: 'body',
+ placement: 'bottom',
+ delay: { 'show': '500', 'hide': '200' },
+ template: ''
+ };
+ $('.nav-pf-vertical [data-toggle="tooltip"]').tooltip(tooltipOptions);
+
+ $('.nav-pf-vertical').on("show.bs.tooltip", function (e) {
+ return $(this).hasClass("collapsed");
+ });
+ },
+
+ init = function (handleItemSelections) {
+ // Hide the nav menus during initialization
+ navElement.addClass('hide-nav-pf');
+ bodyContentElement.addClass('hide-nav-pf');
+
+ //Set correct state on load
+ checkNavState();
+
+ // Bind Top level hamburger menu with menu behavior;
+ bindMenuBehavior();
+
+ // Bind menu items
+ bindMenuItemsBehavior(handleItemSelections);
+
+ //Set tooltips
+ setTooltips();
+
+ if (options.rememberOpenState) {
+ loadFromLocalStorage();
+ }
+
+ // Show the nav menus
+ navElement.removeClass('hide-nav-pf');
+ bodyContentElement.removeClass('hide-nav-pf');
+ forceResize(250);
+ },
+
+ self = {
+ hideMenu: function () {
+ handleResize = false;
+ enterMobileState();
+ },
+ showMenu: function () {
+ handleResize = true;
+ exitMobileState();
+ },
+ isVisible: function () {
+ return handleResize;
+ }
+ };
+
+ if (!$.fn.setupVerticalNavigation.self) {
+ $.fn.setupVerticalNavigation.self = self;
+ //Listen for the window resize event and collapse/hide as needed
+ $(window).on('resize', function () {
+ checkNavState();
+ enableTransitions();
+ });
+
+ init(handleItemSelections);
+ }
+ return $.fn.setupVerticalNavigation.self;
+ };
+}(jQuery));
diff --git a/dist/js/patternfly.min.js b/dist/js/patternfly.min.js
new file mode 100644
index 0000000000..3272b4aad9
--- /dev/null
+++ b/dist/js/patternfly.min.js
@@ -0,0 +1,2 @@
+!function(window){"use strict";var patternfly={version:"0.0.0-semantically-released"};patternfly.pfBreakpoints={tablet:768,desktop:1200},window.patternfly=patternfly}("undefined"!=typeof window?window:global),function(window){"use strict";window.patternfly.pfPaletteColors={black:"#030303",black100:"#fafafa",black200:"#ededed",black300:"#d1d1d1",black400:"#bbbbbb",black500:"#8b8d8f",black600:"#72767b",black700:"#4d5258",black800:"#393f44",black900:"#292e34",blue:"#0088ce",blue100:"#bee1f4",blue200:"#7dc3e8",blue300:"#39a5dc",blue400:"#0088ce",blue500:"#00659c",blue600:"#004368",blue700:"#002235",gold:"#f0ab00",gold100:"#fbeabc",gold200:"#f9d67a",gold300:"#f5c12e",gold400:"#f0ab00",gold500:"#b58100",gold600:"#795600",gold700:"#3d2c00",orange:"#ec7a08",orange100:"#fbdebf",orange200:"#f7bd7f",orange300:"#f39d3c",orange400:"#ec7a08",orange500:"#b35c00",orange600:"#773d00",orange700:"#3b1f00",lightBlue:"#00b9e4",lightBlue100:"#beedf9",lightBlue200:"#7cdbf3",lightBlue300:"#35caed",lightBlue400:"#00b9e4",lightBlue500:"#008bad",lightBlue600:"#005c73",lightBlue700:"#002d39",green:"#3f9c35",green100:"#cfe7cd",green200:"#9ecf99",green300:"#6ec664",green400:"#3f9c35",green500:"#2d7623",green600:"#1e4f18",green700:"#0f280d",lightGreen:"#92d400",lightGreen100:"#e4f5bc",lightGreen200:"#c8eb79",lightGreen300:"#ace12e",lightGreen400:"#92d400",lightGreen500:"#6ca100",lightGreen600:"#486b00",lightGreen700:"#253600",cyan:"#007a87",cyan100:"#bedee1",cyan200:"#7dbdc3",cyan300:"#3a9ca6",cyan400:"#007a87",cyan500:"#005c66",cyan600:"#003d44",cyan700:"#001f22",purple:"#703fec",purple100:"#c7bfff",purple200:"#a18fff",purple300:"#8461f7",purple400:"#703fec",purple500:"#582fc0",purple600:"#40199a",purple700:"#1f0066",red:"#cc0000",red100:"#cc0000",red200:"#a30000",red300:"#8b0000",red400:"#470000",red500:"#2c0000"}}("undefined"!=typeof window?window:global),function(window){"use strict";var patternfly=window.patternfly;patternfly.pfSetDonutChartTitle=function(selector,primary,secondary){var donutChartRightTitle=window.d3.select(selector).select("text.c3-chart-arcs-title");donutChartRightTitle.text(""),donutChartRightTitle.insert("tspan").text(primary).classed("donut-title-big-pf",!0).attr("dy",0).attr("x",0),donutChartRightTitle.insert("tspan").text(secondary).classed("donut-title-small-pf",!0).attr("dy",20).attr("x",0)},patternfly.pfDonutTooltipContents=function(d,defaultTitleFormat,defaultValueFormat,color){return'"},patternfly.pfGetUtilizationDonutTooltipContentsFn=function(units){return function(d){return''+Math.round(1e3*d[0].ratio)/10+"% "+units+" "+d[0].name+""}},patternfly.pfGetBarChartTooltipContentsFn=function(categories){return function(d){return'"}},patternfly.pfSingleLineChartTooltipContentsFn=function(categories){return function(d){return'"}},patternfly.pfPieTooltipContents=function(d,defaultTitleFormat,defaultValueFormat,color){return patternfly.pfDonutTooltipContents(d,defaultTitleFormat,defaultValueFormat,color)},patternfly.c3ChartDefaults=function(){var getDefaultColors=function(){return{pattern:[patternfly.pfPaletteColors.blue,patternfly.pfPaletteColors.blue300,patternfly.pfPaletteColors.green,patternfly.pfPaletteColors.orange,patternfly.pfPaletteColors.red]}},getDefaultBarGrid=function(){return{y:{show:!0}}},getDefaultBarTooltip=function(categories){return{contents:patternfly.pfGetBarChartTooltipContentsFn(categories)}},getDefaultBarLegend=function(){return{show:!1}},getDefaultBarConfig=function(categories){return{color:this.getDefaultColors(),grid:this.getDefaultBarGrid(),tooltip:this.getDefaultBarTooltip(categories),legend:this.getDefaultBarLegend()}},getDefaultGroupedBarGrid=function(){return{y:{show:!0}}},getDefaultGroupedBarLegend=function(){return{show:!0,position:"bottom"}},getDefaultGroupedBarConfig=function(){return{color:this.getDefaultColors(),grid:this.getDefaultGroupedBarGrid(),legend:this.getDefaultGroupedBarLegend()}},getDefaultStackedBarGrid=function(){return{y:{show:!0}}},getDefaultStackedBarLegend=function(){return{show:!0,position:"bottom"}},getDefaultStackedBarConfig=function(){return{color:this.getDefaultColors(),grid:this.getDefaultStackedBarGrid(),legend:this.getDefaultStackedBarLegend()}},getDefaultDonut=function(title){return{title:title,label:{show:!1},width:11}},getDefaultDonutSize=function(){return{height:171}},getDefaultDonutColors=function(){return{pattern:[patternfly.pfPaletteColors.blue,patternfly.pfPaletteColors.black300]}},getDefaultRelationshipDonutColors=function(){return{pattern:[patternfly.pfPaletteColors.blue,patternfly.pfPaletteColors.red100,patternfly.pfPaletteColors.orange400,patternfly.pfPaletteColors.green400,patternfly.pfPaletteColors.cyan500,patternfly.pfPaletteColors.gold200]}},getDefaultDonutTooltip=function(){return{show:!1}},getDefaultDonutLegend=function(){return{show:!1}},getDefaultDonutConfig=function(title){return{donut:this.getDefaultDonut(title),size:this.getDefaultDonutSize(),legend:this.getDefaultDonutLegend(),color:this.getDefaultDonutColors(),tooltip:this.getDefaultDonutTooltip()}},getDefaultRelationshipDonutConfig=function(title){return{donut:this.getDefaultDonut(title),size:this.getDefaultDonutSize(),legend:this.getDefaultDonutLegend(),color:this.getDefaultRelationshipDonutColors(),tooltip:this.getDefaultDonutTooltip()}},getDefaultPie=function(){return{expand:!0,label:{show:!1}}},getDefaultPieSize=function(){return{height:171}},getDefaultPieColors=function(){return{pattern:[patternfly.pfPaletteColors.blue,patternfly.pfPaletteColors.black300]}},getDefaultPieTooltip=function(){return{contents:patternfly.pfPieTooltipContents}},getDefaultPieLegend=function(){return{show:!1}},getDefaultPieConfig=function(){return{pie:this.getDefaultPie(),size:this.getDefaultPieSize(),legend:this.getDefaultPieLegend(),color:this.getDefaultPieColors(),tooltip:this.getDefaultPieTooltip()}},getDefaultSparklineArea=function(){return{zerobased:!0}},getDefaultSparklineSize=function(){return{height:60}},getDefaultSparklineAxis=function(){return{x:{show:!1},y:{show:!1}}},getDefaultSparklineLegend=function(){return{show:!1}},getDefaultSparklinePoint=function(){return{r:1,focus:{expand:{r:4}}}},getDefaultSparklineTooltip=function(){return{contents:function(d){return''+d[0].value+" "+d[0].name+""}}},getDefaultSparklineConfig=function(){return{area:getDefaultSparklineArea(),size:getDefaultSparklineSize(),axis:getDefaultSparklineAxis(),color:getDefaultColors(),legend:getDefaultSparklineLegend(),point:getDefaultSparklinePoint(),tooltip:getDefaultSparklineTooltip()}},getDefaultLineAxis=function(){return{x:{show:!0},y:{show:!0}}},getDefaultLineGrid=function(){return{x:{show:!1},y:{show:!0}}},getDefaultLineLegend=function(){return{show:!0}},getDefaultLinePoint=function(){return{r:3,focus:{expand:{r:5}}}},getDefaultLineConfig=function(){return{axis:getDefaultLineAxis(),grid:getDefaultLineGrid(),color:getDefaultColors(),legend:getDefaultLineLegend(),point:getDefaultLinePoint()}},getDefaultSingleLineTooltip=function(){return{contents:patternfly.pfGetBarChartTooltipContentsFn()}},getDefaultSingleLineLegend=function(){return{show:!1}},getDefaultSingleLineConfig=function(){return{axis:getDefaultLineAxis(),grid:getDefaultLineGrid(),color:getDefaultColors(),legend:getDefaultSingleLineLegend(),point:getDefaultLinePoint(),tooltip:getDefaultSingleLineTooltip()}},getDefaultAreaAxis=function(){return getDefaultLineAxis()},getDefaultAreaGrid=function(){return getDefaultLineGrid()},getDefaultAreaLegend=function(){return getDefaultLineLegend()},getDefaultAreaPoint=function(){return getDefaultLinePoint()},getDefaultAreaConfig=function(){return{axis:getDefaultAreaAxis(),grid:getDefaultAreaGrid(),color:getDefaultColors(),legend:getDefaultAreaLegend(),point:getDefaultAreaPoint()}},getDefaultSingleAreaTooltip=function(){return{contents:patternfly.pfGetBarChartTooltipContentsFn()}},getDefaultSingleAreaLegend=function(){return getDefaultSingleLineLegend()};return{getDefaultColors:getDefaultColors,getDefaultBarGrid:getDefaultBarGrid,getDefaultBarTooltip:getDefaultBarTooltip,getDefaultBarLegend:getDefaultBarLegend,getDefaultBarConfig:getDefaultBarConfig,getDefaultGroupedBarGrid:getDefaultGroupedBarGrid,getDefaultGroupedBarLegend:getDefaultGroupedBarLegend,getDefaultGroupedBarConfig:getDefaultGroupedBarConfig,getDefaultStackedBarGrid:getDefaultStackedBarGrid,getDefaultStackedBarLegend:getDefaultStackedBarLegend,getDefaultStackedBarConfig:getDefaultStackedBarConfig,getDefaultDonut:getDefaultDonut,getDefaultDonutSize:getDefaultDonutSize,getDefaultDonutColors:getDefaultDonutColors,getDefaultDonutTooltip:getDefaultDonutTooltip,getDefaultDonutLegend:getDefaultDonutLegend,getDefaultDonutConfig:getDefaultDonutConfig,getDefaultRelationshipDonutConfig:getDefaultRelationshipDonutConfig,getDefaultPie:getDefaultPie,getDefaultPieSize:getDefaultPieSize,getDefaultPieColors:getDefaultPieColors,getDefaultRelationshipDonutColors:getDefaultRelationshipDonutColors,getDefaultPieTooltip:getDefaultPieTooltip,getDefaultPieLegend:getDefaultPieLegend,getDefaultPieConfig:getDefaultPieConfig,getDefaultSparklineArea:getDefaultSparklineArea,getDefaultSparklineSize:getDefaultSparklineSize,getDefaultSparklineAxis:getDefaultSparklineAxis,getDefaultSparklineLegend:getDefaultSparklineLegend,getDefaultSparklinePoint:getDefaultSparklinePoint,getDefaultSparklineTooltip:getDefaultSparklineTooltip,getDefaultSparklineConfig:getDefaultSparklineConfig,getDefaultLineAxis:getDefaultLineAxis,getDefaultLineGrid:getDefaultLineGrid,getDefaultLineLegend:getDefaultLineLegend,getDefaultLinePoint:getDefaultLinePoint,getDefaultLineConfig:getDefaultLineConfig,getDefaultSingleLineTooltip:getDefaultSingleLineTooltip,getDefaultSingleLineConfig:getDefaultSingleLineConfig,getDefaultAreaAxis:getDefaultAreaAxis,getDefaultAreaGrid:getDefaultAreaGrid,getDefaultAreaLegend:getDefaultAreaLegend,getDefaultAreaPoint:getDefaultAreaPoint,getDefaultAreaConfig:getDefaultAreaConfig,getDefaultSingleAreaTooltip:getDefaultSingleAreaTooltip,getDefaultSingleAreaConfig:function(){return{axis:getDefaultAreaAxis(),grid:getDefaultAreaGrid(),color:getDefaultColors(),legend:getDefaultSingleAreaLegend(),point:getDefaultAreaPoint(),tooltip:getDefaultSingleAreaTooltip()}}}}}("undefined"!=typeof window?window:global),function($){"use strict";void 0!==patternfly&&($.pfBreakpoints=patternfly.pfBreakpoints)}(jQuery),function($){"use strict";$.fn.pfList=function(){function toggleCollapse(toggle){var $toggle,$expansion,$collapse,$listItem;$toggle=$(toggle),$expansion=$toggle.parentsUntil(".list-pf","[data-list=expansion]").first(),$expansion.length||($expansion=$toggle.closest(".list-pf-item, .list-pf-expansion")),$collapse=$expansion.find(".collapse").first(),$collapse.toggleClass("in"),updateChevron($expansion,$collapse.hasClass("in")),$listItem=$expansion.closest(".list-pf-item"),updateActive($listItem,$listItem.find(".collapse").first().hasClass("in"))}function updateActive($listItem,expanded){expanded?$listItem.addClass("active"):$listItem.removeClass("active")}function updateChevron($expansion,expanded){var $chevron=$expansion.find(".list-pf-chevron .fa").first();expanded?($chevron.removeClass("fa-angle-right"),$chevron.addClass("fa-angle-down")):($chevron.addClass("fa-angle-right"),$chevron.removeClass("fa-angle-down"))}return function(list){list.find("[data-list=expansion], .list-pf-item, .list-pf-expansion").each(function(index,element){var $expansion=$(element),$collapse=$expansion.find(".collapse").first(),expanded=$collapse.hasClass("in");updateChevron($expansion,expanded),$expansion.hasClass("list-pf-item")&&updateActive($expansion,expanded)}),list.find(".list-pf-container").each(function(index,element){var $element=$(element),$toggles=$element.find("[data-list=toggle]");$toggles.length||($toggles=$element),$toggles.on("keydown",function(event){13!==event.keyCode&&32!==event.keyCode||(toggleCollapse(this),event.stopPropagation(),event.preventDefault())}),$toggles.on("click",function(event){toggleCollapse(this),event.stopPropagation(),event.preventDefault()})})}(this),this}}(jQuery),function($){"use strict";$.fn.sidebar=function(){var documentHeight=0,navbarpfHeight=0,colHeight=0;$(".navbar-pf .navbar-toggle").is(":hidden")&&(documentHeight=$(document).height(),navbarpfHeight=$(".navbar-pf").outerHeight(),colHeight=documentHeight-navbarpfHeight),$(".sidebar-pf").parent(".row").children('[class*="col-"]').css({"min-height":colHeight})},$(document).ready(function(){$(".sidebar-pf").length>0&&0===$(".datatable").length&&$.fn.sidebar()}),$(window).on("resize",function(){$(".sidebar-pf").length>0&&$.fn.sidebar()})}(jQuery),function($){"use strict";$.fn.popovers=function(){return this.popover(),this.filter("[data-close=true]").each(function(index,element){var $this=$(element),title=$this.attr("data-original-title")+'';$this.attr("data-original-title",title)}),this.on("click",function(e){var $this=$(this),$title=$this.next(".popover").find(".popover-title");$title.find(".close").parent(".popover-title").addClass("closable"),$title.find(".close").on("click",function(){$this.popover("hide")}),e.preventDefault()}),this}}(jQuery),function($){"use strict";$.fn.dataTableExt&&($.extend(!0,$.fn.dataTable.defaults,{bDestroy:!0,bAutoWidth:!1,iDisplayLength:20,sDom:"<'dataTables_header' f i r ><'table-responsive' t ><'dataTables_footer' p >",oLanguage:{sInfo:"Showing _START_ to _END_ of _TOTAL_ Items",sInfoFiltered:"(of _MAX_)",sInfoEmpty:"Showing 0 Results",sZeroRecords:"Suggestions
- Check the javascript regular expression syntax of the search term.
- Check that the correct menu option is chosen (token ID vs. user ID).
- Use wildcards (* to match 0 or more characters, + to match 1 or more characters, ? to match 0 or 1 character).
- Clear the search field, then click Search to return to the 20 most recent records.
",sSearch:""},sPaginationType:"bootstrap_input",oSearch:{sSearch:"",bRegex:!0,bSmart:!1}}),$.extend($.fn.dataTableExt.oStdClasses,{sWrapper:"dataTables_wrapper"}),$.fn.dataTableExt.oApi.fnPagingInfo=function(oSettings){return{iStart:oSettings._iDisplayStart,iEnd:oSettings.fnDisplayEnd(),iLength:oSettings._iDisplayLength,iTotal:oSettings.fnRecordsTotal(),iFilteredTotal:oSettings.fnRecordsDisplay(),iPage:-1===oSettings._iDisplayLength?0:Math.ceil(oSettings._iDisplayStart/oSettings._iDisplayLength),iTotalPages:-1===oSettings._iDisplayLength?0:Math.ceil(oSettings.fnRecordsDisplay()/oSettings._iDisplayLength)}},$.extend($.fn.dataTableExt.oPagination,{bootstrap_input:{fnInit:function(oSettings,nPaging,fnDraw){var els,nInput,fnClickHandler=function(e){e.preventDefault(),oSettings.oApi._fnPageChange(oSettings,e.data.action)&&fnDraw(oSettings)};$(nPaging).append(''),els=$("li",nPaging),$(els[0]).bind("click.DT",{action:"first"},fnClickHandler),$(els[1]).bind("click.DT",{action:"previous"},fnClickHandler),$(els[2]).bind("click.DT",{action:"next"},fnClickHandler),$(els[3]).bind("click.DT",{action:"last"},fnClickHandler),nInput=$("input",nPaging),$(nInput).keyup(function(e){var iNewStart;if(38===e.which||39===e.which?this.value+=1:(37===e.which||40===e.which)&&this.value>1&&(this.value-=1),""!==this.value&&this.value.match(/[0-9]/)){if((iNewStart=oSettings._iDisplayLength*(this.value-1))>=oSettings.fnRecordsDisplay())return oSettings._iDisplayStart=(Math.ceil((oSettings.fnRecordsDisplay()-1)/oSettings._iDisplayLength)-1)*oSettings._iDisplayLength,void fnDraw(oSettings);oSettings._iDisplayStart=iNewStart,fnDraw(oSettings)}})},fnUpdate:function(oSettings,fnDraw){var i,oPaging=oSettings.oInstance.fnPagingInfo(),an=oSettings.aanFeatures.p,ien=an.length,iPages=Math.ceil(oSettings.fnRecordsDisplay()/oSettings._iDisplayLength),iCurrentPage=Math.ceil(oSettings._iDisplayStart/oSettings._iDisplayLength)+1;for(i=0;i0&&$.fn.navigation()})}(jQuery),function($){"use strict";$.fn.countRemainingChars=function(options){var settings=$.extend({charsMaxLimit:100,charsWarnRemaining:5,blockInputAtMaxLimit:!1},options),$taFld=this,$countFld=$("#"+settings.countFld).text(settings.charsMaxLimit),charsRemainingFn=function(charsLength){var charsRemaining=settings.charsMaxLimit-charsLength;$countFld.text(charsRemaining),$countFld.toggleClass("chars-warn-remaining-pf",charsRemaining<=settings.charsWarnRemaining),charsRemaining<0?$taFld.trigger("overCharsMaxLimitEvent",$taFld.attr("id")):$taFld.trigger("underCharsMaxLimitEvent",$taFld.attr("id"))};return this.on("paste",function(event){setTimeout(function(){var maxTxt,charsLength=$taFld.val().length;settings.blockInputAtMaxLimit&&charsLength>settings.charsMaxLimit&&(maxTxt=$taFld.val(),maxTxt=maxTxt.substring(0,settings.charsMaxLimit),$taFld.val(maxTxt),charsLength=$taFld.val().length),charsRemainingFn(charsLength)},100)}),this.keyup(function(event){charsRemainingFn($taFld.val().length)}),this.keydown(function(event){var charsLength=$taFld.val().length;settings.blockInputAtMaxLimit&&charsLength>=settings.charsMaxLimit&&8!==event.keyCode&&event.preventDefault()}),this}}(jQuery),function($){"use strict";void 0!==patternfly&&($.pfPaletteColors=patternfly.pfPaletteColors)}(jQuery),function($){"use strict";void 0!==patternfly&&($.fn.pfSetDonutChartTitle=patternfly.pfSetDonutChartTitle,$.fn.pfDonutTooltipContents=patternfly.pfDonutTooltipContents,$.fn.pfGetUtilizationDonutTooltipContentsFn=patternfly.pfGetUtilizationDonutTooltipContentsFn,$.fn.pfGetBarChartTooltipContentsFn=patternfly.pfGetBarChartTooltipContentsFn,$.fn.pfSingleLineChartTooltipContentsFn=patternfly.pfSingleLineChartTooltipContentsFn,$.fn.pfPieTooltipContents=patternfly.pfPieTooltipContents,$.fn.c3ChartDefaults=patternfly.c3ChartDefaults)}(jQuery),function($){"use strict";$.fn.initCollapseHeights=function(scrollSelector){var setCollapseHeights,parentElement=this,targetScrollSelector=scrollSelector;setCollapseHeights=function(){var height,openPanel,contentHeight,bodyHeight,overflowY="hidden";height=parentElement.height(),openPanel=parentElement.find(".collapse.in"),openPanel&&openPanel.length>0&&openPanel.removeClass("in"),contentHeight=0,parentElement.children().each($.proxy(function(i,element){var $element=$(element);contentHeight+=$element.outerHeight(!0)},parentElement)).end(),bodyHeight=height-contentHeight,bodyHeight<25&&(bodyHeight=25,overflowY="auto"),openPanel&&openPanel.length>0&&openPanel.addClass("in"),setTimeout(function(){parentElement.find('[data-toggle="collapse"]').each($.proxy(function(i,element){var $element,selector,$target,scrollElement,innerHeight=0;$element=$(element),selector=$element.attr("data-target"),selector||(selector=$element.attr("href")),$target=$(selector),scrollElement=$target,targetScrollSelector&&(scrollElement=$target.find(targetScrollSelector),1===scrollElement.length?(innerHeight=0,$target.children().each($.proxy(function(j,sibling){var $sibling=$(sibling);sibling!==scrollElement[0]&&(innerHeight+=$sibling.outerHeight(!0))},$target)).end(),bodyHeight-=innerHeight):scrollElement=$target),scrollElement.css({"max-height":bodyHeight-innerHeight+"px","overflow-y":"auto"})},parentElement)).end(),parentElement.css({"overflow-y":overflowY})},100)},setCollapseHeights(),$(window).on("resize",setCollapseHeights)},$.fn.initFixedAccordion=function(){var initOpen,fixedAccordion=this;fixedAccordion.on("show.bs.collapse",".collapse",function(event){$(event.target.parentNode).addClass("panel-open")}),fixedAccordion.on("hide.bs.collapse",".collapse",function(event){$(event.target.parentNode).removeClass("panel-open")}),fixedAccordion.find(".panel").each(function(index,item){$(item).removeClass("panel-open")}),(initOpen=$(fixedAccordion.find(".collapse.in"))[0])&&$(initOpen.parentNode).addClass("panel-open")}}(jQuery),function($){"use strict";function getParent(rows,node){var parent=node.attr("data-parent");if("string"==typeof parent)return isNaN(parent)?(parent=$(parent),parent.length>1&&(parent=rows.closest(parent))):parent=$(rows[parseInt(parent,10)]),parent}function renderItem(item,parent){parent&&(parent.find(".treegrid-node > span.expand-icon").toggleClass("fa-angle-right",parent.hasClass("collapsed")).toggleClass("fa-angle-down",!parent.hasClass("collapsed")),item.toggleClass("hidden",parent.hasClass("collapsed")),parent.hasClass("collapsed")&&item.addClass("collapsed"))}function reStripe(tree){tree.find("tbody > tr").removeClass("odd"),tree.find("tbody > tr:not(.hidden):odd").addClass("odd")}$.fn.treegrid=function(options){var i,rows,_this;rows=this.find("tbody > tr"),_this=this,$.each(rows,function(){var node,parent;if(node=$(this),parent=getParent(rows,node),node.children(".treegrid-node").prepend(''),node.children(".treegrid-node").on("click",function(e){var icon=node.find("span.expand-icon");options&&"function"==typeof options.callback&&options.callback(e),icon.hasClass("fa-angle-right")&&node.removeClass("collapsed"),icon.hasClass("fa-angle-down")&&node.addClass("collapsed"),$.each(rows.slice(rows.index(node)+1),function(){renderItem($(this),getParent(rows,$(this)))}),reStripe(_this)}),parent){for(i=parent.find(".treegrid-node > span.indent").length+1;i>0;i-=1)node.children(".treegrid-node").prepend('');renderItem(node,parent)}}),reStripe(_this)}}(jQuery),function($){"use strict";$.fn.setupVerticalNavigation=function(handleItemSelections,ignoreDrawer,userOptions){var options=$.extend({hoverDelay:500,hideDelay:700,rememberOpenState:!0,storage:"localStorage"},userOptions||{}),navElement=$(".nav-pf-vertical"),bodyContentElement=$(".container-pf-nav-pf-vertical"),toggleNavBarButton=$(".navbar-toggle"),handleResize=!0,explicitCollapse=!1,subDesktop=!1,storageLocation="sessionStorage"===options.storage?"sessionStorage":"localStorage",inMobileState=function(){return bodyContentElement.hasClass("hidden-nav")},forceResize=function(delay){setTimeout(function(){$(window).trigger("resize")},delay)},showSecondaryMenu=function(){!inMobileState()&&subDesktop||(navElement.addClass("secondary-visible-pf"),bodyContentElement.addClass("secondary-visible-pf")),subDesktop||forceResize(100)},hideSecondaryMenu=function(){navElement.removeClass("secondary-visible-pf"),bodyContentElement.removeClass("secondary-visible-pf"),navElement.find(".secondary-nav-item-pf.is-hover").length<=1&&navElement.removeClass("hover-secondary-nav-pf"),navElement.find(".mobile-nav-item-pf").each(function(index,item){$(item).removeClass("mobile-nav-item-pf")}),navElement.find(".is-hover").each(function(index,item){$(item).removeClass("is-hover")})},hideTertiaryMenu=function(){navElement.removeClass("tertiary-visible-pf"),bodyContentElement.removeClass("tertiary-visible-pf"),navElement.find(".tertiary-nav-item-pf.is-hover").length<=1&&navElement.removeClass("hover-tertiary-nav-pf"),navElement.find(".mobile-nav-item-pf").each(function(index,item){$(item).removeClass("mobile-nav-item-pf")}),navElement.find(".is-hover").each(function(index,item){$(item).removeClass("is-hover")})},setActiveItem=function(item){$(".nav-pf-vertical .list-group-item.active").removeClass("active"),item.addClass("active").parents(".list-group-item").addClass("active")},updateSecondaryMenuDisplayAfterSelection=function(){inMobileState()?(navElement.removeClass("show-mobile-nav"),hideSecondaryMenu(),navElement.find(".mobile-nav-item-pf").each(function(index,item){$(item).removeClass("mobile-nav-item-pf")})):showSecondaryMenu()},updateSecondaryCollapsedState=function(setCollapsed,collapsedItem){setCollapsed?(collapsedItem.addClass("collapsed"),navElement.addClass("collapsed-secondary-nav-pf"),bodyContentElement.addClass("collapsed-secondary-nav-pf")):(collapsedItem?collapsedItem.removeClass("collapsed"):navElement.find('[data-toggle="collapse-secondary-nav"]').each(function(index,element){$(element).removeClass("collapsed")}),navElement.removeClass("collapsed-secondary-nav-pf"),bodyContentElement.removeClass("collapsed-secondary-nav-pf"))},updateTertiaryCollapsedState=function(setCollapsed,collapsedItem){setCollapsed?(collapsedItem.addClass("collapsed"),navElement.addClass("collapsed-tertiary-nav-pf"),bodyContentElement.addClass("collapsed-tertiary-nav-pf"),updateSecondaryCollapsedState(!1)):(collapsedItem?collapsedItem.removeClass("collapsed"):navElement.find('[data-toggle="collapse-tertiary-nav"]').each(function(index,element){$(element).removeClass("collapsed")}),navElement.removeClass("collapsed-tertiary-nav-pf"),bodyContentElement.removeClass("collapsed-tertiary-nav-pf"))},updateMobileMenu=function(selected,secondaryItem){$(document).find(".list-group-item.mobile-nav-item-pf").each(function(index,item){$(item).removeClass("mobile-nav-item-pf")}),$(document).find(".list-group-item.mobile-secondary-item-pf").each(function(index,item){$(item).removeClass("mobile-secondary-item-pf")}),selected?(selected.addClass("mobile-nav-item-pf"),secondaryItem?(secondaryItem.addClass("mobile-secondary-item-pf"),navElement.removeClass("show-mobile-secondary"),navElement.addClass("show-mobile-tertiary")):(navElement.addClass("show-mobile-secondary"),navElement.removeClass("show-mobile-tertiary"))):(navElement.removeClass("show-mobile-secondary"),navElement.removeClass("show-mobile-tertiary"))},enterMobileState=function(){navElement.hasClass("hidden")||(navElement.addClass("hidden"),navElement.removeClass("collapsed"),bodyContentElement.removeClass("collapsed-nav"),bodyContentElement.addClass("hidden-nav"),updateSecondaryCollapsedState(!1),updateTertiaryCollapsedState(!1),explicitCollapse=!1)},exitMobileState=function(){navElement.removeClass("hidden show-mobile-nav"),bodyContentElement.removeClass("hidden-nav")},checkNavState=function(){var makeSecondaryVisible,width=$(window).width();handleResize&&(width<$.pfBreakpoints.tablet&&!explicitCollapse?enterMobileState():navElement.hasClass("hidden")&&exitMobileState(),width<$.pfBreakpoints.desktop?(subDesktop||(navElement.addClass("collapsed"),bodyContentElement.addClass("collapsed-nav")),width>=$.pfBreakpoints.tablet&&hideSecondaryMenu(),subDesktop=!0):(makeSecondaryVisible=subDesktop&&navElement.find(".secondary-nav-item-pf.active").length>0,subDesktop=!1,makeSecondaryVisible&&showSecondaryMenu()),explicitCollapse?(navElement.addClass("collapsed"),bodyContentElement.addClass("collapsed-nav")):(navElement.removeClass("collapsed"),bodyContentElement.removeClass("collapsed-nav")))},collapseMenu=function(){navElement.addClass("collapsed"),bodyContentElement.addClass("collapsed-nav"),subDesktop&&hideSecondaryMenu(),explicitCollapse=!0},enableTransitions=function(){$("html").addClass("transitions")},expandMenu=function(){navElement.removeClass("collapsed"),bodyContentElement.removeClass("collapsed-nav"),explicitCollapse=!1,subDesktop||forceResize(100)},bindMenuBehavior=function(){toggleNavBarButton.on("click",function(e){var $drawer;enableTransitions(),inMobileState()?navElement.hasClass("show-mobile-nav")?navElement.removeClass("show-mobile-nav"):(updateMobileMenu(),navElement.addClass("show-mobile-nav"),ignoreDrawer||($drawer=$(".drawer-pf"),$drawer.length&&($(".drawer-pf-trigger").removeClass("open"),$drawer.addClass("hide")))):navElement.hasClass("collapsed")?(options.rememberOpenState&&window[storageLocation].setItem("patternfly-navigation-primary","expanded"),expandMenu()):(options.rememberOpenState&&window[storageLocation].setItem("patternfly-navigation-primary","collapsed"),collapseMenu())})},forceHideSecondaryMenu=function(){navElement.addClass("force-hide-secondary-nav-pf"),setTimeout(function(){navElement.removeClass("force-hide-secondary-nav-pf")},500)},bindMenuItemsBehavior=function(handleSelection){$(document).find(".nav-pf-vertical .list-group-item").each(function(index,item){var onClickFn,$item=$(item),$nav=$item.closest('[class*="nav-pf-"]');$nav.hasClass("nav-pf-vertical")?onClickFn=function(event){var $secondaryItem,$activeItem,$this=$(this);$this.hasClass("secondary-nav-item-pf")?inMobileState()?updateMobileMenu($this):handleSelection&&($activeItem=$secondaryItem=$item.find(".nav-pf-secondary-nav > .list-group > .list-group-item").eq(0),$secondaryItem.hasClass("tertiary-nav-item-pf")&&($activeItem=$secondaryItem.find(".nav-pf-tertiary-nav > .list-group > .list-group-item").eq(0)),setActiveItem($activeItem),event.stopImmediatePropagation()):(hideSecondaryMenu(),inMobileState()&&(updateMobileMenu(),navElement.removeClass("show-mobile-nav")),handleSelection&&(setActiveItem($this),event.stopImmediatePropagation()))
+}:$nav.hasClass("nav-pf-secondary-nav")?onClickFn=function(event){var $tertiaryItem,$primaryItem,$this=$(this);$this.hasClass("tertiary-nav-item-pf")?inMobileState()?($primaryItem=$item.parents(".list-group-item"),updateMobileMenu($this,$primaryItem),event.stopImmediatePropagation()):handleSelection&&($tertiaryItem=$item.find(".nav-pf-tertiary-nav > .list-group > .list-group-item").eq(0),setActiveItem($tertiaryItem),event.stopImmediatePropagation()):(inMobileState()&&(updateMobileMenu(),navElement.removeClass("show-mobile-nav")),updateSecondaryMenuDisplayAfterSelection(),handleSelection&&(setActiveItem($item),hideSecondaryMenu(),event.stopImmediatePropagation()))}:$nav.hasClass("nav-pf-tertiary-nav")&&(onClickFn=function(event){inMobileState()&&(updateMobileMenu(),navElement.removeClass("show-mobile-nav")),updateSecondaryMenuDisplayAfterSelection(),handleSelection&&(setActiveItem($item),hideTertiaryMenu(),hideSecondaryMenu(),event.stopImmediatePropagation())}),$item.on("click.pf.secondarynav.data-api",onClickFn)}),$(document).find(".secondary-nav-item-pf").each(function(index,secondaryItem){var $secondaryItem=$(secondaryItem);$secondaryItem.on("click.pf.secondarynav.data-api",'[data-toggle="collapse-secondary-nav"]',function(e){var $this=$(this);inMobileState()?(updateMobileMenu(),e.stopImmediatePropagation()):$this.hasClass("collapsed")?(options.rememberOpenState&&(window[storageLocation].setItem("patternfly-navigation-secondary","expanded"),window[storageLocation].setItem("patternfly-navigation-tertiary","expanded")),updateSecondaryCollapsedState(!1,$this),forceHideSecondaryMenu()):(options.rememberOpenState&&window[storageLocation].setItem("patternfly-navigation-secondary","collapsed"),updateSecondaryCollapsedState(!0,$this)),navElement.removeClass("hover-secondary-nav-pf"),handleSelection&&e.stopImmediatePropagation()}),$secondaryItem.find(".tertiary-nav-item-pf").each(function(index,primaryItem){$(primaryItem).on("click.pf.tertiarynav.data-api",'[data-toggle="collapse-tertiary-nav"]',function(e){var $this=$(this);inMobileState()?(updateMobileMenu($secondaryItem),e.stopImmediatePropagation()):$this.hasClass("collapsed")?(options.rememberOpenState&&(window[storageLocation].setItem("patternfly-navigation-secondary","expanded"),window[storageLocation].setItem("patternfly-navigation-tertiary","expanded")),updateTertiaryCollapsedState(!1,$this),forceHideSecondaryMenu()):(options.rememberOpenState&&window[storageLocation].setItem("patternfly-navigation-tertiary","collapsed"),updateTertiaryCollapsedState(!0,$this)),navElement.removeClass("hover-secondary-nav-pf"),navElement.removeClass("hover-tertiary-nav-pf"),handleSelection&&e.stopImmediatePropagation()})})}),$(document).on("mouseenter.pf.tertiarynav.data-api",".secondary-nav-item-pf",function(e){var $this=$(this);inMobileState()||(void 0!==$this[0].navUnHoverTimeout?(clearTimeout($this[0].navUnHoverTimeout),$this[0].navUnHoverTimeout=void 0):void 0===$this[0].navHoverTimeout&&($this[0].navHoverTimeout=setTimeout(function(){navElement.addClass("hover-secondary-nav-pf"),$this.addClass("is-hover"),$this[0].navHoverTimeout=void 0},options.hoverDelay)))}),$(document).on("mouseleave.pf.tertiarynav.data-api",".secondary-nav-item-pf",function(e){var $this=$(this);void 0!==$this[0].navHoverTimeout?(clearTimeout($this[0].navHoverTimeout),$this[0].navHoverTimeout=void 0):void 0===$this[0].navUnHoverTimeout&&navElement.find(".secondary-nav-item-pf.is-hover").length>0&&($this[0].navUnHoverTimeout=setTimeout(function(){navElement.find(".secondary-nav-item-pf.is-hover").length<=1&&navElement.removeClass("hover-secondary-nav-pf"),$this.removeClass("is-hover"),$this[0].navUnHoverTimeout=void 0},options.hideDelay))}),$(document).on("mouseover.pf.tertiarynav.data-api",".tertiary-nav-item-pf",function(e){var $this=$(this);inMobileState()||(void 0!==$this[0].navUnHoverTimeout?(clearTimeout($this[0].navUnHoverTimeout),$this[0].navUnHoverTimeout=void 0):void 0===$this[0].navHoverTimeout&&($this[0].navHoverTimeout=setTimeout(function(){navElement.addClass("hover-tertiary-nav-pf"),$this.addClass("is-hover"),$this[0].navHoverTimeout=void 0},options.hoverDelay)))}),$(document).on("mouseout.pf.tertiarynav.data-api",".tertiary-nav-item-pf",function(e){var $this=$(this);void 0!==$this[0].navHoverTimeout?(clearTimeout($this[0].navHoverTimeout),$this[0].navHoverTimeout=void 0):void 0===$this[0].navUnHoverTimeout&&($this[0].navUnHoverTimeout=setTimeout(function(){navElement.find(".tertiary-nav-item-pf.is-hover").length<=1&&navElement.removeClass("hover-tertiary-nav-pf"),$this.removeClass("is-hover"),$this[0].navUnHoverTimeout=void 0},options.hideDelay))})},loadFromLocalStorage=function(){inMobileState()||("collapsed"===window[storageLocation].getItem("patternfly-navigation-primary")&&collapseMenu(),$(".nav-pf-vertical.nav-pf-vertical-collapsible-menus").length>0&&("collapsed"===window[storageLocation].getItem("patternfly-navigation-secondary")&&updateSecondaryCollapsedState(!0,$(".secondary-nav-item-pf.active [data-toggle=collapse-secondary-nav]")),"collapsed"===window[storageLocation].getItem("patternfly-navigation-tertiary")&&updateTertiaryCollapsedState(!0,$(".tertiary-nav-item-pf.active [data-toggle=collapse-tertiary-nav]"))))},setTooltips=function(){var tooltipOptions={container:"body",placement:"bottom",delay:{show:"500",hide:"200"},template:''};$('.nav-pf-vertical [data-toggle="tooltip"]').tooltip(tooltipOptions),$(".nav-pf-vertical").on("show.bs.tooltip",function(e){return $(this).hasClass("collapsed")})},self={hideMenu:function(){handleResize=!1,enterMobileState()},showMenu:function(){handleResize=!0,exitMobileState()},isVisible:function(){return handleResize}};return $.fn.setupVerticalNavigation.self||($.fn.setupVerticalNavigation.self=self,$(window).on("resize",function(){checkNavState(),enableTransitions()}),function(handleItemSelections){navElement.addClass("hide-nav-pf"),bodyContentElement.addClass("hide-nav-pf"),checkNavState(),bindMenuBehavior(),bindMenuItemsBehavior(handleItemSelections),setTooltips(),options.rememberOpenState&&loadFromLocalStorage(),navElement.removeClass("hide-nav-pf"),bodyContentElement.removeClass("hide-nav-pf"),forceResize(250)}(handleItemSelections)),$.fn.setupVerticalNavigation.self}}(jQuery);
\ No newline at end of file
diff --git a/dist/less/about-modal.less b/dist/less/about-modal.less
new file mode 100644
index 0000000000..633f30a7c5
--- /dev/null
+++ b/dist/less/about-modal.less
@@ -0,0 +1,44 @@
+//
+// About Modal
+// --------------------------------------------------
+
+.about-modal-pf {
+ background-color: @color-pf-black-900;
+ background-image: url("@{img-path}/@{modal-about-pf-bg-img}");
+ background-position: right bottom;
+ background-repeat: no-repeat;
+ background-size: 216px auto;
+ @media (min-width: @screen-sm-min) {
+ background-size: auto;
+ }
+ .modal-body {
+ color: @color-pf-white;
+ padding-bottom: 16px;
+ padding-left: @grid-gutter-width;
+ padding-right: @grid-gutter-width;
+ @media (min-width: @screen-sm-min) {
+ padding-left: (@grid-gutter-width * 2);
+ padding-right: (@grid-gutter-width * 2);
+ }
+ }
+ .modal-header {
+ background-color: transparent;
+ }
+ .pficon-close {
+ color: @color-pf-white;
+ }
+}
+
+.product-versions-pf {
+ margin-bottom: 30px;
+ margin-top: 30px;
+ li {
+ strong {
+ margin-right: (@grid-gutter-width / 4);
+ }
+ }
+}
+
+.trademark-pf {
+ font-size: ceil((@font-size-base - 1));
+}
diff --git a/dist/less/accordion.less b/dist/less/accordion.less
new file mode 100644
index 0000000000..8aab29e9bf
--- /dev/null
+++ b/dist/less/accordion.less
@@ -0,0 +1,18 @@
+.fixed-height-accordion-pf {
+ display: flex;
+ flex-direction: column;
+
+ .panel {
+ display: flex;
+ flex-direction: column;
+
+ &.panel-open {
+ flex: 1;
+ }
+
+ .collapse.in {
+ flex: 1;
+ overflow-y: auto;
+ }
+ }
+}
diff --git a/dist/less/alerts.less b/dist/less/alerts.less
new file mode 100644
index 0000000000..f5373b513e
--- /dev/null
+++ b/dist/less/alerts.less
@@ -0,0 +1,44 @@
+//
+// Alerts
+// --------------------------------------------------
+
+.alert {
+ border-width: 1px;
+ padding-left: 47px;
+ padding-right: (@alert-padding + 3);
+ position: relative;
+ word-wrap: break-word;
+ .alert-link {
+ color: @link-color;
+ &:hover {
+ color: @link-hover-color;
+ }
+ }
+ > .btn.pull-right {
+ margin-top: -3px;
+ }
+ > .pficon {
+ font-size: 22px;
+ position: absolute;
+ left: 13px;
+ top: 10px;
+ }
+ .close {
+ .opacity(.85);
+ &:hover,
+ &:focus {
+ .opacity(1);
+ }
+ }
+ .pficon-info {
+ color: @color-pf-black-700;
+ }
+}
+
+.alert-dismissable {
+ padding-right: (@alert-padding + 17);
+ .close {
+ right: -13px;
+ top: 1px;
+ }
+}
diff --git a/dist/less/application-launcher.less b/dist/less/application-launcher.less
new file mode 100644
index 0000000000..50a9cb99d9
--- /dev/null
+++ b/dist/less/application-launcher.less
@@ -0,0 +1,220 @@
+//
+// Application Launcher
+// --------------------------------------------------
+.applauncher-pf {
+
+ display: inline-block;
+ overflow: visible;
+
+ .applauncher-pf-title {
+ .sr-only-pf();
+ }
+
+ .dropdown-toggle {
+ &.disabled {
+ cursor: not-allowed;
+ }
+ }
+
+ &.open > .dropdown-menu {
+ display:flex;
+ flex-wrap:wrap;
+ }
+
+ .applauncher-pf-item {
+ width: 100%;
+ }
+
+ .applauncher-pf-link {
+ display:flex;
+ white-space: initial;
+ align-items: center;
+ }
+
+ &-block-list {
+ .applauncher-pf-item {
+ @media (min-width: @screen-sm-min) {
+ flex:0 0 50%;
+ }
+ }
+
+ .applauncher-pf-link {
+ flex-wrap: wrap;
+ @media (min-width: @screen-sm-min) {
+ flex-direction:column;
+ text-align: center;
+ padding:15px 0;
+ height: 100%;
+ }
+ }
+
+ .applauncher-pf-link-icon {
+ padding: 0;
+ }
+
+ .applauncher-pf-link-title {
+ margin-top: auto;
+ }
+ }//block-list
+
+ &:not(.applauncher-pf-block-list) {
+
+ .applauncher-pf-link {
+ @media (min-width: @screen-sm-min) {
+ padding:@applauncher-pf-dropdown-menu-padding;
+ &-icon {
+ flex:1 0 0;
+ text-align: left;
+ }
+ &-title{flex:3;}
+ }
+ }
+ }
+
+ .dropdown-menu {
+ padding: @applauncher-pf-dropdown-menu-padding;
+ min-width: @applauncher-pf-dropdown-menu-width;
+ }
+
+ .applauncher-pf-link {
+ border-style: solid;
+ border-width: @applauncher-pf-menu-link-border-width;
+ border-color: transparent;
+
+ &:hover {
+ background-color: @applauncher-pf-menu-link-background-color-hover;
+ border-color: @applauncher-pf-menu-link-border-color-hover;
+ color: @applauncher-pf-menu-link-color-hover;
+ text-decoration: none;
+
+ .box-shadow(0 0 2px 0 @applauncher-pf-menu-link-shadow);
+ }
+ }
+
+ .applauncher-pf-link-icon {
+ font-size: 1.2em;
+ text-align: center;
+ width: @applauncher-pf-menu-link-icon-width;
+
+ @media (min-width: @screen-sm-min) {
+ font-size: @applauncher-pf-menu-link-icon-font-size;
+ }
+ }
+
+}//.applauncher-pf
+
+.navbar-utility .applauncher-pf {
+ .dropdown-menu {
+ @media (min-width: @screen-sm-min) {
+ right:0;
+ }
+ }//.dropdown-menu
+}
+
+.navbar-pf, .navbar-pf-alt {
+
+ .navbar-utility .applauncher-pf, .applauncher-pf {
+
+ &.open {
+ > .dropdown-toggle {
+ &,
+ &:focus {
+ background-color: @navbar-pf-navbar-nav-active-bg-color;
+ color: @navbar-pf-active-color;
+
+ @media (min-width: @screen-sm-min) {
+ background-color: @navbar-pf-navbar-utility-open-bg-color;
+ border-color: @navbar-pf-navbar-utility-border-color;
+ color: @navbar-pf-navbar-utility-color;
+ }
+ }
+ }
+ }
+
+ &.open {
+ .dropdown-menu > li > a {
+ @media (max-width: @grid-float-breakpoint-max) {
+ padding-left: 20px;
+ .applauncher-pf-link-icon {
+ padding-right: 20px;
+ }
+ }
+ }
+ }
+
+ &.dropdown > .dropdown-toggle,
+ .dropdown-toggle {
+ color: @applauncher-pf-menu-link-color;
+ text-align: left;
+ text-decoration: none;
+ border-width: 0;
+ display: block;
+ padding-left: 20px;
+
+ &.disabled {
+ color: @applauncher-pf-menu-link-color-disabled !important;
+ }
+
+ &:hover,
+ &:focus {
+ color: @navbar-pf-active-color;
+ }
+
+ @media (min-width: @screen-sm-min) {
+ border-left: 1px solid @navbar-pf-navbar-utility-border-color;
+ padding: @applauncher-pf-dropdown-toggle-padding;
+ line-height: 1;
+ }
+ }
+
+ .applauncher-pf-icon {
+ padding-right: @navbar-pf-item-icon-padding-right;
+ position: relative;
+
+ @media (min-width: @screen-sm-min) {
+ padding: 0;
+ }
+ }
+
+ .applauncher-pf-title {
+ display: inline;
+ position: relative;
+ margin: 0;
+ }
+
+ .applauncher-pf-link {
+ overflow: hidden;
+ width: 100%;
+
+ &:hover {
+ background-color: transparent;
+ border-color: transparent;
+ .box-shadow(none);
+ }
+ }
+
+ .applauncher-pf-link-title {
+ overflow: hidden;
+ }
+
+ @media (min-width: @screen-sm-min) {
+ //Apply mixin
+ .applauncher-pf;
+ }
+ }
+}//.navbar-pf .navbar-pf-alt ovrerides
+
+.navbar-iconic {
+
+ .navbar-utility .applauncher-pf,
+ .applauncher-pf {
+
+ &.dropdown > .dropdown-toggle,
+ .dropdown-toggle {
+
+ @media (min-width: @screen-sm-min) {
+ padding: 22px 10px;
+ }
+ }
+ }
+}
diff --git a/dist/less/badges.less b/dist/less/badges.less
new file mode 100644
index 0000000000..e3a536455b
--- /dev/null
+++ b/dist/less/badges.less
@@ -0,0 +1,11 @@
+//
+// Badges
+// --------------------------------------------------
+
+.badge {
+ margin-left: 6px;
+}
+
+.nav-pills > li > a > .badge {
+ margin-left: 6px;
+}
diff --git a/dist/less/blank-slate.less b/dist/less/blank-slate.less
new file mode 100644
index 0000000000..6813ac0033
--- /dev/null
+++ b/dist/less/blank-slate.less
@@ -0,0 +1,52 @@
+//
+// Blank Slate
+// --------------------------------------------------
+
+.blank-slate-pf {
+ @media (min-width: @screen-sm-min) {
+ padding: (@jumbotron-padding * 2) (@jumbotron-padding * 2);
+ }
+ @media (min-width: @screen-md-min) {
+ padding: (@jumbotron-padding * 3) (@jumbotron-padding * 4);
+ }
+ background-color: @well-bg;
+ border: 1px solid @well-border;
+ border-radius: @border-radius-base;
+ margin-bottom: 20px;
+ padding: @jumbotron-padding;
+ text-align: center;
+ .blank-slate-pf-icon {
+ color: @gray-light;
+ font-size: (@font-size-h1 * 2.4);
+ line-height: (@font-size-h1 * 2.4);
+ }
+ .blank-slate-pf-main-action {
+ margin-top: @line-height-computed;
+ }
+ .blank-slate-pf-secondary-action {
+ margin-top: @line-height-computed;
+ a {
+ display: inline-block;
+ padding: @blank-slate-pf-secondary-link-padding-top @blank-slate-pf-secondary-link-padding-left;
+ & + a:before {
+ background-color: @color-pf-black-500;
+ content: "";
+ display: inline-block;
+ height: ceil((@font-size-base * .8));
+ left: ~"calc(-@{blank-slate-pf-secondary-link-padding-left} - 2px)";
+ position: relative;
+ width: 1px;
+ }
+ }
+ }
+ button {
+ margin-bottom: 5px;
+ }
+
+ &.blank-slate-content-pf {
+ background: transparent;
+ border: 0;
+ padding: 0;
+ margin: 20px;
+ }
+}
diff --git a/dist/less/bootstrap-combobox.less b/dist/less/bootstrap-combobox.less
new file mode 100644
index 0000000000..4ece7bf4ef
--- /dev/null
+++ b/dist/less/bootstrap-combobox.less
@@ -0,0 +1,35 @@
+//
+// Bootstrap-Combobox
+// --------------------------------------------------
+
+.combobox-container {
+ &.combobox-selected .glyphicon-remove {
+ display: inline-block;
+ }
+ .caret {
+ margin-left: 0;
+ }
+ .combobox::-ms-clear {
+ display: none;
+ }
+ .dropdown-menu {
+ margin-top: -1px;
+ width: 100%;
+ }
+ .glyphicon-remove {
+ display: none;
+ top: auto;
+ width: 12px;
+ &:before {
+ content: "\e60b";
+ font-family: @icon-font-name-pf;
+ }
+ }
+ .input-group-addon {
+ .button-variant(@btn-default-color; @btn-default-bg; @btn-default-bg-img-start; @btn-default-bg-img-stop; @btn-default-border);
+ position: relative; // IE8
+ &:active {
+ .box-shadow(inset 0 2px 8px fade(@color-pf-black, 20%));
+ }
+ }
+}
diff --git a/dist/less/bootstrap-datepicker.less b/dist/less/bootstrap-datepicker.less
new file mode 100644
index 0000000000..84ba814e54
--- /dev/null
+++ b/dist/less/bootstrap-datepicker.less
@@ -0,0 +1,132 @@
+//
+// Bootstrap-Datepicker
+// --------------------------------------------------
+
+.bootstrap-datepicker.form-control[readonly] {
+ background-color: @input-bg;
+ border-color: @input-border !important;
+ color: @input-color;
+ .box-shadow(inset 0 1px 1px fade(@color-pf-black, 7.5%));
+ .form-control-outline();
+ &:focus {
+ // TODO Create global variables for validation box shadows?
+ @input-validation-focus-box-shadow: fade(@color-pf-black, 7.5%);
+ border-color: @input-border-focus !important;
+ .has-error & {
+ // TODO Create global variables for validation box shadows?
+ @state-danger-input-focus: lighten(@state-danger-text, 20%);
+ @shadow: ~"inset 0 1px 1px @{input-validation-focus-box-shadow}, 0 0 6px @{state-danger-input-focus}";
+ border-color: darken(@state-danger-text, 10%);
+ .box-shadow(@shadow);
+ }
+ .has-success & {
+ // TODO Create global variables for validation box shadows?
+ @state-success-input-focus: lighten(@state-success-text, 20%);
+ @shadow: ~"inset 0 1px 1px @{input-validation-focus-box-shadow}, 0 0 6px @{state-success-input-focus}";
+ border-color: darken(@state-success-text, 10%);
+ .box-shadow(@shadow);
+ }
+ .has-warning & {
+ // TODO Create global variables for validation box shadows?
+ @state-warning-input-focus: lighten(@state-warning-text, 20%);
+ @shadow: ~"inset 0 1px 1px @{input-validation-focus-box-shadow}, 0 0 6px @{state-warning-input-focus}";
+ border-color: darken(@state-warning-text, 10%);
+ .box-shadow(@shadow);
+ }
+ }
+ &:hover {
+ border-color: @input-border-hover !important;
+ .has-error & {
+ border-color: darken(@state-danger-text, 10%) !important;
+ }
+ .has-success & {
+ border-color: darken(@state-success-text, 10%) !important;
+ }
+ .has-warning & {
+ border-color: darken(@state-warning-text, 10%) !important;
+ }
+ }
+ .has-error & {
+ border-color: @state-danger-text !important;
+ }
+ .has-success & {
+ border-color: @state-success-text !important;
+ }
+ .has-warning & {
+ border-color: @state-warning-text !important;
+ }
+}
+
+.datepicker {
+ border-radius: @border-radius-base;
+ .datepicker-switch,
+ tfoot .clear,
+ tfoot .today {
+ font-size: @font-size-large;
+ font-weight: 500;
+ }
+ .next,
+ .prev {
+ font-weight: 500;
+ }
+ table tr {
+ td,
+ th {
+ border-radius: @border-radius-base;
+ }
+ td {
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ background: @dropdown-link-active-bg !important;
+ color: @color-pf-white !important;
+ text-shadow: none;
+ }
+ &.day:hover,
+ &.day.focused {
+ background: @dropdown-link-hover-bg;
+ }
+ &.selected,
+ &.selected:hover,
+ &.selected.disabled,
+ &.selected.disabled:hover {
+ text-shadow: none;
+ }
+ span {
+ border-radius: @border-radius-base;
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ background: @dropdown-link-active-bg;
+ text-shadow: none;
+ }
+ &:hover {
+ background: @dropdown-link-hover-bg;
+ }
+ }
+ }
+ }
+ thead tr:first-child th,
+ tfoot tr th {
+ &:hover {
+ background: @dropdown-link-hover-bg;
+ }
+ }
+}
+
+.input-daterange {
+ input:first-child {
+ border-radius: @border-radius-base 0 0 @border-radius-base;
+ }
+ input:last-child {
+ border-radius: 0 @border-radius-base @border-radius-base 0;
+ }
+ .input-group-addon {
+ background-color: @input-group-addon-bg;
+ border-color: @input-group-addon-border-color;
+ line-height: @line-height-base;
+ padding: @padding-base-vertical @padding-base-horizontal;
+ }
+}
diff --git a/dist/less/bootstrap-mixin-overrides.less b/dist/less/bootstrap-mixin-overrides.less
new file mode 100644
index 0000000000..5da88eab0c
--- /dev/null
+++ b/dist/less/bootstrap-mixin-overrides.less
@@ -0,0 +1,35 @@
+// Mixins - Bootstrap overrides
+// -------------------
+
+// Form control outline
+.form-control-outline(@color: @input-border-focus) {
+ @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
+ &:focus {
+ border-color: @color;
+ outline: 0 !important;
+ .box-shadow(~"inset 0 1px 1px rgba(3, 3, 3, 0.075), 0 0 8px @{color-rgba}");
+ }
+}
+
+// Gradients
+#gradient {
+ .striped(@color: fade(@color-pf-black, 15%); @angle: -45deg) {
+ background-image: linear-gradient(@angle, @color 25%, @color 26%, transparent 27%, transparent 49%, @color 50%, @color 51%, transparent 52%, transparent 74%, @color 75%, @color 76%, transparent 77%);
+ }
+}
+
+// Horizontal dividers
+.nav-divider(@color: @color-pf-black-200, @margin: 4px 1px) {
+ background-color: @color;
+ height: 1px;
+ margin: @margin;
+ overflow: hidden;
+}
+
+// Placeholder text
+.placeholder(@color: @input-color-placeholder) {
+ &:-moz-placeholder { color: @color; font-style: italic; } // Firefox 4-18
+ &::-moz-placeholder { color: @color; font-style: italic; opacity: 1; } // Firefox 19+
+ &:-ms-input-placeholder { color: @color; font-style: italic; } // Internet Explorer 10+
+ &::-webkit-input-placeholder { color: @color; font-style: italic; } // Safari and Chrome
+}
diff --git a/dist/less/bootstrap-select.less b/dist/less/bootstrap-select.less
new file mode 100644
index 0000000000..7bc6db34a9
--- /dev/null
+++ b/dist/less/bootstrap-select.less
@@ -0,0 +1,108 @@
+//
+// Bootstrap-select
+// --------------------------------------------------
+
+.bootstrap-select.btn-group {
+ &.form-control {
+ margin-bottom: 0;
+ }
+ .btn {
+ // TODO Create global variable for validation state box shadows?
+ @input-validation-focus-box-shadow: fade(@color-pf-black, 7.5%);
+ &:hover {
+ border-color: @input-border-hover;
+ }
+ .caret {
+ margin-top: -4px;
+ }
+ .form-control-outline();
+ .has-error & {
+ border-color: @state-danger-text;
+ &:focus {
+ // TODO Create global variable for validation state box shadows?
+ @state-danger-input-focus: lighten(@state-danger-text, 20%);
+ @shadow: ~"inset 0 1px 1px @{input-validation-focus-box-shadow}, 0 0 6px @{state-danger-input-focus}";
+ border-color: darken(@state-danger-text, 10%);
+ .box-shadow(@shadow);
+ }
+ }
+ .has-success & {
+ border-color: @state-success-text;
+ &:focus {
+ // TODO Create global variable for validation state box shadows?
+ @state-success-input-focus: lighten(@state-success-text, 20%);
+ @shadow: ~"inset 0 1px 1px @{input-validation-focus-box-shadow}, 0 0 6px @{state-success-input-focus}";
+ border-color: darken(@state-success-text, 10%);
+ .box-shadow(@shadow);
+ }
+ }
+ .has-warning & {
+ border-color: @state-warning-text;
+ &:focus {
+ // TODO Create global variable for validation state box shadows?
+ @state-warning-input-focus: lighten(@state-warning-text, 20%);
+ @shadow: ~"inset 0 1px 1px @{input-validation-focus-box-shadow}, 0 0 6px @{state-warning-input-focus}";
+ border-color: darken(@state-warning-text, 10%);
+ .box-shadow(@shadow);
+ }
+ }
+ .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
+ }
+ .dropdown-menu { // Also see navbar.less
+ > .active > a {
+ &,
+ &:active {
+ background-color: @dropdown-link-hover-bg !important;
+ border-color: @dropdown-link-hover-border-color !important;
+ color: @gray-dark !important;
+ small {
+ color: @gray-light !important;
+ }
+ }
+ }
+ > .disabled > a {
+ color: @gray-light !important;
+ }
+ > .selected > a {
+ background-color: @dropdown-link-active-bg !important;
+ border-color: @dropdown-link-active-border-color !important;
+ color: @color-pf-white !important;
+ small {
+ color: fade(@color-pf-white, 50%) !important;
+ }
+ }
+ .divider {
+ background: @dropdown-divider-bg !important;
+ margin: @dropdown-divider-margin !important;
+ }
+ dt {
+ color: @color-pf-black-500;
+ font-weight:normal;
+ padding: 1px 10px;
+ }
+ li {
+ & > a.opt {
+ padding: 1px 10px;
+ }
+ & a {
+ &:active small {
+ color: fade(@color-pf-white, 50%) !important;
+ }
+ &:hover,
+ &:focus {
+ small {
+ color: @gray-light;
+ }
+ }
+ }
+ &:not(.disabled) {
+ a:hover,
+ a:focus {
+ small {
+ color: @gray-light;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/dist/less/bootstrap-slider.less b/dist/less/bootstrap-slider.less
new file mode 100644
index 0000000000..b50fbc063a
--- /dev/null
+++ b/dist/less/bootstrap-slider.less
@@ -0,0 +1,66 @@
+//
+// Bootstrap slider
+// --------------------------------------------------
+// https://github.com/seiyria/bootstrap-slider
+
+
+// Overwrites and fixes to Bootstrap slider
+
+// https //github.com/seiyria/bootstrap-slider/issues/797
+.slider-tick-label-container {
+ display: flex;
+ justify-content: space-between;
+ margin-left: 0!important;
+}
+
+.slider-tick-label {
+ width: auto !important;
+}
+
+.slider {
+ .tooltip {
+ top: -10px;
+ }
+}
+.slider-track {
+ background-color: @color-pf-black-200;
+ box-shadow: inset 0 2px 3px rgba(0, 0, 0, .1), 0 0px 2px @color-pf-black-200;
+ border: 1px solid @color-pf-black-400;
+}
+
+.slider-selection {
+ #gradient > .vertical(@slider-secondary-top, @slider-secondary-bottom);
+}
+
+.slider-handle {
+ width: @slider-line-height;
+ height: @slider-line-height;
+ border: 1px solid @color-pf-black-400; //THIS!
+}
+
+.slider-tick {
+ background-color: transparent !important;
+ background-image:
+ radial-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3) 2px, transparent 2px) !important;
+ .box-shadow(none);
+}
+
+
+// Styles to create the pf slider
+.slider-pf {
+ display: flex;
+ align-items: center;
+
+ * {
+ margin-right: 10px;
+
+ &:last-child {
+ margin: 0;
+ }
+ }
+
+ .slider {
+ width: auto;
+ flex: 1 1 100%;
+ }
+}
diff --git a/dist/less/bootstrap-switch.less b/dist/less/bootstrap-switch.less
new file mode 100644
index 0000000000..120a415fc4
--- /dev/null
+++ b/dist/less/bootstrap-switch.less
@@ -0,0 +1,19 @@
+//
+// Bootstrap Switch
+// --------------------------------------------------
+
+.@{bootstrap-switch-base} {
+ .@{bootstrap-switch-base}-handle-off,
+ .@{bootstrap-switch-base}-handle-on {
+ &.@{bootstrap-switch-base}-default {
+ background: @bootstrap-switch-handle-default-bg-color;
+ }
+ }
+ .@{bootstrap-switch-base}-label {
+ background: @bootstrap-switch-bg-color;
+ box-shadow: 0 0 2px fade(@color-pf-black, 40%);
+ #gradient > .vertical(@bootstrap-switch-bg-color-start, @bootstrap-switch-bg-color-stop);
+ position: relative;
+ z-index: 9;
+ }
+}
diff --git a/dist/less/bootstrap-touchspin.less b/dist/less/bootstrap-touchspin.less
new file mode 100644
index 0000000000..e79b410a22
--- /dev/null
+++ b/dist/less/bootstrap-touchspin.less
@@ -0,0 +1,31 @@
+//
+// Bootstrap Touchspin
+// --------------------------------------------------
+
+.bootstrap-touchspin .input-group-btn-vertical {
+ > .btn {
+ padding-bottom: 6px;
+ padding-top: 6px;
+ }
+ .bootstrap-touchspin-down {
+ border-bottom-right-radius: @border-radius-base;
+ }
+ .bootstrap-touchspin-up {
+ border-top-right-radius: @border-radius-base;
+ }
+ i {
+ font-size: (@font-size-base - 4);
+ left: 6px;
+ top: 2px;
+ &.fa-angle-down,
+ &.fa-angle-up {
+ font-size: @font-size-base;
+ line-height: @font-size-base;
+ top: 0;
+ }
+ &.fa-angle-down,
+ &.fa-angle-up {
+ left: 7px;
+ }
+ }
+}
diff --git a/dist/less/bootstrap-treeview.less b/dist/less/bootstrap-treeview.less
new file mode 100644
index 0000000000..f72e8a6962
--- /dev/null
+++ b/dist/less/bootstrap-treeview.less
@@ -0,0 +1,89 @@
+//
+// Bootstrap Tree View
+// --------------------------------------------------
+
+.treeview {
+ .list-group {
+ border-top: 0;
+ }
+ .list-group-item {
+ background: transparent;
+ border-bottom: 1px solid transparent !important;
+ border-top: 1px solid transparent !important;
+ cursor: default !important;
+ margin-bottom: 0;
+ overflow: hidden;
+ padding: 0 10px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ &:hover {
+ background: none !important;
+ }
+ &.node-selected {
+ background: none !important;
+ border-color: transparent !important;
+ color: inherit !important;
+ }
+ &.node-check-changed {
+ span.node-icon,
+ span.text {
+ color: @bootstrap-treeview-highlight-color;
+ }
+ }
+ }
+ span.icon {
+ display: inline-block;
+ font-size: (@font-size-base + 1);
+ min-width: 10px;
+ text-align: center;
+ > [class*="fa-angle"] {
+ font-size: (@font-size-base + 3);
+ }
+ &.check-icon {
+ margin-right: 10px;
+ }
+ &.expand-icon {
+ cursor: pointer !important;
+ }
+ }
+ span.image {
+ background-repeat: no-repeat;
+ background-size: contain;
+ display: inline-block;
+ height: 1.19em;
+ line-height: 1em;
+ margin-right: 5px;
+ vertical-align: middle;
+ width: 12px;
+ }
+ span.indent {
+ margin-right: 5px;
+ }
+ .node-disabled {
+ color: @color-pf-black-300;
+ cursor: not-allowed;
+ span.expand-icon {
+ cursor: default !important;
+ }
+ }
+ .node-hidden {
+ display:none;
+ }
+}
+
+.treeview-pf-hover .list-group-item {
+ cursor: pointer !important;
+ &:hover {
+ background-color: @dropdown-link-hover-bg !important;
+ border-color: @dropdown-link-hover-border-color !important;
+ }
+}
+
+.treeview-pf-select .list-group-item {
+ cursor: pointer !important;
+ &.node-selected {
+ background: @dropdown-link-active-bg !important;
+ border-color: @dropdown-link-active-border-color !important;
+ color: @dropdown-link-active-color !important;
+ }
+}
diff --git a/dist/less/breadcrumbs.less b/dist/less/breadcrumbs.less
new file mode 100644
index 0000000000..ed6620b464
--- /dev/null
+++ b/dist/less/breadcrumbs.less
@@ -0,0 +1,20 @@
+//
+// Breadcrumbs
+// --------------------------------------------------
+
+.breadcrumb {
+ padding-left: 0;
+ > .active strong {
+ font-weight: 600;
+ }
+ > li {
+ display: inline; /* IE8 */
+ + li:before {
+ color: @gray-light;
+ content: @fa-var-angle-right;
+ font-family: @icon-font-name-fa;
+ font-size: (@font-size-base - 1);
+ padding: 0 9px 0 7px;
+ }
+ }
+}
diff --git a/dist/less/buttons.less b/dist/less/buttons.less
new file mode 100644
index 0000000000..e32d3a4850
--- /dev/null
+++ b/dist/less/buttons.less
@@ -0,0 +1,50 @@
+//
+// Buttons
+// --------------------------------------------------
+
+.btn {
+ .box-shadow(0 2px 3px fade(@color-pf-black, 10%));
+ &:active {
+ .box-shadow(inset 0 2px 8px fade(@color-pf-black, 20%));
+ }
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ background-color: @color-pf-black-100 !important;
+ background-image: none !important;
+ border-color: @color-pf-black-300 !important;
+ color: @color-pf-black-500 !important;
+ opacity: 1;
+ &:active {
+ .box-shadow(none);
+ }
+ &.btn-link {
+ background-color: transparent !important;
+ border: 0;
+ }
+ }
+}
+
+.btn-danger {
+ .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-bg-img-start; @btn-danger-bg-img-stop; @btn-danger-border);
+}
+
+.btn-default {
+ .button-variant(@btn-default-color; @btn-default-bg; @btn-default-bg-img-start; @btn-default-bg-img-stop; @btn-default-border);
+}
+
+.btn-link {
+ &,
+ &:active {
+ .box-shadow(none);
+ }
+}
+
+.btn-primary {
+ .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-bg-img-start; @btn-primary-bg-img-stop; @btn-primary-border);
+}
+
+.btn-xs,
+.btn-group-xs .btn {
+ font-weight: @btn-xs-font-weight;
+}
diff --git a/dist/less/card-view.less b/dist/less/card-view.less
new file mode 100644
index 0000000000..163b06a222
--- /dev/null
+++ b/dist/less/card-view.less
@@ -0,0 +1,105 @@
+//
+// Card View
+// --------------------------------------------------
+
+.card-pf-view {
+ border: 2px solid transparent;
+ .card-pf-heading-kebab {
+ .dropdown-kebab-pf {
+ margin-top: -3px;
+ }
+ + .progress-pf-legend {
+ p { margin-bottom: 0; }
+ .progress {
+ margin-bottom: 7px;
+ margin-top: 16px;
+ }
+ }
+ }
+ .card-pf-info {
+ margin-top: 15px;
+ strong {
+ font-size: ceil((@font-size-base + 1));
+ margin-right: 10px;
+ }
+ }
+ .card-pf-item {
+ display: inline-block;
+ font-size: @font-size-h3;
+ padding: 0 13px 0 15px;
+ &:first-child { padding-left: 0; }
+ &:last-child { padding-right: 0; }
+ + .card-pf-item { border-left: 1px solid @card-pf-border-color; }
+ .fa-check { color: @brand-success; }
+ .fa, .fas, .far, .fab, .fal,
+ .pficon {
+ + .card-pf-item-text { margin-left: 10px; }
+ }
+ }
+ .card-pf-items { margin-top: 15px; }
+ .card-pf-title {
+ font-size: ceil((@font-size-base * 1.6666));
+ font-weight: 300;
+ margin-bottom: 0;
+ margin-top: 15px;
+ .fa, .fas, .far, .fab, .fal,
+ .pficon {
+ font-size: ceil((@font-size-base * 1.5));
+ margin-right: 2px;
+ }
+ .col-lg-2 & { font-size: @font-size-h3; }
+ }
+ .card-pf-top-element .card-pf-icon-circle {
+ border: 2px solid @color-pf-blue-300;
+ border-radius: 50%;
+ display: block;
+ font-size: 46px;
+ height: 106px;
+ line-height: 102px;
+ margin: 0 auto;
+ text-align: center;
+ width: 106px;
+ .col-lg-2 & {
+ font-size: 23px;
+ height: 54px;
+ line-height: 50px;
+ width: 54px;
+ }
+ }
+ .card-pf-view-checkbox {
+ position: absolute;
+ top: 11px;
+ left: 15px;
+ input[type=checkbox] { display: none; }
+ }
+ &.card-pf-view-multi-select {
+ .card-pf-view-checkbox {
+ input[type=checkbox] {
+ display: block;
+ @media(min-width:@screen-sm-min) {
+ visibility: hidden;
+ &:checked { visibility: visible; }
+ }
+ }
+ }
+ &:hover .card-pf-view-checkbox input[type=checkbox] { visibility: visible; }
+ }
+ &.card-pf-view-select {
+ position: relative;
+ &:hover { .box-shadow(0 1px 6px fade(@color-pf-black, 35%)); }
+ &.active { border: 2px solid @card-pf-selected-border-color; }
+ }
+ &.card-pf-view-single-select { cursor: pointer; }
+ &.card-pf-view-xs {
+ .card-pf-title {
+ font-size: 16px;
+ font-weight: normal;
+ margin-bottom: 10px;
+ .fa, .fas, .far, .fab, .fal,
+ .pficon {
+ font-size: 14px;
+ margin-right: 5px;
+ }
+ }
+ }
+}
diff --git a/dist/less/cards.less b/dist/less/cards.less
new file mode 100644
index 0000000000..d77d48f70f
--- /dev/null
+++ b/dist/less/cards.less
@@ -0,0 +1,238 @@
+//
+// Cards
+// --------------------------------------------------
+
+.card-pf {
+ background: @card-pf-bg-color;
+ border-top: 2px solid @card-pf-border-top-color;
+ .box-shadow(0 1px 1px fade(@color-pf-black, 17.5%));
+ margin: 0 (-(@grid-gutter-width / 4)) (@grid-gutter-width / 2);
+ padding: 0 (@grid-gutter-width / 2);
+ &.card-pf-accented {
+ border-top-color: @card-pf-accented-border-top-color;
+ }
+ &.card-pf-aggregate-status {
+ .card-pf-aggregate-status-notifications,
+ .card-pf-title {
+ a {
+ color: @text-color;
+ &.add {
+ color: @link-color;
+ &:hover {
+ color: @link-hover-color;
+ }
+ }
+ &:hover {
+ color: @link-hover-color;
+ }
+ }
+ }
+ }
+ &.card-pf-aggregate-status {
+ padding: 0 (@grid-gutter-width / 4);
+ text-align: center;
+ }
+ &.card-pf-aggregate-status-mini {
+ padding-bottom: (@grid-gutter-width / 4);
+ position: relative;
+ }
+ @media (min-width: @grid-float-breakpoint) {
+ &.card-pf-bleed-left {
+ margin-left: (-(@grid-gutter-width / 2));
+ }
+ &.card-pf-bleed-right {
+ border-right: 1px solid @card-pf-border-color;
+ margin-right: (-(@grid-gutter-width / 2));
+ }
+ }
+}
+
+.card-pf-aggregate-status-notifications {
+ font-size: (@font-size-base * 2); // 24px
+ font-weight: 300;
+ .card-pf-aggregate-status-mini & {
+ line-height: 1;
+ }
+ .card-pf-aggregate-status-notification + .card-pf-aggregate-status-notification {
+ border-left: 1px solid @card-pf-border-color;
+ margin-left: (@grid-gutter-width / 8 - 2);
+ padding-left: (@grid-gutter-width / 4);
+ }
+ .fa, .fas, .far, .fab, .fal, .pficon {
+ font-size: (@font-size-base * 1.5); // 18px
+ margin-right: 7px;
+ }
+}
+
+.card-pf-body {
+ margin: (@grid-gutter-width / 2) 0 0;
+ padding: 0 0 (@grid-gutter-width / 2);
+ .card-pf-aggregate-status & {
+ margin-top: (@grid-gutter-width / 4);
+ padding-bottom: (@grid-gutter-width / 4);
+ }
+ .card-pf-aggregate-status-mini & {
+ margin-bottom: 0;
+ margin-top: 0;
+ padding-bottom: 0;
+ position: absolute;
+ right: (@grid-gutter-width / 2);
+ top: 15px;
+ }
+ .card-pf-utilization .card-pf-title + & {
+ margin-top: -8px;
+ }
+ > *:last-child {
+ margin-bottom: 0;
+ }
+}
+
+.card-pf-footer {
+ background-color: @card-pf-footer-bg-color;
+ border-top: 1px solid @card-pf-border-color;
+ margin: 0 (-(@grid-gutter-width / 2)) !important;
+ padding: (@grid-gutter-width / 2) (@grid-gutter-width / 2) (@grid-gutter-width / 4);
+ a > {
+ .fa, .fas, .far, .fab, .fal,
+ .pficon {
+ margin-right: 5px;
+ }
+ }
+ .card-pf-time-frame-filter {
+ margin-top: -2px;
+ }
+}
+
+.card-pf-link-with-icon {
+ padding-left: 21px;
+ position: relative;
+ .fa, .fas, .far, .fab, .fal,
+ .pficon {
+ font-size: 16px;
+ left: 0;
+ position: absolute;
+ top: 0;
+ }
+}
+
+.card-pf-time-frame-filter {
+ .card-pf-heading &,
+ .card-pf-footer & {
+ float: right;
+ margin-left: 20px;
+ }
+}
+
+.card-pf-heading {
+ border-bottom: 1px solid @card-pf-border-color;
+ margin: 0 (-(@grid-gutter-width / 2)) (@grid-gutter-width / 2);
+ padding: 0 (@grid-gutter-width / 2) 0;
+ & .card-pf-time-frame-filter {
+ margin-top: -5px;
+ }
+}
+
+.card-pf-heading-details {
+ float: right;
+ font-size: (@font-size-small - 1);
+}
+
+.card-pf-subtitle {
+ font-size: @font-size-h3;
+ margin-top: @line-height-computed;
+ margin-bottom: (@line-height-computed / 2);
+ [class^="col"] & {
+ margin-top: 0;
+ }
+ @media (max-width: @screen-xs-max) {
+ .card-pf-body [class^="col"] + [class^="col"] > & {
+ margin-top: (@grid-gutter-width);
+ }
+ }
+}
+
+.card-pf-title {
+ font-size: @font-size-h3;
+ font-weight: 400;
+ margin: (@grid-gutter-width / 2) 0;
+ padding: 0;
+ .card-pf-aggregate-status & {
+ font-size: @font-size-large;
+ margin: (@grid-gutter-width / 4) 0 0;
+ .fa, .fas, .far, .fab, .fal,
+ .pficon {
+ color: @card-pf-aggregate-status-title-icon-color;
+ font-size: @font-size-h3;
+ margin-right: 7px;
+ }
+ }
+ .card-pf-aggregate-status-count {
+ font-size: @font-size-h3;
+ .card-pf-aggregate-status-mini & {
+ display: block;
+ font-size: (@font-size-base * 2); // 24px
+ font-weight: 300;
+ margin-bottom: 3px;
+ }
+ }
+ .card-pf-aggregate-status-mini & {
+ font-size: @font-size-base;
+ margin-top: (@grid-gutter-width / 8);
+ a {
+ display: inline-block;
+ }
+ .fa, .fas, .far, .fab, .fal,
+ .pficon {
+ font-size: (@font-size-base * 2 + 2); // 26px
+ margin-right: 0;
+ min-width: (@font-size-base * 2 + 2); // 26px
+ position: absolute;
+ left: (@grid-gutter-width / 2);
+ text-align: center;
+ top: 15px;
+ }
+ }
+}
+
+.card-pf-utilization-details {
+ border-bottom: 1px solid @card-pf-border-color;
+ display: table;
+ margin: 12px 0 15px;
+ padding: 0 0 15px;
+ width: 100%;
+ .card-pf-utilization-card-details-count,
+ .card-pf-utilization-card-details-description {
+ float: left;
+ line-height: 1;
+ }
+ .card-pf-utilization-card-details-count {
+ font-size: (@font-size-base * 2 + 2); // 26px
+ font-weight: 300;
+ margin-right: 10px;
+ }
+ .card-pf-utilization-card-details-line-1,
+ .card-pf-utilization-card-details-line-2 {
+ display: block;
+ }
+ .card-pf-utilization-card-details-line-1 {
+ font-size: (@font-size-small - 1);
+ margin-bottom: 2px;
+ }
+}
+
+.cards-pf {
+ background: @card-pf-container-bg-color;
+ .row-cards-pf {
+ padding: 0 20px;
+ &:first-child { padding-top: 20px; }
+ }
+}
+
+.container-cards-pf {
+ margin-top: (@grid-gutter-width / 2);
+}
+
+.row-cards-pf {
+ margin-left: (-(@grid-gutter-width / 4));
+ margin-right: (-(@grid-gutter-width / 4));
+}
diff --git a/dist/less/charts.less b/dist/less/charts.less
new file mode 100644
index 0000000000..c5249220cb
--- /dev/null
+++ b/dist/less/charts.less
@@ -0,0 +1,388 @@
+//
+// Charts
+// --------------------------------------------------
+
+.bullet-chart-pf {
+ display: flex;
+ flex-direction: column;
+
+ &.bullet-chart-pf-vertical {
+ height: 100%;
+ flex-direction: row;
+ }
+}
+
+.bullet-chart-pf-chart {
+ display: flex;
+ flex: 1;
+ flex-direction: row;
+ width: 100%;
+ .bullet-chart-pf-vertical & {
+ flex: initial;
+ flex-direction: column-reverse;
+ height: 100%;
+ width: initial;
+ }
+}
+
+.bullet-chart-pf-title-container {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ margin: 10px 0 25px;
+ padding-right: 10px;
+ text-align: right;
+ .bullet-chart-pf-vertical & {
+ margin-bottom: 0;
+ padding-right: 0;
+ text-align: center;
+ }
+}
+
+.bullet-chart-pf-title {
+ font-size: (@font-size-base + 2);
+}
+
+.bullet-chart-pf-details {
+ color: @gray-light;
+ font-size: @font-size-base;
+ line-height: 9px;
+}
+
+.bullet-chart-pf-container {
+ display: flex;
+ flex-direction: column;
+ flex: 5;
+ .bullet-chart-pf-vertical & {
+ flex-direction: row-reverse;
+ flex: initial;
+ &.show-axis {
+ margin-left: -25px;
+ }
+ }
+}
+
+.bullet-chart-pf-data-container {
+ flex: 1;
+ position: relative;
+ .bullet-chart-pf-vertical & {
+ height: initial;
+ }
+}
+
+.bullet-chart-pf-vertical-data-container {
+ display: flex;
+ flex: 5;
+ flex-direction: row;
+ justify-content: center;
+ .bullet-chart-pf-data-container {
+ flex: initial;
+ }
+}
+
+.bullet-chart-pf-values-container {
+ height: 20px;
+ margin: 20px 0;
+ position: relative;
+ .bullet-chart-pf-vertical & {
+ height: 100%;
+ margin: 0 20px;
+ width: 20px;
+ }
+}
+
+.bullet-chart-pf-value-bar {
+ height: 100%;
+ position: absolute;
+ transition: left 600ms ease;
+ .bullet-chart-pf-vertical & {
+ bottom: 0;
+ height: initial;
+ top: initial;
+ width: 100%;
+ }
+}
+
+.bullet-chart-pf-value-dot {
+ border-radius: 50%;
+ border-style: solid;
+ border-width: 0;
+ height: 20px;
+ transform: translateX(-50%);
+ position: absolute;
+ transition: left 600ms ease;
+ width: 20px;
+ .bullet-chart-pf-vertical & {
+ top: initial;
+ transform: translateY(50%);
+ }
+}
+
+.bullet-chart-pf-threshold-indicator {
+ border: 0 solid @color-pf-black-600;
+ border-left-width: 1px;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ z-index: 400;
+ .bullet-chart-pf-vertical & {
+ border-left-width: 0;
+ border-top-width: 1px;
+ height: 1px;
+ left: 0;
+ top: initial;
+ width: 100%;
+ }
+ &.error {
+ border-color: @alert-danger-border;
+ }
+ &.warning {
+ border-color: @alert-warning-border;
+ }
+}
+
+.bullet-chart-pf-range-bar {
+ height: 100%;
+ left: 0;
+ position: absolute;
+ top: 0;
+ .bullet-chart-pf-vertical & {
+ bottom: 0;
+ height: initial;
+ top: initial;
+ width: 100%;
+ }
+ &.range-1 {
+ background-color: @color-pf-black-150;
+ }
+ &.range-2 {
+ background-color: @color-pf-black-200;
+ }
+ &.range-3 {
+ background-color: #dbdbdb;
+ }
+}
+
+.bullet-chart-pf-axis {
+ border-top: 1px solid @color-pf-black-600;
+ height: 25px;
+ position: relative;
+ .bullet-chart-pf-vertical & {
+ height: initial;
+ width: 25px;
+ border-right: 1px solid @color-pf-black-600;
+ border-top: 0;
+ }
+ .bullet-chart-pf-title-container & {
+ border-top: 0;
+ }
+}
+
+.bullet-chart-pf-axis-tic {
+ padding-top: 5px;
+ position: absolute;
+ text-align: center;
+ width: 30px;
+ .bullet-chart-pf-vertical & {
+ padding-top: 0;
+ padding-right: 5px;
+ width: 100%;
+ text-align: right;
+ line-height: 21px;
+ }
+ &:before {
+ border-left: 1px solid @color-pf-black-600;
+ content: "";
+ height: 3px;
+ left: 50%;
+ position: absolute;
+ top: -1px;
+ .bullet-chart-pf-vertical & {
+ border-left: 0;
+ border-top: 1px solid @color-pf-black-600;
+ height: initial;
+ left: initial;
+ right: -1px;
+ top: calc(50% - 1px);
+ width: 3px;
+ }
+ }
+}
+
+.bullet-chart-pf-overflow {
+ flex: 1;
+}
+
+.bullet-chart-pf-legend {
+ margin-top: 7px;
+ text-align: center;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ .bullet-chart-pf-vertical & {
+ flex-direction: column;
+ margin-left: 10px;
+ margin-top: 0;
+ text-align: left;
+ }
+}
+
+.bullet-chart-pf-legend-item {
+ display: inline-block;
+ margin-right: 10px;
+
+ .bullet-chart-pf-vertical & {
+ margin-right: 0;
+ margin-top: 10px;
+ }
+}
+
+.bullet-chart-pf-legend-item-box {
+ display: inline-block;
+ height: 13px;
+ margin-right: 3px;
+ width: 13px;
+ &.range-1 {
+ background-color: @color-pf-black-150;
+ }
+ &.range-2 {
+ background-color: @color-pf-black-200;
+ }
+ &.range-3 {
+ background-color: #dbdbdb;
+ }
+}
+
+.bullet-chart-pf-legend-item-text {
+ display: inline-block;
+ line-height: 14px;
+ max-width: 150px;
+ overflow: hidden;
+ position: relative;
+ text-overflow: ellipsis;
+ top: 1px;
+ white-space: nowrap;
+ word-wrap: normal;
+}
+
+.c3 {
+ path {
+ stroke: @table-border-color;
+ }
+ svg {
+ font-family: @font-family-base;
+ }
+}
+
+.c3-axis-x .tick line {
+ stroke: @table-border-color;
+}
+
+.c3-axis-y .tick line {
+ display: none;
+}
+
+.c3-chart-arc path {
+ stroke: @color-pf-white;
+}
+
+.c3-grid line {
+ stroke: @table-border-color;
+}
+
+.c3-line {
+ stroke-width: 2px;
+}
+
+.c3-tooltip {
+ background: @tooltip-bg;
+ .box-shadow(none);
+ .opacity(@tooltip-opacity);
+
+ td {
+ background: transparent;
+ border: 0;
+ color: @tooltip-color;
+ font-size: @font-size-base;
+ padding: 5px 10px;
+ }
+
+ th {
+ background: transparent;
+ font-size: @font-size-base;
+ padding: 5px 10px 0;
+ border-bottom: solid 2px @color-pf-black;
+ }
+
+ tr {
+ border: 0;
+ + tr > td {
+ padding-top: 0;
+ }
+ }
+}
+
+.c3-tooltip-sparkline,
+.donut-tooltip-pf {
+ background: @tooltip-bg;
+ color: @tooltip-color;
+ .opacity(@tooltip-opacity);
+ padding: 2px 6px;
+}
+
+.c3-xgrid,
+.c3-ygrid {
+ stroke-dasharray: 0 0;
+}
+
+.chart-pf-sparkline {
+ margin-left: -5px;
+ margin-right: -5px;
+}
+
+.donut-title-big-pf {
+ font-size: @donut-font-size-big;
+ font-weight: 300;
+}
+
+.donut-title-small-pf {
+ font-size: @font-size-base;
+ font-weight: 400;
+}
+
+.line-chart-pf {
+ .c3-zoom-rect {
+ opacity: 1 !important;
+ fill: @color-pf-black-100;
+ stroke: @table-border-color;
+ stroke-width: 1px;
+ }
+}
+
+.pct-donut-chart-pf {
+
+ .pct-donut-chart-pf-label {
+ display: block;
+ }
+
+ &.pct-donut-chart-pf-left,
+ &.pct-donut-chart-pf-right,
+ .pct-donut-chart-pf-left,
+ .pct-donut-chart-pf-right {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ }
+
+ &.pct-donut-chart-pf-left,
+ &.pct-donut-chart-pf-right {
+ display: inline-flex;
+ }
+
+ &.pct-donut-chart-pf-left,
+ .pct-donut-chart-pf-left {
+ flex-direction: row-reverse;
+ }
+}
diff --git a/dist/less/close.less b/dist/less/close.less
new file mode 100644
index 0000000000..a116951f87
--- /dev/null
+++ b/dist/less/close.less
@@ -0,0 +1,16 @@
+//
+// Close icons
+// --------------------------------------------------
+
+//this should no longer be needed and be replaced with pficon-close. This is here for legacy. For further info see https://github.com/patternfly/patternfly/pull/781
+
+.close {
+ text-shadow: none;
+ z-index: 1;
+ position: relative;
+ .opacity(.6);
+ &:hover,
+ &:focus {
+ .opacity(.9);
+ }
+}
diff --git a/dist/less/color-variables.less b/dist/less/color-variables.less
new file mode 100644
index 0000000000..9db2cd22a2
--- /dev/null
+++ b/dist/less/color-variables.less
@@ -0,0 +1,85 @@
+@color-pf-black-100: #fafafa;
+@color-pf-black-150: #f5f5f5;
+@color-pf-black-200: #ededed;
+@color-pf-black-300: #d1d1d1;
+@color-pf-black-400: #bbb;
+@color-pf-black-500: #8b8d8f;
+@color-pf-black-600: #72767b;
+@color-pf-black-700: #4d5258;
+@color-pf-black-800: #393f44;
+@color-pf-black-900: #292e34;
+@color-pf-blue-25: #edf8ff;
+@color-pf-blue-50: #def3ff;
+@color-pf-blue-100: #bee1f4;
+@color-pf-blue-200: #7dc3e8;
+@color-pf-blue-300: #39a5dc;
+@color-pf-blue-400: #0088ce;
+@color-pf-blue-500: #00659c;
+@color-pf-blue-600: #004368;
+@color-pf-blue-700: #002235;
+@color-pf-cyan-100: #bedee1;
+@color-pf-cyan-200: #7dbdc3;
+@color-pf-cyan-300: #3a9ca6;
+@color-pf-cyan-400: #007a87;
+@color-pf-cyan-500: #005c66;
+@color-pf-cyan-600: #003d44;
+@color-pf-cyan-700: #001f22;
+@color-pf-gold-100: #fbeabc;
+@color-pf-gold-200: #f9d67a;
+@color-pf-gold-300: #f5c12e;
+@color-pf-gold-400: #f0ab00;
+@color-pf-gold-500: #b58100;
+@color-pf-gold-600: #795600;
+@color-pf-gold-700: #3d2c00;
+@color-pf-green-100: #cfe7cd;
+@color-pf-green-200: #9ecf99;
+@color-pf-green-300: #6ec664;
+@color-pf-green-400: #3f9c35;
+@color-pf-green-500: #2d7623;
+@color-pf-green-600: #1e4f18;
+@color-pf-green-700: #0f280d;
+@color-pf-light-blue-100: #beedf9;
+@color-pf-light-blue-200: #7cdbf3;
+@color-pf-light-blue-300: #35caed;
+@color-pf-light-blue-400: #00b9e4;
+@color-pf-light-blue-500: #008bad;
+@color-pf-light-blue-600: #005c73;
+@color-pf-light-blue-700: #002d39;
+@color-pf-light-green-100: #e4f5bc;
+@color-pf-light-green-200: #c8eb79;
+@color-pf-light-green-300: #ace12e;
+@color-pf-light-green-400: #92d400;
+@color-pf-light-green-500: #6ca100;
+@color-pf-light-green-600: #486b00;
+@color-pf-light-green-700: #253600;
+@color-pf-orange-100: #fbdebf;
+@color-pf-orange-200: #f7bd7f;
+@color-pf-orange-300: #f39d3c;
+@color-pf-orange-400: #ec7a08;
+@color-pf-orange-500: #b35c00;
+@color-pf-orange-600: #773d00;
+@color-pf-orange-700: #3b1f00;
+@color-pf-purple-100: #c7bfff;
+@color-pf-purple-200: #a18fff;
+@color-pf-purple-300: #8461f7;
+@color-pf-purple-400: #703fec;
+@color-pf-purple-500: #582fc0;
+@color-pf-purple-600: #40199a;
+@color-pf-purple-700: #1f0066;
+@color-pf-red-100: #cc0000;
+@color-pf-red-200: #a30000;
+@color-pf-red-300: #8b0000;
+@color-pf-red-400: #470000;
+@color-pf-red-500: #2c0000;
+
+@color-pf-black: #030303;
+@color-pf-blue: @color-pf-blue-400;
+@color-pf-cyan: @color-pf-cyan-400;
+@color-pf-gold: @color-pf-gold-400;
+@color-pf-green: @color-pf-green-400;
+@color-pf-light-blue: @color-pf-light-blue-400;
+@color-pf-light-green: @color-pf-light-green-400;
+@color-pf-orange: @color-pf-orange-400;
+@color-pf-purple: @color-pf-purple-400;
+@color-pf-red: @color-pf-red-100;
+@color-pf-white: #fff;
diff --git a/dist/less/context-selector.less b/dist/less/context-selector.less
new file mode 100644
index 0000000000..513dccae5f
--- /dev/null
+++ b/dist/less/context-selector.less
@@ -0,0 +1,125 @@
+//
+// Context Selector
+// --------------------------------------------------
+
+.contextselector-pf {
+ float: left;
+ .bootstrap-select {
+ width: @contextselector-pf-bootstrap-select-width-mobile !important;
+ @media (min-width: @screen-xs-min) {
+ width: @contextselector-pf-bootstrap-select-width-desktop !important;
+ }
+ &.open {
+ > .dropdown-toggle {
+ &,
+ &:hover,
+ &:focus {
+ background: @navbar-pf-item-open-bg-color;
+ color: @navbar-pf-item-active-color;
+ }
+ &:focus {
+ outline: 0 !important; // don't show restored focus ring when open
+ }
+ }
+ }
+ > .dropdown-toggle {
+ background: none;
+ border: 0;
+ box-shadow: none !important;
+ color: @navbar-pf-vertical-color;
+ font-weight: normal;
+ padding-bottom: @contextselector-pf-dropdown-toggle-padding-bottom;
+ padding-left: @contextselector-pf-dropdown-toggle-padding-left;
+ padding-top: @contextselector-pf-dropdown-toggle-padding-top;
+ &:focus {
+ // restore the focus ring
+ // Default
+ outline: thin dotted !important;
+ // WebKit
+ outline: 5px auto -webkit-focus-ring-color !important;
+ outline-offset: -2px !important;
+ }
+ &:hover {
+ outline: 0 !important; // don't show restored focus ring when open
+ }
+ &:focus,
+ &:hover {
+ background-color: @navbar-pf-item-hover-bg-color;
+ }
+ .filter-option {
+ text-overflow: ellipsis;
+ position: relative;
+ }
+ }
+ .dropdown-menu li a span.text {
+ display: block;
+ overflow-x: hidden;
+ text-overflow: ellipsis;
+ width: 100%;
+ }
+ }
+}
+.layout-pf-fixed .navbar-pf-vertical.navbar-pf-contextselector {
+ z-index: @zindex-modal-background;
+}
+.navbar-pf-vertical .nav.contextselector-pf {
+ @media (min-width: @screen-md-min) {
+ margin-left: @contextselector-pf-margin-left;
+ }
+}
+
+// the following rules are deprecated
+.contextselector-pf {
+ float:left;
+ &-title {
+ display: inline-block;
+ line-height: normal;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: @contextselector-title-width-mobile;
+ @media (min-width: @screen-xs-min) {
+ width: @contextselector-title-width-desktop;
+ }
+ }
+ .contextselector-pf-list {
+ @media (min-width: @screen-sm-min) {
+ max-height: @contextselector-pf-list-max-height;
+ overflow-y: auto;
+ }
+ a {
+ color: @color-pf-black-800;
+ display: block;
+ }
+ li {
+ border-color: transparent;
+ border-style: solid;
+ border-width: @contextselector-pf-list-li-border-width;
+ padding: @contextselector-pf-list-li-padding;
+ &:hover {
+ background: @color-pf-blue-50;
+ border-color: @dropdown-link-hover-border-color;
+ a {
+ text-decoration: none;
+ }
+ }
+ }
+ }
+ .dropdown {
+ &.open, &:hover {
+ background-color: @navbar-pf-navbar-primary-active-bg-color-stop;
+ }
+ }
+ .dropdown-menu {
+ margin-top: 0;
+ width: 100%;
+ }
+ .form-group {
+ margin: @contextselector-pf-form-group-margin;
+ }
+}
+.navbar-pf-vertical .nav.contextselector-pf .nav-item-iconic {
+ align-items: center;
+ display: flex;
+ padding: @contextselector-pf-nav-item-iconic-padding;
+}
diff --git a/dist/less/datatables.less b/dist/less/datatables.less
new file mode 100644
index 0000000000..ee94ed0ebd
--- /dev/null
+++ b/dist/less/datatables.less
@@ -0,0 +1,186 @@
+//
+// DataTables
+// --------------------------------------------------
+
+// Deprecated
+.ColVis_Button {
+ &:active {
+ &:focus {
+ outline: none;
+ }
+ }
+}
+
+// Deprecated
+.ColVis_catcher {
+ position: absolute;
+ z-index: 999;
+}
+
+// Deprecated
+.ColVis_collection {
+ background-color: @dropdown-bg;
+ border: 1px solid @dropdown-border;
+ border-radius: @border-radius-base;
+ .box-shadow(0 6px 12px fade(@color-pf-black, 17.5%));
+ background-clip: padding-box;
+ list-style: none;
+ margin: -1px 0 0 0;
+ padding: 5px 10px;
+ width: 150px;
+ z-index: @zindex-dropdown;
+ label {
+ font-weight: normal;
+ margin-bottom: 5px;
+ margin-top: 5px;
+ padding-left: 20px;
+ }
+}
+
+// Deprecated
+.ColVis_collectionBackground {
+ background-color: @color-pf-white;
+ height: 100%;
+ left: 0;
+ position: fixed;
+ top: 0;
+ width: 100%;
+ z-index: 998;
+}
+
+// Note: We won't be using this class with the Patternfly toolbar
+.dataTables_header {
+ background-color: @color-pf-black-150;
+ border: 1px solid @table-border-color;
+ border-bottom: none;
+ padding: 5px;
+ position: relative;
+ text-align: center;
+ .btn {
+ .box-shadow(none);
+ }
+ // Deprecated
+ .ColVis {
+ position: absolute;
+ right: 5px;
+ text-align: left;
+ top: 5px;
+ + .dataTables_info {
+ padding-right: 30px;
+ }
+ }
+ .dataTables_filter {
+ position: absolute;
+ input {
+ border: 1px solid @color-pf-black-400;
+ height: 24px;
+ @media (max-width: @screen-xs-max) {
+ width: 100px;
+ }
+ }
+ }
+ .dataTables_info {
+ padding: 2px 0;
+ @media (max-width: @screen-xs) {
+ text-align: right;
+ }
+ b {
+ font-weight: bold;
+ }
+ }
+}
+
+// Note: We won't be using this class with the table view
+.dataTables_footer {
+ background-color: @color-pf-white;
+ border: 1px solid @table-border-color;
+ border-top: none;
+ overflow: hidden;
+}
+
+// Not in use with latest example: May be used with pagination?
+.dataTables_paginate {
+ background: @color-pf-black-100;
+ float: right;
+ margin: 0;
+ .pagination {
+ float: left;
+ margin: 0;
+ > li {
+ > span {
+ border-color: @color-pf-white @color-pf-black-300 @color-pf-black-150;
+ border-width: 0 1px;
+ font-size: (@font-size-base + 4);
+ font-weight: normal;
+ padding: 0;
+ text-align: center;
+ width: 31px;
+ &:hover,
+ &:focus {
+ .reset-filter();
+ }
+ }
+ &.last > span {
+ border-right: none;
+ }
+ &.disabled > span {
+ background: @color-pf-black-150;
+ border-left-color: @color-pf-black-200;
+ border-right-color: @color-pf-black-200;
+ .reset-filter();
+ }
+ }
+ }
+ .pagination-input {
+ float: left;
+ font-size: @font-size-base;
+ line-height: 1em;
+ padding: 4px 15px 0;
+ text-align: right;
+ .paginate_input {
+ border: 1px solid @color-pf-black-300;
+ .box-shadow(inset 0 1px 1px fade(@color-pf-black, 7.5%));
+ font-size: @font-size-base;
+ font-weight: 600;
+ height: 19px;
+ margin-right: 8px;
+ padding-right: 3px;
+ text-align: right;
+ width: 30px;
+ }
+ .paginate_of {
+ position: relative;
+ b {
+ margin-left: 3px;
+ }
+ }
+ }
+}
+
+.dataTables_empty {
+ background: @table-bg-accent;
+}
+
+/* Might need this for pagination?
+.dataTables_wrapper {
+ margin: @line-height-computed 0;
+ @media (max-width: @screen-xs-max) {
+ .table-responsive {
+ margin-bottom: 0;
+ }
+ }
+}
+*/
+
+// Not in use with latest example: May be used with column reordering?
+.DTCR_clonedTable {
+ background-color: fade(@color-pf-white, 70%);
+ z-index: 202;
+}
+
+// Not in use with latest example: May be used with column reordering?
+.DTCR_pointer {
+ background-color: @link-color;
+ width: 1px;
+ z-index: 201;
+}
diff --git a/dist/less/date-and-time.less b/dist/less/date-and-time.less
new file mode 100644
index 0000000000..7d7c453ab5
--- /dev/null
+++ b/dist/less/date-and-time.less
@@ -0,0 +1,35 @@
+//
+// Date and Time
+// --------------------------------------------------
+.date-time-picker-pf .input-group-addon {
+ .fa, .fas, .far, .fab, .fal,
+ .pficon {
+ width: 12px;
+ }
+}
+
+.date-time-range-picker-pf {
+ .form-control,
+ .form-control:not(:first-child):not(:last-child) {
+ border-radius: @border-radius-base;
+ }
+ .form-control:first-child {
+ border-bottom-right-radius: @border-radius-base;
+ border-top-right-radius: @border-radius-base;
+ }
+ .form-control:last-child {
+ border-bottom-left-radius: @border-radius-base;
+ border-top-left-radius: @border-radius-base;
+ }
+ .input-group-addon {
+ background-color: transparent;
+ border: none;
+ line-height: @line-height-base;
+ padding: @padding-base-vertical @padding-base-horizontal;
+ }
+ .dropdown-kebab-pf {
+ float: right;
+ margin-left: 0;
+ margin-right: -15px;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap-combobox/combobox.less b/dist/less/dependencies/bootstrap-combobox/combobox.less
new file mode 100644
index 0000000000..a55e2c66de
--- /dev/null
+++ b/dist/less/dependencies/bootstrap-combobox/combobox.less
@@ -0,0 +1,57 @@
+@media (min-width: 768px) {
+ .form-search,
+ .form-inline {
+ .combobox-container {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: top;
+ .input-group-addon {
+ width: auto;
+ }
+ }
+ }
+}
+
+.combobox-selected .caret {
+ display: none;
+}
+
+/* :not doesn't work in IE8 */
+.combobox-container:not(.combobox-selected) .glyphicon-remove {
+ display: none;
+}
+
+.typeahead-long {
+ max-height: 300px;
+ overflow-y: auto;
+}
+
+.control-group.error .combobox-container{
+ .add-on {
+ color: #B94A48;
+ border-color: #B94A48;
+ }
+ .caret {
+ border-top-color: #B94A48;
+ }
+}
+
+.control-group.warning .combobox-container {
+ .add-on {
+ color: #C09853;
+ border-color: #C09853;
+ }
+ .caret {
+ border-top-color: #C09853;
+ }
+}
+
+.control-group.success .combobox-container{
+ .add-on {
+ color: #468847;
+ border-color: #468847;
+ }
+ .caret {
+ border-top-color: #468847;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap-datepicker/datepicker.less b/dist/less/dependencies/bootstrap-datepicker/datepicker.less
new file mode 100644
index 0000000000..b1f8183700
--- /dev/null
+++ b/dist/less/dependencies/bootstrap-datepicker/datepicker.less
@@ -0,0 +1,242 @@
+.datepicker {
+ padding: 4px;
+ .border-radius(@baseBorderRadius);
+ &-inline {
+ width: 220px;
+ }
+ direction: ltr;
+ &-rtl {
+ direction: rtl;
+ &.dropdown-menu { left: auto; }
+ table tr td span {
+ float: right;
+ }
+ }
+ &-dropdown {
+ top: 0;
+ left: 0;
+ &:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid @grayLight;
+ border-top: 0;
+ border-bottom-color: rgba(0,0,0,.2);
+ position: absolute;
+ }
+ &:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid @white;
+ border-top: 0;
+ position: absolute;
+ }
+ &.datepicker-orient-left:before { left: 6px; }
+ &.datepicker-orient-left:after { left: 7px; }
+ &.datepicker-orient-right:before { right: 6px; }
+ &.datepicker-orient-right:after { right: 7px; }
+ &.datepicker-orient-bottom:before { top: -7px; }
+ &.datepicker-orient-bottom:after { top: -6px; }
+ &.datepicker-orient-top:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid @grayLight;
+ }
+ &.datepicker-orient-top:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid @white;
+ }
+ }
+ table {
+ margin: 0;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+ td, th {
+ text-align: center;
+ width: 20px;
+ height: 20px;
+ .border-radius(4px);
+
+ border: none;
+ }
+ // Inline display inside a table presents some problems with
+ // border and background colors.
+ .table-striped & table tr {
+ td, th {
+ background-color: transparent;
+ }
+ }
+ table tr td {
+ &.day:hover,
+ &.day.focused {
+ background: @grayLighter;
+ cursor: pointer;
+ }
+ &.old,
+ &.new {
+ color: @grayLight;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: @grayLight;
+ cursor: default;
+ }
+ &.highlighted {
+ background: @infoBackground;
+ border-radius: 0;
+ }
+ &.today,
+ &.today:hover,
+ &.today.disabled,
+ &.today.disabled:hover {
+ @todayBackground: lighten(@orange, 30%);
+ .buttonBackground(@todayBackground, spin(@todayBackground, 20));
+ color: #000;
+ }
+ &.today:hover:hover { // Thank bootstrap 2.0 for this selector...
+ // TODO: Bump min BS to 2.1, use @textColor in buttonBackground above
+ color: #000;
+ }
+ &.today.active:hover {
+ color: #fff;
+ }
+ &.range,
+ &.range:hover,
+ &.range.disabled,
+ &.range.disabled:hover {
+ background: @grayLighter;
+ .border-radius(0);
+ }
+ &.range.today,
+ &.range.today:hover,
+ &.range.today.disabled,
+ &.range.today.disabled:hover {
+ @todayBackground: mix(@orange, @grayLighter, 50%);
+ .buttonBackground(@todayBackground, spin(@todayBackground, 20));
+ .border-radius(0);
+ }
+ &.selected,
+ &.selected:hover,
+ &.selected.disabled,
+ &.selected.disabled:hover {
+ .buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ .buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ .border-radius(4px);
+ &:hover,
+ &.focused {
+ background: @grayLighter;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: @grayLight;
+ cursor: default;
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ .buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.old,
+ &.new {
+ color: @grayLight;
+ }
+ }
+ }
+
+ .datepicker-switch {
+ width: 145px;
+ }
+
+ .datepicker-switch,
+ .prev,
+ .next,
+ tfoot tr th {
+ cursor: pointer;
+ &:hover {
+ background: @grayLighter;
+ }
+ }
+
+ .prev, .next {
+ &.disabled {
+ visibility: hidden;
+ }
+ }
+
+ // Basic styling for calendar-week cells
+ .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+ }
+}
+.input-append,
+.input-prepend {
+ &.date .add-on {
+ cursor: pointer;
+
+ i {
+ margin-top: 3px;
+ }
+ }
+}
+.input-daterange {
+ input {
+ text-align:center;
+ }
+ input:first-child {
+ .border-radius(3px 0 0 3px);
+ }
+ input:last-child {
+ .border-radius(0 3px 3px 0);
+ }
+ .add-on {
+ display: inline-block;
+ width: auto;
+ min-width: 16px;
+ height: @baseLineHeight;
+ padding: 4px 5px;
+ font-weight: normal;
+ line-height: @baseLineHeight;
+ text-align: center;
+ text-shadow: 0 1px 0 @white;
+ vertical-align: middle;
+ background-color: @grayLighter;
+ border: 1px solid #ccc;
+ margin-left: -5px;
+ margin-right: -5px;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap-datepicker/datepicker3.less b/dist/less/dependencies/bootstrap-datepicker/datepicker3.less
new file mode 100644
index 0000000000..91e818112e
--- /dev/null
+++ b/dist/less/dependencies/bootstrap-datepicker/datepicker3.less
@@ -0,0 +1,257 @@
+.datepicker {
+ border-radius: @border-radius-base;
+ &-inline {
+ width: 220px;
+ }
+ direction: ltr;
+ &-rtl {
+ direction: rtl;
+ &.dropdown-menu { left: auto; }
+ table tr td span {
+ float: right;
+ }
+ }
+ &-dropdown {
+ top: 0;
+ left: 0;
+ padding: 4px;
+ &:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid @dropdown-border;
+ border-top: 0;
+ border-bottom-color: rgba(0,0,0,.2);
+ position: absolute;
+ }
+ &:after {
+ content: '';
+ display: inline-block;
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid @dropdown-bg;
+ border-top: 0;
+ position: absolute;
+ }
+ &.datepicker-orient-left:before { left: 6px; }
+ &.datepicker-orient-left:after { left: 7px; }
+ &.datepicker-orient-right:before { right: 6px; }
+ &.datepicker-orient-right:after { right: 7px; }
+ &.datepicker-orient-bottom:before { top: -7px; }
+ &.datepicker-orient-bottom:after { top: -6px; }
+ &.datepicker-orient-top:before {
+ bottom: -7px;
+ border-bottom: 0;
+ border-top: 7px solid @dropdown-border;
+ }
+ &.datepicker-orient-top:after {
+ bottom: -6px;
+ border-bottom: 0;
+ border-top: 6px solid @dropdown-bg;
+ }
+ }
+ table {
+ margin: 0;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ tr {
+ td, th {
+ text-align: center;
+ width: 30px;
+ height: 30px;
+ border-radius: 4px;
+ border: none;
+ }
+ }
+ }
+ // Inline display inside a table presents some problems with
+ // border and background colors.
+ .table-striped & table tr {
+ td, th {
+ background-color: transparent;
+ }
+ }
+ table tr td {
+ &.old,
+ &.new {
+ color: @btn-link-disabled-color;
+ }
+ &.day:hover,
+ &.focused {
+ background: @gray-lighter;
+ cursor: pointer;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: @btn-link-disabled-color;
+ cursor: default;
+ }
+ &.highlighted {
+ @highlighted-bg: @state-info-bg;
+ .button-variant(#000, @highlighted-bg, darken(@highlighted-bg, 20%));
+ border-radius: 0;
+
+ &.focused {
+ background: darken(@highlighted-bg, 10%);
+ }
+
+ &.disabled,
+ &.disabled:active {
+ background: @highlighted-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.today {
+ @today-bg: lighten(orange, 30%);
+ .button-variant(#000, @today-bg, darken(@today-bg, 20%));
+
+ &.focused {
+ background: darken(@today-bg, 10%);
+ }
+
+ &.disabled,
+ &.disabled:active {
+ background: @today-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.range {
+ @range-bg: @gray-lighter;
+ .button-variant(#000, @range-bg, darken(@range-bg, 20%));
+ border-radius: 0;
+
+ &.focused {
+ background: darken(@range-bg, 10%);
+ }
+
+ &.disabled,
+ &.disabled:active {
+ background: @range-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.range.highlighted {
+ @range-highlighted-bg: mix(@state-info-bg, @gray-lighter, 50%);
+ .button-variant(#000, @range-highlighted-bg, darken(@range-highlighted-bg, 20%));
+
+ &.focused {
+ background: darken(@range-highlighted-bg, 10%);
+ }
+
+ &.disabled,
+ &.disabled:active {
+ background: @range-highlighted-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.range.today {
+ @range-today-bg: mix(orange, @gray-lighter, 50%);
+ .button-variant(#000, @range-today-bg, darken(@range-today-bg, 20%));
+
+ &.disabled,
+ &.disabled:active {
+ background: @range-today-bg;
+ color: @btn-link-disabled-color;
+ }
+ }
+ &.selected,
+ &.selected.highlighted {
+ .button-variant(#fff, @gray-light, @gray);
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.active,
+ &.active.highlighted {
+ .button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ border-radius: 4px;
+ &:hover,
+ &.focused {
+ background: @gray-lighter;
+ }
+ &.disabled,
+ &.disabled:hover {
+ background: none;
+ color: @btn-link-disabled-color;
+ cursor: default;
+ }
+ &.active,
+ &.active:hover,
+ &.active.disabled,
+ &.active.disabled:hover {
+ .button-variant(@btn-primary-color, @btn-primary-bg, @btn-primary-border);
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+ &.old,
+ &.new {
+ color: @btn-link-disabled-color;
+ }
+ }
+ }
+
+ .datepicker-switch {
+ width: 145px;
+ }
+
+ .datepicker-switch,
+ .prev,
+ .next,
+ tfoot tr th {
+ cursor: pointer;
+ &:hover {
+ background: @gray-lighter;
+ }
+ }
+
+ .prev, .next {
+ &.disabled {
+ visibility: hidden;
+ }
+ }
+
+ // Basic styling for calendar-week cells
+ .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+ }
+}
+.input-group.date .input-group-addon {
+ cursor: pointer;
+}
+.input-daterange {
+ width: 100%;
+ input {
+ text-align: center;
+ }
+ input:first-child {
+ border-radius: 3px 0 0 3px;
+ }
+ input:last-child {
+ border-radius: 0 3px 3px 0;
+ }
+ .input-group-addon {
+ width: auto;
+ min-width: 16px;
+ padding: 4px 5px;
+ line-height: @line-height-base;
+ border-width: 1px 0;
+ margin-left: -5px;
+ margin-right: -5px;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap-select/bootstrap-select.less b/dist/less/dependencies/bootstrap-select/bootstrap-select.less
new file mode 100644
index 0000000000..73a5db7dfb
--- /dev/null
+++ b/dist/less/dependencies/bootstrap-select/bootstrap-select.less
@@ -0,0 +1,371 @@
+@import "variables";
+
+// Mixins
+.cursor-disabled() {
+ cursor: not-allowed;
+}
+
+// Rules
+select.bs-select-hidden,
+select.selectpicker {
+ display: none !important;
+}
+
+.bootstrap-select {
+ width: 220px \0; /*IE9 and below*/
+
+ // The selectpicker button
+ > .dropdown-toggle {
+ width: 100%;
+ padding-right: 25px;
+ z-index: 1;
+
+ &.bs-placeholder,
+ &.bs-placeholder:hover,
+ &.bs-placeholder:focus,
+ &.bs-placeholder:active { color: @input-color-placeholder; }
+ }
+
+ > select {
+ position: absolute !important;
+ bottom: 0;
+ left: 50%;
+ display: block !important;
+ width: 0.5px !important;
+ height: 100% !important;
+ padding: 0 !important;
+ opacity: 0 !important;
+ border: none;
+
+ &.mobile-device {
+ top: 0;
+ left: 0;
+ display: block !important;
+ width: 100% !important;
+ z-index: 2;
+ }
+ }
+
+ // Error display
+ .has-error & .dropdown-toggle,
+ .error & .dropdown-toggle {
+ border-color: @color-red-error;
+ }
+
+ &.fit-width {
+ width: auto !important;
+ }
+
+ &:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) {
+ width: @width-default;
+ }
+
+ .dropdown-toggle:focus {
+ outline: thin dotted #333333 !important;
+ outline: 5px auto -webkit-focus-ring-color !important;
+ outline-offset: -2px;
+ }
+}
+
+.bootstrap-select.form-control {
+ margin-bottom: 0;
+ padding: 0;
+ border: none;
+
+ &:not([class*="col-"]) {
+ width: 100%;
+ }
+
+ &.input-group-btn {
+ z-index: auto;
+
+ &:not(:first-child):not(:last-child) {
+ > .btn {
+ border-radius: 0;
+ }
+ }
+ }
+}
+
+// The selectpicker components
+.bootstrap-select.btn-group {
+ &:not(.input-group-btn),
+ &[class*="col-"] {
+ float: none;
+ display: inline-block;
+ margin-left: 0;
+ }
+
+ // Forces the pull to the right, if necessary
+ &,
+ &[class*="col-"],
+ .row &[class*="col-"] {
+ &.dropdown-menu-right {
+ float: right;
+ }
+ }
+
+ .form-inline &,
+ .form-horizontal &,
+ .form-group & {
+ margin-bottom: 0;
+ }
+
+ .form-group-lg &.form-control,
+ .form-group-sm &.form-control {
+ padding: 0;
+
+ .dropdown-toggle {
+ height: 100%;
+ font-size: inherit;
+ line-height: inherit;
+ border-radius: inherit;
+ }
+ }
+
+ // Set the width of the live search (and any other form control within an inline form)
+ // see https://github.com/silviomoreto/bootstrap-select/issues/685
+ .form-inline & .form-control {
+ width: 100%;
+ }
+
+ &.disabled,
+ > .disabled {
+ .cursor-disabled();
+
+ &:focus {
+ outline: none !important;
+ }
+ }
+
+ &.bs-container {
+ position: absolute;
+ height: 0 !important;
+ padding: 0 !important;
+
+ .dropdown-menu {
+ z-index: @zindex-select-dropdown;
+ }
+ }
+
+ // The selectpicker button
+ .dropdown-toggle {
+ .filter-option {
+ display: inline-block;
+ overflow: hidden;
+ width: 100%;
+ text-align: left;
+ }
+
+ .caret {
+ position: absolute;
+ top: 50%;
+ right: 12px;
+ margin-top: -2px;
+ vertical-align: middle;
+ }
+ }
+
+ &[class*="col-"] .dropdown-toggle {
+ width: 100%;
+ }
+
+ // The selectpicker dropdown
+ .dropdown-menu {
+ min-width: 100%;
+ box-sizing: border-box;
+
+ &.inner {
+ position: static;
+ float: none;
+ border: 0;
+ padding: 0;
+ margin: 0;
+ border-radius: 0;
+ box-shadow: none;
+ }
+
+ li {
+ position: relative;
+
+ &.active small {
+ color: #fff;
+ }
+
+ &.disabled a {
+ .cursor-disabled();
+ }
+
+ a {
+ cursor: pointer;
+ user-select: none;
+
+ &.opt {
+ position: relative;
+ padding-left: 2.25em;
+ }
+
+ span.check-mark {
+ display: none;
+ }
+
+ span.text {
+ display: inline-block;
+ }
+ }
+
+ small {
+ padding-left: 0.5em;
+ }
+ }
+
+ .notify {
+ position: absolute;
+ bottom: 5px;
+ width: 96%;
+ margin: 0 2%;
+ min-height: 26px;
+ padding: 3px 5px;
+ background: rgb(245, 245, 245);
+ border: 1px solid rgb(227, 227, 227);
+ box-shadow: inset 0 1px 1px fade(rgb(0, 0, 0), 5%);
+ pointer-events: none;
+ opacity: 0.9;
+ box-sizing: border-box;
+ }
+ }
+
+ .no-results {
+ padding: 3px;
+ background: #f5f5f5;
+ margin: 0 5px;
+ white-space: nowrap;
+ }
+
+ &.fit-width .dropdown-toggle {
+ .filter-option {
+ position: static;
+ }
+
+ .caret {
+ position: static;
+ top: auto;
+ margin-top: -1px;
+ }
+ }
+
+ &.show-tick .dropdown-menu li {
+ &.selected a span.check-mark {
+ position: absolute;
+ display: inline-block;
+ right: 15px;
+ margin-top: 5px;
+ }
+
+ a span.text {
+ margin-right: 34px;
+ }
+ }
+}
+
+.bootstrap-select.show-menu-arrow {
+ &.open > .dropdown-toggle {
+ z-index: (@zindex-select-dropdown + 1);
+ }
+
+ .dropdown-toggle {
+ &:before {
+ content: '';
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid @color-grey-arrow;
+ position: absolute;
+ bottom: -4px;
+ left: 9px;
+ display: none;
+ }
+
+ &:after {
+ content: '';
+ border-left: 6px solid transparent;
+ border-right: 6px solid transparent;
+ border-bottom: 6px solid white;
+ position: absolute;
+ bottom: -4px;
+ left: 10px;
+ display: none;
+ }
+ }
+
+ &.dropup .dropdown-toggle {
+ &:before {
+ bottom: auto;
+ top: -3px;
+ border-top: 7px solid @color-grey-arrow;
+ border-bottom: 0;
+ }
+
+ &:after {
+ bottom: auto;
+ top: -3px;
+ border-top: 6px solid white;
+ border-bottom: 0;
+ }
+ }
+
+ &.pull-right .dropdown-toggle {
+ &:before {
+ right: 12px;
+ left: auto;
+ }
+
+ &:after {
+ right: 13px;
+ left: auto;
+ }
+ }
+
+ &.open > .dropdown-toggle {
+ &:before,
+ &:after {
+ display: block;
+ }
+ }
+}
+
+.bs-searchbox,
+.bs-actionsbox,
+.bs-donebutton {
+ padding: 4px 8px;
+}
+
+.bs-actionsbox {
+ width: 100%;
+ box-sizing: border-box;
+
+ & .btn-group button {
+ width: 50%;
+ }
+}
+
+.bs-donebutton {
+ float: left;
+ width: 100%;
+ box-sizing: border-box;
+
+ & .btn-group button {
+ width: 100%;
+ }
+}
+
+.bs-searchbox {
+ & + .bs-actionsbox {
+ padding: 0 8px 4px;
+ }
+
+ & .form-control {
+ margin-bottom: 0;
+ width: 100%;
+ float: none;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap-select/variables.less b/dist/less/dependencies/bootstrap-select/variables.less
new file mode 100644
index 0000000000..2bcf6b367e
--- /dev/null
+++ b/dist/less/dependencies/bootstrap-select/variables.less
@@ -0,0 +1,9 @@
+@color-red-error: rgb(185, 74, 72);
+@color-grey-arrow: rgba(204, 204, 204, 0.2);
+
+@width-default: 220px; // 3 960px-grid columns
+
+@zindex-select-dropdown: 1060; // must be higher than a modal background (1050)
+
+//** Placeholder text color
+@input-color-placeholder: #999;
\ No newline at end of file
diff --git a/dist/less/dependencies/bootstrap-slider/bootstrap-slider.less b/dist/less/dependencies/bootstrap-slider/bootstrap-slider.less
new file mode 100644
index 0000000000..fb0241b7de
--- /dev/null
+++ b/dist/less/dependencies/bootstrap-slider/bootstrap-slider.less
@@ -0,0 +1,44 @@
+/*! =========================================================
+ * bootstrap-slider.js
+ *
+ * Maintainers:
+ * Kyle Kemp
+ * - Twitter: @seiyria
+ * - Github: seiyria
+ * Rohit Kalkur
+ * - Twitter: @Rovolutionary
+ * - Github: rovolution
+ *
+ * =========================================================
+ *
+ * bootstrap-slider is released under the MIT License
+ * Copyright (c) 2017 Kyle Kemp, Rohit Kalkur, and contributors
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * ========================================================= */
+
+@import '../../node_modules/bootstrap/less/variables.less'; // Bootstrap variables
+@import '../../node_modules/bootstrap/less/mixins.less'; // Bootstrap mixins
+
+@import 'variables.less'; // slider-specific variables
+@import 'rules.less'; // slider-specific rules
\ No newline at end of file
diff --git a/dist/less/dependencies/bootstrap-slider/rules.less b/dist/less/dependencies/bootstrap-slider/rules.less
new file mode 100644
index 0000000000..efd5f014d9
--- /dev/null
+++ b/dist/less/dependencies/bootstrap-slider/rules.less
@@ -0,0 +1,234 @@
+.slider {
+ display: inline-block;
+ vertical-align: middle;
+ position: relative;
+ &.slider-horizontal {
+ width: @slider-horizontal-width;
+ height: @slider-line-height;
+ .slider-track {
+ height: (@slider-line-height/2);
+ width: 100%;
+ margin-top: (-@slider-line-height/4);
+ top: 50%;
+ left: 0;
+ }
+ .slider-selection, .slider-track-low, .slider-track-high {
+ height: 100%;
+ top: 0;
+ bottom: 0;
+ }
+ .slider-tick,
+ .slider-handle {
+ margin-left: (-@slider-line-height/2);
+ &.triangle {
+ position: relative;
+ top: 50%;
+ transform: translateY(-50%);
+ border-width: 0 (@slider-line-height/2) (@slider-line-height/2) (@slider-line-height/2);
+ width: 0;
+ height: 0;
+ border-bottom-color: @slider-primary-bottom;
+ margin-top: 0;
+ }
+ }
+ .slider-tick-container {
+ white-space: nowrap;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ }
+ .slider-tick-label-container {
+ white-space: nowrap;
+ margin-top: @slider-line-height;
+
+ .slider-tick-label {
+ padding-top: @slider-line-height * .2;
+ display: inline-block;
+ text-align: center;
+ }
+ }
+ &.slider-rtl {
+ .slider-track {
+ left: initial;
+ right: 0;
+ }
+ .slider-tick,
+ .slider-handle {
+ margin-left: initial;
+ margin-right: (-@slider-line-height/2);
+ }
+ .slider-tick-container {
+ left: initial;
+ right: 0;
+ }
+ }
+ }
+ &.slider-vertical {
+ height: @slider-vertical-height;
+ width: @slider-line-height;
+ .slider-track {
+ width: (@slider-line-height/2);
+ height: 100%;
+ left: 25%;
+ top: 0;
+ }
+ .slider-selection {
+ width: 100%;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ }
+ .slider-track-low, .slider-track-high {
+ width: 100%;
+ left: 0;
+ right: 0;
+ }
+ .slider-tick,
+ .slider-handle {
+ margin-top: (-@slider-line-height/2);
+ &.triangle {
+ border-width: (@slider-line-height/2) 0 (@slider-line-height/2) (@slider-line-height/2);
+ width: 1px;
+ height: 1px;
+ border-left-color: @slider-primary-bottom;
+ border-right-color: @slider-primary-bottom;
+ margin-left: 0;
+ margin-right: 0;
+ }
+ }
+ .slider-tick-label-container {
+ white-space: nowrap;
+
+ .slider-tick-label {
+ padding-left: @slider-line-height * .2;
+ }
+ }
+
+ &.slider-rtl {
+ .slider-track {
+ left: initial;
+ right: 25%;
+ }
+ .slider-selection {
+ left: initial;
+ right: 0;
+ }
+ .slider-tick,
+ .slider-handle {
+ &.triangle {
+ border-width: (@slider-line-height/2) (@slider-line-height/2) (@slider-line-height/2) 0;
+ }
+ }
+ .slider-tick-label-container {
+ .slider-tick-label {
+ padding-left: initial;
+ padding-right: @slider-line-height * .2;
+ }
+ }
+ }
+ }
+ &.slider-disabled {
+ .slider-handle {
+ #gradient > .vertical(@slider-gray-2, @slider-gray-1);
+ }
+ .slider-track {
+ #gradient > .vertical(@slider-gray-3, @slider-gray-4);
+ cursor: not-allowed;
+ }
+ }
+ input {
+ display: none;
+ }
+ .tooltip {
+ &.top {
+ margin-top: -36px;
+ }
+ }
+ .tooltip-inner {
+ white-space: nowrap;
+ max-width: none;
+ }
+ .hide {
+ display: none;
+ }
+}
+.slider-track {
+ position: absolute;
+ cursor: pointer;
+ #gradient > .vertical(@slider-gray-5, @slider-gray-6);
+ .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
+ border-radius: @border-radius-base;
+}
+.slider-selection {
+ position: absolute;
+ #gradient > .vertical(@slider-gray-6, @slider-gray-5);
+ .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
+ .box-sizing(border-box);
+ border-radius: @border-radius-base;
+}
+.slider-selection.tick-slider-selection {
+ #gradient > .vertical(@slider-secondary-top, @slider-secondary-bottom);
+}
+.slider-track-low, .slider-track-high {
+ position: absolute;
+ background: transparent;
+ .box-sizing(border-box);
+ border-radius: @border-radius-base;
+}
+.slider-handle {
+ position: absolute;
+ top: 0;
+ width: @slider-line-height;
+ height: @slider-line-height;
+ background-color: @slider-primary;
+ #gradient > .vertical(@slider-primary-top, @slider-primary-bottom);
+ filter: none;
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
+ border: 0px solid transparent;
+ &.round {
+ border-radius: 50%;
+ }
+ &.triangle {
+ background: transparent none;
+ }
+ &.custom {
+ background: transparent none;
+ &::before{
+ line-height: @slider-line-height;
+ font-size: 20px;
+ content: '\2605'; //unicode star character
+ color: @slider-unicode-color;
+ }
+ }
+}
+.slider-tick {
+ position: absolute;
+ width: @slider-line-height;
+ height: @slider-line-height;
+ #gradient.vertical(@slider-gray-6, @slider-gray-5);
+ .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
+ .box-sizing(border-box);
+ filter: none;
+ opacity: 0.8;
+ border: 0px solid transparent;
+ &.round {
+ border-radius: 50%;
+ }
+ &.triangle {
+ background: transparent none;
+ }
+ &.custom {
+ background: transparent none;
+ &::before{
+ line-height: @slider-line-height;
+ font-size: 20px;
+ content: '\2605'; //unicode star character
+ color: @slider-unicode-color;
+ }
+ }
+ &.in-selection {
+ #gradient > .vertical(@slider-secondary-top, @slider-secondary-bottom);
+ opacity: 1;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap-slider/variables.less b/dist/less/dependencies/bootstrap-slider/variables.less
new file mode 100644
index 0000000000..d874fdc739
--- /dev/null
+++ b/dist/less/dependencies/bootstrap-slider/variables.less
@@ -0,0 +1,22 @@
+@slider-line-height: @line-height-computed;
+@slider-horizontal-width: 210px;
+@slider-vertical-height: 210px;
+
+// Primary colors
+// @brand-primary is set in ../../node_modules/bootstrap/less/variables.less and evaluates to #337ab7
+@slider-primary: @brand-primary;
+@slider-primary-top: @slider-primary;
+@slider-primary-bottom: darken(@slider-primary, 5%);
+@slider-secondary-top: saturate(lighten(@slider-primary, 28%), 20%);
+@slider-secondary-bottom: saturate(lighten(@slider-primary, 23%), 2%);
+
+// grays for slider channel and disabled states
+@slider-gray-1: #BEBEBE;
+@slider-gray-2: #DFDFDF;
+@slider-gray-3: #E5E5E5;
+@slider-gray-4: #E9E9E9;
+@slider-gray-5: #F5F5F5;
+@slider-gray-6: #F9F9F9;
+
+// unicode color for demo page
+@slider-unicode-color: #726204;
\ No newline at end of file
diff --git a/dist/less/dependencies/bootstrap-touchspin/jquery.bootstrap-touchspin.css b/dist/less/dependencies/bootstrap-touchspin/jquery.bootstrap-touchspin.css
new file mode 100644
index 0000000000..09df6c267c
--- /dev/null
+++ b/dist/less/dependencies/bootstrap-touchspin/jquery.bootstrap-touchspin.css
@@ -0,0 +1,45 @@
+/*
+ * Bootstrap TouchSpin - v3.1.1
+ * A mobile and touch friendly input spinner component for Bootstrap 3.
+ * http://www.virtuosoft.eu/code/bootstrap-touchspin/
+ *
+ * Made by István Ujj-Mészáros
+ * Under Apache License v2.0 License
+ */
+
+.bootstrap-touchspin .input-group-btn-vertical {
+ position: relative;
+ white-space: nowrap;
+ width: 1%;
+ vertical-align: middle;
+ display: table-cell;
+}
+
+.bootstrap-touchspin .input-group-btn-vertical > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+ padding: 8px 10px;
+ margin-left: -1px;
+ position: relative;
+}
+
+.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up {
+ border-radius: 0;
+ border-top-right-radius: 4px;
+}
+
+.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down {
+ margin-top: -2px;
+ border-radius: 0;
+ border-bottom-right-radius: 4px;
+}
+
+.bootstrap-touchspin .input-group-btn-vertical i {
+ position: absolute;
+ top: 3px;
+ left: 5px;
+ font-size: 9px;
+ font-weight: normal;
+}
diff --git a/dist/less/dependencies/bootstrap/alerts.less b/dist/less/dependencies/bootstrap/alerts.less
new file mode 100644
index 0000000000..c4199db927
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/alerts.less
@@ -0,0 +1,73 @@
+//
+// Alerts
+// --------------------------------------------------
+
+
+// Base styles
+// -------------------------
+
+.alert {
+ padding: @alert-padding;
+ margin-bottom: @line-height-computed;
+ border: 1px solid transparent;
+ border-radius: @alert-border-radius;
+
+ // Headings for larger alerts
+ h4 {
+ margin-top: 0;
+ // Specified for the h4 to prevent conflicts of changing @headings-color
+ color: inherit;
+ }
+
+ // Provide class for links that match alerts
+ .alert-link {
+ font-weight: @alert-link-font-weight;
+ }
+
+ // Improve alignment and spacing of inner content
+ > p,
+ > ul {
+ margin-bottom: 0;
+ }
+
+ > p + p {
+ margin-top: 5px;
+ }
+}
+
+// Dismissible alerts
+//
+// Expand the right padding and account for the close button's positioning.
+
+.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
+.alert-dismissible {
+ padding-right: (@alert-padding + 20);
+
+ // Adjust close link position
+ .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+ }
+}
+
+// Alternate styles
+//
+// Generate contextual modifier classes for colorizing the alert.
+
+.alert-success {
+ .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
+}
+
+.alert-info {
+ .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
+}
+
+.alert-warning {
+ .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
+}
+
+.alert-danger {
+ .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
+}
diff --git a/dist/less/dependencies/bootstrap/badges.less b/dist/less/dependencies/bootstrap/badges.less
new file mode 100644
index 0000000000..6ee16dca41
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/badges.less
@@ -0,0 +1,66 @@
+//
+// Badges
+// --------------------------------------------------
+
+
+// Base class
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: @font-size-small;
+ font-weight: @badge-font-weight;
+ color: @badge-color;
+ line-height: @badge-line-height;
+ vertical-align: middle;
+ white-space: nowrap;
+ text-align: center;
+ background-color: @badge-bg;
+ border-radius: @badge-border-radius;
+
+ // Empty badges collapse automatically (not available in IE8)
+ &:empty {
+ display: none;
+ }
+
+ // Quick fix for badges in buttons
+ .btn & {
+ position: relative;
+ top: -1px;
+ }
+
+ .btn-xs &,
+ .btn-group-xs > .btn & {
+ top: 0;
+ padding: 1px 5px;
+ }
+
+ // Hover state, but only for links
+ a& {
+ &:hover,
+ &:focus {
+ color: @badge-link-hover-color;
+ text-decoration: none;
+ cursor: pointer;
+ }
+ }
+
+ // Account for badges in navs
+ .list-group-item.active > &,
+ .nav-pills > .active > a > & {
+ color: @badge-active-color;
+ background-color: @badge-active-bg;
+ }
+
+ .list-group-item > & {
+ float: right;
+ }
+
+ .list-group-item > & + & {
+ margin-right: 5px;
+ }
+
+ .nav-pills > li > a > & {
+ margin-left: 3px;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap/bootstrap.less b/dist/less/dependencies/bootstrap/bootstrap.less
new file mode 100644
index 0000000000..f0aa08f3a6
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/bootstrap.less
@@ -0,0 +1,56 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+// Core variables and mixins
+@import "variables.less";
+@import "mixins.less";
+
+// Reset and dependencies
+@import "normalize.less";
+@import "print.less";
+@import "glyphicons.less";
+
+// Core CSS
+@import "scaffolding.less";
+@import "type.less";
+@import "code.less";
+@import "grid.less";
+@import "tables.less";
+@import "forms.less";
+@import "buttons.less";
+
+// Components
+@import "component-animations.less";
+@import "dropdowns.less";
+@import "button-groups.less";
+@import "input-groups.less";
+@import "navs.less";
+@import "navbar.less";
+@import "breadcrumbs.less";
+@import "pagination.less";
+@import "pager.less";
+@import "labels.less";
+@import "badges.less";
+@import "jumbotron.less";
+@import "thumbnails.less";
+@import "alerts.less";
+@import "progress-bars.less";
+@import "media.less";
+@import "list-group.less";
+@import "panels.less";
+@import "responsive-embed.less";
+@import "wells.less";
+@import "close.less";
+
+// Components w/ JavaScript
+@import "modals.less";
+@import "tooltip.less";
+@import "popovers.less";
+@import "carousel.less";
+
+// Utility classes
+@import "utilities.less";
+@import "responsive-utilities.less";
diff --git a/dist/less/dependencies/bootstrap/breadcrumbs.less b/dist/less/dependencies/bootstrap/breadcrumbs.less
new file mode 100644
index 0000000000..cb01d503fb
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/breadcrumbs.less
@@ -0,0 +1,26 @@
+//
+// Breadcrumbs
+// --------------------------------------------------
+
+
+.breadcrumb {
+ padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
+ margin-bottom: @line-height-computed;
+ list-style: none;
+ background-color: @breadcrumb-bg;
+ border-radius: @border-radius-base;
+
+ > li {
+ display: inline-block;
+
+ + li:before {
+ content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
+ padding: 0 5px;
+ color: @breadcrumb-color;
+ }
+ }
+
+ > .active {
+ color: @breadcrumb-active-color;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap/button-groups.less b/dist/less/dependencies/bootstrap/button-groups.less
new file mode 100644
index 0000000000..16db0c6135
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/button-groups.less
@@ -0,0 +1,244 @@
+//
+// Button groups
+// --------------------------------------------------
+
+// Make the div behave like a button
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle; // match .btn alignment given font-size hack above
+ > .btn {
+ position: relative;
+ float: left;
+ // Bring the "active" button to the front
+ &:hover,
+ &:focus,
+ &:active,
+ &.active {
+ z-index: 2;
+ }
+ }
+}
+
+// Prevent double borders when buttons are next to each other
+.btn-group {
+ .btn + .btn,
+ .btn + .btn-group,
+ .btn-group + .btn,
+ .btn-group + .btn-group {
+ margin-left: -1px;
+ }
+}
+
+// Optional: Group multiple button groups together for a toolbar
+.btn-toolbar {
+ margin-left: -5px; // Offset the first child's margin
+ &:extend(.clearfix all);
+
+ .btn,
+ .btn-group,
+ .input-group {
+ float: left;
+ }
+ > .btn,
+ > .btn-group,
+ > .input-group {
+ margin-left: 5px;
+ }
+}
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+
+// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
+.btn-group > .btn:first-child {
+ margin-left: 0;
+ &:not(:last-child):not(.dropdown-toggle) {
+ .border-right-radius(0);
+ }
+}
+// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ .border-left-radius(0);
+}
+
+// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
+.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:not(:last-child) {
+ > .btn:last-child,
+ > .dropdown-toggle {
+ .border-right-radius(0);
+ }
+}
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ .border-left-radius(0);
+}
+
+// On active and open, don't show outline
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+
+
+// Sizing
+//
+// Remix the default button sizing classes into new ones for easier manipulation.
+
+.btn-group-xs > .btn { &:extend(.btn-xs); }
+.btn-group-sm > .btn { &:extend(.btn-sm); }
+.btn-group-lg > .btn { &:extend(.btn-lg); }
+
+
+// Split button dropdowns
+// ----------------------
+
+// Give the line between buttons some depth
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+.btn-group > .btn-lg + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+
+// The clickable button for toggling the menu
+// Remove the gradient and set the same inset shadow as the :active state
+.btn-group.open .dropdown-toggle {
+ .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+
+ // Show no shadow for `.btn-link` since it has no other button styles.
+ &.btn-link {
+ .box-shadow(none);
+ }
+}
+
+
+// Reposition the caret
+.btn .caret {
+ margin-left: 0;
+}
+// Carets in other button sizes
+.btn-lg .caret {
+ border-width: @caret-width-large @caret-width-large 0;
+ border-bottom-width: 0;
+}
+// Upside down carets for .dropup
+.dropup .btn-lg .caret {
+ border-width: 0 @caret-width-large @caret-width-large;
+}
+
+
+// Vertical button groups
+// ----------------------
+
+.btn-group-vertical {
+ > .btn,
+ > .btn-group,
+ > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+ }
+
+ // Clear floats so dropdown menus can be properly placed
+ > .btn-group {
+ &:extend(.clearfix all);
+ > .btn {
+ float: none;
+ }
+ }
+
+ > .btn + .btn,
+ > .btn + .btn-group,
+ > .btn-group + .btn,
+ > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+ }
+}
+
+.btn-group-vertical > .btn {
+ &:not(:first-child):not(:last-child) {
+ border-radius: 0;
+ }
+ &:first-child:not(:last-child) {
+ .border-top-radius(@btn-border-radius-base);
+ .border-bottom-radius(0);
+ }
+ &:last-child:not(:first-child) {
+ .border-top-radius(0);
+ .border-bottom-radius(@btn-border-radius-base);
+ }
+}
+.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,
+ > .dropdown-toggle {
+ .border-bottom-radius(0);
+ }
+}
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ .border-top-radius(0);
+}
+
+
+// Justified button groups
+// ----------------------
+
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+ > .btn,
+ > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%;
+ }
+ > .btn-group .btn {
+ width: 100%;
+ }
+
+ > .btn-group .dropdown-menu {
+ left: auto;
+ }
+}
+
+
+// Checkbox and radio options
+//
+// In order to support the browser's form validation feedback, powered by the
+// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
+// `display: none;` or `visibility: hidden;` as that also hides the popover.
+// Simply visually hiding the inputs via `opacity` would leave them clickable in
+// certain cases which is prevented by using `clip` and `pointer-events`.
+// This way, we ensure a DOM element is visible to position the popover from.
+//
+// See https://github.com/twbs/bootstrap/pull/12794 and
+// https://github.com/twbs/bootstrap/pull/14559 for more information.
+
+[data-toggle="buttons"] {
+ > .btn,
+ > .btn-group > .btn {
+ input[type="radio"],
+ input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0,0,0,0);
+ pointer-events: none;
+ }
+ }
+}
diff --git a/dist/less/dependencies/bootstrap/buttons.less b/dist/less/dependencies/bootstrap/buttons.less
new file mode 100644
index 0000000000..9cbb8f416f
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/buttons.less
@@ -0,0 +1,166 @@
+//
+// Buttons
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+.btn {
+ display: inline-block;
+ margin-bottom: 0; // For input.btn
+ font-weight: @btn-font-weight;
+ text-align: center;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+ border: 1px solid transparent;
+ white-space: nowrap;
+ .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);
+ .user-select(none);
+
+ &,
+ &:active,
+ &.active {
+ &:focus,
+ &.focus {
+ .tab-focus();
+ }
+ }
+
+ &:hover,
+ &:focus,
+ &.focus {
+ color: @btn-default-color;
+ text-decoration: none;
+ }
+
+ &:active,
+ &.active {
+ outline: 0;
+ background-image: none;
+ .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+ }
+
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ cursor: @cursor-disabled;
+ .opacity(.65);
+ .box-shadow(none);
+ }
+
+ a& {
+ &.disabled,
+ fieldset[disabled] & {
+ pointer-events: none; // Future-proof disabling of clicks on `` elements
+ }
+ }
+}
+
+
+// Alternate buttons
+// --------------------------------------------------
+
+.btn-default {
+ .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);
+}
+.btn-primary {
+ .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
+}
+// Success appears as green
+.btn-success {
+ .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);
+}
+// Info appears as blue-green
+.btn-info {
+ .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);
+}
+// Warning appears as orange
+.btn-warning {
+ .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
+}
+// Danger and error appear as red
+.btn-danger {
+ .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
+}
+
+
+// Link buttons
+// -------------------------
+
+// Make a button look and behave like a link
+.btn-link {
+ color: @link-color;
+ font-weight: normal;
+ border-radius: 0;
+
+ &,
+ &:active,
+ &.active,
+ &[disabled],
+ fieldset[disabled] & {
+ background-color: transparent;
+ .box-shadow(none);
+ }
+ &,
+ &:hover,
+ &:focus,
+ &:active {
+ border-color: transparent;
+ }
+ &:hover,
+ &:focus {
+ color: @link-hover-color;
+ text-decoration: @link-hover-decoration;
+ background-color: transparent;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: @btn-link-disabled-color;
+ text-decoration: none;
+ }
+ }
+}
+
+
+// Button Sizes
+// --------------------------------------------------
+
+.btn-lg {
+ // line-height: ensure even-numbered height of button next to large input
+ .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);
+}
+.btn-sm {
+ // line-height: ensure proper height of button next to small input
+ .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
+}
+.btn-xs {
+ .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
+}
+
+
+// Block button
+// --------------------------------------------------
+
+.btn-block {
+ display: block;
+ width: 100%;
+}
+
+// Vertically space out multiple block buttons
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+
+// Specificity overrides
+input[type="submit"],
+input[type="reset"],
+input[type="button"] {
+ &.btn-block {
+ width: 100%;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap/carousel.less b/dist/less/dependencies/bootstrap/carousel.less
new file mode 100644
index 0000000000..252011e9e2
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/carousel.less
@@ -0,0 +1,270 @@
+//
+// Carousel
+// --------------------------------------------------
+
+
+// Wrapper for the slide container and indicators
+.carousel {
+ position: relative;
+}
+
+.carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+
+ > .item {
+ display: none;
+ position: relative;
+ .transition(.6s ease-in-out left);
+
+ // Account for jankitude on images
+ > img,
+ > a > img {
+ &:extend(.img-responsive);
+ line-height: 1;
+ }
+
+ // WebKit CSS3 transforms for supported devices
+ @media all and (transform-3d), (-webkit-transform-3d) {
+ .transition-transform(~'0.6s ease-in-out');
+ .backface-visibility(~'hidden');
+ .perspective(1000px);
+
+ &.next,
+ &.active.right {
+ .translate3d(100%, 0, 0);
+ left: 0;
+ }
+ &.prev,
+ &.active.left {
+ .translate3d(-100%, 0, 0);
+ left: 0;
+ }
+ &.next.left,
+ &.prev.right,
+ &.active {
+ .translate3d(0, 0, 0);
+ left: 0;
+ }
+ }
+ }
+
+ > .active,
+ > .next,
+ > .prev {
+ display: block;
+ }
+
+ > .active {
+ left: 0;
+ }
+
+ > .next,
+ > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+
+ > .next {
+ left: 100%;
+ }
+ > .prev {
+ left: -100%;
+ }
+ > .next.left,
+ > .prev.right {
+ left: 0;
+ }
+
+ > .active.left {
+ left: -100%;
+ }
+ > .active.right {
+ left: 100%;
+ }
+
+}
+
+// Left/right controls for nav
+// ---------------------------
+
+.carousel-control {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: @carousel-control-width;
+ .opacity(@carousel-control-opacity);
+ font-size: @carousel-control-font-size;
+ color: @carousel-control-color;
+ text-align: center;
+ text-shadow: @carousel-text-shadow;
+ background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug
+ // We can't have this transition here because WebKit cancels the carousel
+ // animation if you trip this while in the middle of another animation.
+
+ // Set gradients for backgrounds
+ &.left {
+ #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
+ }
+ &.right {
+ left: auto;
+ right: 0;
+ #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
+ }
+
+ // Hover/focus state
+ &:hover,
+ &:focus {
+ outline: 0;
+ color: @carousel-control-color;
+ text-decoration: none;
+ .opacity(.9);
+ }
+
+ // Toggles
+ .icon-prev,
+ .icon-next,
+ .glyphicon-chevron-left,
+ .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ margin-top: -10px;
+ z-index: 5;
+ display: inline-block;
+ }
+ .icon-prev,
+ .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px;
+ }
+ .icon-next,
+ .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px;
+ }
+ .icon-prev,
+ .icon-next {
+ width: 20px;
+ height: 20px;
+ line-height: 1;
+ font-family: serif;
+ }
+
+
+ .icon-prev {
+ &:before {
+ content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
+ }
+ }
+ .icon-next {
+ &:before {
+ content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
+ }
+ }
+}
+
+// Optional indicator pips
+//
+// Add an unordered list with the following class and add a list item for each
+// slide your carousel holds.
+
+.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;
+
+ li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid @carousel-indicator-border-color;
+ border-radius: 10px;
+ cursor: pointer;
+
+ // IE8-9 hack for event handling
+ //
+ // Internet Explorer 8-9 does not support clicks on elements without a set
+ // `background-color`. We cannot use `filter` since that's not viewed as a
+ // background color by the browser. Thus, a hack is needed.
+ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer
+ //
+ // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
+ // set alpha transparency for the best results possible.
+ background-color: #000 \9; // IE8
+ background-color: rgba(0,0,0,0); // IE9
+ }
+ .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: @carousel-indicator-active-bg;
+ }
+}
+
+// Optional captions
+// -----------------------------
+// Hidden by default for smaller viewports
+.carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: @carousel-caption-color;
+ text-align: center;
+ text-shadow: @carousel-text-shadow;
+ & .btn {
+ text-shadow: none; // No shadow for button elements in carousel-caption
+ }
+}
+
+
+// Scale up controls for tablets and up
+@media screen and (min-width: @screen-sm-min) {
+
+ // Scale up the controls a smidge
+ .carousel-control {
+ .glyphicon-chevron-left,
+ .glyphicon-chevron-right,
+ .icon-prev,
+ .icon-next {
+ width: (@carousel-control-font-size * 1.5);
+ height: (@carousel-control-font-size * 1.5);
+ margin-top: (@carousel-control-font-size / -2);
+ font-size: (@carousel-control-font-size * 1.5);
+ }
+ .glyphicon-chevron-left,
+ .icon-prev {
+ margin-left: (@carousel-control-font-size / -2);
+ }
+ .glyphicon-chevron-right,
+ .icon-next {
+ margin-right: (@carousel-control-font-size / -2);
+ }
+ }
+
+ // Show and left align the captions
+ .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+
+ // Move up the indicators
+ .carousel-indicators {
+ bottom: 20px;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap/close.less b/dist/less/dependencies/bootstrap/close.less
new file mode 100644
index 0000000000..6d5bfe087a
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/close.less
@@ -0,0 +1,34 @@
+//
+// Close icons
+// --------------------------------------------------
+
+
+.close {
+ float: right;
+ font-size: (@font-size-base * 1.5);
+ font-weight: @close-font-weight;
+ line-height: 1;
+ color: @close-color;
+ text-shadow: @close-text-shadow;
+ .opacity(.2);
+
+ &:hover,
+ &:focus {
+ color: @close-color;
+ text-decoration: none;
+ cursor: pointer;
+ .opacity(.5);
+ }
+
+ // Additional properties for button version
+ // iOS requires the button element instead of an anchor tag.
+ // If you want the anchor version, it requires `href="#"`.
+ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
+ button& {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+ }
+}
diff --git a/dist/less/dependencies/bootstrap/code.less b/dist/less/dependencies/bootstrap/code.less
new file mode 100644
index 0000000000..a08b4d48c4
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/code.less
@@ -0,0 +1,69 @@
+//
+// Code (inline and block)
+// --------------------------------------------------
+
+
+// Inline and block code styles
+code,
+kbd,
+pre,
+samp {
+ font-family: @font-family-monospace;
+}
+
+// Inline code
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: @code-color;
+ background-color: @code-bg;
+ border-radius: @border-radius-base;
+}
+
+// User input typically entered via keyboard
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: @kbd-color;
+ background-color: @kbd-bg;
+ border-radius: @border-radius-small;
+ box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
+
+ kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ box-shadow: none;
+ }
+}
+
+// Blocks of code
+pre {
+ display: block;
+ padding: ((@line-height-computed - 1) / 2);
+ margin: 0 0 (@line-height-computed / 2);
+ font-size: (@font-size-base - 1); // 14px to 13px
+ line-height: @line-height-base;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: @pre-color;
+ background-color: @pre-bg;
+ border: 1px solid @pre-border-color;
+ border-radius: @border-radius-base;
+
+ // Account for some code outputs that place code tags in pre tags
+ code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+ }
+}
+
+// Enable scrollable blocks of code
+.pre-scrollable {
+ max-height: @pre-scrollable-max-height;
+ overflow-y: scroll;
+}
diff --git a/dist/less/dependencies/bootstrap/component-animations.less b/dist/less/dependencies/bootstrap/component-animations.less
new file mode 100644
index 0000000000..0bcee910ac
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/component-animations.less
@@ -0,0 +1,33 @@
+//
+// Component animations
+// --------------------------------------------------
+
+// Heads up!
+//
+// We don't use the `.opacity()` mixin here since it causes a bug with text
+// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
+
+.fade {
+ opacity: 0;
+ .transition(opacity .15s linear);
+ &.in {
+ opacity: 1;
+ }
+}
+
+.collapse {
+ display: none;
+
+ &.in { display: block; }
+ tr&.in { display: table-row; }
+ tbody&.in { display: table-row-group; }
+}
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ .transition-property(~"height, visibility");
+ .transition-duration(.35s);
+ .transition-timing-function(ease);
+}
diff --git a/dist/less/dependencies/bootstrap/dropdowns.less b/dist/less/dependencies/bootstrap/dropdowns.less
new file mode 100644
index 0000000000..f6876c1a9b
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/dropdowns.less
@@ -0,0 +1,216 @@
+//
+// Dropdown menus
+// --------------------------------------------------
+
+
+// Dropdown arrow/caret
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: @caret-width-base dashed;
+ border-top: @caret-width-base solid ~"\9"; // IE8
+ border-right: @caret-width-base solid transparent;
+ border-left: @caret-width-base solid transparent;
+}
+
+// The dropdown wrapper (div)
+.dropup,
+.dropdown {
+ position: relative;
+}
+
+// Prevent the focus on the dropdown toggle when closing dropdowns
+.dropdown-toggle:focus {
+ outline: 0;
+}
+
+// The dropdown menu (ul)
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: @zindex-dropdown;
+ display: none; // none by default, but block on "open" of the menu
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0; // override default ul
+ list-style: none;
+ font-size: @font-size-base;
+ text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
+ background-color: @dropdown-bg;
+ border: 1px solid @dropdown-fallback-border; // IE8 fallback
+ border: 1px solid @dropdown-border;
+ border-radius: @border-radius-base;
+ .box-shadow(0 6px 12px rgba(0,0,0,.175));
+ background-clip: padding-box;
+
+ // Aligns the dropdown menu to right
+ //
+ // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
+ &.pull-right {
+ right: 0;
+ left: auto;
+ }
+
+ // Dividers (basically an hr) within the dropdown
+ .divider {
+ .nav-divider(@dropdown-divider-bg);
+ }
+
+ // Links within the dropdown menu
+ > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: @line-height-base;
+ color: @dropdown-link-color;
+ white-space: nowrap; // prevent links from randomly breaking onto new lines
+ }
+}
+
+// Hover/Focus state
+.dropdown-menu > li > a {
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ color: @dropdown-link-hover-color;
+ background-color: @dropdown-link-hover-bg;
+ }
+}
+
+// Active state
+.dropdown-menu > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @dropdown-link-active-color;
+ text-decoration: none;
+ outline: 0;
+ background-color: @dropdown-link-active-bg;
+ }
+}
+
+// Disabled state
+//
+// Gray out text and ensure the hover/focus state remains gray
+
+.dropdown-menu > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @dropdown-link-disabled-color;
+ }
+
+ // Nuke hover/focus effects
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none; // Remove CSS gradient
+ .reset-filter();
+ cursor: @cursor-disabled;
+ }
+}
+
+// Open state for the dropdown
+.open {
+ // Show the menu
+ > .dropdown-menu {
+ display: block;
+ }
+
+ // Remove the outline when :focus is triggered
+ > a {
+ outline: 0;
+ }
+}
+
+// Menu positioning
+//
+// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
+// menu with the parent.
+.dropdown-menu-right {
+ left: auto; // Reset the default from `.dropdown-menu`
+ right: 0;
+}
+// With v3, we enabled auto-flipping if you have a dropdown within a right
+// aligned nav component. To enable the undoing of that, we provide an override
+// to restore the default dropdown menu alignment.
+//
+// This is only for left-aligning a dropdown menu within a `.navbar-right` or
+// `.pull-right` nav component.
+.dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+
+// Dropdown section headers
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: @font-size-small;
+ line-height: @line-height-base;
+ color: @dropdown-header-color;
+ white-space: nowrap; // as with > li > a
+}
+
+// Backdrop to catch body clicks on mobile, etc.
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: (@zindex-dropdown - 10);
+}
+
+// Right aligned dropdowns
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+//
+// Just add .dropup after the standard .dropdown class and you're set, bro.
+// TODO: abstract this so that the navbar fixed styles are not placed here?
+
+.dropup,
+.navbar-fixed-bottom .dropdown {
+ // Reverse the caret
+ .caret {
+ border-top: 0;
+ border-bottom: @caret-width-base dashed;
+ border-bottom: @caret-width-base solid ~"\9"; // IE8
+ content: "";
+ }
+ // Different positioning for bottom up menu
+ .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+ }
+}
+
+
+// Component alignment
+//
+// Reiterate per navbar.less and the modified component alignment there.
+
+@media (min-width: @grid-float-breakpoint) {
+ .navbar-right {
+ .dropdown-menu {
+ .dropdown-menu-right();
+ }
+ // Necessary for overrides of the default right aligned menu.
+ // Will remove come v4 in all likelihood.
+ .dropdown-menu-left {
+ .dropdown-menu-left();
+ }
+ }
+}
diff --git a/dist/less/dependencies/bootstrap/forms.less b/dist/less/dependencies/bootstrap/forms.less
new file mode 100644
index 0000000000..9377d3846b
--- /dev/null
+++ b/dist/less/dependencies/bootstrap/forms.less
@@ -0,0 +1,613 @@
+//
+// Forms
+// --------------------------------------------------
+
+
+// Normalize non-controls
+//
+// Restyle and baseline non-control form elements.
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
+ // so we reset that to ensure it behaves more like a standard block element.
+ // See https://github.com/twbs/bootstrap/issues/12359.
+ min-width: 0;
+}
+
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: @line-height-computed;
+ font-size: (@font-size-base * 1.5);
+ line-height: inherit;
+ color: @legend-color;
+ border: 0;
+ border-bottom: 1px solid @legend-border-color;
+}
+
+label {
+ display: inline-block;
+ max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
+ margin-bottom: 5px;
+ font-weight: bold;
+}
+
+
+// Normalize form controls
+//
+// While most of our form styles require extra classes, some basic normalization
+// is required to ensure optimum display with or without those classes to better
+// address browser inconsistencies.
+
+// Override content-box in Normalize (* isn't specific enough)
+input[type="search"] {
+ .box-sizing(border-box);
+}
+
+// Position radios and checkboxes better
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9; // IE8-9
+ line-height: normal;
+}
+
+input[type="file"] {
+ display: block;
+}
+
+// Make range inputs behave like textual form controls
+input[type="range"] {
+ display: block;
+ width: 100%;
+}
+
+// Make multiple select elements height not fixed
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+// Focus for file, radio, and checkbox
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ .tab-focus();
+}
+
+// Adjust output element
+output {
+ display: block;
+ padding-top: (@padding-base-vertical + 1);
+ font-size: @font-size-base;
+ line-height: @line-height-base;
+ color: @input-color;
+}
+
+
+// Common form controls
+//
+// Shared size and type resets for form controls. Apply `.form-control` to any
+// of the following form controls:
+//
+// select
+// textarea
+// input[type="text"]
+// input[type="password"]
+// input[type="datetime"]
+// input[type="datetime-local"]
+// input[type="date"]
+// input[type="month"]
+// input[type="time"]
+// input[type="week"]
+// input[type="number"]
+// input[type="email"]
+// input[type="url"]
+// input[type="search"]
+// input[type="tel"]
+// input[type="color"]
+
+.form-control {
+ display: block;
+ width: 100%;
+ height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
+ padding: @padding-base-vertical @padding-base-horizontal;
+ font-size: @font-size-base;
+ line-height: @line-height-base;
+ color: @input-color;
+ background-color: @input-bg;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+ border: 1px solid @input-border;
+ border-radius: @input-border-radius; // Note: This has no effect on