diff --git a/bower.json b/bower.json index 74dcbd8f2..dbc12a712 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "angular-patternfly", - "version": "3.5.0", + "version": "3.5.1", "authors": [ "Red Hat" ], @@ -39,7 +39,7 @@ "angular-sanitize": "1.3.0 - 1.5.*", "angular-bootstrap": "0.13.x", "lodash": "3.x", - "patternfly": "~3.5.0" + "patternfly": "~3.5.1" }, "devDependencies": { "angular-mocks": "1.3.0 - 1.5.*" diff --git a/dist/docs/css/angular-patternfly.css b/dist/docs/css/angular-patternfly.css index ae61a5c4a..0f694f168 100644 --- a/dist/docs/css/angular-patternfly.css +++ b/dist/docs/css/angular-patternfly.css @@ -408,9 +408,10 @@ margin-bottom: 10px; } -.panel-group .panel-default .panel-title > a:before { +/* Angular bootstrap classes differ when opneed rather than when collapsed */ +accordion > .panel-group .panel-default .panel-title > a:before { content: "\f105"; } -.panel-group .panel-open .panel-title > a:before { +accordion > .panel-group .panel-open .panel-title > a:before { content: "\f107"; } diff --git a/dist/docs/css/patternfly-additions.css b/dist/docs/css/patternfly-additions.css index d0f019271..43ff681bc 100644 --- a/dist/docs/css/patternfly-additions.css +++ b/dist/docs/css/patternfly-additions.css @@ -1370,10 +1370,10 @@ select.mobile-device { border-top-left-radius: 0px; } .bootstrap-switch.bootstrap-switch-focused { - border-color: #66afe9; + border-color: #0088ce; outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 136, 206, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 136, 206, 0.6); } .bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label, .bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label { @@ -2088,13 +2088,13 @@ fieldset[disabled] .combobox-container .input-group-addon.active { box-shadow: inset 0 1px 1px rgba(3, 3, 3, 0.075); } .bootstrap-datepicker.form-control[readonly]:focus { - border-color: #66afe9; + border-color: #0088ce; outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 136, 206, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 136, 206, 0.6); } .bootstrap-datepicker.form-control[readonly]:focus { - border-color: #66afe9 !important; + border-color: #0088ce !important; } .has-error .bootstrap-datepicker.form-control[readonly]:focus { border-color: #990000; @@ -2211,10 +2211,10 @@ fieldset[disabled] .combobox-container .input-group-addon.active { margin-top: -4px; } .bootstrap-select.btn-group .btn:focus { - border-color: #66afe9; + border-color: #0088ce; outline: 0 !important; - -webkit-box-shadow: inset 0 1px 1px rgba(3, 3, 3, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(3, 3, 3, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + -webkit-box-shadow: inset 0 1px 1px rgba(3, 3, 3, 0.075), 0 0 8px rgba(0, 136, 206, 0.6); + box-shadow: inset 0 1px 1px rgba(3, 3, 3, 0.075), 0 0 8px rgba(0, 136, 206, 0.6); } .has-error .bootstrap-select.btn-group .btn { border-color: #cc0000; @@ -3325,6 +3325,11 @@ table.datatable th:active { .layout-pf-alt.layout-pf-alt-fixed-with-footer body { padding-bottom: 37px; } +a.disabled { + color: #8b8d8f; + cursor: not-allowed; + text-decoration: none; +} .list-view-pf .list-group-item { align-items: flex-start; display: -ms-flexbox; diff --git a/dist/docs/css/patternfly.css b/dist/docs/css/patternfly.css index 52c21fa03..59ff28bb4 100644 --- a/dist/docs/css/patternfly.css +++ b/dist/docs/css/patternfly.css @@ -2590,10 +2590,10 @@ output { transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; } .form-control:focus { - border-color: #66afe9; + border-color: #0088ce; outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 136, 206, 0.6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(0, 136, 206, 0.6); } .form-control::-moz-placeholder { color: #999; @@ -9326,11 +9326,15 @@ fieldset[disabled] .btn-primary.active { .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { - border-color: #d1d1d1 !important; -webkit-box-shadow: none; 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; } diff --git a/dist/docs/grunt-scripts/angular-animate.js b/dist/docs/grunt-scripts/angular-animate.js index da1b2f4a8..d7bdb0521 100644 --- a/dist/docs/grunt-scripts/angular-animate.js +++ b/dist/docs/grunt-scripts/angular-animate.js @@ -1,5 +1,5 @@ /** - * @license AngularJS v1.5.6 + * @license AngularJS v1.5.7 * (c) 2010-2016 Google, Inc. http://angularjs.org * License: MIT */ @@ -3213,8 +3213,6 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) { // may attempt more elements, but custom drivers are more particular for (var i = drivers.length - 1; i >= 0; i--) { var driverName = drivers[i]; - if (!$injector.has(driverName)) continue; // TODO(matsko): remove this check - var factory = $injector.get(driverName); var driver = factory(animationDetails); if (driver) { diff --git a/dist/docs/grunt-scripts/angular-patternfly.js b/dist/docs/grunt-scripts/angular-patternfly.js index 1707ea21e..bf149398e 100644 --- a/dist/docs/grunt-scripts/angular-patternfly.js +++ b/dist/docs/grunt-scripts/angular-patternfly.js @@ -550,11 +550,11 @@ angular.module('patternfly.card').directive('pfCard', function () {
- +
- +
@@ -3656,9 +3656,11 @@ angular.module( 'patternfly.notification' ).directive('pfInlineNotification', fu * @param {object} notificationGroups Array of notification groups to add to the drawer * @param {string} actionButtonTitle Text for the lower action button of the drawer (optional, if not specified there will be no action button) * @param {function} actionButtonCallback function(notificationGroup) Callback method for action button for each group, the notificationGroup is passed (Optional) + * @param {string} titleInclude Include src for the title area for the notification drawer, use this to customize the drawer title area * @param {string} headingInclude Include src for the heading area for each notification group, access the group via notificationGroup * @param {string} subheadingInclude Include src for the sub-heading area for each notification group, access the group via notificationGroup - * @param {string} notificationBodyInclude Include src for the notification body for each notification, access the group via notification + * @param {string} notificationBodyInclude Include src for the notification body for each notification, access the notification via notification + * @param {string} notificationFooterInclude Include src for the notification footer for each notification, access the notification via notification * @param {object} customScope Object containing any variables/functions used by the included src, access via customScope. * * @example @@ -3684,7 +3686,7 @@ angular.module( 'patternfly.notification' ).directive('pfInlineNotification', fu
+ notification-footer-include="notification-footer.html" custom-scope="customScope">
@@ -3702,6 +3704,12 @@ angular.module( 'patternfly.notification' ).directive('pfInlineNotification', fu {{notificationGroup.subHeading}} + + + + Clear All + + + + + angular.module('orderByExample3', []) + .controller('ExampleController', ['$scope', 'orderByFilter', function($scope, orderBy) { + var friends = [ + {name: 'John', phone: '555-1212', age: 10}, + {name: 'Mary', phone: '555-9876', age: 19}, + {name: 'Mike', phone: '555-4321', age: 21}, + {name: 'Adam', phone: '555-5678', age: 35}, + {name: 'Julie', phone: '555-8765', age: 29} + ]; + + $scope.propertyName = 'age'; + $scope.reverse = true; + $scope.friends = orderBy(friends, $scope.propertyName, $scope.reverse); - - angular.module('orderByExample', []) - .controller('ExampleController', ['$scope', '$filter', function($scope, $filter) { - var orderBy = $filter('orderBy'); - $scope.friends = [ - { name: 'John', phone: '555-1212', age: 10 }, - { name: 'Mary', phone: '555-9876', age: 19 }, - { name: 'Mike', phone: '555-4321', age: 21 }, - { name: 'Adam', phone: '555-5678', age: 35 }, - { name: 'Julie', phone: '555-8765', age: 29 } - ]; - $scope.order = function(predicate) { - $scope.predicate = predicate; - $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false; - $scope.friends = orderBy($scope.friends, predicate, $scope.reverse); - }; - $scope.order('age', true); - }]); - + $scope.sortBy = function(propertyName) { + $scope.reverse = (propertyName !== null && $scope.propertyName === propertyName) + ? !$scope.reverse : false; + $scope.propertyName = propertyName; + $scope.friends = orderBy(friends, $scope.propertyName, $scope.reverse); + }; + }]); + + + .friends { + border-collapse: collapse; + } + + .friends th { + border-bottom: 1px solid; + } + .friends td, .friends th { + border-left: 1px solid; + padding: 5px 10px; + } + .friends td:first-child, .friends th:first-child { + border-left: none; + } - .sortorder:after { - content: '\25b2'; + content: '\25b2'; // BLACK UP-POINTING TRIANGLE } .sortorder.reverse:after { - content: '\25bc'; + content: '\25bc'; // BLACK DOWN-POINTING TRIANGLE } - - + + + // Element locators + var unsortButton = element(by.partialButtonText('unsorted')); + var nameHeader = element(by.partialButtonText('Name')); + var phoneHeader = element(by.partialButtonText('Phone')); + var ageHeader = element(by.partialButtonText('Age')); + var firstName = element(by.repeater('friends').column('friend.name').row(0)); + var lastName = element(by.repeater('friends').column('friend.name').row(4)); + + it('should sort friends by some property, when clicking on the column header', function() { + expect(firstName.getText()).toBe('Adam'); + expect(lastName.getText()).toBe('John'); + + phoneHeader.click(); + expect(firstName.getText()).toBe('John'); + expect(lastName.getText()).toBe('Mary'); + + nameHeader.click(); + expect(firstName.getText()).toBe('Adam'); + expect(lastName.getText()).toBe('Mike'); + + ageHeader.click(); + expect(firstName.getText()).toBe('John'); + expect(lastName.getText()).toBe('Adam'); + }); + + it('should sort friends in reverse order, when clicking on the same column', function() { + expect(firstName.getText()).toBe('Adam'); + expect(lastName.getText()).toBe('John'); + + ageHeader.click(); + expect(firstName.getText()).toBe('John'); + expect(lastName.getText()).toBe('Adam'); + + ageHeader.click(); + expect(firstName.getText()).toBe('Adam'); + expect(lastName.getText()).toBe('John'); + }); + + it('should restore the original order, when clicking "Set to unsorted"', function() { + expect(firstName.getText()).toBe('Adam'); + expect(lastName.getText()).toBe('John'); + + unsortButton.click(); + expect(firstName.getText()).toBe('John'); + expect(lastName.getText()).toBe('Julie'); + }); + + + *
+ * + * @example + * ### Using a custom comparator + * + * If you have very specific requirements about the way items are sorted, you can pass your own + * comparator function. For example, you might need to compare some strings in a locale-sensitive + * way. (When specifying a custom comparator, you also need to pass a value for the `reverse` + * argument - passing `false` retains the default sorting order, i.e. ascending.) + * + + +
+
+

Locale-sensitive Comparator

+ + + + + + + + + +
NameFavorite Letter
{{friend.name}}{{friend.favoriteLetter}}
+
+
+

Default Comparator

+ + + + + + + + + +
NameFavorite Letter
{{friend.name}}{{friend.favoriteLetter}}
+
+
+
+ + angular.module('orderByExample4', []) + .controller('ExampleController', ['$scope', function($scope) { + $scope.friends = [ + {name: 'John', favoriteLetter: 'Ä'}, + {name: 'Mary', favoriteLetter: 'Ü'}, + {name: 'Mike', favoriteLetter: 'Ö'}, + {name: 'Adam', favoriteLetter: 'H'}, + {name: 'Julie', favoriteLetter: 'Z'} + ]; + + $scope.localeSensitiveComparator = function(v1, v2) { + // If we don't get strings, just compare by index + if (v1.type !== 'string' || v2.type !== 'string') { + return (v1.index < v2.index) ? -1 : 1; + } + + // Compare strings alphabetically, taking locale into account + return v1.value.localeCompare(v2.value); + }; + }]); + + + .friends-container { + display: inline-block; + margin: 0 30px; + } + + .friends { + border-collapse: collapse; + } + + .friends th { + border-bottom: 1px solid; + } + .friends td, .friends th { + border-left: 1px solid; + padding: 5px 10px; + } + .friends td:first-child, .friends th:first-child { + border-left: none; + } + + + // Element locators + var container = element(by.css('.custom-comparator')); + var names = container.all(by.repeater('friends').column('friend.name')); + + it('should sort friends by favorite letter (in correct alphabetical order)', function() { + expect(names.get(0).getText()).toBe('John'); + expect(names.get(1).getText()).toBe('Adam'); + expect(names.get(2).getText()).toBe('Mike'); + expect(names.get(3).getText()).toBe('Mary'); + expect(names.get(4).getText()).toBe('Julie'); + }); + +
+ * */ orderByFilter.$inject = ['$parse']; function orderByFilter($parse) { - return function(array, sortPredicate, reverseOrder) { + return function(array, sortPredicate, reverseOrder, compareFn) { if (array == null) return array; if (!isArrayLike(array)) { @@ -21005,11 +21431,12 @@ function orderByFilter($parse) { if (!isArray(sortPredicate)) { sortPredicate = [sortPredicate]; } if (sortPredicate.length === 0) { sortPredicate = ['+']; } - var predicates = processPredicates(sortPredicate, reverseOrder); - // Add a predicate at the end that evaluates to the element index. This makes the - // sort stable as it works as a tie-breaker when all the input predicates cannot - // distinguish between two elements. - predicates.push({ get: function() { return {}; }, descending: reverseOrder ? -1 : 1}); + var predicates = processPredicates(sortPredicate); + + var descending = reverseOrder ? -1 : 1; + + // Define the `compare()` function. Use a default comparator if none is specified. + var compare = isFunction(compareFn) ? compareFn : defaultCompare; // The next three lines are a version of a Swartzian Transform idiom from Perl // (sometimes called the Decorate-Sort-Undecorate idiom) @@ -21021,8 +21448,12 @@ function orderByFilter($parse) { return array; function getComparisonObject(value, index) { + // NOTE: We are adding an extra `tieBreaker` value based on the element's index. + // This will be used to keep the sort stable when none of the input predicates can + // distinguish between two elements. return { value: value, + tieBreaker: {value: index, type: 'number', index: index}, predicateValues: predicates.map(function(predicate) { return getPredicateValue(predicate.get(value), index); }) @@ -21030,18 +21461,19 @@ function orderByFilter($parse) { } function doComparison(v1, v2) { - var result = 0; - for (var index=0, length = predicates.length; index < length; ++index) { - result = compare(v1.predicateValues[index], v2.predicateValues[index]) * predicates[index].descending; - if (result) break; + for (var i = 0, ii = predicates.length; i < ii; i++) { + var result = compare(v1.predicateValues[i], v2.predicateValues[i]); + if (result) { + return result * predicates[i].descending * descending; + } } - return result; + + return compare(v1.tieBreaker, v2.tieBreaker) * descending; } }; - function processPredicates(sortPredicate, reverseOrder) { - reverseOrder = reverseOrder ? -1 : 1; - return sortPredicate.map(function(predicate) { + function processPredicates(sortPredicates) { + return sortPredicates.map(function(predicate) { var descending = 1, get = identity; if (isFunction(predicate)) { @@ -21059,7 +21491,7 @@ function orderByFilter($parse) { } } } - return { get: get, descending: descending * reverseOrder }; + return {get: get, descending: descending}; }); } @@ -21074,9 +21506,9 @@ function orderByFilter($parse) { } } - function objectValue(value, index) { + function objectValue(value) { // If `valueOf` is a valid function use that - if (typeof value.valueOf === 'function') { + if (isFunction(value.valueOf)) { value = value.valueOf(); if (isPrimitive(value)) return value; } @@ -21085,8 +21517,8 @@ function orderByFilter($parse) { value = value.toString(); if (isPrimitive(value)) return value; } - // We have a basic object so we use the position of the object in the collection - return index; + + return value; } function getPredicateValue(value, index) { @@ -21094,23 +21526,39 @@ function orderByFilter($parse) { if (value === null) { type = 'string'; value = 'null'; - } else if (type === 'string') { - value = value.toLowerCase(); } else if (type === 'object') { - value = objectValue(value, index); + value = objectValue(value); } - return { value: value, type: type }; + return {value: value, type: type, index: index}; } - function compare(v1, v2) { + function defaultCompare(v1, v2) { var result = 0; - if (v1.type === v2.type) { - if (v1.value !== v2.value) { - result = v1.value < v2.value ? -1 : 1; + var type1 = v1.type; + var type2 = v2.type; + + if (type1 === type2) { + var value1 = v1.value; + var value2 = v2.value; + + if (type1 === 'string') { + // Compare strings case-insensitively + value1 = value1.toLowerCase(); + value2 = value2.toLowerCase(); + } else if (type1 === 'object') { + // For basic objects, use the position of the object + // in the collection instead of the value + if (isObject(value1)) value1 = v1.index; + if (isObject(value2)) value2 = v2.index; + } + + if (value1 !== value2) { + result = value1 < value2 ? -1 : 1; } } else { - result = v1.type < v2.type ? -1 : 1; + result = type1 < type2 ? -1 : 1; } + return result; } } @@ -22155,7 +22603,9 @@ var ISO_DATE_REGEXP = /^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+- // 9. Fragment // 1111111111111111 222 333333 44444 555555555555555555555555 666 77777777 8888888 999 var URL_REGEXP = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i; -var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i; +/* jshint maxlen:220 */ +var EMAIL_REGEXP = /^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/; +/* jshint maxlen:200 */ var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/; var DATE_REGEXP = /^(\d{4,})-(\d{2})-(\d{2})$/; var DATETIMELOCAL_REGEXP = /^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; @@ -28676,7 +29126,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale, * it's a prefix used by Angular for public (`$`) and private (`$$`) properties. * * - The built-in filters {@link ng.orderBy orderBy} and {@link ng.filter filter} do not work with - * objects, and will throw if used with one. + * objects, and will throw an error if used with one. * * If you are hitting any of these limitations, the recommended workaround is to convert your object into an array * that is sorted into the order that you prefer before providing it to `ngRepeat`. You could diff --git a/dist/docs/js/docs-setup.js b/dist/docs/js/docs-setup.js index ae4f93a63..ddd599b87 100644 --- a/dist/docs/js/docs-setup.js +++ b/dist/docs/js/docs-setup.js @@ -37,7 +37,7 @@ NG_DOCS={ "type": "directive", "moduleName": "patternfly.card", "shortDescription": "Directive for easily displaying a card with html content", - "keywords": "$scope actionbarconfig actual add alert angular api array based blue border bottom call callback callbackfn called capacity card chart chart-data chartctrl chartid charts class clicked cluster compact config configmemory configphysical configsingle configuration configvirtual content controller d-- datamemory dataphysical datasingle datavirtual dates days defaultfilter defined demo directive disk displaying drop easily events example2trendschart fa fa-flag fa-plus-circle false filter filterconfig filters fn footer footerconfig function gb gettime grey head-title headtitle hides href html icon iconclass inline integer items js label label-title layout left link list-style-type memory memorytrendschart mhz module multiple navigate ng-controller panel patternfly percentage performance pf-card pf-trends-chart physical physicaltrendschart properties push script selected show-titles-separator show-top-border showtitlesseparator showtopborder single storage style sub-title subtitle tb text title today tooltiptype top total trend trendlabel trends true units user utilization valuetype var view virtual virtualtrendschart width xdata ydata" + "keywords": "$scope actionbarconfig actual add alert angular api array based blue border bottom call callback callbackfn called capacity card chart-data chartctrl chartid charts class clicked cluster compact config configmemory configphysical configsingle configuration configvirtual content controller d-- datamemory dataphysical datasingle datavirtual dates days defaultfilter defined demo directive disk displaying drop easily events example2trendschart fa fa-flag fa-plus-circle false filter filterconfig filters fn footer footerconfig function gb gettime grey head-title headtitle hides href html icon iconclass inline integer items js label label-title layout left link list-style-type memory memorytrendschart mhz module multiple navigate ng-controller panel patternfly percentage performance pf-card pf-trends-chart physical physicaltrendschart properties push script selected show-titles-separator show-top-border showtitlesseparator showtopborder single storage style sub-title subtitle tb text title today tooltiptype top total trend trendlabel trends true units user utilization valuetype var view virtual virtualtrendschart width xdata ydata" }, { "section": "api", @@ -199,7 +199,7 @@ NG_DOCS={ "type": "directive", "moduleName": "patternfly.notification", "shortDescription": "Directive for rendering a notification drawer. This provides a common mechanism to handle how the notification", - "keywords": "$scope access accessed action action-button-callback action-button-title actionbuttoncallback actionbuttoncb actionbuttontitle actions actions-label actionstext add angular api area aria-expanded aria-haspopup aria-labelledby array behave body bold btn btn-link button callback called class clicked col-md-12 collapse common content controller create currently currenttime custom-scope customscope data-toggle define deps desire directive disabled display divider drawer drawer-hidden drawer-pf-notification-info drawer-pf-notification-message drawer-pf-trigger drawer-pf-trigger-icon drawer-title drawerctrl drawerhidden drawertitle dropdown dropdown-kebab-pf dropdown-menu dropdown-menu-right dropdown-toggle dropdownkebabright error event events example-container fa fa-bell fa-ellipsis-v false files filters flag function getnotficationstatusiconclass gettime group grouped groups handle handleaction handler hanlders heading heading-include headinginclude hidden hidedrawer html huzzah include included indicator info isdisabled isloading isseparator js layout-pf-fixed length lower mandating mark mechanism menuactions menuitem message method mm module nav nav-item-iconic navbar-collapse navbar-iconic navbar-left navbar-nav navbar-pf-vertical newtext ng-class ng-click ng-controller ng-if ng-repeat notification notification-body notification-body-include notification-groups notificationbodyinclude notificationgroup notificationgroups notifications notificaton object pass passed patternfly perform pf-notification-drawer pficon pficon-error-circle-o pficon-info pficon-ok pficon-warning-triangle-o pre-demo-text provide pull-left pull-right read rendering retclass return role row rows scope script secondary-action separator sort source src status sub-heading subheading subheading-include subheadinginclude tab text time timestamp title toggleshowdrawer true type unavailable unread utils var variables views warning" + "keywords": "$scope access accessed action action-button-callback action-button-title actionbuttoncallback actionbuttoncb actionbuttontitle actions actions-label actionstext add angular api area aria-expanded aria-haspopup aria-labelledby array behave body bold btn btn-block btn-link button callback called class clear clearall clicked col-md-12 collapse common content controller create currently currenttime custom-scope customize customscope data-toggle define deps desire directive disabled display divider drawer drawer-hidden drawer-pf-notification-info drawer-pf-notification-message drawer-pf-trigger drawer-pf-trigger-icon drawer-title drawerctrl drawerhidden drawertitle dropdown dropdown-kebab-pf dropdown-menu dropdown-menu-right dropdown-toggle dropdownkebabright error event events example-container fa fa-bell fa-ellipsis-v false files filters flag footer function getnotficationstatusiconclass gettime group grouped groups handle handleaction handler hanlders heading heading-include headinginclude hidden hidedrawer html huzzah include included indicator info isdisabled isloading isseparator js layout-pf-fixed length lower mandating mark mechanism menuactions menuitem message method mm module nav nav-item-iconic navbar-collapse navbar-iconic navbar-left navbar-nav navbar-pf-vertical newtext ng-class ng-click ng-controller ng-if ng-repeat notification notification-body notification-body-include notification-footer notification-footer-include notification-groups notificationbodyinclude notificationfooterinclude notificationgroup notificationgroups notifications notificaton object pass passed patternfly perform pf-notification-drawer pficon pficon-close pficon-error-circle-o pficon-info pficon-ok pficon-warning-triangle-o pre-demo-text provide pull-left pull-right read rendering retclass return role row rows scope script secondary-action separator sort source src status sub-heading subheading subheading-include subheadinginclude tab text time timestamp title titleinclude toggleshowdrawer true type unavailable unread utils var variables views warning" }, { "section": "api", diff --git a/dist/docs/partials/api/patternfly.autofocus.pfFocused.html b/dist/docs/partials/api/patternfly.autofocus.pfFocused.html index 70cfe664d..f4d093add 100644 --- a/dist/docs/partials/api/patternfly.autofocus.pfFocused.html +++ b/dist/docs/partials/api/patternfly.autofocus.pfFocused.html @@ -1,4 +1,4 @@ -
Improve this doc View source

pfFocused + Improve this doc View source

pfFocused
directive in module patternfly
diff --git a/dist/docs/partials/api/patternfly.card.directive.pfAggregateStatusCard.html b/dist/docs/partials/api/patternfly.card.directive.pfAggregateStatusCard.html index a7a238ebf..6caff308b 100644 --- a/dist/docs/partials/api/patternfly.card.directive.pfAggregateStatusCard.html +++ b/dist/docs/partials/api/patternfly.card.directive.pfAggregateStatusCard.html @@ -1,4 +1,4 @@ - Improve this doc View source

pfAggregateStatusCard + Improve this doc View source

pfAggregateStatusCard
directive in module patternfly.card
diff --git a/dist/docs/partials/api/patternfly.card.directive.pfCard - Timeframe Filters.html b/dist/docs/partials/api/patternfly.card.directive.pfCard - Timeframe Filters.html index 269a936b3..508cc6e17 100644 --- a/dist/docs/partials/api/patternfly.card.directive.pfCard - Timeframe Filters.html +++ b/dist/docs/partials/api/patternfly.card.directive.pfCard - Timeframe Filters.html @@ -1,4 +1,4 @@ - Improve this doc View source

pfCard - Timeframe Filters + Improve this doc View source

pfCard - Timeframe Filters
directive in module patternfly.card
diff --git a/dist/docs/partials/api/patternfly.card.directive.pfCard - Trends.html b/dist/docs/partials/api/patternfly.card.directive.pfCard - Trends.html index 8ca6f0f53..422b7ec18 100644 --- a/dist/docs/partials/api/patternfly.card.directive.pfCard - Trends.html +++ b/dist/docs/partials/api/patternfly.card.directive.pfCard - Trends.html @@ -1,4 +1,4 @@ - Improve this doc View source

pfCard - Trends + Improve this doc View source

pfCard - Trends
directive in module patternfly.card
@@ -46,11 +46,11 @@

Example