From 4c758589f5ff8ad1b6fc1c990ffbbfd5dba913f7 Mon Sep 17 00:00:00 2001 From: Michael Prentice Date: Thu, 16 Jul 2020 17:09:15 -0400 Subject: [PATCH] refactor(select): rename ngMultiple to mdMultiple - remove unused `$injector` - remove unused variables and parameters - add some types - add missing semicolon BREAKING CHANGE: `ngMultiple` has been renamed to `mdMultiple` to make it clear that this API is provided by AngularJS Material and not by AngularJS. If you had: ```html ... ``` You need to change to: ```html ... ``` --- src/components/select/select.js | 41 +++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/src/components/select/select.js b/src/components/select/select.js index 4296d78b6b2..c09cca200e3 100755 --- a/src/components/select/select.js +++ b/src/components/select/select.js @@ -157,8 +157,7 @@ angular.module('material.components.select', [ * * */ -function SelectDirective($mdSelect, $mdUtil, $mdConstant, $mdTheming, $mdAria, $parse, $sce, - $injector) { +function SelectDirective($mdSelect, $mdUtil, $mdConstant, $mdTheming, $mdAria, $parse, $sce) { return { restrict: 'E', require: ['^?mdInputContainer', 'mdSelect', 'ngModel', '?^form'], @@ -167,6 +166,11 @@ function SelectDirective($mdSelect, $mdUtil, $mdConstant, $mdTheming, $mdAria, $ } // empty placeholder controller to be initialized in link }; + /** + * @param {JQLite} tElement + * @param {IAttributes} tAttrs + * @return {postLink} + */ function compile(tElement, tAttrs) { var isMultiple = $mdUtil.parseAttributeBoolean(tAttrs.multiple); // add the select value that will hold our placeholder or selected option value @@ -271,7 +275,7 @@ function SelectDirective($mdSelect, $mdUtil, $mdConstant, $mdTheming, $mdAria, $ var selectValueElement = element.find('md-select-value'); var isReadonly = angular.isDefined(attrs.readonly); var disableAsterisk = $mdUtil.parseAttributeBoolean(attrs.mdNoAsterisk); - var stopNgMultipleWatch; + var stopMdMultipleWatch; var userDefinedLabelledby = angular.isDefined(attrs.ariaLabelledby); var listboxContentElement = element.find('md-content'); @@ -390,7 +394,7 @@ function SelectDirective($mdSelect, $mdUtil, $mdConstant, $mdTheming, $mdAria, $ } else { selectValueElement.removeAttr('aria-hidden'); if (!userDefinedLabelledby) { - element.attr('aria-labelledby', element[0].id + ' ' + selectValueElement[0].id) + element.attr('aria-labelledby', element[0].id + ' ' + selectValueElement[0].id); } } }; @@ -428,7 +432,7 @@ function SelectDirective($mdSelect, $mdUtil, $mdConstant, $mdTheming, $mdAria, $ containerCtrl && containerCtrl.setFocused(false); inputCheckValue(); }; - var handleFocus = function(ev) { + var handleFocus = function() { // Always focus the container (if we have one) so floating labels and other styles are // applied properly containerCtrl && containerCtrl.setFocused(true); @@ -465,15 +469,14 @@ function SelectDirective($mdSelect, $mdUtil, $mdConstant, $mdTheming, $mdAria, $ mdSelectCtrl.setSelectValueText(selectMenuCtrl.getSelectedLabels()); } - // TODO add tests for ngMultiple - // TODO add docs for ngMultiple - // TODO in 1.2.0 rename this to mdMultiple - var stopNgMultipleObserver = attrs.$observe('ngMultiple', function(val) { - if (stopNgMultipleWatch) { - stopNgMultipleWatch(); + // TODO add tests for mdMultiple + // TODO add docs for mdMultiple + var stopMdMultipleObserver = attrs.$observe('mdMultiple', function(val) { + if (stopMdMultipleWatch) { + stopMdMultipleWatch(); } var parser = $parse(val); - stopNgMultipleWatch = scope.$watch(function() { + stopMdMultipleWatch = scope.$watch(function() { return parser(scope); }, function(multiple, prevVal) { var selectMenu = selectContainer.find('md-select-menu'); @@ -561,8 +564,8 @@ function SelectDirective($mdSelect, $mdUtil, $mdConstant, $mdTheming, $mdAria, $ scope.$on('$destroy', function() { stopRequiredObserver && stopRequiredObserver(); stopDisabledObserver && stopDisabledObserver(); - stopNgMultipleWatch && stopNgMultipleWatch(); - stopNgMultipleObserver && stopNgMultipleObserver(); + stopMdMultipleWatch && stopMdMultipleWatch(); + stopMdMultipleObserver && stopMdMultipleObserver(); stopSelectedLabelsWatcher && stopSelectedLabelsWatcher(); stopPlaceholderObserver && stopPlaceholderObserver(); stopInvalidWatch && stopInvalidWatch(); @@ -1207,6 +1210,11 @@ function OptionDirective($mdButtonInkRipple, $mdUtil, $mdTheming) { compile: compile }; + /** + * @param {JQLite} element + * @param {IAttributes} attrs + * @return {postLink} + */ function compile(element, attrs) { // Manual transclusion to avoid the extra inner that ng-transclude generates element.append(angular.element('
').append(element.contents())); @@ -1332,6 +1340,10 @@ function OptionDirective($mdButtonInkRipple, $mdUtil, $mdTheming) { } } +/** + * @param {JQLite} $element + * @constructor + */ function OptionController($element) { /** * @param {boolean} isSelected @@ -1757,7 +1769,6 @@ function SelectProvider($$interimElementProvider) { var dropDown = opts.selectEl; var selectMenuController = dropDown.controller('mdSelectMenu') || {}; - var listbox = opts.contentEl; element.addClass('md-clickable');