{"version":3,"file":"app.bundle.057d931d6aa6a93557ca.js","mappings":";sKAAA,QAAe,IAA0B,+FCAzC,QAAe,IAA0B,0HCAzC,QAAe,IAA0B,sHCAzC,QAAe,IAA0B,8GCAzC,QAAe,IAA0B,2HCAzC,QAAe,IAA0B,uHCAzC,QAAe,IAA0B,kHCAzC,QAAe,IAA0B,qHCAzC,QAAe,IAA0B,qGCAzC,QAAe,IAA0B,2GCAzC,QAAe,IAA0B,wGCAzC,QAAe,IAA0B,4FCAzC,QAAe,IAA0B,gGCAzC,QAAe,IAA0B,yGCAzC,QAAe,IAA0B,mGCAzC,QAAe,IAA0B,oGCAzC,QAAe,IAA0B,oGCAzC,QAAe,IAA0B,yGCAzC,QAAe,IAA0B,mHCAzC,QAAe,IAA0B,6GCAzC,QAAe,IAA0B,yHCAzC,QAAe,IAA0B,+GCAzC,QAAe,IAA0B,2HCAzC,QAAe,IAA0B,8GCAzC,QAAe,IAA0B,yGCAzC,QAAe,IAA0B,kHCAzC,QAAe,IAA0B,mHCAzC,QAAe,IAA0B,sGCAzC,QAAe,IAA0B,6FCAzC,QAAe,IAA0B,kGCAzC,QAAe,IAA0B,+FCAzC,QAAe,IAA0B,6FCAzC,QAAe,IAA0B,kGCAzC,QAAe,IAA0B,6FCAzC,QAAe,IAA0B,iGCAzC,QAAe,IAA0B,6GCAzC,QAAe,IAA0B,2GCAzC,QAAe,IAA0B,kGCAzC,QAAe,IAA0B,2GCAzC,QAAe,IAA0B,uGCAzC,QAAe,IAA0B,8GCAzC,QAAe,IAA0B,2FCAzC,QAAe,IAA0B,gHCAzC,QAAe,IAA0B,gGCAzC,QAAe,IAA0B,kICAzC,QAAe,IAA0B,0GCAzC,QAAe,IAA0B,kJCAzC,QAAe,IAA0B,0JCAzC,QAAe,IAA0B,iICAzC,QAAe,IAA0B,iHCAzC,QAAe,IAA0B,qJCAzC,QAAe,IAA0B,iHCAzC,QAAe,IAA0B,0GCAzC,QAAe,IAA0B,2JCAzC,QAAe,IAA0B,2GCAzC,QAAe,IAA0B,wICAzC,QAAe,IAA0B,6HCAzC,QAAe,IAA0B,yICAzC,QAAe,IAA0B,qHCAzC,QAAe,IAA0B,qICAzC,QAAe,IAA0B,uHCAzC,QAAe,IAA0B,+GCAzC,QAAe,IAA0B,qHCAzC,QAAe,IAA0B,yGCAzC,QAAe,IAA0B,8HCAzC,QAAe,IAA0B,2HCAzC,QAAe,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","sources":["webpack://@rhinestone/portal-web-app/./Src/Client/Account/signedOut.html","webpack://@rhinestone/portal-web-app/./Src/Client/Annotations/AnnotateMultibleSelectionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Annotations/AnnotationNoSelectionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Annotations/ConfirmDeleteDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/AddToAssetCollectionNoSelectionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/ExistingCollectionFromQuoteDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/NewCollectionFromQuoteDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/addMemberToAssetCollectionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetCollection.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetCollectionDetail.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetTemplatesList.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assets.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsList.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsListSearchBox.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsMembers.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsReleases.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsTreeView.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsTreeViewNodes.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/confirmDeleteCollectionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/confirmDeleteNodeDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/copyAssetCollectionAsTemplateDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/copyAssetCollectionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/copyAssetCollectionFromTemplateDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/existingCollectionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/newCollectionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/publishAssetCollectionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/saveAssetCollectionNodeDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/uploadFileDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Controls/error.html","webpack://@rhinestone/portal-web-app/./Src/Client/Controls/loginDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Controls/spinner.html","webpack://@rhinestone/portal-web-app/./Src/Client/Error/internal.html","webpack://@rhinestone/portal-web-app/./Src/Client/Error/invalidTicket.html","webpack://@rhinestone/portal-web-app/./Src/Client/Error/notFound.html","webpack://@rhinestone/portal-web-app/./Src/Client/Error/unauthorized.html","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/MainContent/mainContent.html","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/MobileMenu/mobileMenu.html","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/Navbar/navbar.html","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/QuickLinks/quickLinks.html","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepane.html","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepaneSection.html","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/layout.html","webpack://@rhinestone/portal-web-app/./Src/Client/Localization/localizationSwitcher.html","webpack://@rhinestone/portal-web-app/./Src/Client/MainPage/mainPage.html","webpack://@rhinestone/portal-web-app/./Src/Client/ProductPage/ProductPageTaxonomy/productPageTaxonomy.html","webpack://@rhinestone/portal-web-app/./Src/Client/ProductPage/productPageView.html","webpack://@rhinestone/portal-web-app/./Src/Client/SearchSubscriptions/ConfirmSubscriptionView/confirmSubscriptionView.html","webpack://@rhinestone/portal-web-app/./Src/Client/SearchSubscriptions/newSearchSubscriptionDialog/newSearchSubscriptionDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/AssetsSidePaneSection/assetsSidePaneSection.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/CriteriaPanel/criteriaPanel.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/LocalDocumentTypeTaxonomyFilter/localDocumentTypeTaxonomyFilter.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/LocalTaxonomy/localTaxonomy.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/MobileTabs/mobileTabs.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/NewLocalDocumentTypeTaxonomyFilter/newLocalDocumentTypeTaxonomyFilter.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/Pagination/pagination.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/multiSelectProductSearchFilter.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/productSearchFilter.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/singleSelectProductSearchFilter.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductTaxonomy/productTaxonomy.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/RefinementsSearchFilter/refinementsSearchFilter.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/RelatedDocuments/relatedDocuments.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ResultSorter/resultSorter.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/searchAssistent.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchBox/searchBox.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchResultAbstract/searchResultAbstract.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchResultMobile/searchResultMobile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchResult/searchResult.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/StatusSearchFilter/statusSearchFilter.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/Taxonomy/taxonomy.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ViewSwitch/viewSwitch.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/savedSearchWidget/deleteSavedSearchDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/savedSearchWidget/newSavedSearchDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/savedSearchWidget/overwriteSavedSearchDialog.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/savedSearchWidget/savedSearches.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchFilterGroup.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchResultsPdfExportButton.html","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchView.html","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscriptionsActionsPane.html","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscriptionsList.html","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscriptionsView.html","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/unsubscribeSubscriptionsView.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/CarouselTile/carouselTile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/DocumentListTile/SearchResultList.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/DocumentListTile/documentListTile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/DocumentTile/documentTile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/LinkTile/linkTile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/LoginTile/loginTile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/MultiLinkTile/multiLinkTile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/ProductTile/productTile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/SearchTile/searchTile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TextTile/textTile.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TileCard/TileCardBody/tileCardBody.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TileCard/TileCardHeader/tileCardHeader.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TileCard/tileCard.html","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TilesLayout/tilesLayout.html","webpack://@rhinestone/portal-web-app/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://@rhinestone/portal-web-app/./Src/Scripts/AngularIosFix/angular-material-ios-fix.js","webpack://@rhinestone/portal-web-app/./Src/Scripts/bootstrap/scrollspy.js","webpack://@rhinestone/portal-web-app/./Src/Scripts/horseyjs/horsey.js","webpack://@rhinestone/portal-web-app/./Src/Client/Account/signedOut.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Account/signedOut.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Annotations/AnnotationEvents.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Annotations/ConfirmDeleteAnnotationDialogController.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Annotations/SelectionEvents.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/ExistingCollectionDialogController.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/ExistingCollectionFromQuoteDialogController.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/NewCollectionFromQuoteDialogController.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/UploadFileController.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/addMemberToAssetCollectionDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetCollection.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetCollection.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetCollectionDetail.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetCollectionDetail.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetTemplates.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetTemplatesList.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetTemplatesList.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assets.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assets.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assets.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsList.Component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsList.Controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsListSearchBox.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsListSearchBox.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsMembers.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsMembers.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsReleases.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsReleases.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsTreeView.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/assetsTreeView.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/confirmDeleteCollectionDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/confirmDeleteNodeController.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/copyAssetCollectionAsTemplateDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/copyAssetCollectionDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/copyAssetCollectionFromTemplateDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/newCollectionDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/publishAssetCollectionDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Assets/saveAssetCollectionNodeDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Contexts/ContextType.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Controls/error.Component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Controls/error.Controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Controls/loginDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Controls/loginDialog.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Controls/spinner.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Controls/spinner.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/BaseComponent.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/MiniProfiler.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/app-bootstrap-helpers.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/app.run.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/compiler.config.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/constants.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/google-tag-manager.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/httpProvider.config.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/localStorage.config.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/logService.config.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/logger.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/material.config.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/portal.config.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/portal.provider.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/router.config.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/select.config.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Core/translate.config.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Documents/DocumentFieldset/documentFieldset.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Documents/DocumentPrint/documentPrint.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Documents/DocumentVersionSubscriptions/documentVersionSubscription.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Documents/ModalAlertController.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Documents/SelectionStatusService.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Documents/Toc/toc.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Documents/documents.module.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Error/internal.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Error/internal.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Error/invalidTicket.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Error/invalidTicket.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Error/notFound.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Error/notFound.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Error/unauthorized.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Error/unauthorized.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Filters/sentencingString.filter.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Filters/trustAsHtml.filter.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Filters/urlEncode.filter.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Interceptors/isAuthenticated.interceptor.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Interceptors/portalTemplate.interceptor.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/MainContent/mainContent.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/MainContent/mainContent.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/MobileMenu/mobile-menu.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/MobileMenu/mobileMenu.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/MobileMenu/mobileMenu.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/Navbar/navBarHeaderService.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/Navbar/navbar.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/Navbar/navbar.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/QuickLinks/quickLinks.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/QuickLinks/quickLinks.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepane.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepane.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepane.module.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepane.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepaneSection.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepaneSection.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepaneSection.events.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/SidePane/sidepaneStorage.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/error.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/layout.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/layout.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Layout/media.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Localization/localization.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Localization/localizationSwitcher.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Localization/localizationSwitcher.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/MainPage/mainPage.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/MainPage/mainPage.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/MainPage/mainPage.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Models/CreateAssetCollectionRequest.ts","webpack://@rhinestone/portal-web-app/./Src/Client/ProductPage/ProductPageTaxonomy/productPageTaxonomy.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/ProductPage/ProductPageTaxonomy/productPageTaxonomy.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/ProductPage/ProductPageTaxonomy/taxonUrlParams.ts","webpack://@rhinestone/portal-web-app/./Src/Client/ProductPage/ProductPageTaxonomy/taxonomyPathBuilder.ts","webpack://@rhinestone/portal-web-app/./Src/Client/ProductPage/productPage.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/ProductPage/productPageView.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/ProductPage/productPageView.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/SearchSubscriptions/ConfirmSubscriptionView/confirmSubscriptionView.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/SearchSubscriptions/ConfirmSubscriptionView/confirmSubscriptionView.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/SearchSubscriptions/newSearchSubscriptionDialog/newSearchSubscriptionDialog.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/SearchSubscriptions/searchSubscription.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/SearchSubscriptions/searchSubscriptionDialog.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/AssetsSidePaneSection/assetsSidePaneSection.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/AssetsSidePaneSection/assetsSidePaneSection.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/CriteriaPanel/criteriaPanel.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/CriteriaPanel/criteriaPanel.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/Criterias/buildCriteriaDescriptionFunctions.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/LocalDocumentTypeTaxonomyFilter/localDocumentTypeTaxonomyFilter.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/LocalDocumentTypeTaxonomyFilter/localDocumentTypeTaxonomyFilter.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/LocalTaxonomy/localTaxonomy.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/LocalTaxonomy/localTaxonomy.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/MobileTabs/mobileTabs.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/MobileTabs/mobileTabs.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/MonthsToSentenceString.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/NewLocalDocumentTypeTaxonomyFilter/newLocalDocumentTypeTaxonomyFilter.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/NewLocalDocumentTypeTaxonomyFilter/newLocalDocumentTypeTaxonomyFilter.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/Pagination/pagination.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/Pagination/pagination.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/multiSelectProductSearchFilter.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/multiSelectProductSearchFilter.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/productSearchFilter.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/productSearchFilter.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/selectProductSearchFilterBase.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/singleSelectProductSearchFilter.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductSearchFilter/singleSelectProductSearchFilter.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductTaxonomy/productTaxonomy.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ProductTaxonomy/productTaxonomy.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/RefinementFlag.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/RefinementsSearchFilter/refinementsSearchFilter.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/RefinementsSearchFilter/refinementsSearchFilter.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/RelatedDocuments/relatedDocuments.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/RelatedDocuments/relatedDocuments.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/RelatedDocuments/relatedDocuments.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ResultSorter/resultSorter.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ResultSorter/resultSorter.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/Providers/DocumentTermsSearchSuggestionsProvider.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/Providers/DocumentsSearchSuggestionsProvider.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/Providers/SearchSuggestionsProviderFactory.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/Providers/TaxonsSearchSuggestionsProvider.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/Providers/buildTrimmedTitle.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/searchAssistant.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/searchAssistent.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/searchAssistent.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchAssistent/searchTerms.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchBox/searchBox.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchBox/searchBox.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchResultAbstract/searchResultAbstract.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchResultAbstract/searchResultAbstract.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchResultMobile/searchResultMobile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchResultMobile/searchResultMobile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchResult/searchResult.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/SearchResult/searchResult.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/StatusSearchFilter/statusSearchFilter.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/StatusSearchFilter/statusSearchFilter.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/TaxonomyToFlatTaxonListConverter.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/Taxonomy/buildTaxonomyKeyMap.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/Taxonomy/findTaxonFromKey.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/Taxonomy/taxonomy.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/Taxonomy/taxonomy.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ViewSwitch/viewSwitch.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/ViewSwitch/viewSwitch.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/querystring.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/savedSearchWidget/newSavedSearchModal.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/savedSearchWidget/savedSearch.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/savedSearchWidget/savedSearchQuery.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/savedSearchWidget/savedSearches.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/savedSearchWidget/savedSearches.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/search.events.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/search.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchCriteriaState.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchFilterGroup.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchFilterGroup.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchPageConfiguration.util.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchPageConfigurationService.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchResultsExport.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchResultsPdfExportButton.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchResultsPdfExportButton.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchView.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/searchView.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/taxonomyState.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Search/url.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/DataService/PortalDataHttpService.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/devicedetection.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/dialog.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/featureflags.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/google-tag-manager.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/keepScrollPositionService.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/linkRender.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/localized.notification.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/mobileDetector.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/models/assetReleaseState.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/models/nodeType.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/notification.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/products.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/services.module.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/taxonomy.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Services/user.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscription.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscriptionsActionsPane.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscriptionsActionsPane.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscriptionsList.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscriptionsList.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscriptionsView.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/subscriptionsView.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/unsubscribeSubscriptionsView.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Subscriptions/unsubscribeSubscriptionsView.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/CarouselTile/carouselTile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/CarouselTile/carouselTile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/CarouselTile/idGenerator.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/DocumentListTile/documentListTile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/DocumentListTile/documentListTile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/DocumentListTile/documentListTile.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/DocumentTile/documentTile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/DocumentTile/documentTile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/LinkTile/linkTile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/LinkTile/linkTile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/LoginTile/loginTile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/LoginTile/loginTile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/MultiLinkTile/multiLinkTile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/MultiLinkTile/multiLinkTile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/ProductTile/productTile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/ProductTile/productTile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/ProductTile/productTile.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/SearchTile/searchTile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/SearchTile/searchTile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TextTile/textTile.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TextTile/textTile.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TileCard/TileCardBody/tileCardBody.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TileCard/TileCardHeader/tileCardHeader.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TileCard/tileCard.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TileCard/tileCard.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TilesLayout/tilesLayout.component.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Tiles/TilesLayout/tilesLayout.controller.ts","webpack://@rhinestone/portal-web-app/./Src/Client/User/allowPrivileges.directive.ts","webpack://@rhinestone/portal-web-app/./Src/Client/User/currentUser.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/User/userFeatures.service.ts","webpack://@rhinestone/portal-web-app/./Src/Client/User/userHasFeature.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Utils/AngularBindings.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Utils/isNullOrEmpty.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Utils/keep-scroll-position.ts","webpack://@rhinestone/portal-web-app/./Src/Client/Utils/utils.module.ts","webpack://@rhinestone/portal-web-app/./Src/Client/app.constants.ts","webpack://@rhinestone/portal-web-app/./Src/Client/app.module.ts","webpack://@rhinestone/portal-web-app/./Src/main.ts","webpack://@rhinestone/portal-web-app/./Src/vendor.ts"],"sourcesContent":["export default __webpack_public_path__ + \"Src/Client/Account/signedOut.html\";","export default __webpack_public_path__ + \"Src/Client/Annotations/AnnotateMultibleSelectionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Annotations/AnnotationNoSelectionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Annotations/ConfirmDeleteDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/AddToAssetCollectionNoSelectionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/ExistingCollectionFromQuoteDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/NewCollectionFromQuoteDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/addMemberToAssetCollectionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assetCollection.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assetCollectionDetail.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assetTemplatesList.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assets.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assetsList.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assetsListSearchBox.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assetsMembers.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assetsReleases.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assetsTreeView.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/assetsTreeViewNodes.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/confirmDeleteCollectionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/confirmDeleteNodeDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/copyAssetCollectionAsTemplateDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/copyAssetCollectionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/copyAssetCollectionFromTemplateDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/existingCollectionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/newCollectionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/publishAssetCollectionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/saveAssetCollectionNodeDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Assets/uploadFileDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Controls/error.html\";","export default __webpack_public_path__ + \"Src/Client/Controls/loginDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Controls/spinner.html\";","export default __webpack_public_path__ + \"Src/Client/Error/internal.html\";","export default __webpack_public_path__ + \"Src/Client/Error/invalidTicket.html\";","export default __webpack_public_path__ + \"Src/Client/Error/notFound.html\";","export default __webpack_public_path__ + \"Src/Client/Error/unauthorized.html\";","export default __webpack_public_path__ + \"Src/Client/Layout/MainContent/mainContent.html\";","export default __webpack_public_path__ + \"Src/Client/Layout/MobileMenu/mobileMenu.html\";","export default __webpack_public_path__ + \"Src/Client/Layout/Navbar/navbar.html\";","export default __webpack_public_path__ + \"Src/Client/Layout/QuickLinks/quickLinks.html\";","export default __webpack_public_path__ + \"Src/Client/Layout/SidePane/sidepane.html\";","export default __webpack_public_path__ + \"Src/Client/Layout/SidePane/sidepaneSection.html\";","export default __webpack_public_path__ + \"Src/Client/Layout/layout.html\";","export default __webpack_public_path__ + \"Src/Client/Localization/localizationSwitcher.html\";","export default __webpack_public_path__ + \"Src/Client/MainPage/mainPage.html\";","export default __webpack_public_path__ + \"Src/Client/ProductPage/ProductPageTaxonomy/productPageTaxonomy.html\";","export default __webpack_public_path__ + \"Src/Client/ProductPage/productPageView.html\";","export default __webpack_public_path__ + \"Src/Client/SearchSubscriptions/ConfirmSubscriptionView/confirmSubscriptionView.html\";","export default __webpack_public_path__ + \"Src/Client/SearchSubscriptions/newSearchSubscriptionDialog/newSearchSubscriptionDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Search/AssetsSidePaneSection/assetsSidePaneSection.html\";","export default __webpack_public_path__ + \"Src/Client/Search/CriteriaPanel/criteriaPanel.html\";","export default __webpack_public_path__ + \"Src/Client/Search/LocalDocumentTypeTaxonomyFilter/localDocumentTypeTaxonomyFilter.html\";","export default __webpack_public_path__ + \"Src/Client/Search/LocalTaxonomy/localTaxonomy.html\";","export default __webpack_public_path__ + \"Src/Client/Search/MobileTabs/mobileTabs.html\";","export default __webpack_public_path__ + \"Src/Client/Search/NewLocalDocumentTypeTaxonomyFilter/newLocalDocumentTypeTaxonomyFilter.html\";","export default __webpack_public_path__ + \"Src/Client/Search/Pagination/pagination.html\";","export default __webpack_public_path__ + \"Src/Client/Search/ProductSearchFilter/multiSelectProductSearchFilter.html\";","export default __webpack_public_path__ + \"Src/Client/Search/ProductSearchFilter/productSearchFilter.html\";","export default __webpack_public_path__ + \"Src/Client/Search/ProductSearchFilter/singleSelectProductSearchFilter.html\";","export default __webpack_public_path__ + \"Src/Client/Search/ProductTaxonomy/productTaxonomy.html\";","export default __webpack_public_path__ + \"Src/Client/Search/RefinementsSearchFilter/refinementsSearchFilter.html\";","export default __webpack_public_path__ + \"Src/Client/Search/RelatedDocuments/relatedDocuments.html\";","export default __webpack_public_path__ + \"Src/Client/Search/ResultSorter/resultSorter.html\";","export default __webpack_public_path__ + \"Src/Client/Search/SearchAssistent/searchAssistent.html\";","export default __webpack_public_path__ + \"Src/Client/Search/SearchBox/searchBox.html\";","export default __webpack_public_path__ + \"Src/Client/Search/SearchResultAbstract/searchResultAbstract.html\";","export default __webpack_public_path__ + \"Src/Client/Search/SearchResultMobile/searchResultMobile.html\";","export default __webpack_public_path__ + \"Src/Client/Search/SearchResult/searchResult.html\";","export default __webpack_public_path__ + \"Src/Client/Search/StatusSearchFilter/statusSearchFilter.html\";","export default __webpack_public_path__ + \"Src/Client/Search/Taxonomy/taxonomy.html\";","export default __webpack_public_path__ + \"Src/Client/Search/ViewSwitch/viewSwitch.html\";","export default __webpack_public_path__ + \"Src/Client/Search/savedSearchWidget/deleteSavedSearchDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Search/savedSearchWidget/newSavedSearchDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Search/savedSearchWidget/overwriteSavedSearchDialog.html\";","export default __webpack_public_path__ + \"Src/Client/Search/savedSearchWidget/savedSearches.html\";","export default __webpack_public_path__ + \"Src/Client/Search/searchFilterGroup.html\";","export default __webpack_public_path__ + \"Src/Client/Search/searchResultsPdfExportButton.html\";","export default __webpack_public_path__ + \"Src/Client/Search/searchView.html\";","export default __webpack_public_path__ + \"Src/Client/Subscriptions/subscriptionsActionsPane.html\";","export default __webpack_public_path__ + \"Src/Client/Subscriptions/subscriptionsList.html\";","export default __webpack_public_path__ + \"Src/Client/Subscriptions/subscriptionsView.html\";","export default __webpack_public_path__ + \"Src/Client/Subscriptions/unsubscribeSubscriptionsView.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/CarouselTile/carouselTile.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/DocumentListTile/SearchResultList.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/DocumentListTile/documentListTile.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/DocumentTile/documentTile.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/LinkTile/linkTile.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/LoginTile/loginTile.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/MultiLinkTile/multiLinkTile.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/ProductTile/productTile.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/SearchTile/searchTile.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/TextTile/textTile.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/TileCard/TileCardBody/tileCardBody.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/TileCard/TileCardHeader/tileCardHeader.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/TileCard/tileCard.html\";","export default __webpack_public_path__ + \"Src/Client/Tiles/TilesLayout/tilesLayout.html\";","var map = {\n\t\"./af\": 34420,\n\t\"./af.js\": 34420,\n\t\"./ar\": 63533,\n\t\"./ar-dz\": 57435,\n\t\"./ar-dz.js\": 57435,\n\t\"./ar-kw\": 17332,\n\t\"./ar-kw.js\": 17332,\n\t\"./ar-ly\": 82127,\n\t\"./ar-ly.js\": 82127,\n\t\"./ar-ma\": 48147,\n\t\"./ar-ma.js\": 48147,\n\t\"./ar-sa\": 94377,\n\t\"./ar-sa.js\": 94377,\n\t\"./ar-tn\": 28849,\n\t\"./ar-tn.js\": 28849,\n\t\"./ar.js\": 63533,\n\t\"./az\": 32608,\n\t\"./az.js\": 32608,\n\t\"./be\": 31928,\n\t\"./be.js\": 31928,\n\t\"./bg\": 17415,\n\t\"./bg.js\": 17415,\n\t\"./bm\": 34981,\n\t\"./bm.js\": 34981,\n\t\"./bn\": 68882,\n\t\"./bn-bd\": 63609,\n\t\"./bn-bd.js\": 63609,\n\t\"./bn.js\": 68882,\n\t\"./bo\": 77274,\n\t\"./bo.js\": 77274,\n\t\"./br\": 39806,\n\t\"./br.js\": 39806,\n\t\"./bs\": 98228,\n\t\"./bs.js\": 98228,\n\t\"./ca\": 24129,\n\t\"./ca.js\": 24129,\n\t\"./cs\": 96047,\n\t\"./cs.js\": 96047,\n\t\"./cv\": 56846,\n\t\"./cv.js\": 56846,\n\t\"./cy\": 97870,\n\t\"./cy.js\": 97870,\n\t\"./da\": 19432,\n\t\"./da.js\": 19432,\n\t\"./de\": 70461,\n\t\"./de-at\": 90285,\n\t\"./de-at.js\": 90285,\n\t\"./de-ch\": 99841,\n\t\"./de-ch.js\": 99841,\n\t\"./de.js\": 70461,\n\t\"./dv\": 36749,\n\t\"./dv.js\": 36749,\n\t\"./el\": 20538,\n\t\"./el.js\": 20538,\n\t\"./en-au\": 78924,\n\t\"./en-au.js\": 78924,\n\t\"./en-ca\": 64847,\n\t\"./en-ca.js\": 64847,\n\t\"./en-gb\": 6216,\n\t\"./en-gb.js\": 6216,\n\t\"./en-ie\": 86963,\n\t\"./en-ie.js\": 86963,\n\t\"./en-il\": 72133,\n\t\"./en-il.js\": 72133,\n\t\"./en-in\": 7456,\n\t\"./en-in.js\": 7456,\n\t\"./en-nz\": 1601,\n\t\"./en-nz.js\": 1601,\n\t\"./en-sg\": 99993,\n\t\"./en-sg.js\": 99993,\n\t\"./eo\": 85158,\n\t\"./eo.js\": 85158,\n\t\"./es\": 54048,\n\t\"./es-do\": 85945,\n\t\"./es-do.js\": 85945,\n\t\"./es-mx\": 87699,\n\t\"./es-mx.js\": 87699,\n\t\"./es-us\": 1519,\n\t\"./es-us.js\": 1519,\n\t\"./es.js\": 54048,\n\t\"./et\": 97487,\n\t\"./et.js\": 97487,\n\t\"./eu\": 15646,\n\t\"./eu.js\": 15646,\n\t\"./fa\": 38668,\n\t\"./fa.js\": 38668,\n\t\"./fi\": 89327,\n\t\"./fi.js\": 89327,\n\t\"./fil\": 94603,\n\t\"./fil.js\": 94603,\n\t\"./fo\": 18944,\n\t\"./fo.js\": 18944,\n\t\"./fr\": 28622,\n\t\"./fr-ca\": 40973,\n\t\"./fr-ca.js\": 40973,\n\t\"./fr-ch\": 58781,\n\t\"./fr-ch.js\": 58781,\n\t\"./fr.js\": 28622,\n\t\"./fy\": 34902,\n\t\"./fy.js\": 34902,\n\t\"./ga\": 89879,\n\t\"./ga.js\": 89879,\n\t\"./gd\": 95403,\n\t\"./gd.js\": 95403,\n\t\"./gl\": 22228,\n\t\"./gl.js\": 22228,\n\t\"./gom-deva\": 46305,\n\t\"./gom-deva.js\": 46305,\n\t\"./gom-latn\": 18033,\n\t\"./gom-latn.js\": 18033,\n\t\"./gu\": 4692,\n\t\"./gu.js\": 4692,\n\t\"./he\": 58828,\n\t\"./he.js\": 58828,\n\t\"./hi\": 91618,\n\t\"./hi.js\": 91618,\n\t\"./hr\": 85369,\n\t\"./hr.js\": 85369,\n\t\"./hu\": 86485,\n\t\"./hu.js\": 86485,\n\t\"./hy-am\": 86273,\n\t\"./hy-am.js\": 86273,\n\t\"./id\": 28336,\n\t\"./id.js\": 28336,\n\t\"./is\": 82509,\n\t\"./is.js\": 82509,\n\t\"./it\": 14861,\n\t\"./it-ch\": 37351,\n\t\"./it-ch.js\": 37351,\n\t\"./it.js\": 14861,\n\t\"./ja\": 4960,\n\t\"./ja.js\": 4960,\n\t\"./jv\": 40396,\n\t\"./jv.js\": 40396,\n\t\"./ka\": 30133,\n\t\"./ka.js\": 30133,\n\t\"./kk\": 40942,\n\t\"./kk.js\": 40942,\n\t\"./km\": 68915,\n\t\"./km.js\": 68915,\n\t\"./kn\": 32822,\n\t\"./kn.js\": 32822,\n\t\"./ko\": 83798,\n\t\"./ko.js\": 83798,\n\t\"./ku\": 34895,\n\t\"./ku.js\": 34895,\n\t\"./ky\": 30805,\n\t\"./ky.js\": 30805,\n\t\"./lb\": 31571,\n\t\"./lb.js\": 31571,\n\t\"./lo\": 11046,\n\t\"./lo.js\": 11046,\n\t\"./lt\": 55025,\n\t\"./lt.js\": 55025,\n\t\"./lv\": 16647,\n\t\"./lv.js\": 16647,\n\t\"./me\": 5327,\n\t\"./me.js\": 5327,\n\t\"./mi\": 61196,\n\t\"./mi.js\": 61196,\n\t\"./mk\": 56170,\n\t\"./mk.js\": 56170,\n\t\"./ml\": 83929,\n\t\"./ml.js\": 83929,\n\t\"./mn\": 85672,\n\t\"./mn.js\": 85672,\n\t\"./mr\": 4000,\n\t\"./mr.js\": 4000,\n\t\"./ms\": 89181,\n\t\"./ms-my\": 92372,\n\t\"./ms-my.js\": 92372,\n\t\"./ms.js\": 89181,\n\t\"./mt\": 83487,\n\t\"./mt.js\": 83487,\n\t\"./my\": 39295,\n\t\"./my.js\": 39295,\n\t\"./nb\": 74407,\n\t\"./nb.js\": 74407,\n\t\"./ne\": 89020,\n\t\"./ne.js\": 89020,\n\t\"./nl\": 85826,\n\t\"./nl-be\": 25333,\n\t\"./nl-be.js\": 25333,\n\t\"./nl.js\": 85826,\n\t\"./nn\": 26536,\n\t\"./nn.js\": 26536,\n\t\"./oc-lnc\": 39402,\n\t\"./oc-lnc.js\": 39402,\n\t\"./pa-in\": 81216,\n\t\"./pa-in.js\": 81216,\n\t\"./pl\": 13815,\n\t\"./pl.js\": 13815,\n\t\"./pt\": 47064,\n\t\"./pt-br\": 13628,\n\t\"./pt-br.js\": 13628,\n\t\"./pt.js\": 47064,\n\t\"./ro\": 29140,\n\t\"./ro.js\": 29140,\n\t\"./ru\": 53906,\n\t\"./ru.js\": 53906,\n\t\"./sd\": 35252,\n\t\"./sd.js\": 35252,\n\t\"./se\": 44093,\n\t\"./se.js\": 44093,\n\t\"./si\": 66527,\n\t\"./si.js\": 66527,\n\t\"./sk\": 51016,\n\t\"./sk.js\": 51016,\n\t\"./sl\": 96664,\n\t\"./sl.js\": 96664,\n\t\"./sq\": 58465,\n\t\"./sq.js\": 58465,\n\t\"./sr\": 68065,\n\t\"./sr-cyrl\": 83588,\n\t\"./sr-cyrl.js\": 83588,\n\t\"./sr.js\": 68065,\n\t\"./ss\": 58427,\n\t\"./ss.js\": 58427,\n\t\"./sv\": 13797,\n\t\"./sv.js\": 13797,\n\t\"./sw\": 29733,\n\t\"./sw.js\": 29733,\n\t\"./ta\": 24306,\n\t\"./ta.js\": 24306,\n\t\"./te\": 66785,\n\t\"./te.js\": 66785,\n\t\"./tet\": 23022,\n\t\"./tet.js\": 23022,\n\t\"./tg\": 18260,\n\t\"./tg.js\": 18260,\n\t\"./th\": 52839,\n\t\"./th.js\": 52839,\n\t\"./tk\": 8910,\n\t\"./tk.js\": 8910,\n\t\"./tl-ph\": 23250,\n\t\"./tl-ph.js\": 23250,\n\t\"./tlh\": 62406,\n\t\"./tlh.js\": 62406,\n\t\"./tr\": 79140,\n\t\"./tr.js\": 79140,\n\t\"./tzl\": 86453,\n\t\"./tzl.js\": 86453,\n\t\"./tzm\": 64857,\n\t\"./tzm-latn\": 57794,\n\t\"./tzm-latn.js\": 57794,\n\t\"./tzm.js\": 64857,\n\t\"./ug-cn\": 24962,\n\t\"./ug-cn.js\": 24962,\n\t\"./uk\": 39622,\n\t\"./uk.js\": 39622,\n\t\"./ur\": 20866,\n\t\"./ur.js\": 20866,\n\t\"./uz\": 24623,\n\t\"./uz-latn\": 14214,\n\t\"./uz-latn.js\": 14214,\n\t\"./uz.js\": 24623,\n\t\"./vi\": 36216,\n\t\"./vi.js\": 36216,\n\t\"./x-pseudo\": 67470,\n\t\"./x-pseudo.js\": 67470,\n\t\"./yo\": 8976,\n\t\"./yo.js\": 8976,\n\t\"./zh-cn\": 56970,\n\t\"./zh-cn.js\": 56970,\n\t\"./zh-hk\": 16389,\n\t\"./zh-hk.js\": 16389,\n\t\"./zh-mo\": 20013,\n\t\"./zh-mo.js\": 20013,\n\t\"./zh-tw\": 33977,\n\t\"./zh-tw.js\": 33977\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/*!\r\n * Angular Material Design\r\n * https://github.com/angular/material\r\n * @license MIT\r\n * v1.1.1\r\n */\r\n(function(window, angular, undefined) {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n angular.module(\"ngMaterial\", [\r\n \"ng\",\r\n \"ngAnimate\",\r\n \"ngAria\",\r\n \"material.core\",\r\n \"material.core.gestures\",\r\n \"material.core.layout\",\r\n \"material.core.meta\",\r\n \"material.core.theming.palette\",\r\n \"material.core.theming\",\r\n \"material.core.animate\",\r\n \"material.components.autocomplete\",\r\n \"material.components.backdrop\",\r\n \"material.components.bottomSheet\",\r\n \"material.components.button\",\r\n \"material.components.card\",\r\n \"material.components.chips\",\r\n \"material.components.checkbox\",\r\n \"material.components.colors\",\r\n \"material.components.content\",\r\n \"material.components.datepicker\",\r\n \"material.components.dialog\",\r\n \"material.components.divider\",\r\n \"material.components.fabActions\",\r\n \"material.components.fabShared\",\r\n \"material.components.fabSpeedDial\",\r\n \"material.components.fabToolbar\",\r\n \"material.components.gridList\",\r\n \"material.components.icon\",\r\n \"material.components.input\",\r\n \"material.components.list\",\r\n \"material.components.menu\",\r\n \"material.components.menuBar\",\r\n \"material.components.navBar\",\r\n \"material.components.panel\",\r\n \"material.components.progressCircular\",\r\n \"material.components.progressLinear\",\r\n \"material.components.radioButton\",\r\n \"material.components.select\",\r\n \"material.components.showHide\",\r\n \"material.components.sidenav\",\r\n \"material.components.slider\",\r\n \"material.components.sticky\",\r\n \"material.components.subheader\",\r\n \"material.components.swipe\",\r\n \"material.components.switch\",\r\n \"material.components.tabs\",\r\n \"material.components.toast\",\r\n \"material.components.toolbar\",\r\n \"material.components.tooltip\",\r\n \"material.components.virtualRepeat\",\r\n \"material.components.whiteframe\"\r\n ]);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * Initialization function that validates environment\r\n * requirements.\r\n */\r\n DetectNgTouch.$inject = [\"$log\", \"$injector\"];\r\n MdCoreConfigure.$inject = [\"$provide\", \"$mdThemingProvider\"];\r\n rAFDecorator.$inject = [\"$delegate\"];\r\n angular\r\n .module(\"material.core\", [\r\n \"ngAnimate\",\r\n \"material.core.animate\",\r\n \"material.core.layout\",\r\n \"material.core.gestures\",\r\n \"material.core.theming\"\r\n ])\r\n .config(MdCoreConfigure)\r\n .run(DetectNgTouch);\r\n\r\n /**\r\n * Detect if the ng-Touch module is also being used.\r\n * Warn if detected.\r\n * @ngInject\r\n */\r\n function DetectNgTouch($log, $injector) {\r\n if ($injector.has(\"$swipe\")) {\r\n var msg =\r\n \"\" +\r\n \"You are using the ngTouch module. \\n\" +\r\n \"Angular Material already has mobile click, tap, and swipe support... \\n\" +\r\n \"ngTouch is not supported with Angular Material!\";\r\n $log.warn(msg);\r\n }\r\n }\r\n\r\n /**\r\n * @ngInject\r\n */\r\n function MdCoreConfigure($provide, $mdThemingProvider) {\r\n $provide.decorator(\"$$rAF\", [\"$delegate\", rAFDecorator]);\r\n\r\n $mdThemingProvider\r\n .theme(\"default\")\r\n .primaryPalette(\"indigo\")\r\n .accentPalette(\"pink\")\r\n .warnPalette(\"deep-orange\")\r\n .backgroundPalette(\"grey\");\r\n }\r\n\r\n /**\r\n * @ngInject\r\n */\r\n function rAFDecorator($delegate) {\r\n /**\r\n * Use this to throttle events that come in often.\r\n * The throttled function will always use the *last* invocation before the\r\n * coming frame.\r\n *\r\n * For example, window resize events that fire many times a second:\r\n * If we set to use an raf-throttled callback on window resize, then\r\n * our callback will only be fired once per frame, with the last resize\r\n * event that happened before that frame.\r\n *\r\n * @param {function} callback function to debounce\r\n */\r\n $delegate.throttle = function(cb) {\r\n var queuedArgs, alreadyQueued, queueCb, context;\r\n return function debounced() {\r\n queuedArgs = arguments;\r\n context = this;\r\n queueCb = cb;\r\n if (!alreadyQueued) {\r\n alreadyQueued = true;\r\n $delegate(function() {\r\n queueCb.apply(context, Array.prototype.slice.call(queuedArgs));\r\n alreadyQueued = false;\r\n });\r\n }\r\n };\r\n };\r\n return $delegate;\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"material.core\")\r\n .directive(\"mdAutofocus\", MdAutofocusDirective)\r\n\r\n // Support the deprecated md-auto-focus and md-sidenav-focus as well\r\n .directive(\"mdAutoFocus\", MdAutofocusDirective)\r\n .directive(\"mdSidenavFocus\", MdAutofocusDirective);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdAutofocus\r\n * @module material.core.util\r\n *\r\n * @description\r\n *\r\n * `[md-autofocus]` provides an optional way to identify the focused element when a `$mdDialog`,\r\n * `$mdBottomSheet`, `$mdMenu` or `$mdSidenav` opens or upon page load for input-like elements.\r\n *\r\n * When one of these opens, it will find the first nested element with the `[md-autofocus]`\r\n * attribute directive and optional expression. An expression may be specified as the directive\r\n * value to enable conditional activation of the autofocus.\r\n *\r\n * @usage\r\n *\r\n * ### Dialog\r\n * \r\n * \r\n *
\r\n * \r\n * \r\n * \r\n * \r\n *
\r\n *
\r\n *
\r\n *\r\n * ### Bottomsheet\r\n * \r\n * \r\n * Comment Actions\r\n * \r\n * \r\n *\r\n * \r\n * \r\n * {{ item.name }}\r\n * \r\n *\r\n * \r\n * \r\n * \r\n * \r\n *\r\n * ### Autocomplete\r\n * \r\n * \r\n * {{item.display}}\r\n * \r\n * \r\n *\r\n * ### Sidenav\r\n * \r\n *
\r\n * \r\n * Left Nav!\r\n * \r\n *\r\n * \r\n * Center Content\r\n * \r\n * Open Left Menu\r\n * \r\n * \r\n *\r\n * \r\n *
\r\n * \r\n * \r\n * \r\n * \r\n *
\r\n *
\r\n *
\r\n *
\r\n **/\r\n function MdAutofocusDirective() {\r\n return {\r\n restrict: \"A\",\r\n\r\n link: postLink\r\n };\r\n }\r\n\r\n function postLink(scope, element, attrs) {\r\n var attr = attrs.mdAutoFocus || attrs.mdAutofocus || attrs.mdSidenavFocus;\r\n\r\n // Setup a watcher on the proper attribute to update a class we can check for in $mdUtil\r\n scope.$watch(attr, function(canAutofocus) {\r\n element.toggleClass(\"md-autofocus\", canAutofocus);\r\n });\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.core.colorUtil\r\n * @description\r\n * Color Util\r\n */\r\n angular.module(\"material.core\").factory(\"$mdColorUtil\", ColorUtilFactory);\r\n\r\n function ColorUtilFactory() {\r\n /**\r\n * Converts hex value to RGBA string\r\n * @param color {string}\r\n * @returns {string}\r\n */\r\n function hexToRgba(color) {\r\n var hex = color[0] === \"#\" ? color.substr(1) : color,\r\n dig = hex.length / 3,\r\n red = hex.substr(0, dig),\r\n green = hex.substr(dig, dig),\r\n blue = hex.substr(dig * 2);\r\n if (dig === 1) {\r\n red += red;\r\n green += green;\r\n blue += blue;\r\n }\r\n return (\r\n \"rgba(\" +\r\n parseInt(red, 16) +\r\n \",\" +\r\n parseInt(green, 16) +\r\n \",\" +\r\n parseInt(blue, 16) +\r\n \",0.1)\"\r\n );\r\n }\r\n\r\n /**\r\n * Converts rgba value to hex string\r\n * @param color {string}\r\n * @returns {string}\r\n */\r\n function rgbaToHex(color) {\r\n color = color.match(\r\n /^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i\r\n );\r\n\r\n var hex =\r\n color && color.length === 4\r\n ? \"#\" +\r\n (\"0\" + parseInt(color[1], 10).toString(16)).slice(-2) +\r\n (\"0\" + parseInt(color[2], 10).toString(16)).slice(-2) +\r\n (\"0\" + parseInt(color[3], 10).toString(16)).slice(-2)\r\n : \"\";\r\n\r\n return hex.toUpperCase();\r\n }\r\n\r\n /**\r\n * Converts an RGB color to RGBA\r\n * @param color {string}\r\n * @returns {string}\r\n */\r\n function rgbToRgba(color) {\r\n return color.replace(\")\", \", 0.1)\").replace(\"(\", \"a(\");\r\n }\r\n\r\n /**\r\n * Converts an RGBA color to RGB\r\n * @param color {string}\r\n * @returns {string}\r\n */\r\n function rgbaToRgb(color) {\r\n return color\r\n ? color.replace(\"rgba\", \"rgb\").replace(/,[^\\),]+\\)/, \")\")\r\n : \"rgb(0,0,0)\";\r\n }\r\n\r\n return {\r\n rgbaToHex: rgbaToHex,\r\n hexToRgba: hexToRgba,\r\n rgbToRgba: rgbToRgba,\r\n rgbaToRgb: rgbaToRgb\r\n };\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n MdConstantFactory.$inject = [\"$sniffer\", \"$window\", \"$document\"];\r\n angular.module(\"material.core\").factory(\"$mdConstant\", MdConstantFactory);\r\n\r\n /**\r\n * Factory function that creates the grab-bag $mdConstant service.\r\n * @ngInject\r\n */\r\n function MdConstantFactory($sniffer, $window, $document) {\r\n var vendorPrefix = $sniffer.vendorPrefix;\r\n var isWebkit = /webkit/i.test(vendorPrefix);\r\n var SPECIAL_CHARS_REGEXP = /([:\\-_]+(.))/g;\r\n var prefixTestEl = document.createElement(\"div\");\r\n\r\n function vendorProperty(name) {\r\n // Add a dash between the prefix and name, to be able to transform the string into camelcase.\r\n var prefixedName = vendorPrefix + \"-\" + name;\r\n var ucPrefix = camelCase(prefixedName);\r\n var lcPrefix = ucPrefix.charAt(0).toLowerCase() + ucPrefix.substring(1);\r\n\r\n return hasStyleProperty(name)\r\n ? name // The current browser supports the un-prefixed property\r\n : hasStyleProperty(ucPrefix)\r\n ? ucPrefix // The current browser only supports the prefixed property.\r\n : hasStyleProperty(lcPrefix)\r\n ? lcPrefix\r\n : name; // Some browsers are only supporting the prefix in lowercase.\r\n }\r\n\r\n function hasStyleProperty(property) {\r\n return angular.isDefined(prefixTestEl.style[property]);\r\n }\r\n\r\n function camelCase(input) {\r\n return input.replace(SPECIAL_CHARS_REGEXP, function(\r\n matches,\r\n separator,\r\n letter,\r\n offset\r\n ) {\r\n return offset ? letter.toUpperCase() : letter;\r\n });\r\n }\r\n\r\n var self = {\r\n isInputKey: function(e) {\r\n return e.keyCode >= 31 && e.keyCode <= 90;\r\n },\r\n isNumPadKey: function(e) {\r\n return 3 === e.location && e.keyCode >= 97 && e.keyCode <= 105;\r\n },\r\n isNavigationKey: function(e) {\r\n var kc = self.KEY_CODE,\r\n NAVIGATION_KEYS = [kc.SPACE, kc.ENTER, kc.UP_ARROW, kc.DOWN_ARROW];\r\n return NAVIGATION_KEYS.indexOf(e.keyCode) != -1;\r\n },\r\n\r\n KEY_CODE: {\r\n COMMA: 188,\r\n SEMICOLON: 186,\r\n ENTER: 13,\r\n ESCAPE: 27,\r\n SPACE: 32,\r\n PAGE_UP: 33,\r\n PAGE_DOWN: 34,\r\n END: 35,\r\n HOME: 36,\r\n LEFT_ARROW: 37,\r\n UP_ARROW: 38,\r\n RIGHT_ARROW: 39,\r\n DOWN_ARROW: 40,\r\n TAB: 9,\r\n BACKSPACE: 8,\r\n DELETE: 46\r\n },\r\n CSS: {\r\n /* Constants */\r\n TRANSITIONEND:\r\n \"transitionend\" + (isWebkit ? \" webkitTransitionEnd\" : \"\"),\r\n ANIMATIONEND:\r\n \"animationend\" + (isWebkit ? \" webkitAnimationEnd\" : \"\"),\r\n\r\n TRANSFORM: vendorProperty(\"transform\"),\r\n TRANSFORM_ORIGIN: vendorProperty(\"transformOrigin\"),\r\n TRANSITION: vendorProperty(\"transition\"),\r\n TRANSITION_DURATION: vendorProperty(\"transitionDuration\"),\r\n ANIMATION_PLAY_STATE: vendorProperty(\"animationPlayState\"),\r\n ANIMATION_DURATION: vendorProperty(\"animationDuration\"),\r\n ANIMATION_NAME: vendorProperty(\"animationName\"),\r\n ANIMATION_TIMING: vendorProperty(\"animationTimingFunction\"),\r\n ANIMATION_DIRECTION: vendorProperty(\"animationDirection\")\r\n },\r\n /**\r\n * As defined in core/style/variables.scss\r\n *\r\n * $layout-breakpoint-xs: 600px !default;\r\n * $layout-breakpoint-sm: 960px !default;\r\n * $layout-breakpoint-md: 1280px !default;\r\n * $layout-breakpoint-lg: 1920px !default;\r\n *\r\n */\r\n MEDIA: {\r\n xs: \"(max-width: 599px)\",\r\n \"gt-xs\": \"(min-width: 600px)\",\r\n sm: \"(min-width: 600px) and (max-width: 959px)\",\r\n \"gt-sm\": \"(min-width: 960px)\",\r\n md: \"(min-width: 960px) and (max-width: 1279px)\",\r\n \"gt-md\": \"(min-width: 1280px)\",\r\n lg: \"(min-width: 1280px) and (max-width: 1919px)\",\r\n \"gt-lg\": \"(min-width: 1920px)\",\r\n xl: \"(min-width: 1920px)\",\r\n landscape: \"(orientation: landscape)\",\r\n portrait: \"(orientation: portrait)\",\r\n print: \"print\"\r\n },\r\n MEDIA_PRIORITY: [\r\n \"xl\",\r\n \"gt-lg\",\r\n \"lg\",\r\n \"gt-md\",\r\n \"md\",\r\n \"gt-sm\",\r\n \"sm\",\r\n \"gt-xs\",\r\n \"xs\",\r\n \"landscape\",\r\n \"portrait\",\r\n \"print\"\r\n ]\r\n };\r\n\r\n return self;\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n angular.module(\"material.core\").config([\r\n \"$provide\",\r\n function($provide) {\r\n $provide.decorator(\"$mdUtil\", [\r\n \"$delegate\",\r\n function($delegate) {\r\n /**\r\n * Inject the iterator facade to easily support iteration and accessors\r\n * @see iterator below\r\n */\r\n $delegate.iterator = MdIterator;\r\n\r\n return $delegate;\r\n }\r\n ]);\r\n }\r\n ]);\r\n\r\n /**\r\n * iterator is a list facade to easily support iteration and accessors\r\n *\r\n * @param items Array list which this iterator will enumerate\r\n * @param reloop Boolean enables iterator to consider the list as an endless reloop\r\n */\r\n function MdIterator(items, reloop) {\r\n var trueFn = function() {\r\n return true;\r\n };\r\n\r\n if (items && !angular.isArray(items)) {\r\n items = Array.prototype.slice.call(items);\r\n }\r\n\r\n reloop = !!reloop;\r\n var _items = items || [];\r\n\r\n // Published API\r\n return {\r\n items: getItems,\r\n count: count,\r\n\r\n inRange: inRange,\r\n contains: contains,\r\n indexOf: indexOf,\r\n itemAt: itemAt,\r\n\r\n findBy: findBy,\r\n\r\n add: add,\r\n remove: remove,\r\n\r\n first: first,\r\n last: last,\r\n next: angular.bind(null, findSubsequentItem, false),\r\n previous: angular.bind(null, findSubsequentItem, true),\r\n\r\n hasPrevious: hasPrevious,\r\n hasNext: hasNext\r\n };\r\n\r\n /**\r\n * Publish copy of the enumerable set\r\n * @returns {Array|*}\r\n */\r\n function getItems() {\r\n return [].concat(_items);\r\n }\r\n\r\n /**\r\n * Determine length of the list\r\n * @returns {Array.length|*|number}\r\n */\r\n function count() {\r\n return _items.length;\r\n }\r\n\r\n /**\r\n * Is the index specified valid\r\n * @param index\r\n * @returns {Array.length|*|number|boolean}\r\n */\r\n function inRange(index) {\r\n return _items.length && index > -1 && index < _items.length;\r\n }\r\n\r\n /**\r\n * Can the iterator proceed to the next item in the list; relative to\r\n * the specified item.\r\n *\r\n * @param item\r\n * @returns {Array.length|*|number|boolean}\r\n */\r\n function hasNext(item) {\r\n return item ? inRange(indexOf(item) + 1) : false;\r\n }\r\n\r\n /**\r\n * Can the iterator proceed to the previous item in the list; relative to\r\n * the specified item.\r\n *\r\n * @param item\r\n * @returns {Array.length|*|number|boolean}\r\n */\r\n function hasPrevious(item) {\r\n return item ? inRange(indexOf(item) - 1) : false;\r\n }\r\n\r\n /**\r\n * Get item at specified index/position\r\n * @param index\r\n * @returns {*}\r\n */\r\n function itemAt(index) {\r\n return inRange(index) ? _items[index] : null;\r\n }\r\n\r\n /**\r\n * Find all elements matching the key/value pair\r\n * otherwise return null\r\n *\r\n * @param val\r\n * @param key\r\n *\r\n * @return array\r\n */\r\n function findBy(key, val) {\r\n return _items.filter(function(item) {\r\n return item[key] === val;\r\n });\r\n }\r\n\r\n /**\r\n * Add item to list\r\n * @param item\r\n * @param index\r\n * @returns {*}\r\n */\r\n function add(item, index) {\r\n if (!item) return -1;\r\n\r\n if (!angular.isNumber(index)) {\r\n index = _items.length;\r\n }\r\n\r\n _items.splice(index, 0, item);\r\n\r\n return indexOf(item);\r\n }\r\n\r\n /**\r\n * Remove item from list...\r\n * @param item\r\n */\r\n function remove(item) {\r\n if (contains(item)) {\r\n _items.splice(indexOf(item), 1);\r\n }\r\n }\r\n\r\n /**\r\n * Get the zero-based index of the target item\r\n * @param item\r\n * @returns {*}\r\n */\r\n function indexOf(item) {\r\n return _items.indexOf(item);\r\n }\r\n\r\n /**\r\n * Boolean existence check\r\n * @param item\r\n * @returns {boolean}\r\n */\r\n function contains(item) {\r\n return item && indexOf(item) > -1;\r\n }\r\n\r\n /**\r\n * Return first item in the list\r\n * @returns {*}\r\n */\r\n function first() {\r\n return _items.length ? _items[0] : null;\r\n }\r\n\r\n /**\r\n * Return last item in the list...\r\n * @returns {*}\r\n */\r\n function last() {\r\n return _items.length ? _items[_items.length - 1] : null;\r\n }\r\n\r\n /**\r\n * Find the next item. If reloop is true and at the end of the list, it will go back to the\r\n * first item. If given, the `validate` callback will be used to determine whether the next item\r\n * is valid. If not valid, it will try to find the next item again.\r\n *\r\n * @param {boolean} backwards Specifies the direction of searching (forwards/backwards)\r\n * @param {*} item The item whose subsequent item we are looking for\r\n * @param {Function=} validate The `validate` function\r\n * @param {integer=} limit The recursion limit\r\n *\r\n * @returns {*} The subsequent item or null\r\n */\r\n function findSubsequentItem(backwards, item, validate, limit) {\r\n validate = validate || trueFn;\r\n\r\n var curIndex = indexOf(item);\r\n while (true) {\r\n if (!inRange(curIndex)) return null;\r\n\r\n var nextIndex = curIndex + (backwards ? -1 : 1);\r\n var foundItem = null;\r\n if (inRange(nextIndex)) {\r\n foundItem = _items[nextIndex];\r\n } else if (reloop) {\r\n foundItem = backwards ? last() : first();\r\n nextIndex = indexOf(foundItem);\r\n }\r\n\r\n if (foundItem === null || nextIndex === limit) return null;\r\n if (validate(foundItem)) return foundItem;\r\n\r\n if (angular.isUndefined(limit)) limit = nextIndex;\r\n\r\n curIndex = nextIndex;\r\n }\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n mdMediaFactory.$inject = [\"$mdConstant\", \"$rootScope\", \"$window\"];\r\n angular.module(\"material.core\").factory(\"$mdMedia\", mdMediaFactory);\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdMedia\r\n * @module material.core\r\n *\r\n * @description\r\n * `$mdMedia` is used to evaluate whether a given media query is true or false given the\r\n * current device's screen / window size. The media query will be re-evaluated on resize, allowing\r\n * you to register a watch.\r\n *\r\n * `$mdMedia` also has pre-programmed support for media queries that match the layout breakpoints:\r\n *\r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n *
BreakpointmediaQuery
xs(max-width: 599px)
gt-xs(min-width: 600px)
sm(min-width: 600px) and (max-width: 959px)
gt-sm(min-width: 960px)
md(min-width: 960px) and (max-width: 1279px)
gt-md(min-width: 1280px)
lg(min-width: 1280px) and (max-width: 1919px)
gt-lg(min-width: 1920px)
xl(min-width: 1920px)
landscapelandscape
portraitportrait
printprint
\r\n *\r\n * See Material Design's Layout - Adaptive UI for more details.\r\n *\r\n * \r\n * \r\n * \r\n *\r\n * @returns {boolean} a boolean representing whether or not the given media query is true or false.\r\n *\r\n * @usage\r\n * \r\n * app.controller('MyController', function($mdMedia, $scope) {\r\n * $scope.$watch(function() { return $mdMedia('lg'); }, function(big) {\r\n * $scope.bigScreen = big;\r\n * });\r\n *\r\n * $scope.screenIsSmall = $mdMedia('sm');\r\n * $scope.customQuery = $mdMedia('(min-width: 1234px)');\r\n * $scope.anotherCustom = $mdMedia('max-width: 300px');\r\n * });\r\n * \r\n */\r\n\r\n /* @ngInject */\r\n function mdMediaFactory($mdConstant, $rootScope, $window) {\r\n var queries = {};\r\n var mqls = {};\r\n var results = {};\r\n var normalizeCache = {};\r\n\r\n $mdMedia.getResponsiveAttribute = getResponsiveAttribute;\r\n $mdMedia.getQuery = getQuery;\r\n $mdMedia.watchResponsiveAttributes = watchResponsiveAttributes;\r\n\r\n return $mdMedia;\r\n\r\n function $mdMedia(query) {\r\n var validated = queries[query];\r\n if (angular.isUndefined(validated)) {\r\n validated = queries[query] = validate(query);\r\n }\r\n\r\n var result = results[validated];\r\n if (angular.isUndefined(result)) {\r\n result = add(validated);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function validate(query) {\r\n return (\r\n $mdConstant.MEDIA[query] ||\r\n (query.charAt(0) !== \"(\" ? \"(\" + query + \")\" : query)\r\n );\r\n }\r\n\r\n function add(query) {\r\n var result = mqls[query];\r\n if (!result) {\r\n result = mqls[query] = $window.matchMedia(query);\r\n }\r\n\r\n result.addListener(onQueryChange);\r\n return (results[result.media] = !!result.matches);\r\n }\r\n\r\n function onQueryChange(query) {\r\n $rootScope.$evalAsync(function() {\r\n results[query.media] = !!query.matches;\r\n });\r\n }\r\n\r\n function getQuery(name) {\r\n return mqls[name];\r\n }\r\n\r\n function getResponsiveAttribute(attrs, attrName) {\r\n for (var i = 0; i < $mdConstant.MEDIA_PRIORITY.length; i++) {\r\n var mediaName = $mdConstant.MEDIA_PRIORITY[i];\r\n if (!mqls[queries[mediaName]].matches) {\r\n continue;\r\n }\r\n\r\n var normalizedName = getNormalizedName(\r\n attrs,\r\n attrName + \"-\" + mediaName\r\n );\r\n if (attrs[normalizedName]) {\r\n return attrs[normalizedName];\r\n }\r\n }\r\n\r\n // fallback on unprefixed\r\n return attrs[getNormalizedName(attrs, attrName)];\r\n }\r\n\r\n function watchResponsiveAttributes(attrNames, attrs, watchFn) {\r\n var unwatchFns = [];\r\n attrNames.forEach(function(attrName) {\r\n var normalizedName = getNormalizedName(attrs, attrName);\r\n if (angular.isDefined(attrs[normalizedName])) {\r\n unwatchFns.push(\r\n attrs.$observe(\r\n normalizedName,\r\n angular.bind(void 0, watchFn, null)\r\n )\r\n );\r\n }\r\n\r\n for (var mediaName in $mdConstant.MEDIA) {\r\n normalizedName = getNormalizedName(\r\n attrs,\r\n attrName + \"-\" + mediaName\r\n );\r\n if (angular.isDefined(attrs[normalizedName])) {\r\n unwatchFns.push(\r\n attrs.$observe(\r\n normalizedName,\r\n angular.bind(void 0, watchFn, mediaName)\r\n )\r\n );\r\n }\r\n }\r\n });\r\n\r\n return function unwatch() {\r\n unwatchFns.forEach(function(fn) {\r\n fn();\r\n });\r\n };\r\n }\r\n\r\n // Improves performance dramatically\r\n function getNormalizedName(attrs, attrName) {\r\n return (\r\n normalizeCache[attrName] ||\r\n (normalizeCache[attrName] = attrs.$normalize(attrName))\r\n );\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n angular.module(\"material.core\").config([\r\n \"$provide\",\r\n function($provide) {\r\n $provide.decorator(\"$mdUtil\", [\r\n \"$delegate\",\r\n function($delegate) {\r\n // Inject the prefixer into our original $mdUtil service.\r\n $delegate.prefixer = MdPrefixer;\r\n\r\n return $delegate;\r\n }\r\n ]);\r\n }\r\n ]);\r\n\r\n function MdPrefixer(initialAttributes, buildSelector) {\r\n var PREFIXES = [\"data\", \"x\"];\r\n\r\n if (initialAttributes) {\r\n // The prefixer also accepts attributes as a parameter, and immediately builds a list or selector for\r\n // the specified attributes.\r\n return buildSelector\r\n ? _buildSelector(initialAttributes)\r\n : _buildList(initialAttributes);\r\n }\r\n\r\n return {\r\n buildList: _buildList,\r\n buildSelector: _buildSelector,\r\n hasAttribute: _hasAttribute,\r\n removeAttribute: _removeAttribute\r\n };\r\n\r\n function _buildList(attributes) {\r\n attributes = angular.isArray(attributes) ? attributes : [attributes];\r\n\r\n attributes.forEach(function(item) {\r\n PREFIXES.forEach(function(prefix) {\r\n attributes.push(prefix + \"-\" + item);\r\n });\r\n });\r\n\r\n return attributes;\r\n }\r\n\r\n function _buildSelector(attributes) {\r\n attributes = angular.isArray(attributes) ? attributes : [attributes];\r\n\r\n return _buildList(attributes)\r\n .map(function(item) {\r\n return \"[\" + item + \"]\";\r\n })\r\n .join(\",\");\r\n }\r\n\r\n function _hasAttribute(element, attribute) {\r\n element = _getNativeElement(element);\r\n\r\n if (!element) {\r\n return false;\r\n }\r\n\r\n var prefixedAttrs = _buildList(attribute);\r\n\r\n for (var i = 0; i < prefixedAttrs.length; i++) {\r\n if (element.hasAttribute(prefixedAttrs[i])) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function _removeAttribute(element, attribute) {\r\n element = _getNativeElement(element);\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n _buildList(attribute).forEach(function(prefixedAttribute) {\r\n element.removeAttribute(prefixedAttribute);\r\n });\r\n }\r\n\r\n /**\r\n * Transforms a jqLite or DOM element into a HTML element.\r\n * This is useful when supporting jqLite elements and DOM elements at\r\n * same time.\r\n * @param element {JQLite|Element} Element to be parsed\r\n * @returns {HTMLElement} Parsed HTMLElement\r\n */\r\n function _getNativeElement(element) {\r\n element = element[0] || element;\r\n\r\n if (element.nodeType) {\r\n return element;\r\n }\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /*\r\n * This var has to be outside the angular factory, otherwise when\r\n * there are multiple material apps on the same page, each app\r\n * will create its own instance of this array and the app's IDs\r\n * will not be unique.\r\n */\r\n UtilFactory.$inject = [\r\n \"$document\",\r\n \"$timeout\",\r\n \"$compile\",\r\n \"$rootScope\",\r\n \"$$mdAnimate\",\r\n \"$interpolate\",\r\n \"$log\",\r\n \"$rootElement\",\r\n \"$window\",\r\n \"$$rAF\"\r\n ];\r\n var nextUniqueId = 0;\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.core.util\r\n * @description\r\n * Util\r\n */\r\n angular.module(\"material.core\").factory(\"$mdUtil\", UtilFactory);\r\n\r\n /**\r\n * @ngInject\r\n */\r\n function UtilFactory(\r\n $document,\r\n $timeout,\r\n $compile,\r\n $rootScope,\r\n $$mdAnimate,\r\n $interpolate,\r\n $log,\r\n $rootElement,\r\n $window,\r\n $$rAF\r\n ) {\r\n // Setup some core variables for the processTemplate method\r\n var startSymbol = $interpolate.startSymbol(),\r\n endSymbol = $interpolate.endSymbol(),\r\n usesStandardSymbols = startSymbol === \"{{\" && endSymbol === \"}}\";\r\n\r\n /**\r\n * Checks if the target element has the requested style by key\r\n * @param {DOMElement|JQLite} target Target element\r\n * @param {string} key Style key\r\n * @param {string=} expectedVal Optional expected value\r\n * @returns {boolean} Whether the target element has the style or not\r\n */\r\n var hasComputedStyle = function(target, key, expectedVal) {\r\n var hasValue = false;\r\n\r\n if (target && target.length) {\r\n var computedStyles = $window.getComputedStyle(target[0]);\r\n hasValue =\r\n angular.isDefined(computedStyles[key]) &&\r\n (expectedVal ? computedStyles[key] == expectedVal : true);\r\n }\r\n\r\n return hasValue;\r\n };\r\n\r\n function validateCssValue(value) {\r\n return !value\r\n ? \"0\"\r\n : hasPx(value) || hasPercent(value)\r\n ? value\r\n : value + \"px\";\r\n }\r\n\r\n function hasPx(value) {\r\n return String(value).indexOf(\"px\") > -1;\r\n }\r\n\r\n function hasPercent(value) {\r\n return String(value).indexOf(\"%\") > -1;\r\n }\r\n\r\n var $mdUtil = {\r\n dom: {},\r\n now: window.performance\r\n ? angular.bind(window.performance, window.performance.now)\r\n : Date.now ||\r\n function() {\r\n return new Date().getTime();\r\n },\r\n\r\n /**\r\n * Bi-directional accessor/mutator used to easily update an element's\r\n * property based on the current 'dir'ectional value.\r\n */\r\n bidi: function(element, property, lValue, rValue) {\r\n var ltr = !(\r\n $document[0].dir == \"rtl\" || $document[0].body.dir == \"rtl\"\r\n );\r\n\r\n // If accessor\r\n if (arguments.length == 0) return ltr ? \"ltr\" : \"rtl\";\r\n\r\n // If mutator\r\n var elem = angular.element(element);\r\n\r\n if (ltr && angular.isDefined(lValue)) {\r\n elem.css(property, validateCssValue(lValue));\r\n } else if (!ltr && angular.isDefined(rValue)) {\r\n elem.css(property, validateCssValue(rValue));\r\n }\r\n },\r\n\r\n bidiProperty: function(element, lProperty, rProperty, value) {\r\n var ltr = !(\r\n $document[0].dir == \"rtl\" || $document[0].body.dir == \"rtl\"\r\n );\r\n\r\n var elem = angular.element(element);\r\n\r\n if (ltr && angular.isDefined(lProperty)) {\r\n elem.css(lProperty, validateCssValue(value));\r\n elem.css(rProperty, \"\");\r\n } else if (!ltr && angular.isDefined(rProperty)) {\r\n elem.css(rProperty, validateCssValue(value));\r\n elem.css(lProperty, \"\");\r\n }\r\n },\r\n\r\n clientRect: function(element, offsetParent, isOffsetRect) {\r\n var node = getNode(element);\r\n offsetParent = getNode(\r\n offsetParent || node.offsetParent || document.body\r\n );\r\n var nodeRect = node.getBoundingClientRect();\r\n\r\n // The user can ask for an offsetRect: a rect relative to the offsetParent,\r\n // or a clientRect: a rect relative to the page\r\n var offsetRect = isOffsetRect\r\n ? offsetParent.getBoundingClientRect()\r\n : { left: 0, top: 0, width: 0, height: 0 };\r\n return {\r\n left: nodeRect.left - offsetRect.left,\r\n top: nodeRect.top - offsetRect.top,\r\n width: nodeRect.width,\r\n height: nodeRect.height\r\n };\r\n },\r\n offsetRect: function(element, offsetParent) {\r\n return $mdUtil.clientRect(element, offsetParent, true);\r\n },\r\n\r\n // Annoying method to copy nodes to an array, thanks to IE\r\n nodesToArray: function(nodes) {\r\n nodes = nodes || [];\r\n\r\n var results = [];\r\n for (var i = 0; i < nodes.length; ++i) {\r\n results.push(nodes.item(i));\r\n }\r\n return results;\r\n },\r\n\r\n /**\r\n * Calculate the positive scroll offset\r\n * TODO: Check with pinch-zoom in IE/Chrome;\r\n * https://code.google.com/p/chromium/issues/detail?id=496285\r\n */\r\n scrollTop: function(element) {\r\n element = angular.element(element || $document[0].body);\r\n\r\n var body =\r\n element[0] == $document[0].body ? $document[0].body : undefined;\r\n var scrollTop = body\r\n ? body.scrollTop + body.parentElement.scrollTop\r\n : 0;\r\n\r\n // Calculate the positive scroll offset\r\n return scrollTop || Math.abs(element[0].getBoundingClientRect().top);\r\n },\r\n\r\n /**\r\n * Finds the proper focus target by searching the DOM.\r\n *\r\n * @param containerEl\r\n * @param attributeVal\r\n * @returns {*}\r\n */\r\n findFocusTarget: function(containerEl, attributeVal) {\r\n var AUTO_FOCUS = this.prefixer(\"md-autofocus\", true);\r\n var elToFocus;\r\n\r\n elToFocus = scanForFocusable(containerEl, attributeVal || AUTO_FOCUS);\r\n\r\n if (!elToFocus && attributeVal != AUTO_FOCUS) {\r\n // Scan for deprecated attribute\r\n elToFocus = scanForFocusable(\r\n containerEl,\r\n this.prefixer(\"md-auto-focus\", true)\r\n );\r\n\r\n if (!elToFocus) {\r\n // Scan for fallback to 'universal' API\r\n elToFocus = scanForFocusable(containerEl, AUTO_FOCUS);\r\n }\r\n }\r\n\r\n return elToFocus;\r\n\r\n /**\r\n * Can target and nested children for specified Selector (attribute)\r\n * whose value may be an expression that evaluates to True/False.\r\n */\r\n function scanForFocusable(target, selector) {\r\n var elFound,\r\n items = target[0].querySelectorAll(selector);\r\n\r\n // Find the last child element with the focus attribute\r\n if (items && items.length) {\r\n items.length &&\r\n angular.forEach(items, function(it) {\r\n it = angular.element(it);\r\n\r\n // Check the element for the md-autofocus class to ensure any associated expression\r\n // evaluated to true.\r\n var isFocusable = it.hasClass(\"md-autofocus\");\r\n if (isFocusable) elFound = it;\r\n });\r\n }\r\n return elFound;\r\n }\r\n },\r\n\r\n /**\r\n * Disables scroll around the passed parent element.\r\n * @param element Unused\r\n * @param {!Element|!angular.JQLite} parent Element to disable scrolling within.\r\n * Defaults to body if none supplied.\r\n * @param options Object of options to modify functionality\r\n * - disableScrollMask Boolean of whether or not to create a scroll mask element or\r\n * use the passed parent element.\r\n */\r\n disableScrollAround: function(element, parent, options) {\r\n $mdUtil.disableScrollAround._count =\r\n $mdUtil.disableScrollAround._count || 0;\r\n ++$mdUtil.disableScrollAround._count;\r\n if ($mdUtil.disableScrollAround._enableScrolling)\r\n return $mdUtil.disableScrollAround._enableScrolling;\r\n var body = $document[0].body,\r\n restoreBody = disableBodyScroll(),\r\n restoreElement = disableElementScroll(parent);\r\n\r\n return ($mdUtil.disableScrollAround._enableScrolling = function() {\r\n if (!--$mdUtil.disableScrollAround._count) {\r\n restoreBody();\r\n restoreElement();\r\n delete $mdUtil.disableScrollAround._enableScrolling;\r\n }\r\n });\r\n\r\n // Creates a virtual scrolling mask to absorb touchmove, keyboard, scrollbar clicking, and wheel events\r\n function disableElementScroll(element) {\r\n element = angular.element(element || body);\r\n var scrollMask;\r\n if (options && options.disableScrollMask) {\r\n scrollMask = element;\r\n } else {\r\n element = element[0];\r\n scrollMask = angular.element(\r\n '
' +\r\n '
' +\r\n \"
\"\r\n );\r\n element.appendChild(scrollMask[0]);\r\n }\r\n\r\n scrollMask.on(\"wheel\", preventDefault);\r\n scrollMask.on(\"touchmove\", preventDefault);\r\n\r\n return function restoreScroll() {\r\n scrollMask.off(\"wheel\");\r\n scrollMask.off(\"touchmove\");\r\n scrollMask[0].parentNode.removeChild(scrollMask[0]);\r\n delete $mdUtil.disableScrollAround._enableScrolling;\r\n };\r\n\r\n function preventDefault(e) {\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n // Converts the body to a position fixed block and translate it to the proper scroll position\r\n function disableBodyScroll() {\r\n var htmlNode = body.parentNode;\r\n var restoreHtmlStyle = htmlNode.style.cssText || \"\";\r\n var restoreBodyStyle = body.style.cssText || \"\";\r\n var scrollOffset = $mdUtil.scrollTop(body);\r\n var clientWidth = body.clientWidth;\r\n\r\n if (body.scrollHeight > body.clientHeight + 1) {\r\n applyStyles(body, {\r\n position: \"fixed\",\r\n width: \"100%\",\r\n top: -scrollOffset + \"px\"\r\n });\r\n\r\n htmlNode.style.overflowY = \"scroll\";\r\n }\r\n\r\n if (body.clientWidth < clientWidth)\r\n applyStyles(body, { overflow: \"hidden\" });\r\n\r\n return function restoreScroll() {\r\n body.style.cssText = restoreBodyStyle;\r\n htmlNode.style.cssText = restoreHtmlStyle;\r\n body.scrollTop = scrollOffset;\r\n htmlNode.scrollTop = scrollOffset;\r\n };\r\n }\r\n\r\n function applyStyles(el, styles) {\r\n for (var key in styles) {\r\n el.style[key] = styles[key];\r\n }\r\n }\r\n },\r\n enableScrolling: function() {\r\n var method = this.disableScrollAround._enableScrolling;\r\n method && method();\r\n },\r\n floatingScrollbars: function() {\r\n if (this.floatingScrollbars.cached === undefined) {\r\n var tempNode = angular.element(\"
\").css({\r\n width: \"100%\",\r\n \"z-index\": -1,\r\n position: \"absolute\",\r\n height: \"35px\",\r\n \"overflow-y\": \"scroll\"\r\n });\r\n tempNode.children().css(\"height\", \"60px\");\r\n\r\n $document[0].body.appendChild(tempNode[0]);\r\n this.floatingScrollbars.cached =\r\n tempNode[0].offsetWidth == tempNode[0].childNodes[0].offsetWidth;\r\n tempNode.remove();\r\n }\r\n return this.floatingScrollbars.cached;\r\n },\r\n\r\n // Mobile safari only allows you to set focus in click event listeners...\r\n forceFocus: function(element) {\r\n var node = element[0] || element;\r\n\r\n document.addEventListener(\r\n \"click\",\r\n function focusOnClick(ev) {\r\n if (ev.target === node && ev.$focus) {\r\n node.focus();\r\n ev.stopImmediatePropagation();\r\n ev.preventDefault();\r\n node.removeEventListener(\"click\", focusOnClick);\r\n }\r\n },\r\n true\r\n );\r\n\r\n var newEvent = document.createEvent(\"MouseEvents\");\r\n newEvent.initMouseEvent(\r\n \"click\",\r\n false,\r\n true,\r\n window,\r\n {},\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n false,\r\n false,\r\n false,\r\n false,\r\n 0,\r\n null\r\n );\r\n newEvent.$material = true;\r\n newEvent.$focus = true;\r\n node.dispatchEvent(newEvent);\r\n },\r\n\r\n /**\r\n * facade to build md-backdrop element with desired styles\r\n * NOTE: Use $compile to trigger backdrop postLink function\r\n */\r\n createBackdrop: function(scope, addClass) {\r\n return $compile(\r\n $mdUtil.supplant('', [addClass])\r\n )(scope);\r\n },\r\n\r\n /**\r\n * supplant() method from Crockford's `Remedial Javascript`\r\n * Equivalent to use of $interpolate; without dependency on\r\n * interpolation symbols and scope. Note: the '{}' can\r\n * be property names, property chains, or array indices.\r\n */\r\n supplant: function(template, values, pattern) {\r\n pattern = pattern || /\\{([^\\{\\}]*)\\}/g;\r\n return template.replace(pattern, function(a, b) {\r\n var p = b.split(\".\"),\r\n r = values;\r\n try {\r\n for (var s in p) {\r\n if (p.hasOwnProperty(s)) {\r\n r = r[p[s]];\r\n }\r\n }\r\n } catch (e) {\r\n r = a;\r\n }\r\n return typeof r === \"string\" || typeof r === \"number\" ? r : a;\r\n });\r\n },\r\n\r\n fakeNgModel: function() {\r\n return {\r\n $fake: true,\r\n $setTouched: angular.noop,\r\n $setViewValue: function(value) {\r\n this.$viewValue = value;\r\n this.$render(value);\r\n this.$viewChangeListeners.forEach(function(cb) {\r\n cb();\r\n });\r\n },\r\n $isEmpty: function(value) {\r\n return (\"\" + value).length === 0;\r\n },\r\n $parsers: [],\r\n $formatters: [],\r\n $viewChangeListeners: [],\r\n $render: angular.noop\r\n };\r\n },\r\n\r\n // Returns a function, that, as long as it continues to be invoked, will not\r\n // be triggered. The function will be called after it stops being called for\r\n // N milliseconds.\r\n // @param wait Integer value of msecs to delay (since last debounce reset); default value 10 msecs\r\n // @param invokeApply should the $timeout trigger $digest() dirty checking\r\n debounce: function(func, wait, scope, invokeApply) {\r\n var timer;\r\n\r\n return function debounced() {\r\n var context = scope,\r\n args = Array.prototype.slice.call(arguments);\r\n\r\n $timeout.cancel(timer);\r\n timer = $timeout(\r\n function() {\r\n timer = undefined;\r\n func.apply(context, args);\r\n },\r\n wait || 10,\r\n invokeApply\r\n );\r\n };\r\n },\r\n\r\n // Returns a function that can only be triggered every `delay` milliseconds.\r\n // In other words, the function will not be called unless it has been more\r\n // than `delay` milliseconds since the last call.\r\n throttle: function throttle(func, delay) {\r\n var recent;\r\n return function throttled() {\r\n var context = this;\r\n var args = arguments;\r\n var now = $mdUtil.now();\r\n\r\n if (!recent || now - recent > delay) {\r\n func.apply(context, args);\r\n recent = now;\r\n }\r\n };\r\n },\r\n\r\n /**\r\n * Measures the number of milliseconds taken to run the provided callback\r\n * function. Uses a high-precision timer if available.\r\n */\r\n time: function time(cb) {\r\n var start = $mdUtil.now();\r\n cb();\r\n return $mdUtil.now() - start;\r\n },\r\n\r\n /**\r\n * Create an implicit getter that caches its `getter()`\r\n * lookup value\r\n */\r\n valueOnUse: function(scope, key, getter) {\r\n var value = null,\r\n args = Array.prototype.slice.call(arguments);\r\n var params = args.length > 3 ? args.slice(3) : [];\r\n\r\n Object.defineProperty(scope, key, {\r\n get: function() {\r\n if (value === null) value = getter.apply(scope, params);\r\n return value;\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * Get a unique ID.\r\n *\r\n * @returns {string} an unique numeric string\r\n */\r\n nextUid: function() {\r\n return \"\" + nextUniqueId++;\r\n },\r\n\r\n // Stop watchers and events from firing on a scope without destroying it,\r\n // by disconnecting it from its parent and its siblings' linked lists.\r\n disconnectScope: function disconnectScope(scope) {\r\n if (!scope) return;\r\n\r\n // we can't destroy the root scope or a scope that has been already destroyed\r\n if (scope.$root === scope) return;\r\n if (scope.$$destroyed) return;\r\n\r\n var parent = scope.$parent;\r\n scope.$$disconnected = true;\r\n\r\n // See Scope.$destroy\r\n if (parent.$$childHead === scope)\r\n parent.$$childHead = scope.$$nextSibling;\r\n if (parent.$$childTail === scope)\r\n parent.$$childTail = scope.$$prevSibling;\r\n if (scope.$$prevSibling)\r\n scope.$$prevSibling.$$nextSibling = scope.$$nextSibling;\r\n if (scope.$$nextSibling)\r\n scope.$$nextSibling.$$prevSibling = scope.$$prevSibling;\r\n\r\n scope.$$nextSibling = scope.$$prevSibling = null;\r\n },\r\n\r\n // Undo the effects of disconnectScope above.\r\n reconnectScope: function reconnectScope(scope) {\r\n if (!scope) return;\r\n\r\n // we can't disconnect the root node or scope already disconnected\r\n if (scope.$root === scope) return;\r\n if (!scope.$$disconnected) return;\r\n\r\n var child = scope;\r\n\r\n var parent = child.$parent;\r\n child.$$disconnected = false;\r\n // See Scope.$new for this logic...\r\n child.$$prevSibling = parent.$$childTail;\r\n if (parent.$$childHead) {\r\n parent.$$childTail.$$nextSibling = child;\r\n parent.$$childTail = child;\r\n } else {\r\n parent.$$childHead = parent.$$childTail = child;\r\n }\r\n },\r\n\r\n /*\r\n * getClosest replicates jQuery.closest() to walk up the DOM tree until it finds a matching nodeName\r\n *\r\n * @param el Element to start walking the DOM from\r\n * @param check Either a string or a function. If a string is passed, it will be evaluated against\r\n * each of the parent nodes' tag name. If a function is passed, the loop will call it with each of\r\n * the parents and will use the return value to determine whether the node is a match.\r\n * @param onlyParent Only start checking from the parent element, not `el`.\r\n */\r\n getClosest: function getClosest(el, validateWith, onlyParent) {\r\n if (angular.isString(validateWith)) {\r\n var tagName = validateWith.toUpperCase();\r\n validateWith = function(el) {\r\n return el.nodeName === tagName;\r\n };\r\n }\r\n\r\n if (el instanceof angular.element) el = el[0];\r\n if (onlyParent) el = el.parentNode;\r\n if (!el) return null;\r\n\r\n do {\r\n if (validateWith(el)) {\r\n return el;\r\n }\r\n } while ((el = el.parentNode));\r\n\r\n return null;\r\n },\r\n\r\n /**\r\n * Build polyfill for the Node.contains feature (if needed)\r\n */\r\n elementContains: function(node, child) {\r\n var hasContains =\r\n window.Node && window.Node.prototype && Node.prototype.contains;\r\n var findFn = hasContains\r\n ? angular.bind(node, node.contains)\r\n : angular.bind(node, function(arg) {\r\n // compares the positions of two nodes and returns a bitmask\r\n return (\r\n node === child || !!(this.compareDocumentPosition(arg) & 16)\r\n );\r\n });\r\n\r\n return findFn(child);\r\n },\r\n\r\n /**\r\n * Functional equivalent for $element.filter(‘md-bottom-sheet’)\r\n * useful with interimElements where the element and its container are important...\r\n *\r\n * @param {[]} elements to scan\r\n * @param {string} name of node to find (e.g. 'md-dialog')\r\n * @param {boolean=} optional flag to allow deep scans; defaults to 'false'.\r\n * @param {boolean=} optional flag to enable log warnings; defaults to false\r\n */\r\n extractElementByName: function(\r\n element,\r\n nodeName,\r\n scanDeep,\r\n warnNotFound\r\n ) {\r\n var found = scanTree(element);\r\n if (!found && !!warnNotFound) {\r\n $log.warn(\r\n $mdUtil.supplant(\"Unable to find node '{0}' in element '{1}'.\", [\r\n nodeName,\r\n element[0].outerHTML\r\n ])\r\n );\r\n }\r\n\r\n return angular.element(found || element);\r\n\r\n /**\r\n * Breadth-First tree scan for element with matching `nodeName`\r\n */\r\n function scanTree(element) {\r\n return (\r\n scanLevel(element) || (!!scanDeep ? scanChildren(element) : null)\r\n );\r\n }\r\n\r\n /**\r\n * Case-insensitive scan of current elements only (do not descend).\r\n */\r\n function scanLevel(element) {\r\n if (element) {\r\n for (var i = 0, len = element.length; i < len; i++) {\r\n if (element[i].nodeName.toLowerCase() === nodeName) {\r\n return element[i];\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Scan children of specified node\r\n */\r\n function scanChildren(element) {\r\n var found;\r\n if (element) {\r\n for (var i = 0, len = element.length; i < len; i++) {\r\n var target = element[i];\r\n if (!found) {\r\n for (\r\n var j = 0, numChild = target.childNodes.length;\r\n j < numChild;\r\n j++\r\n ) {\r\n found = found || scanTree([target.childNodes[j]]);\r\n }\r\n }\r\n }\r\n }\r\n return found;\r\n }\r\n },\r\n\r\n /**\r\n * Give optional properties with no value a boolean true if attr provided or false otherwise\r\n */\r\n initOptionalProperties: function(scope, attr, defaults) {\r\n defaults = defaults || {};\r\n angular.forEach(scope.$$isolateBindings, function(binding, key) {\r\n if (binding.optional && angular.isUndefined(scope[key])) {\r\n var attrIsDefined = angular.isDefined(attr[binding.attrName]);\r\n scope[key] = angular.isDefined(defaults[key])\r\n ? defaults[key]\r\n : attrIsDefined;\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * Alternative to $timeout calls with 0 delay.\r\n * nextTick() coalesces all calls within a single frame\r\n * to minimize $digest thrashing\r\n *\r\n * @param callback\r\n * @param digest\r\n * @returns {*}\r\n */\r\n nextTick: function(callback, digest, scope) {\r\n //-- grab function reference for storing state details\r\n var nextTick = $mdUtil.nextTick;\r\n var timeout = nextTick.timeout;\r\n var queue = nextTick.queue || [];\r\n\r\n //-- add callback to the queue\r\n queue.push({ scope: scope, callback: callback });\r\n\r\n //-- set default value for digest\r\n if (digest == null) digest = true;\r\n\r\n //-- store updated digest/queue values\r\n nextTick.digest = nextTick.digest || digest;\r\n nextTick.queue = queue;\r\n\r\n //-- either return existing timeout or create a new one\r\n return (\r\n timeout || (nextTick.timeout = $timeout(processQueue, 0, false))\r\n );\r\n\r\n /**\r\n * Grab a copy of the current queue\r\n * Clear the queue for future use\r\n * Process the existing queue\r\n * Trigger digest if necessary\r\n */\r\n function processQueue() {\r\n var queue = nextTick.queue;\r\n var digest = nextTick.digest;\r\n\r\n nextTick.queue = [];\r\n nextTick.timeout = null;\r\n nextTick.digest = false;\r\n\r\n queue.forEach(function(queueItem) {\r\n var skip = queueItem.scope && queueItem.scope.$$destroyed;\r\n if (!skip) {\r\n queueItem.callback();\r\n }\r\n });\r\n\r\n if (digest) $rootScope.$digest();\r\n }\r\n },\r\n\r\n /**\r\n * Processes a template and replaces the start/end symbols if the application has\r\n * overriden them.\r\n *\r\n * @param template The template to process whose start/end tags may be replaced.\r\n * @returns {*}\r\n */\r\n processTemplate: function(template) {\r\n if (usesStandardSymbols) {\r\n return template;\r\n } else {\r\n if (!template || !angular.isString(template)) return template;\r\n return template\r\n .replace(/\\{\\{/g, startSymbol)\r\n .replace(/}}/g, endSymbol);\r\n }\r\n },\r\n\r\n /**\r\n * Scan up dom hierarchy for enabled parent;\r\n */\r\n getParentWithPointerEvents: function(element) {\r\n var parent = element.parent();\r\n\r\n // jqLite might return a non-null, but still empty, parent; so check for parent and length\r\n while (hasComputedStyle(parent, \"pointer-events\", \"none\")) {\r\n parent = parent.parent();\r\n }\r\n\r\n return parent;\r\n },\r\n\r\n getNearestContentElement: function(element) {\r\n var current = element.parent()[0];\r\n // Look for the nearest parent md-content, stopping at the rootElement.\r\n while (\r\n current &&\r\n current !== $rootElement[0] &&\r\n current !== document.body &&\r\n current.nodeName.toUpperCase() !== \"MD-CONTENT\"\r\n ) {\r\n current = current.parentNode;\r\n }\r\n return current;\r\n },\r\n\r\n /**\r\n * Checks if the current browser is natively supporting the `sticky` position.\r\n * @returns {string} supported sticky property name\r\n */\r\n checkStickySupport: function() {\r\n var stickyProp;\r\n var testEl = angular.element(\"
\");\r\n $document[0].body.appendChild(testEl[0]);\r\n\r\n var stickyProps = [\"sticky\", \"-webkit-sticky\"];\r\n for (var i = 0; i < stickyProps.length; ++i) {\r\n testEl.css({\r\n position: stickyProps[i],\r\n top: 0,\r\n \"z-index\": 2\r\n });\r\n\r\n if (testEl.css(\"position\") == stickyProps[i]) {\r\n stickyProp = stickyProps[i];\r\n break;\r\n }\r\n }\r\n\r\n testEl.remove();\r\n\r\n return stickyProp;\r\n },\r\n\r\n /**\r\n * Parses an attribute value, mostly a string.\r\n * By default checks for negated values and returns `false´ if present.\r\n * Negated values are: (native falsy) and negative strings like:\r\n * `false` or `0`.\r\n * @param value Attribute value which should be parsed.\r\n * @param negatedCheck When set to false, won't check for negated values.\r\n * @returns {boolean}\r\n */\r\n parseAttributeBoolean: function(value, negatedCheck) {\r\n return (\r\n value === \"\" ||\r\n (!!value &&\r\n (negatedCheck === false || (value !== \"false\" && value !== \"0\")))\r\n );\r\n },\r\n\r\n hasComputedStyle: hasComputedStyle,\r\n\r\n /**\r\n * Returns true if the parent form of the element has been submitted.\r\n *\r\n * @param element An Angular or HTML5 element.\r\n *\r\n * @returns {boolean}\r\n */\r\n isParentFormSubmitted: function(element) {\r\n var parent = $mdUtil.getClosest(element, \"form\");\r\n var form = parent ? angular.element(parent).controller(\"form\") : null;\r\n\r\n return form ? form.$submitted : false;\r\n },\r\n\r\n /**\r\n * Animate the requested element's scrollTop to the requested scrollPosition with basic easing.\r\n *\r\n * @param element The element to scroll.\r\n * @param scrollEnd The new/final scroll position.\r\n */\r\n animateScrollTo: function(element, scrollEnd) {\r\n var scrollStart = element.scrollTop;\r\n var scrollChange = scrollEnd - scrollStart;\r\n var scrollingDown = scrollStart < scrollEnd;\r\n var startTime = $mdUtil.now();\r\n\r\n $$rAF(scrollChunk);\r\n\r\n function scrollChunk() {\r\n var newPosition = calculateNewPosition();\r\n\r\n element.scrollTop = newPosition;\r\n\r\n if (\r\n scrollingDown ? newPosition < scrollEnd : newPosition > scrollEnd\r\n ) {\r\n $$rAF(scrollChunk);\r\n }\r\n }\r\n\r\n function calculateNewPosition() {\r\n var duration = 1000;\r\n var currentTime = $mdUtil.now() - startTime;\r\n\r\n return ease(currentTime, scrollStart, scrollChange, duration);\r\n }\r\n\r\n function ease(currentTime, start, change, duration) {\r\n // If the duration has passed (which can occur if our app loses focus due to $$rAF), jump\r\n // straight to the proper position\r\n if (currentTime > duration) {\r\n return start + change;\r\n }\r\n\r\n var ts = (currentTime /= duration) * currentTime;\r\n var tc = ts * currentTime;\r\n\r\n return start + change * (-2 * tc + 3 * ts);\r\n }\r\n }\r\n };\r\n\r\n // Instantiate other namespace utility methods\r\n\r\n $mdUtil.dom.animator = $$mdAnimate($mdUtil);\r\n\r\n return $mdUtil;\r\n\r\n function getNode(el) {\r\n return el[0] || el;\r\n }\r\n }\r\n\r\n /*\r\n * Since removing jQuery from the demos, some code that uses `element.focus()` is broken.\r\n * We need to add `element.focus()`, because it's testable unlike `element[0].focus`.\r\n */\r\n\r\n angular.element.prototype.focus =\r\n angular.element.prototype.focus ||\r\n function() {\r\n if (this.length) {\r\n this[0].focus();\r\n }\r\n return this;\r\n };\r\n angular.element.prototype.blur =\r\n angular.element.prototype.blur ||\r\n function() {\r\n if (this.length) {\r\n this[0].blur();\r\n }\r\n return this;\r\n };\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.core.aria\r\n * @description\r\n * Aria Expectations for ngMaterial components.\r\n */\r\n MdAriaService.$inject = [\"$$rAF\", \"$log\", \"$window\", \"$interpolate\"];\r\n angular.module(\"material.core\").provider(\"$mdAria\", MdAriaProvider);\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdAriaProvider\r\n * @module material.core.aria\r\n *\r\n * @description\r\n *\r\n * Modify options of the `$mdAria` service, which will be used by most of the Angular Material\r\n * components.\r\n *\r\n * You are able to disable `$mdAria` warnings, by using the following markup.\r\n *\r\n * \r\n * app.config(function($mdAriaProvider) {\r\n * // Globally disables all ARIA warnings.\r\n * $mdAriaProvider.disableWarnings();\r\n * });\r\n * \r\n *\r\n */\r\n function MdAriaProvider() {\r\n var self = this;\r\n\r\n /**\r\n * Whether we should show ARIA warnings in the console, if labels are missing on the element\r\n * By default the warnings are enabled\r\n */\r\n self.showWarnings = true;\r\n\r\n return {\r\n disableWarnings: disableWarnings,\r\n $get: [\r\n \"$$rAF\",\r\n \"$log\",\r\n \"$window\",\r\n \"$interpolate\",\r\n function($$rAF, $log, $window, $interpolate) {\r\n return MdAriaService.apply(self, arguments);\r\n }\r\n ]\r\n };\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdAriaProvider#disableWarnings\r\n * @description Disables all ARIA warnings generated by Angular Material.\r\n */\r\n function disableWarnings() {\r\n self.showWarnings = false;\r\n }\r\n }\r\n\r\n /*\r\n * @ngInject\r\n */\r\n function MdAriaService($$rAF, $log, $window, $interpolate) {\r\n // Load the showWarnings option from the current context and store it inside of a scope variable,\r\n // because the context will be probably lost in some function calls.\r\n var showWarnings = this.showWarnings;\r\n\r\n return {\r\n expect: expect,\r\n expectAsync: expectAsync,\r\n expectWithText: expectWithText,\r\n expectWithoutText: expectWithoutText\r\n };\r\n\r\n /**\r\n * Check if expected attribute has been specified on the target element or child\r\n * @param element\r\n * @param attrName\r\n * @param {optional} defaultValue What to set the attr to if no value is found\r\n */\r\n function expect(element, attrName, defaultValue) {\r\n var node = angular.element(element)[0] || element;\r\n\r\n // if node exists and neither it nor its children have the attribute\r\n if (\r\n node &&\r\n ((!node.hasAttribute(attrName) ||\r\n node.getAttribute(attrName).length === 0) &&\r\n !childHasAttribute(node, attrName))\r\n ) {\r\n defaultValue = angular.isString(defaultValue)\r\n ? defaultValue.trim()\r\n : \"\";\r\n if (defaultValue.length) {\r\n element.attr(attrName, defaultValue);\r\n } else if (showWarnings) {\r\n $log.warn(\r\n 'ARIA: Attribute \"',\r\n attrName,\r\n '\", required for accessibility, is missing on node:',\r\n node\r\n );\r\n }\r\n }\r\n }\r\n\r\n function expectAsync(element, attrName, defaultValueGetter) {\r\n // Problem: when retrieving the element's contents synchronously to find the label,\r\n // the text may not be defined yet in the case of a binding.\r\n // There is a higher chance that a binding will be defined if we wait one frame.\r\n $$rAF(function() {\r\n expect(element, attrName, defaultValueGetter());\r\n });\r\n }\r\n\r\n function expectWithText(element, attrName) {\r\n var content = getText(element) || \"\";\r\n var hasBinding = content.indexOf($interpolate.startSymbol()) > -1;\r\n\r\n if (hasBinding) {\r\n expectAsync(element, attrName, function() {\r\n return getText(element);\r\n });\r\n } else {\r\n expect(element, attrName, content);\r\n }\r\n }\r\n\r\n function expectWithoutText(element, attrName) {\r\n var content = getText(element);\r\n var hasBinding = content.indexOf($interpolate.startSymbol()) > -1;\r\n\r\n if (!hasBinding && !content) {\r\n expect(element, attrName, content);\r\n }\r\n }\r\n\r\n function getText(element) {\r\n element = element[0] || element;\r\n var walker = document.createTreeWalker(\r\n element,\r\n NodeFilter.SHOW_TEXT,\r\n null,\r\n false\r\n );\r\n var text = \"\";\r\n\r\n var node;\r\n while ((node = walker.nextNode())) {\r\n if (!isAriaHiddenNode(node)) {\r\n text += node.textContent;\r\n }\r\n }\r\n\r\n return text.trim() || \"\";\r\n\r\n function isAriaHiddenNode(node) {\r\n while (node.parentNode && (node = node.parentNode) !== element) {\r\n if (\r\n node.getAttribute &&\r\n node.getAttribute(\"aria-hidden\") === \"true\"\r\n ) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function childHasAttribute(node, attrName) {\r\n var hasChildren = node.hasChildNodes(),\r\n hasAttr = false;\r\n\r\n function isHidden(el) {\r\n var style = el.currentStyle\r\n ? el.currentStyle\r\n : $window.getComputedStyle(el);\r\n return style.display === \"none\";\r\n }\r\n\r\n if (hasChildren) {\r\n var children = node.childNodes;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (child.nodeType === 1 && child.hasAttribute(attrName)) {\r\n if (!isHidden(child)) {\r\n hasAttr = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return hasAttr;\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n mdCompilerService.$inject = [\r\n \"$q\",\r\n \"$templateRequest\",\r\n \"$injector\",\r\n \"$compile\",\r\n \"$controller\"\r\n ];\r\n angular.module(\"material.core\").service(\"$mdCompiler\", mdCompilerService);\r\n\r\n function mdCompilerService(\r\n $q,\r\n $templateRequest,\r\n $injector,\r\n $compile,\r\n $controller\r\n ) {\r\n /* jshint validthis: true */\r\n\r\n /*\r\n * @ngdoc service\r\n * @name $mdCompiler\r\n * @module material.core\r\n * @description\r\n * The $mdCompiler service is an abstraction of angular's compiler, that allows the developer\r\n * to easily compile an element with a templateUrl, controller, and locals.\r\n *\r\n * @usage\r\n * \r\n * $mdCompiler.compile({\r\n * templateUrl: 'modal.html',\r\n * controller: 'ModalCtrl',\r\n * locals: {\r\n * modal: myModalInstance;\r\n * }\r\n * }).then(function(compileData) {\r\n * compileData.element; // modal.html's template in an element\r\n * compileData.link(myScope); //attach controller & scope to element\r\n * });\r\n * \r\n */\r\n\r\n /*\r\n * @ngdoc method\r\n * @name $mdCompiler#compile\r\n * @description A helper to compile an HTML template/templateUrl with a given controller,\r\n * locals, and scope.\r\n * @param {object} options An options object, with the following properties:\r\n *\r\n * - `controller` - `{(string=|function()=}` Controller fn that should be associated with\r\n * newly created scope or the name of a registered controller if passed as a string.\r\n * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be\r\n * published to scope under the `controllerAs` name.\r\n * - `template` - `{string=}` An html template as a string.\r\n * - `templateUrl` - `{string=}` A path to an html template.\r\n * - `transformTemplate` - `{function(template)=}` A function which transforms the template after\r\n * it is loaded. It will be given the template string as a parameter, and should\r\n * return a a new string representing the transformed template.\r\n * - `resolve` - `{Object.=}` - An optional map of dependencies which should\r\n * be injected into the controller. If any of these dependencies are promises, the compiler\r\n * will wait for them all to be resolved, or if one is rejected before the controller is\r\n * instantiated `compile()` will fail..\r\n * * `key` - `{string}`: a name of a dependency to be injected into the controller.\r\n * * `factory` - `{string|function}`: If `string` then it is an alias for a service.\r\n * Otherwise if function, then it is injected and the return value is treated as the\r\n * dependency. If the result is a promise, it is resolved before its value is\r\n * injected into the controller.\r\n *\r\n * @returns {object=} promise A promise, which will be resolved with a `compileData` object.\r\n * `compileData` has the following properties:\r\n *\r\n * - `element` - `{element}`: an uncompiled element matching the provided template.\r\n * - `link` - `{function(scope)}`: A link function, which, when called, will compile\r\n * the element and instantiate the provided controller (if given).\r\n * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is\r\n * called. If `bindToController` is true, they will be coppied to the ctrl instead\r\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\r\n */\r\n this.compile = function(options) {\r\n var templateUrl = options.templateUrl;\r\n var template = options.template || \"\";\r\n var controller = options.controller;\r\n var controllerAs = options.controllerAs;\r\n var resolve = angular.extend({}, options.resolve || {});\r\n var locals = angular.extend({}, options.locals || {});\r\n var transformTemplate = options.transformTemplate || angular.identity;\r\n var bindToController = options.bindToController;\r\n\r\n // Take resolve values and invoke them.\r\n // Resolves can either be a string (value: 'MyRegisteredAngularConst'),\r\n // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {})\r\n angular.forEach(resolve, function(value, key) {\r\n if (angular.isString(value)) {\r\n resolve[key] = $injector.get(value);\r\n } else {\r\n resolve[key] = $injector.invoke(value);\r\n }\r\n });\r\n //Add the locals, which are just straight values to inject\r\n //eg locals: { three: 3 }, will inject three into the controller\r\n angular.extend(resolve, locals);\r\n\r\n if (templateUrl) {\r\n resolve.$template = $templateRequest(templateUrl).then(function(\r\n response\r\n ) {\r\n return response;\r\n });\r\n } else {\r\n resolve.$template = $q.when(template);\r\n }\r\n\r\n // Wait for all the resolves to finish if they are promises\r\n return $q.all(resolve).then(function(locals) {\r\n var compiledData;\r\n var template = transformTemplate(locals.$template, options);\r\n var element =\r\n options.element ||\r\n angular\r\n .element(\"
\")\r\n .html(template.trim())\r\n .contents();\r\n var linkFn = $compile(element);\r\n\r\n // Return a linking function that can be used later when the element is ready\r\n return (compiledData = {\r\n locals: locals,\r\n element: element,\r\n link: function link(scope) {\r\n locals.$scope = scope;\r\n\r\n //Instantiate controller if it exists, because we have scope\r\n if (controller) {\r\n var invokeCtrl = $controller(\r\n controller,\r\n locals,\r\n true,\r\n controllerAs\r\n );\r\n if (bindToController) {\r\n angular.extend(invokeCtrl.instance, locals);\r\n }\r\n var ctrl = invokeCtrl();\r\n //See angular-route source for this logic\r\n element.data(\"$ngControllerController\", ctrl);\r\n element.children().data(\"$ngControllerController\", ctrl);\r\n\r\n // Publish reference to this controller\r\n compiledData.controller = ctrl;\r\n }\r\n return linkFn(scope);\r\n }\r\n });\r\n });\r\n };\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n MdGesture.$inject = [\"$$MdGestureHandler\", \"$$rAF\", \"$timeout\"];\r\n attachToDocument.$inject = [\"$mdGesture\", \"$$MdGestureHandler\"];\r\n var HANDLERS = {};\r\n\r\n /* The state of the current 'pointer'\r\n * The pointer represents the state of the current touch.\r\n * It contains normalized x and y coordinates from DOM events,\r\n * as well as other information abstracted from the DOM.\r\n */\r\n\r\n var pointer,\r\n lastPointer,\r\n forceSkipClickHijack = false;\r\n\r\n /**\r\n * The position of the most recent click if that click was on a label element.\r\n * @type {{x: number, y: number}?}\r\n */\r\n var lastLabelClickPos = null;\r\n\r\n // Used to attach event listeners once when multiple ng-apps are running.\r\n var isInitialized = false;\r\n\r\n angular\r\n .module(\"material.core.gestures\", [])\r\n .provider(\"$mdGesture\", MdGestureProvider)\r\n .factory(\"$$MdGestureHandler\", MdGestureHandler)\r\n .run(attachToDocument);\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdGestureProvider\r\n * @module material.core.gestures\r\n *\r\n * @description\r\n * In some scenarios on Mobile devices (without jQuery), the click events should NOT be hijacked.\r\n * `$mdGestureProvider` is used to configure the Gesture module to ignore or skip click hijacking on mobile\r\n * devices.\r\n *\r\n * \r\n * app.config(function($mdGestureProvider) {\r\n *\r\n * // For mobile devices without jQuery loaded, do not\r\n * // intercept click events during the capture phase.\r\n * $mdGestureProvider.skipClickHijack();\r\n *\r\n * });\r\n * \r\n *\r\n */\r\n function MdGestureProvider() {}\r\n\r\n MdGestureProvider.prototype = {\r\n // Publish access to setter to configure a variable BEFORE the\r\n // $mdGesture service is instantiated...\r\n skipClickHijack: function() {\r\n return (forceSkipClickHijack = true);\r\n },\r\n\r\n /**\r\n * $get is used to build an instance of $mdGesture\r\n * @ngInject\r\n */\r\n $get: [\r\n \"$$MdGestureHandler\",\r\n \"$$rAF\",\r\n \"$timeout\",\r\n function($$MdGestureHandler, $$rAF, $timeout) {\r\n return new MdGesture($$MdGestureHandler, $$rAF, $timeout);\r\n }\r\n ]\r\n };\r\n\r\n /**\r\n * MdGesture factory construction function\r\n * @ngInject\r\n */\r\n function MdGesture($$MdGestureHandler, $$rAF, $timeout) {\r\n var userAgent = navigator.userAgent || navigator.vendor || window.opera;\r\n var isIos = userAgent.match(/ipad|iphone|ipod/i);\r\n var isAndroid = userAgent.match(/android/i);\r\n var touchActionProperty = getTouchAction();\r\n var hasJQuery =\r\n typeof window.jQuery !== \"undefined\" &&\r\n angular.element === window.jQuery;\r\n\r\n var self = {\r\n handler: addHandler,\r\n register: register,\r\n isIos: isIos,\r\n isAndroid: isAndroid,\r\n // On mobile w/out jQuery, we normally intercept clicks. Should we skip that?\r\n isHijackingClicks:\r\n (isIos || isAndroid) && !hasJQuery && !forceSkipClickHijack\r\n };\r\n\r\n if (self.isHijackingClicks) {\r\n var maxClickDistance = 6;\r\n self.handler(\"click\", {\r\n options: {\r\n maxDistance: maxClickDistance\r\n },\r\n onEnd: checkDistanceAndEmit(\"click\")\r\n });\r\n\r\n self.handler(\"focus\", {\r\n options: {\r\n maxDistance: maxClickDistance\r\n },\r\n onEnd: function(ev, pointer) {\r\n if (pointer.distance < this.state.options.maxDistance) {\r\n if (canFocus(ev.target)) {\r\n this.dispatchEvent(ev, \"focus\", pointer);\r\n ev.target.focus();\r\n }\r\n }\r\n\r\n function canFocus(element) {\r\n var focusableElements = [\r\n \"INPUT\",\r\n \"SELECT\",\r\n \"BUTTON\",\r\n \"TEXTAREA\",\r\n \"VIDEO\",\r\n \"AUDIO\"\r\n ];\r\n\r\n return (\r\n element.getAttribute(\"tabindex\") != \"-1\" &&\r\n !element.hasAttribute(\"DISABLED\") &&\r\n (element.hasAttribute(\"tabindex\") ||\r\n element.hasAttribute(\"href\") ||\r\n element.isContentEditable ||\r\n focusableElements.indexOf(element.nodeName) != -1)\r\n );\r\n }\r\n }\r\n });\r\n\r\n self.handler(\"mouseup\", {\r\n options: {\r\n maxDistance: maxClickDistance\r\n },\r\n onEnd: checkDistanceAndEmit(\"mouseup\")\r\n });\r\n\r\n self.handler(\"mousedown\", {\r\n onStart: function(ev) {\r\n this.dispatchEvent(ev, \"mousedown\");\r\n }\r\n });\r\n }\r\n\r\n function checkDistanceAndEmit(eventName) {\r\n return function(ev, pointer) {\r\n if (pointer.distance < this.state.options.maxDistance) {\r\n this.dispatchEvent(ev, eventName, pointer);\r\n }\r\n };\r\n }\r\n\r\n /*\r\n * Register an element to listen for a handler.\r\n * This allows an element to override the default options for a handler.\r\n * Additionally, some handlers like drag and hold only dispatch events if\r\n * the domEvent happens inside an element that's registered to listen for these events.\r\n *\r\n * @see GestureHandler for how overriding of default options works.\r\n * @example $mdGesture.register(myElement, 'drag', { minDistance: 20, horziontal: false })\r\n */\r\n function register(element, handlerName, options) {\r\n var handler = HANDLERS[handlerName.replace(/^\\$md./, \"\")];\r\n if (!handler) {\r\n throw new Error(\r\n \"Failed to register element with handler \" +\r\n handlerName +\r\n \". \" +\r\n \"Available handlers: \" +\r\n Object.keys(HANDLERS).join(\", \")\r\n );\r\n }\r\n return handler.registerElement(element, options);\r\n }\r\n\r\n /*\r\n * add a handler to $mdGesture. see below.\r\n */\r\n function addHandler(name, definition) {\r\n var handler = new $$MdGestureHandler(name);\r\n angular.extend(handler, definition);\r\n HANDLERS[name] = handler;\r\n\r\n return self;\r\n }\r\n\r\n /*\r\n * Register handlers. These listen to touch/start/move events, interpret them,\r\n * and dispatch gesture events depending on options & conditions. These are all\r\n * instances of GestureHandler.\r\n * @see GestureHandler\r\n */\r\n return (\r\n self\r\n /*\r\n * The press handler dispatches an event on touchdown/touchend.\r\n * It's a simple abstraction of touch/mouse/pointer start and end.\r\n */\r\n .handler(\"press\", {\r\n onStart: function(ev, pointer) {\r\n this.dispatchEvent(ev, \"$md.pressdown\");\r\n },\r\n onEnd: function(ev, pointer) {\r\n this.dispatchEvent(ev, \"$md.pressup\");\r\n }\r\n })\r\n\r\n /*\r\n * The hold handler dispatches an event if the user keeps their finger within\r\n * the same area for ms.\r\n * The hold handler will only run if a parent of the touch target is registered\r\n * to listen for hold events through $mdGesture.register()\r\n */\r\n .handler(\"hold\", {\r\n options: {\r\n maxDistance: 6,\r\n delay: 500\r\n },\r\n onCancel: function() {\r\n $timeout.cancel(this.state.timeout);\r\n },\r\n onStart: function(ev, pointer) {\r\n // For hold, require a parent to be registered with $mdGesture.register()\r\n // Because we prevent scroll events, this is necessary.\r\n if (!this.state.registeredParent) return this.cancel();\r\n\r\n this.state.pos = { x: pointer.x, y: pointer.y };\r\n this.state.timeout = $timeout(\r\n angular.bind(this, function holdDelayFn() {\r\n this.dispatchEvent(ev, \"$md.hold\");\r\n this.cancel(); //we're done!\r\n }),\r\n this.state.options.delay,\r\n false\r\n );\r\n },\r\n onMove: function(ev, pointer) {\r\n // Don't scroll while waiting for hold.\r\n // If we don't preventDefault touchmove events here, Android will assume we don't\r\n // want to listen to anymore touch events. It will start scrolling and stop sending\r\n // touchmove events.\r\n if (!touchActionProperty && ev.type === \"touchmove\")\r\n ev.preventDefault();\r\n\r\n // If the user moves greater than pixels, stop the hold timer\r\n // set in onStart\r\n var dx = this.state.pos.x - pointer.x;\r\n var dy = this.state.pos.y - pointer.y;\r\n if (Math.sqrt(dx * dx + dy * dy) > this.options.maxDistance) {\r\n this.cancel();\r\n }\r\n },\r\n onEnd: function() {\r\n this.onCancel();\r\n }\r\n })\r\n\r\n /*\r\n * The drag handler dispatches a drag event if the user holds and moves his finger greater than\r\n * px in the x or y direction, depending on options.horizontal.\r\n * The drag will be cancelled if the user moves his finger greater than * in\r\n * the perpendicular direction. Eg if the drag is horizontal and the user moves his finger *\r\n * pixels vertically, this handler won't consider the move part of a drag.\r\n */\r\n .handler(\"drag\", {\r\n options: {\r\n minDistance: 6,\r\n horizontal: true,\r\n cancelMultiplier: 1.5\r\n },\r\n onSetup: function(element, options) {\r\n if (touchActionProperty) {\r\n // We check for horizontal to be false, because otherwise we would overwrite the default opts.\r\n this.oldTouchAction = element[0].style[touchActionProperty];\r\n element[0].style[touchActionProperty] =\r\n options.horizontal === false ? \"pan-y\" : \"pan-x\";\r\n }\r\n },\r\n onCleanup: function(element) {\r\n if (this.oldTouchAction) {\r\n element[0].style[touchActionProperty] = this.oldTouchAction;\r\n }\r\n },\r\n onStart: function(ev) {\r\n // For drag, require a parent to be registered with $mdGesture.register()\r\n if (!this.state.registeredParent) this.cancel();\r\n },\r\n onMove: function(ev, pointer) {\r\n var shouldStartDrag, shouldCancel;\r\n // Don't scroll while deciding if this touchmove qualifies as a drag event.\r\n // If we don't preventDefault touchmove events here, Android will assume we don't\r\n // want to listen to anymore touch events. It will start scrolling and stop sending\r\n // touchmove events.\r\n if (!touchActionProperty && ev.type === \"touchmove\")\r\n ev.preventDefault();\r\n\r\n if (!this.state.dragPointer) {\r\n if (this.state.options.horizontal) {\r\n shouldStartDrag =\r\n Math.abs(pointer.distanceX) >\r\n this.state.options.minDistance;\r\n shouldCancel =\r\n Math.abs(pointer.distanceY) >\r\n this.state.options.minDistance *\r\n this.state.options.cancelMultiplier;\r\n } else {\r\n shouldStartDrag =\r\n Math.abs(pointer.distanceY) >\r\n this.state.options.minDistance;\r\n shouldCancel =\r\n Math.abs(pointer.distanceX) >\r\n this.state.options.minDistance *\r\n this.state.options.cancelMultiplier;\r\n }\r\n\r\n if (shouldStartDrag) {\r\n // Create a new pointer representing this drag, starting at this point where the drag started.\r\n this.state.dragPointer = makeStartPointer(ev);\r\n updatePointerState(ev, this.state.dragPointer);\r\n this.dispatchEvent(\r\n ev,\r\n \"$md.dragstart\",\r\n this.state.dragPointer\r\n );\r\n } else if (shouldCancel) {\r\n this.cancel();\r\n }\r\n } else {\r\n this.dispatchDragMove(ev);\r\n }\r\n },\r\n // Only dispatch dragmove events every frame; any more is unnecessary\r\n dispatchDragMove: $$rAF.throttle(function(ev) {\r\n // Make sure the drag didn't stop while waiting for the next frame\r\n if (this.state.isRunning) {\r\n updatePointerState(ev, this.state.dragPointer);\r\n this.dispatchEvent(ev, \"$md.drag\", this.state.dragPointer);\r\n }\r\n }),\r\n onEnd: function(ev, pointer) {\r\n if (this.state.dragPointer) {\r\n updatePointerState(ev, this.state.dragPointer);\r\n this.dispatchEvent(ev, \"$md.dragend\", this.state.dragPointer);\r\n }\r\n }\r\n })\r\n\r\n /*\r\n * The swipe handler will dispatch a swipe event if, on the end of a touch,\r\n * the velocity and distance were high enough.\r\n */\r\n .handler(\"swipe\", {\r\n options: {\r\n minVelocity: 0.65,\r\n minDistance: 10\r\n },\r\n onEnd: function(ev, pointer) {\r\n var eventType;\r\n\r\n if (\r\n Math.abs(pointer.velocityX) > this.state.options.minVelocity &&\r\n Math.abs(pointer.distanceX) > this.state.options.minDistance\r\n ) {\r\n eventType =\r\n pointer.directionX == \"left\"\r\n ? \"$md.swipeleft\"\r\n : \"$md.swiperight\";\r\n this.dispatchEvent(ev, eventType);\r\n } else if (\r\n Math.abs(pointer.velocityY) > this.state.options.minVelocity &&\r\n Math.abs(pointer.distanceY) > this.state.options.minDistance\r\n ) {\r\n eventType =\r\n pointer.directionY == \"up\" ? \"$md.swipeup\" : \"$md.swipedown\";\r\n this.dispatchEvent(ev, eventType);\r\n }\r\n }\r\n })\r\n );\r\n\r\n function getTouchAction() {\r\n var testEl = document.createElement(\"div\");\r\n var vendorPrefixes = [\"\", \"webkit\", \"Moz\", \"MS\", \"ms\", \"o\"];\r\n\r\n for (var i = 0; i < vendorPrefixes.length; i++) {\r\n var prefix = vendorPrefixes[i];\r\n var property = prefix ? prefix + \"TouchAction\" : \"touchAction\";\r\n if (angular.isDefined(testEl.style[property])) {\r\n return property;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * MdGestureHandler\r\n * A GestureHandler is an object which is able to dispatch custom dom events\r\n * based on native dom {touch,pointer,mouse}{start,move,end} events.\r\n *\r\n * A gesture will manage its lifecycle through the start,move,end, and cancel\r\n * functions, which are called by native dom events.\r\n *\r\n * A gesture has the concept of 'options' (eg a swipe's required velocity), which can be\r\n * overridden by elements registering through $mdGesture.register()\r\n */\r\n function GestureHandler(name) {\r\n this.name = name;\r\n this.state = {};\r\n }\r\n\r\n function MdGestureHandler() {\r\n var hasJQuery =\r\n typeof window.jQuery !== \"undefined\" &&\r\n angular.element === window.jQuery;\r\n\r\n GestureHandler.prototype = {\r\n options: {},\r\n // jQuery listeners don't work with custom DOMEvents, so we have to dispatch events\r\n // differently when jQuery is loaded\r\n dispatchEvent: hasJQuery ? jQueryDispatchEvent : nativeDispatchEvent,\r\n\r\n // These are overridden by the registered handler\r\n onSetup: angular.noop,\r\n onCleanup: angular.noop,\r\n onStart: angular.noop,\r\n onMove: angular.noop,\r\n onEnd: angular.noop,\r\n onCancel: angular.noop,\r\n\r\n // onStart sets up a new state for the handler, which includes options from the\r\n // nearest registered parent element of ev.target.\r\n start: function(ev, pointer) {\r\n if (this.state.isRunning) return;\r\n var parentTarget = this.getNearestParent(ev.target);\r\n // Get the options from the nearest registered parent\r\n var parentTargetOptions =\r\n (parentTarget && parentTarget.$mdGesture[this.name]) || {};\r\n\r\n this.state = {\r\n isRunning: true,\r\n // Override the default options with the nearest registered parent's options\r\n options: angular.extend({}, this.options, parentTargetOptions),\r\n // Pass in the registered parent node to the state so the onStart listener can use\r\n registeredParent: parentTarget\r\n };\r\n this.onStart(ev, pointer);\r\n },\r\n move: function(ev, pointer) {\r\n if (!this.state.isRunning) return;\r\n this.onMove(ev, pointer);\r\n },\r\n end: function(ev, pointer) {\r\n if (!this.state.isRunning) return;\r\n this.onEnd(ev, pointer);\r\n this.state.isRunning = false;\r\n },\r\n cancel: function(ev, pointer) {\r\n this.onCancel(ev, pointer);\r\n this.state = {};\r\n },\r\n\r\n // Find and return the nearest parent element that has been registered to\r\n // listen for this handler via $mdGesture.register(element, 'handlerName').\r\n getNearestParent: function(node) {\r\n var current = node;\r\n while (current) {\r\n if ((current.$mdGesture || {})[this.name]) {\r\n return current;\r\n }\r\n current = current.parentNode;\r\n }\r\n return null;\r\n },\r\n\r\n // Called from $mdGesture.register when an element registers itself with a handler.\r\n // Store the options the user gave on the DOMElement itself. These options will\r\n // be retrieved with getNearestParent when the handler starts.\r\n registerElement: function(element, options) {\r\n var self = this;\r\n element[0].$mdGesture = element[0].$mdGesture || {};\r\n element[0].$mdGesture[this.name] = options || {};\r\n element.on(\"$destroy\", onDestroy);\r\n\r\n self.onSetup(element, options || {});\r\n\r\n return onDestroy;\r\n\r\n function onDestroy() {\r\n delete element[0].$mdGesture[self.name];\r\n element.off(\"$destroy\", onDestroy);\r\n\r\n self.onCleanup(element, options || {});\r\n }\r\n }\r\n };\r\n\r\n return GestureHandler;\r\n\r\n /*\r\n * Dispatch an event with jQuery\r\n * TODO: Make sure this sends bubbling events\r\n *\r\n * @param srcEvent the original DOM touch event that started this.\r\n * @param eventType the name of the custom event to send (eg 'click' or '$md.drag')\r\n * @param eventPointer the pointer object that matches this event.\r\n */\r\n function jQueryDispatchEvent(srcEvent, eventType, eventPointer) {\r\n eventPointer = eventPointer || pointer;\r\n var eventObj = new angular.element.Event(eventType);\r\n\r\n eventObj.$material = true;\r\n eventObj.pointer = eventPointer;\r\n eventObj.srcEvent = srcEvent;\r\n\r\n angular.extend(eventObj, {\r\n clientX: eventPointer.x,\r\n clientY: eventPointer.y,\r\n screenX: eventPointer.x,\r\n screenY: eventPointer.y,\r\n pageX: eventPointer.x,\r\n pageY: eventPointer.y,\r\n ctrlKey: srcEvent.ctrlKey,\r\n altKey: srcEvent.altKey,\r\n shiftKey: srcEvent.shiftKey,\r\n metaKey: srcEvent.metaKey\r\n });\r\n angular.element(eventPointer.target).trigger(eventObj);\r\n }\r\n\r\n /*\r\n * NOTE: nativeDispatchEvent is very performance sensitive.\r\n * @param srcEvent the original DOM touch event that started this.\r\n * @param eventType the name of the custom event to send (eg 'click' or '$md.drag')\r\n * @param eventPointer the pointer object that matches this event.\r\n */\r\n function nativeDispatchEvent(srcEvent, eventType, eventPointer) {\r\n eventPointer = eventPointer || pointer;\r\n var eventObj;\r\n\r\n if (\r\n eventType === \"click\" ||\r\n eventType == \"mouseup\" ||\r\n eventType == \"mousedown\"\r\n ) {\r\n eventObj = document.createEvent(\"MouseEvents\");\r\n eventObj.initMouseEvent(\r\n eventType,\r\n true,\r\n true,\r\n window,\r\n srcEvent.detail,\r\n eventPointer.x,\r\n eventPointer.y,\r\n eventPointer.x,\r\n eventPointer.y,\r\n srcEvent.ctrlKey,\r\n srcEvent.altKey,\r\n srcEvent.shiftKey,\r\n srcEvent.metaKey,\r\n srcEvent.button,\r\n srcEvent.relatedTarget || null\r\n );\r\n } else {\r\n eventObj = document.createEvent(\"CustomEvent\");\r\n eventObj.initCustomEvent(eventType, true, true, {});\r\n }\r\n eventObj.$material = true;\r\n eventObj.pointer = eventPointer;\r\n eventObj.srcEvent = srcEvent;\r\n eventPointer.target.dispatchEvent(eventObj);\r\n }\r\n }\r\n\r\n /**\r\n * Attach Gestures: hook document and check shouldHijack clicks\r\n * @ngInject\r\n */\r\n function attachToDocument($mdGesture, $$MdGestureHandler) {\r\n // Polyfill document.contains for IE11.\r\n // TODO: move to util\r\n document.contains ||\r\n (document.contains = function(node) {\r\n return document.body.contains(node);\r\n });\r\n\r\n if (!isInitialized && $mdGesture.isHijackingClicks) {\r\n /*\r\n * If hijack clicks is true, we preventDefault any click that wasn't\r\n * sent by ngMaterial. This is because on older Android & iOS, a false, or 'ghost',\r\n * click event will be sent ~400ms after a touchend event happens.\r\n * The only way to know if this click is real is to prevent any normal\r\n * click events, and add a flag to events sent by material so we know not to prevent those.\r\n *\r\n * Two exceptions to click events that should be prevented are:\r\n * - click events sent by the keyboard (eg form submit)\r\n * - events that originate from an Ionic app\r\n */\r\n document.addEventListener(\"click\", clickHijacker, true);\r\n document.addEventListener(\"mouseup\", mouseInputHijacker, true);\r\n document.addEventListener(\"mousedown\", mouseInputHijacker, true);\r\n document.addEventListener(\"focus\", mouseInputHijacker, true);\r\n\r\n isInitialized = true;\r\n }\r\n\r\n function mouseInputHijacker(ev) {\r\n var isKeyClick = !ev.clientX && !ev.clientY;\r\n if (\r\n !isKeyClick &&\r\n !ev.$material &&\r\n !ev.isIonicTap &&\r\n !isInputEventFromLabelClick(ev)\r\n ) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n }\r\n }\r\n\r\n function clickHijacker(ev) {\r\n var isKeyClick = ev.clientX === 0 && ev.clientY === 0;\r\n if (\r\n !isKeyClick &&\r\n !ev.$material &&\r\n !ev.isIonicTap &&\r\n !isInputEventFromLabelClick(ev)\r\n ) {\r\n ev.preventDefault();\r\n ev.stopPropagation();\r\n lastLabelClickPos = null;\r\n } else {\r\n lastLabelClickPos = null;\r\n if (ev.target.tagName.toLowerCase() == \"label\") {\r\n lastLabelClickPos = { x: ev.x, y: ev.y };\r\n }\r\n }\r\n }\r\n\r\n // Listen to all events to cover all platforms.\r\n var START_EVENTS = \"touchstart\";\r\n var MOVE_EVENTS = \"touchmove\";\r\n var END_EVENTS = \"touchend touchcancel\";\r\n\r\n angular\r\n .element(document)\r\n .on(START_EVENTS, gestureStart)\r\n .on(MOVE_EVENTS, gestureMove)\r\n .on(END_EVENTS, gestureEnd)\r\n // For testing\r\n .on(\"$$mdGestureReset\", function gestureClearCache() {\r\n lastPointer = pointer = null;\r\n });\r\n\r\n /*\r\n * When a DOM event happens, run all registered gesture handlers' lifecycle\r\n * methods which match the DOM event.\r\n * Eg when a 'touchstart' event happens, runHandlers('start') will call and\r\n * run `handler.cancel()` and `handler.start()` on all registered handlers.\r\n */\r\n function runHandlers(handlerEvent, event) {\r\n var handler;\r\n for (var name in HANDLERS) {\r\n handler = HANDLERS[name];\r\n if (handler instanceof $$MdGestureHandler) {\r\n if (handlerEvent === \"start\") {\r\n // Run cancel to reset any handlers' state\r\n handler.cancel();\r\n }\r\n handler[handlerEvent](event, pointer);\r\n }\r\n }\r\n }\r\n\r\n /*\r\n * gestureStart vets if a start event is legitimate (and not part of a 'ghost click' from iOS/Android)\r\n * If it is legitimate, we initiate the pointer state and mark the current pointer's type\r\n * For example, for a touchstart event, mark the current pointer as a 'touch' pointer, so mouse events\r\n * won't effect it.\r\n */\r\n function gestureStart(ev) {\r\n // If we're already touched down, abort\r\n if (pointer) return;\r\n\r\n var now = +Date.now();\r\n\r\n // iOS & old android bug: after a touch event, a click event is sent 350 ms later.\r\n // If <400ms have passed, don't allow an event of a different type than the previous event\r\n if (\r\n lastPointer &&\r\n !typesMatch(ev, lastPointer) &&\r\n now - lastPointer.endTime < 1500\r\n ) {\r\n return;\r\n }\r\n\r\n pointer = makeStartPointer(ev);\r\n\r\n runHandlers(\"start\", ev);\r\n }\r\n /*\r\n * If a move event happens of the right type, update the pointer and run all the move handlers.\r\n * \"of the right type\": if a mousemove happens but our pointer started with a touch event, do nothing.\r\n */\r\n function gestureMove(ev) {\r\n if (!pointer || !typesMatch(ev, pointer)) return;\r\n\r\n updatePointerState(ev, pointer);\r\n runHandlers(\"move\", ev);\r\n }\r\n /*\r\n * If an end event happens of the right type, update the pointer, run endHandlers, and save the pointer as 'lastPointer'\r\n */\r\n function gestureEnd(ev) {\r\n if (!pointer || !typesMatch(ev, pointer)) return;\r\n\r\n updatePointerState(ev, pointer);\r\n pointer.endTime = +Date.now();\r\n\r\n runHandlers(\"end\", ev);\r\n\r\n lastPointer = pointer;\r\n pointer = null;\r\n }\r\n }\r\n\r\n // ********************\r\n // Module Functions\r\n // ********************\r\n\r\n /*\r\n * Initiate the pointer. x, y, and the pointer's type.\r\n */\r\n function makeStartPointer(ev) {\r\n var point = getEventPoint(ev);\r\n var startPointer = {\r\n startTime: +Date.now(),\r\n target: ev.target,\r\n // 'p' for pointer events, 'm' for mouse, 't' for touch\r\n type: ev.type.charAt(0)\r\n };\r\n startPointer.startX = startPointer.x = point.pageX;\r\n startPointer.startY = startPointer.y = point.pageY;\r\n return startPointer;\r\n }\r\n\r\n /*\r\n * return whether the pointer's type matches the event's type.\r\n * Eg if a touch event happens but the pointer has a mouse type, return false.\r\n */\r\n function typesMatch(ev, pointer) {\r\n return ev && pointer && ev.type.charAt(0) === pointer.type;\r\n }\r\n\r\n /**\r\n * Gets whether the given event is an input event that was caused by clicking on an\r\n * associated label element.\r\n *\r\n * This is necessary because the browser will, upon clicking on a label element, fire an\r\n * *extra* click event on its associated input (if any). mdGesture is able to flag the label\r\n * click as with `$material` correctly, but not the second input click.\r\n *\r\n * In order to determine whether an input event is from a label click, we compare the (x, y) for\r\n * the event to the (x, y) for the most recent label click (which is cleared whenever a non-label\r\n * click occurs). Unfortunately, there are no event properties that tie the input and the label\r\n * together (such as relatedTarget).\r\n *\r\n * @param {MouseEvent} event\r\n * @returns {boolean}\r\n */\r\n function isInputEventFromLabelClick(event) {\r\n return (\r\n lastLabelClickPos &&\r\n lastLabelClickPos.x == event.x &&\r\n lastLabelClickPos.y == event.y\r\n );\r\n }\r\n\r\n /*\r\n * Update the given pointer based upon the given DOMEvent.\r\n * Distance, velocity, direction, duration, etc\r\n */\r\n function updatePointerState(ev, pointer) {\r\n var point = getEventPoint(ev);\r\n var x = (pointer.x = point.pageX);\r\n var y = (pointer.y = point.pageY);\r\n\r\n pointer.distanceX = x - pointer.startX;\r\n pointer.distanceY = y - pointer.startY;\r\n pointer.distance = Math.sqrt(\r\n pointer.distanceX * pointer.distanceX +\r\n pointer.distanceY * pointer.distanceY\r\n );\r\n\r\n pointer.directionX =\r\n pointer.distanceX > 0 ? \"right\" : pointer.distanceX < 0 ? \"left\" : \"\";\r\n pointer.directionY =\r\n pointer.distanceY > 0 ? \"down\" : pointer.distanceY < 0 ? \"up\" : \"\";\r\n\r\n pointer.duration = +Date.now() - pointer.startTime;\r\n pointer.velocityX = pointer.distanceX / pointer.duration;\r\n pointer.velocityY = pointer.distanceY / pointer.duration;\r\n }\r\n\r\n /*\r\n * Normalize the point where the DOM event happened whether it's touch or mouse.\r\n * @returns point event obj with pageX and pageY on it.\r\n */\r\n function getEventPoint(ev) {\r\n ev = ev.originalEvent || ev; // support jQuery events\r\n return (\r\n (ev.touches && ev.touches[0]) ||\r\n (ev.changedTouches && ev.changedTouches[0]) ||\r\n ev\r\n );\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"material.core\")\r\n .provider(\"$$interimElement\", InterimElementProvider);\r\n\r\n /*\r\n * @ngdoc service\r\n * @name $$interimElement\r\n * @module material.core\r\n *\r\n * @description\r\n *\r\n * Factory that contructs `$$interimElement.$service` services.\r\n * Used internally in material design for elements that appear on screen temporarily.\r\n * The service provides a promise-like API for interacting with the temporary\r\n * elements.\r\n *\r\n * ```js\r\n * app.service('$mdToast', function($$interimElement) {\r\n * var $mdToast = $$interimElement(toastDefaultOptions);\r\n * return $mdToast;\r\n * });\r\n * ```\r\n * @param {object=} defaultOptions Options used by default for the `show` method on the service.\r\n *\r\n * @returns {$$interimElement.$service}\r\n *\r\n */\r\n\r\n function InterimElementProvider() {\r\n InterimElementFactory.$inject = [\r\n \"$document\",\r\n \"$q\",\r\n \"$$q\",\r\n \"$rootScope\",\r\n \"$timeout\",\r\n \"$rootElement\",\r\n \"$animate\",\r\n \"$mdUtil\",\r\n \"$mdCompiler\",\r\n \"$mdTheming\",\r\n \"$injector\"\r\n ];\r\n createInterimElementProvider.$get = InterimElementFactory;\r\n return createInterimElementProvider;\r\n\r\n /**\r\n * Returns a new provider which allows configuration of a new interimElement\r\n * service. Allows configuration of default options & methods for options,\r\n * as well as configuration of 'preset' methods (eg dialog.basic(): basic is a preset method)\r\n */\r\n function createInterimElementProvider(interimFactoryName) {\r\n factory.$inject = [\"$$interimElement\", \"$injector\"];\r\n var EXPOSED_METHODS = [\"onHide\", \"onShow\", \"onRemove\"];\r\n\r\n var customMethods = {};\r\n var providerConfig = {\r\n presets: {}\r\n };\r\n\r\n var provider = {\r\n setDefaults: setDefaults,\r\n addPreset: addPreset,\r\n addMethod: addMethod,\r\n $get: factory\r\n };\r\n\r\n /**\r\n * all interim elements will come with the 'build' preset\r\n */\r\n provider.addPreset(\"build\", {\r\n methods: [\r\n \"controller\",\r\n \"controllerAs\",\r\n \"resolve\",\r\n \"template\",\r\n \"templateUrl\",\r\n \"themable\",\r\n \"transformTemplate\",\r\n \"parent\"\r\n ]\r\n });\r\n\r\n return provider;\r\n\r\n /**\r\n * Save the configured defaults to be used when the factory is instantiated\r\n */\r\n function setDefaults(definition) {\r\n providerConfig.optionsFactory = definition.options;\r\n providerConfig.methods = (definition.methods || []).concat(\r\n EXPOSED_METHODS\r\n );\r\n return provider;\r\n }\r\n\r\n /**\r\n * Add a method to the factory that isn't specific to any interim element operations\r\n */\r\n\r\n function addMethod(name, fn) {\r\n customMethods[name] = fn;\r\n return provider;\r\n }\r\n\r\n /**\r\n * Save the configured preset to be used when the factory is instantiated\r\n */\r\n function addPreset(name, definition) {\r\n definition = definition || {};\r\n definition.methods = definition.methods || [];\r\n definition.options =\r\n definition.options ||\r\n function() {\r\n return {};\r\n };\r\n\r\n if (/^cancel|hide|show$/.test(name)) {\r\n throw new Error(\r\n \"Preset '\" + name + \"' in \" + interimFactoryName + \" is reserved!\"\r\n );\r\n }\r\n if (definition.methods.indexOf(\"_options\") > -1) {\r\n throw new Error(\r\n \"Method '_options' in \" + interimFactoryName + \" is reserved!\"\r\n );\r\n }\r\n providerConfig.presets[name] = {\r\n methods: definition.methods.concat(EXPOSED_METHODS),\r\n optionsFactory: definition.options,\r\n argOption: definition.argOption\r\n };\r\n return provider;\r\n }\r\n\r\n function addPresetMethod(presetName, methodName, method) {\r\n providerConfig.presets[presetName][methodName] = method;\r\n }\r\n\r\n /**\r\n * Create a factory that has the given methods & defaults implementing interimElement\r\n */\r\n /* @ngInject */\r\n function factory($$interimElement, $injector) {\r\n var defaultMethods;\r\n var defaultOptions;\r\n var interimElementService = $$interimElement();\r\n\r\n /*\r\n * publicService is what the developer will be using.\r\n * It has methods hide(), cancel(), show(), build(), and any other\r\n * presets which were set during the config phase.\r\n */\r\n var publicService = {\r\n hide: interimElementService.hide,\r\n cancel: interimElementService.cancel,\r\n show: showInterimElement,\r\n\r\n // Special internal method to destroy an interim element without animations\r\n // used when navigation changes causes a $scope.$destroy() action\r\n destroy: destroyInterimElement\r\n };\r\n\r\n defaultMethods = providerConfig.methods || [];\r\n // This must be invoked after the publicService is initialized\r\n defaultOptions = invokeFactory(providerConfig.optionsFactory, {});\r\n\r\n // Copy over the simple custom methods\r\n angular.forEach(customMethods, function(fn, name) {\r\n publicService[name] = fn;\r\n });\r\n\r\n angular.forEach(providerConfig.presets, function(definition, name) {\r\n var presetDefaults = invokeFactory(definition.optionsFactory, {});\r\n var presetMethods = (definition.methods || []).concat(\r\n defaultMethods\r\n );\r\n\r\n // Every interimElement built with a preset has a field called `$type`,\r\n // which matches the name of the preset.\r\n // Eg in preset 'confirm', options.$type === 'confirm'\r\n angular.extend(presetDefaults, { $type: name });\r\n\r\n // This creates a preset class which has setter methods for every\r\n // method given in the `.addPreset()` function, as well as every\r\n // method given in the `.setDefaults()` function.\r\n //\r\n // @example\r\n // .setDefaults({\r\n // methods: ['hasBackdrop', 'clickOutsideToClose', 'escapeToClose', 'targetEvent'],\r\n // options: dialogDefaultOptions\r\n // })\r\n // .addPreset('alert', {\r\n // methods: ['title', 'ok'],\r\n // options: alertDialogOptions\r\n // })\r\n //\r\n // Set values will be passed to the options when interimElement.show() is called.\r\n function Preset(opts) {\r\n this._options = angular.extend({}, presetDefaults, opts);\r\n }\r\n angular.forEach(presetMethods, function(name) {\r\n Preset.prototype[name] = function(value) {\r\n this._options[name] = value;\r\n return this;\r\n };\r\n });\r\n\r\n // Create shortcut method for one-linear methods\r\n if (definition.argOption) {\r\n var methodName =\r\n \"show\" + name.charAt(0).toUpperCase() + name.slice(1);\r\n publicService[methodName] = function(arg) {\r\n var config = publicService[name](arg);\r\n return publicService.show(config);\r\n };\r\n }\r\n\r\n // eg $mdDialog.alert() will return a new alert preset\r\n publicService[name] = function(arg) {\r\n // If argOption is supplied, eg `argOption: 'content'`, then we assume\r\n // if the argument is not an options object then it is the `argOption` option.\r\n //\r\n // @example `$mdToast.simple('hello')` // sets options.content to hello\r\n // // because argOption === 'content'\r\n if (\r\n arguments.length &&\r\n definition.argOption &&\r\n !angular.isObject(arg) &&\r\n !angular.isArray(arg)\r\n ) {\r\n return new Preset()[definition.argOption](arg);\r\n } else {\r\n return new Preset(arg);\r\n }\r\n };\r\n });\r\n\r\n return publicService;\r\n\r\n /**\r\n *\r\n */\r\n function showInterimElement(opts) {\r\n // opts is either a preset which stores its options on an _options field,\r\n // or just an object made up of options\r\n opts = opts || {};\r\n if (opts._options) opts = opts._options;\r\n\r\n return interimElementService.show(\r\n angular.extend({}, defaultOptions, opts)\r\n );\r\n }\r\n\r\n /**\r\n * Special method to hide and destroy an interimElement WITHOUT\r\n * any 'leave` or hide animations ( an immediate force hide/remove )\r\n *\r\n * NOTE: This calls the onRemove() subclass method for each component...\r\n * which must have code to respond to `options.$destroy == true`\r\n */\r\n function destroyInterimElement(opts) {\r\n return interimElementService.destroy(opts);\r\n }\r\n\r\n /**\r\n * Helper to call $injector.invoke with a local of the factory name for\r\n * this provider.\r\n * If an $mdDialog is providing options for a dialog and tries to inject\r\n * $mdDialog, a circular dependency error will happen.\r\n * We get around that by manually injecting $mdDialog as a local.\r\n */\r\n function invokeFactory(factory, defaultVal) {\r\n var locals = {};\r\n locals[interimFactoryName] = publicService;\r\n return $injector.invoke(\r\n factory ||\r\n function() {\r\n return defaultVal;\r\n },\r\n {},\r\n locals\r\n );\r\n }\r\n }\r\n }\r\n\r\n /* @ngInject */\r\n function InterimElementFactory(\r\n $document,\r\n $q,\r\n $$q,\r\n $rootScope,\r\n $timeout,\r\n $rootElement,\r\n $animate,\r\n $mdUtil,\r\n $mdCompiler,\r\n $mdTheming,\r\n $injector\r\n ) {\r\n return function createInterimElementService() {\r\n var SHOW_CANCELLED = false;\r\n\r\n /*\r\n * @ngdoc service\r\n * @name $$interimElement.$service\r\n *\r\n * @description\r\n * A service used to control inserting and removing an element into the DOM.\r\n *\r\n */\r\n var service,\r\n stack = [];\r\n\r\n // Publish instance $$interimElement service;\r\n // ... used as $mdDialog, $mdToast, $mdMenu, and $mdSelect\r\n\r\n return (service = {\r\n show: show,\r\n hide: hide,\r\n cancel: cancel,\r\n destroy: destroy,\r\n $injector_: $injector\r\n });\r\n\r\n /*\r\n * @ngdoc method\r\n * @name $$interimElement.$service#show\r\n * @kind function\r\n *\r\n * @description\r\n * Adds the `$interimElement` to the DOM and returns a special promise that will be resolved or rejected\r\n * with hide or cancel, respectively. To external cancel/hide, developers should use the\r\n *\r\n * @param {*} options is hashMap of settings\r\n * @returns a Promise\r\n *\r\n */\r\n function show(options) {\r\n options = options || {};\r\n var interimElement = new InterimElement(options || {});\r\n // When an interim element is currently showing, we have to cancel it.\r\n // Just hiding it, will resolve the InterimElement's promise, the promise should be\r\n // rejected instead.\r\n var hideExisting =\r\n !options.skipHide && stack.length\r\n ? service.cancel()\r\n : $q.when(true);\r\n\r\n // This hide()s only the current interim element before showing the next, new one\r\n // NOTE: this is not reversible (e.g. interim elements are not stackable)\r\n\r\n hideExisting.finally(function() {\r\n stack.push(interimElement);\r\n interimElement.show().catch(function(reason) {\r\n //$log.error(\"InterimElement.show() error: \" + reason );\r\n return reason;\r\n });\r\n });\r\n\r\n // Return a promise that will be resolved when the interim\r\n // element is hidden or cancelled...\r\n\r\n return interimElement.deferred.promise;\r\n }\r\n\r\n /*\r\n * @ngdoc method\r\n * @name $$interimElement.$service#hide\r\n * @kind function\r\n *\r\n * @description\r\n * Removes the `$interimElement` from the DOM and resolves the promise returned from `show`\r\n *\r\n * @param {*} resolveParam Data to resolve the promise with\r\n * @returns a Promise that will be resolved after the element has been removed.\r\n *\r\n */\r\n function hide(reason, options) {\r\n if (!stack.length) return $q.when(reason);\r\n options = options || {};\r\n\r\n if (options.closeAll) {\r\n var promise = $q.all(stack.reverse().map(closeElement));\r\n stack = [];\r\n return promise;\r\n } else if (options.closeTo !== undefined) {\r\n return $q.all(stack.splice(options.closeTo).map(closeElement));\r\n } else {\r\n var interim = stack.pop();\r\n return closeElement(interim);\r\n }\r\n\r\n function closeElement(interim) {\r\n interim\r\n .remove(reason, false, options || {})\r\n .catch(function(reason) {\r\n //$log.error(\"InterimElement.hide() error: \" + reason );\r\n return reason;\r\n });\r\n return interim.deferred.promise;\r\n }\r\n }\r\n\r\n /*\r\n * @ngdoc method\r\n * @name $$interimElement.$service#cancel\r\n * @kind function\r\n *\r\n * @description\r\n * Removes the `$interimElement` from the DOM and rejects the promise returned from `show`\r\n *\r\n * @param {*} reason Data to reject the promise with\r\n * @returns Promise that will be resolved after the element has been removed.\r\n *\r\n */\r\n function cancel(reason, options) {\r\n var interim = stack.pop();\r\n if (!interim) return $q.when(reason);\r\n\r\n interim.remove(reason, true, options || {}).catch(function(reason) {\r\n //$log.error(\"InterimElement.cancel() error: \" + reason );\r\n return reason;\r\n });\r\n\r\n // Since Angular 1.6.7, promises will be logged to $exceptionHandler when the promise\r\n // is not handling the rejection. We create a pseudo catch handler, which will prevent the\r\n // promise from being logged to the $exceptionHandler.\r\n return interim.deferred.promise.catch(angular.noop);\r\n }\r\n\r\n /*\r\n * Special method to quick-remove the interim element without animations\r\n * Note: interim elements are in \"interim containers\"\r\n */\r\n function destroy(target) {\r\n var interim = !target ? stack.shift() : null;\r\n var cntr = angular.element(target).length\r\n ? angular.element(target)[0].parentNode\r\n : null;\r\n\r\n if (cntr) {\r\n // Try to find the interim element in the stack which corresponds to the supplied DOM element.\r\n var filtered = stack.filter(function(entry) {\r\n var currNode = entry.options.element[0];\r\n return currNode === cntr;\r\n });\r\n\r\n // Note: this function might be called when the element already has been removed, in which\r\n // case we won't find any matches. That's ok.\r\n if (filtered.length > 0) {\r\n interim = filtered[0];\r\n stack.splice(stack.indexOf(interim), 1);\r\n }\r\n }\r\n\r\n return interim\r\n ? interim.remove(SHOW_CANCELLED, false, { $destroy: true })\r\n : $q.when(SHOW_CANCELLED);\r\n }\r\n\r\n /*\r\n * Internal Interim Element Object\r\n * Used internally to manage the DOM element and related data\r\n */\r\n function InterimElement(options) {\r\n var self,\r\n element,\r\n showAction = $q.when(true);\r\n\r\n options = configureScopeAndTransitions(options);\r\n\r\n return (self = {\r\n options: options,\r\n deferred: $q.defer(),\r\n show: createAndTransitionIn,\r\n remove: transitionOutAndRemove\r\n });\r\n\r\n /**\r\n * Compile, link, and show this interim element\r\n * Use optional autoHided and transition-in effects\r\n */\r\n function createAndTransitionIn() {\r\n return $q(function(resolve, reject) {\r\n // Trigger onCompiling callback before the compilation starts.\r\n // This is useful, when modifying options, which can be influenced by developers.\r\n options.onCompiling && options.onCompiling(options);\r\n\r\n compileElement(options).then(function(compiledData) {\r\n element = linkElement(compiledData, options);\r\n\r\n showAction = showElement(\r\n element,\r\n options,\r\n compiledData.controller\r\n ).then(resolve, rejectAll);\r\n }, rejectAll);\r\n\r\n function rejectAll(fault) {\r\n // Force the '$md.show()' promise to reject\r\n self.deferred.reject(fault);\r\n\r\n // Continue rejection propagation\r\n reject(fault);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * After the show process has finished/rejected:\r\n * - announce 'removing',\r\n * - perform the transition-out, and\r\n * - perform optional clean up scope.\r\n */\r\n function transitionOutAndRemove(response, isCancelled, opts) {\r\n // abort if the show() and compile failed\r\n if (!element) return $q.when(false);\r\n\r\n options = angular.extend(options || {}, opts || {});\r\n options.cancelAutoHide && options.cancelAutoHide();\r\n options.element.triggerHandler(\"$mdInterimElementRemove\");\r\n\r\n if (options.$destroy === true) {\r\n return hideElement(options.element, options).then(function() {\r\n (isCancelled && rejectAll(response)) || resolveAll(response);\r\n });\r\n } else {\r\n $q.when(showAction).finally(function() {\r\n hideElement(options.element, options).then(function() {\r\n (isCancelled && rejectAll(response)) ||\r\n resolveAll(response);\r\n }, rejectAll);\r\n });\r\n\r\n return self.deferred.promise;\r\n }\r\n\r\n /**\r\n * The `show()` returns a promise that will be resolved when the interim\r\n * element is hidden or cancelled...\r\n */\r\n function resolveAll(response) {\r\n self.deferred.resolve(response);\r\n }\r\n\r\n /**\r\n * Force the '$md.show()' promise to reject\r\n */\r\n function rejectAll(fault) {\r\n self.deferred.reject(fault);\r\n }\r\n }\r\n\r\n /**\r\n * Prepare optional isolated scope and prepare $animate with default enter and leave\r\n * transitions for the new element instance.\r\n */\r\n function configureScopeAndTransitions(options) {\r\n options = options || {};\r\n if (options.template) {\r\n options.template = $mdUtil.processTemplate(options.template);\r\n }\r\n\r\n return angular.extend(\r\n {\r\n preserveScope: false,\r\n cancelAutoHide: angular.noop,\r\n scope: options.scope || $rootScope.$new(options.isolateScope),\r\n\r\n /**\r\n * Default usage to enable $animate to transition-in; can be easily overridden via 'options'\r\n */\r\n onShow: function transitionIn(scope, element, options) {\r\n return $animate.enter(element, options.parent);\r\n },\r\n\r\n /**\r\n * Default usage to enable $animate to transition-out; can be easily overridden via 'options'\r\n */\r\n onRemove: function transitionOut(scope, element) {\r\n // Element could be undefined if a new element is shown before\r\n // the old one finishes compiling.\r\n return (element && $animate.leave(element)) || $q.when();\r\n }\r\n },\r\n options\r\n );\r\n }\r\n\r\n /**\r\n * Compile an element with a templateUrl, controller, and locals\r\n */\r\n function compileElement(options) {\r\n var compiled = !options.skipCompile\r\n ? $mdCompiler.compile(options)\r\n : null;\r\n\r\n return (\r\n compiled ||\r\n $q(function(resolve) {\r\n resolve({\r\n locals: {},\r\n link: function() {\r\n return options.element;\r\n }\r\n });\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Link an element with compiled configuration\r\n */\r\n function linkElement(compileData, options) {\r\n angular.extend(compileData.locals, options);\r\n\r\n var element = compileData.link(options.scope);\r\n\r\n // Search for parent at insertion time, if not specified\r\n options.element = element;\r\n options.parent = findParent(element, options);\r\n if (options.themable) $mdTheming(element);\r\n\r\n return element;\r\n }\r\n\r\n /**\r\n * Search for parent at insertion time, if not specified\r\n */\r\n function findParent(element, options) {\r\n var parent = options.parent;\r\n\r\n // Search for parent at insertion time, if not specified\r\n if (angular.isFunction(parent)) {\r\n parent = parent(options.scope, element, options);\r\n } else if (angular.isString(parent)) {\r\n parent = angular.element($document[0].querySelector(parent));\r\n } else {\r\n parent = angular.element(parent);\r\n }\r\n\r\n // If parent querySelector/getter function fails, or it's just null,\r\n // find a default.\r\n if (!(parent || {}).length) {\r\n var el;\r\n if ($rootElement[0] && $rootElement[0].querySelector) {\r\n el = $rootElement[0].querySelector(\":not(svg) > body\");\r\n }\r\n if (!el) el = $rootElement[0];\r\n if (el.nodeName == \"#comment\") {\r\n el = $document[0].body;\r\n }\r\n return angular.element(el);\r\n }\r\n\r\n return parent;\r\n }\r\n\r\n /**\r\n * If auto-hide is enabled, start timer and prepare cancel function\r\n */\r\n function startAutoHide() {\r\n var autoHideTimer,\r\n cancelAutoHide = angular.noop;\r\n\r\n if (options.hideDelay) {\r\n autoHideTimer = $timeout(service.hide, options.hideDelay);\r\n cancelAutoHide = function() {\r\n $timeout.cancel(autoHideTimer);\r\n };\r\n }\r\n\r\n // Cache for subsequent use\r\n options.cancelAutoHide = function() {\r\n cancelAutoHide();\r\n options.cancelAutoHide = undefined;\r\n };\r\n }\r\n\r\n /**\r\n * Show the element ( with transitions), notify complete and start\r\n * optional auto-Hide\r\n */\r\n function showElement(element, options, controller) {\r\n // Trigger onShowing callback before the `show()` starts\r\n var notifyShowing = options.onShowing || angular.noop;\r\n // Trigger onComplete callback when the `show()` finishes\r\n var notifyComplete = options.onComplete || angular.noop;\r\n\r\n notifyShowing(options.scope, element, options, controller);\r\n\r\n return $q(function(resolve, reject) {\r\n try {\r\n // Start transitionIn\r\n $q.when(\r\n options.onShow(options.scope, element, options, controller)\r\n ).then(function() {\r\n notifyComplete(options.scope, element, options);\r\n startAutoHide();\r\n\r\n resolve(element);\r\n }, reject);\r\n } catch (e) {\r\n reject(e.message);\r\n }\r\n });\r\n }\r\n\r\n function hideElement(element, options) {\r\n var announceRemoving = options.onRemoving || angular.noop;\r\n\r\n return $$q(function(resolve, reject) {\r\n try {\r\n // Start transitionIn\r\n var action = $$q.when(\r\n options.onRemove(options.scope, element, options) || true\r\n );\r\n\r\n // Trigger callback *before* the remove operation starts\r\n announceRemoving(element, action);\r\n\r\n if (options.$destroy == true) {\r\n // For $destroy, onRemove should be synchronous\r\n resolve(element);\r\n } else {\r\n // Wait until transition-out is done\r\n action.then(function() {\r\n if (!options.preserveScope && options.scope) {\r\n options.scope.$destroy();\r\n }\r\n\r\n resolve(element);\r\n }, reject);\r\n }\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n var $mdUtil, $interpolate, $log;\r\n\r\n var SUFFIXES = /(-gt)?-(sm|md|lg|print)/g;\r\n var WHITESPACE = /\\s+/g;\r\n\r\n var FLEX_OPTIONS = [\r\n \"grow\",\r\n \"initial\",\r\n \"auto\",\r\n \"none\",\r\n \"noshrink\",\r\n \"nogrow\"\r\n ];\r\n var LAYOUT_OPTIONS = [\"row\", \"column\"];\r\n var ALIGNMENT_MAIN_AXIS = [\r\n \"\",\r\n \"start\",\r\n \"center\",\r\n \"end\",\r\n \"stretch\",\r\n \"space-around\",\r\n \"space-between\"\r\n ];\r\n var ALIGNMENT_CROSS_AXIS = [\"\", \"start\", \"center\", \"end\", \"stretch\"];\r\n\r\n var config = {\r\n /**\r\n * Enable directive attribute-to-class conversions\r\n * Developers can use `` to quickly\r\n * disable the Layout directives and prohibit the injection of Layout classNames\r\n */\r\n enabled: true,\r\n\r\n /**\r\n * List of mediaQuery breakpoints and associated suffixes\r\n *\r\n * [\r\n * { suffix: \"sm\", mediaQuery: \"screen and (max-width: 599px)\" },\r\n * { suffix: \"md\", mediaQuery: \"screen and (min-width: 600px) and (max-width: 959px)\" }\r\n * ]\r\n */\r\n breakpoints: []\r\n };\r\n\r\n registerLayoutAPI(angular.module(\"material.core.layout\", [\"ng\"]));\r\n\r\n /**\r\n * registerLayoutAPI()\r\n *\r\n * The original ngMaterial Layout solution used attribute selectors and CSS.\r\n *\r\n * ```html\r\n *
My Content
\r\n * ```\r\n *\r\n * ```css\r\n * [layout] {\r\n * box-sizing: border-box;\r\n * display:flex;\r\n * }\r\n * [layout=column] {\r\n * flex-direction : column\r\n * }\r\n * ```\r\n *\r\n * Use of attribute selectors creates significant performance impacts in some\r\n * browsers... mainly IE.\r\n *\r\n * This module registers directives that allow the same layout attributes to be\r\n * interpreted and converted to class selectors. The directive will add equivalent classes to each element that\r\n * contains a Layout directive.\r\n *\r\n * ```html\r\n *
My Content
\r\n *```\r\n *\r\n * ```css\r\n * .layout {\r\n * box-sizing: border-box;\r\n * display:flex;\r\n * }\r\n * .layout-column {\r\n * flex-direction : column\r\n * }\r\n * ```\r\n */\r\n function registerLayoutAPI(module) {\r\n var PREFIX_REGEXP = /^((?:x|data)[\\:\\-_])/i;\r\n var SPECIAL_CHARS_REGEXP = /([\\:\\-\\_]+(.))/g;\r\n\r\n // NOTE: these are also defined in constants::MEDIA_PRIORITY and constants::MEDIA\r\n var BREAKPOINTS = [\r\n \"\",\r\n \"xs\",\r\n \"gt-xs\",\r\n \"sm\",\r\n \"gt-sm\",\r\n \"md\",\r\n \"gt-md\",\r\n \"lg\",\r\n \"gt-lg\",\r\n \"xl\",\r\n \"print\"\r\n ];\r\n var API_WITH_VALUES = [\r\n \"layout\",\r\n \"flex\",\r\n \"flex-order\",\r\n \"flex-offset\",\r\n \"layout-align\"\r\n ];\r\n var API_NO_VALUES = [\"show\", \"hide\", \"layout-padding\", \"layout-margin\"];\r\n\r\n // Build directive registration functions for the standard Layout API... for all breakpoints.\r\n angular.forEach(BREAKPOINTS, function(mqb) {\r\n // Attribute directives with expected, observable value(s)\r\n angular.forEach(API_WITH_VALUES, function(name) {\r\n var fullName = mqb ? name + \"-\" + mqb : name;\r\n module.directive(\r\n directiveNormalize(fullName),\r\n attributeWithObserve(fullName)\r\n );\r\n });\r\n\r\n // Attribute directives with no expected value(s)\r\n angular.forEach(API_NO_VALUES, function(name) {\r\n var fullName = mqb ? name + \"-\" + mqb : name;\r\n module.directive(\r\n directiveNormalize(fullName),\r\n attributeWithoutValue(fullName)\r\n );\r\n });\r\n });\r\n\r\n // Register other, special directive functions for the Layout features:\r\n module\r\n\r\n .provider(\"$$mdLayout\", function() {\r\n // Publish internal service for Layouts\r\n return {\r\n $get: angular.noop,\r\n validateAttributeValue: validateAttributeValue,\r\n validateAttributeUsage: validateAttributeUsage,\r\n /**\r\n * Easy way to disable/enable the Layout API.\r\n * When disabled, this stops all attribute-to-classname generations\r\n */\r\n disableLayouts: function(isDisabled) {\r\n config.enabled = isDisabled !== true;\r\n }\r\n };\r\n })\r\n\r\n .directive(\"mdLayoutCss\", disableLayoutDirective)\r\n .directive(\"ngCloak\", buildCloakInterceptor(\"ng-cloak\"))\r\n\r\n .directive(\"layoutWrap\", attributeWithoutValue(\"layout-wrap\"))\r\n .directive(\"layoutNowrap\", attributeWithoutValue(\"layout-nowrap\"))\r\n .directive(\"layoutNoWrap\", attributeWithoutValue(\"layout-no-wrap\"))\r\n .directive(\"layoutFill\", attributeWithoutValue(\"layout-fill\"))\r\n\r\n // !! Deprecated attributes: use the `-lt` (aka less-than) notations\r\n\r\n .directive(\"layoutLtMd\", warnAttrNotSupported(\"layout-lt-md\", true))\r\n .directive(\"layoutLtLg\", warnAttrNotSupported(\"layout-lt-lg\", true))\r\n .directive(\"flexLtMd\", warnAttrNotSupported(\"flex-lt-md\", true))\r\n .directive(\"flexLtLg\", warnAttrNotSupported(\"flex-lt-lg\", true))\r\n\r\n .directive(\r\n \"layoutAlignLtMd\",\r\n warnAttrNotSupported(\"layout-align-lt-md\")\r\n )\r\n .directive(\r\n \"layoutAlignLtLg\",\r\n warnAttrNotSupported(\"layout-align-lt-lg\")\r\n )\r\n .directive(\"flexOrderLtMd\", warnAttrNotSupported(\"flex-order-lt-md\"))\r\n .directive(\"flexOrderLtLg\", warnAttrNotSupported(\"flex-order-lt-lg\"))\r\n .directive(\"offsetLtMd\", warnAttrNotSupported(\"flex-offset-lt-md\"))\r\n .directive(\"offsetLtLg\", warnAttrNotSupported(\"flex-offset-lt-lg\"))\r\n\r\n .directive(\"hideLtMd\", warnAttrNotSupported(\"hide-lt-md\"))\r\n .directive(\"hideLtLg\", warnAttrNotSupported(\"hide-lt-lg\"))\r\n .directive(\"showLtMd\", warnAttrNotSupported(\"show-lt-md\"))\r\n .directive(\"showLtLg\", warnAttrNotSupported(\"show-lt-lg\"))\r\n\r\n // Determine if\r\n .config(detectDisabledLayouts);\r\n\r\n /**\r\n * Converts snake_case to camelCase.\r\n * Also there is special case for Moz prefix starting with upper case letter.\r\n * @param name Name to normalize\r\n */\r\n function directiveNormalize(name) {\r\n return name\r\n .replace(PREFIX_REGEXP, \"\")\r\n .replace(SPECIAL_CHARS_REGEXP, function(\r\n _,\r\n separator,\r\n letter,\r\n offset\r\n ) {\r\n return offset ? letter.toUpperCase() : letter;\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Detect if any of the HTML tags has a [md-layouts-disabled] attribute;\r\n * If yes, then immediately disable all layout API features\r\n *\r\n * Note: this attribute should be specified on either the HTML or BODY tags\r\n */\r\n /**\r\n * @ngInject\r\n */\r\n function detectDisabledLayouts() {\r\n var isDisabled = !!document.querySelector(\"[md-layouts-disabled]\");\r\n config.enabled = !isDisabled;\r\n }\r\n\r\n /**\r\n * Special directive that will disable ALL Layout conversions of layout\r\n * attribute(s) to classname(s).\r\n *\r\n * \r\n * \r\n *\r\n * \r\n * ...\r\n * \r\n *\r\n * Note: Using md-layout-css directive requires the developer to load the Material\r\n * Layout Attribute stylesheet (which only uses attribute selectors):\r\n *\r\n * `angular-material.layout.css`\r\n *\r\n * Another option is to use the LayoutProvider to configure and disable the attribute\r\n * conversions; this would obviate the use of the `md-layout-css` directive\r\n *\r\n */\r\n function disableLayoutDirective() {\r\n // Return a 1x-only, first-match attribute directive\r\n config.enabled = false;\r\n\r\n return {\r\n restrict: \"A\",\r\n priority: \"900\"\r\n };\r\n }\r\n\r\n /**\r\n * Tail-hook ngCloak to delay the uncloaking while Layout transformers\r\n * finish processing. Eliminates flicker with Material.Layouts\r\n */\r\n function buildCloakInterceptor(className) {\r\n return [\r\n \"$timeout\",\r\n function($timeout) {\r\n return {\r\n restrict: \"A\",\r\n priority: -10, // run after normal ng-cloak\r\n compile: function(element) {\r\n if (!config.enabled) return angular.noop;\r\n\r\n // Re-add the cloak\r\n element.addClass(className);\r\n\r\n return function(scope, element) {\r\n // Wait while layout injectors configure, then uncloak\r\n // NOTE: $rAF does not delay enough... and this is a 1x-only event,\r\n // $timeout is acceptable.\r\n $timeout(\r\n function() {\r\n element.removeClass(className);\r\n },\r\n 10,\r\n false\r\n );\r\n };\r\n }\r\n };\r\n }\r\n ];\r\n }\r\n\r\n // *********************************************************************************\r\n //\r\n // These functions create registration functions for ngMaterial Layout attribute directives\r\n // This provides easy translation to switch ngMaterial attribute selectors to\r\n // CLASS selectors and directives; which has huge performance implications\r\n // for IE Browsers\r\n //\r\n // *********************************************************************************\r\n\r\n /**\r\n * Creates a directive registration function where a possible dynamic attribute\r\n * value will be observed/watched.\r\n * @param {string} className attribute name; eg `layout-gt-md` with value =\"row\"\r\n */\r\n function attributeWithObserve(className) {\r\n return [\r\n \"$mdUtil\",\r\n \"$interpolate\",\r\n \"$log\",\r\n function(_$mdUtil_, _$interpolate_, _$log_) {\r\n $mdUtil = _$mdUtil_;\r\n $interpolate = _$interpolate_;\r\n $log = _$log_;\r\n\r\n return {\r\n restrict: \"A\",\r\n compile: function(element, attr) {\r\n var linkFn;\r\n if (config.enabled) {\r\n // immediately replace static (non-interpolated) invalid values...\r\n\r\n validateAttributeUsage(className, attr, element, $log);\r\n\r\n validateAttributeValue(\r\n className,\r\n getNormalizedAttrValue(className, attr, \"\"),\r\n buildUpdateFn(element, className, attr)\r\n );\r\n\r\n linkFn = translateWithValueToCssClass;\r\n }\r\n\r\n // Use for postLink to account for transforms after ng-transclude.\r\n return linkFn || angular.noop;\r\n }\r\n };\r\n }\r\n ];\r\n\r\n /**\r\n * Add as transformed class selector(s), then\r\n * remove the deprecated attribute selector\r\n */\r\n function translateWithValueToCssClass(scope, element, attrs) {\r\n var updateFn = updateClassWithValue(element, className, attrs);\r\n var unwatch = attrs.$observe(attrs.$normalize(className), updateFn);\r\n\r\n updateFn(getNormalizedAttrValue(className, attrs, \"\"));\r\n scope.$on(\"$destroy\", function() {\r\n unwatch();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Creates a registration function for ngMaterial Layout attribute directive.\r\n * This is a `simple` transpose of attribute usage to class usage; where we ignore\r\n * any attribute value\r\n */\r\n function attributeWithoutValue(className) {\r\n return [\r\n \"$mdUtil\",\r\n \"$interpolate\",\r\n \"$log\",\r\n function(_$mdUtil_, _$interpolate_, _$log_) {\r\n $mdUtil = _$mdUtil_;\r\n $interpolate = _$interpolate_;\r\n $log = _$log_;\r\n\r\n return {\r\n restrict: \"A\",\r\n compile: function(element, attr) {\r\n var linkFn;\r\n if (config.enabled) {\r\n // immediately replace static (non-interpolated) invalid values...\r\n\r\n validateAttributeValue(\r\n className,\r\n getNormalizedAttrValue(className, attr, \"\"),\r\n buildUpdateFn(element, className, attr)\r\n );\r\n\r\n translateToCssClass(null, element);\r\n\r\n // Use for postLink to account for transforms after ng-transclude.\r\n linkFn = translateToCssClass;\r\n }\r\n\r\n return linkFn || angular.noop;\r\n }\r\n };\r\n }\r\n ];\r\n\r\n /**\r\n * Add as transformed class selector, then\r\n * remove the deprecated attribute selector\r\n */\r\n function translateToCssClass(scope, element) {\r\n element.addClass(className);\r\n }\r\n }\r\n\r\n /**\r\n * After link-phase, do NOT remove deprecated layout attribute selector.\r\n * Instead watch the attribute so interpolated data-bindings to layout\r\n * selectors will continue to be supported.\r\n *\r\n * $observe() the className and update with new class (after removing the last one)\r\n *\r\n * e.g. `layout=\"{{layoutDemo.direction}}\"` will update...\r\n *\r\n * NOTE: The value must match one of the specified styles in the CSS.\r\n * For example `flex-gt-md=\"{{size}}` where `scope.size == 47` will NOT work since\r\n * only breakpoints for 0, 5, 10, 15... 100, 33, 34, 66, 67 are defined.\r\n *\r\n */\r\n function updateClassWithValue(element, className) {\r\n var lastClass;\r\n\r\n return function updateClassFn(newValue) {\r\n var value = validateAttributeValue(className, newValue || \"\");\r\n if (angular.isDefined(value)) {\r\n if (lastClass) element.removeClass(lastClass);\r\n lastClass = !value\r\n ? className\r\n : className + \"-\" + value.replace(WHITESPACE, \"-\");\r\n element.addClass(lastClass);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Provide console warning that this layout attribute has been deprecated\r\n *\r\n */\r\n function warnAttrNotSupported(className) {\r\n var parts = className.split(\"-\");\r\n return [\r\n \"$log\",\r\n function($log) {\r\n $log.warn(\r\n className +\r\n \"has been deprecated. Please use a `\" +\r\n parts[0] +\r\n \"-gt-` variant.\"\r\n );\r\n return angular.noop;\r\n }\r\n ];\r\n }\r\n\r\n /**\r\n * Centralize warnings for known flexbox issues (especially IE-related issues)\r\n */\r\n function validateAttributeUsage(className, attr, element, $log) {\r\n var message, usage, url;\r\n var nodeName = element[0].nodeName.toLowerCase();\r\n\r\n switch (className.replace(SUFFIXES, \"\")) {\r\n case \"flex\":\r\n if (nodeName == \"md-button\" || nodeName == \"fieldset\") {\r\n // @see https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers\r\n // Use
wrapper inside (preferred) or outside\r\n\r\n usage = \"<\" + nodeName + \" \" + className + \">\";\r\n url =\r\n \"https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers\";\r\n message =\r\n \"Markup '{0}' may not work as expected in IE Browsers. Consult '{1}' for details.\";\r\n\r\n $log.warn($mdUtil.supplant(message, [usage, url]));\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * For the Layout attribute value, validate or replace with default\r\n * fallback value\r\n */\r\n function validateAttributeValue(className, value, updateFn) {\r\n var origValue = value;\r\n\r\n if (!needsInterpolation(value)) {\r\n switch (className.replace(SUFFIXES, \"\")) {\r\n case \"layout\":\r\n if (!findIn(value, LAYOUT_OPTIONS)) {\r\n value = LAYOUT_OPTIONS[0]; // 'row';\r\n }\r\n break;\r\n\r\n case \"flex\":\r\n if (!findIn(value, FLEX_OPTIONS)) {\r\n if (isNaN(value)) {\r\n value = \"\";\r\n }\r\n }\r\n break;\r\n\r\n case \"flex-offset\":\r\n case \"flex-order\":\r\n if (!value || isNaN(+value)) {\r\n value = \"0\";\r\n }\r\n break;\r\n\r\n case \"layout-align\":\r\n var axis = extractAlignAxis(value);\r\n value = $mdUtil.supplant(\"{main}-{cross}\", axis);\r\n break;\r\n\r\n case \"layout-padding\":\r\n case \"layout-margin\":\r\n case \"layout-fill\":\r\n case \"layout-wrap\":\r\n case \"layout-nowrap\":\r\n case \"layout-nowrap\":\r\n value = \"\";\r\n break;\r\n }\r\n\r\n if (value != origValue) {\r\n (updateFn || angular.noop)(value);\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Replace current attribute value with fallback value\r\n */\r\n function buildUpdateFn(element, className, attrs) {\r\n return function updateAttrValue(fallback) {\r\n if (!needsInterpolation(fallback)) {\r\n // Do not modify the element's attribute value; so\r\n // uses '' will not\r\n // be affected. Just update the attrs value.\r\n attrs[attrs.$normalize(className)] = fallback;\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * See if the original value has interpolation symbols:\r\n * e.g. flex-gt-md=\"{{triggerPoint}}\"\r\n */\r\n function needsInterpolation(value) {\r\n return (value || \"\").indexOf($interpolate.startSymbol()) > -1;\r\n }\r\n\r\n function getNormalizedAttrValue(className, attrs, defaultVal) {\r\n var normalizedAttr = attrs.$normalize(className);\r\n return attrs[normalizedAttr]\r\n ? attrs[normalizedAttr].replace(WHITESPACE, \"-\")\r\n : defaultVal || null;\r\n }\r\n\r\n function findIn(item, list, replaceWith) {\r\n item =\r\n replaceWith && item ? item.replace(WHITESPACE, replaceWith) : item;\r\n\r\n var found = false;\r\n if (item) {\r\n list.forEach(function(it) {\r\n it = replaceWith ? it.replace(WHITESPACE, replaceWith) : it;\r\n found = found || it === item;\r\n });\r\n }\r\n return found;\r\n }\r\n\r\n function extractAlignAxis(attrValue) {\r\n var axis = {\r\n main: \"start\",\r\n cross: \"stretch\"\r\n },\r\n values;\r\n\r\n attrValue = attrValue || \"\";\r\n\r\n if (attrValue.indexOf(\"-\") === 0 || attrValue.indexOf(\" \") === 0) {\r\n // For missing main-axis values\r\n attrValue = \"none\" + attrValue;\r\n }\r\n\r\n values = attrValue\r\n .toLowerCase()\r\n .trim()\r\n .replace(WHITESPACE, \"-\")\r\n .split(\"-\");\r\n if (values.length && values[0] === \"space\") {\r\n // for main-axis values of \"space-around\" or \"space-between\"\r\n values = [values[0] + \"-\" + values[1], values[2]];\r\n }\r\n\r\n if (values.length > 0) axis.main = values[0] || axis.main;\r\n if (values.length > 1) axis.cross = values[1] || axis.cross;\r\n\r\n if (ALIGNMENT_MAIN_AXIS.indexOf(axis.main) < 0) axis.main = \"start\";\r\n if (ALIGNMENT_CROSS_AXIS.indexOf(axis.cross) < 0)\r\n axis.cross = \"stretch\";\r\n\r\n return axis;\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $$mdMeta\r\n * @module material.core.meta\r\n *\r\n * @description\r\n *\r\n * A provider and a service that simplifies meta tags access\r\n *\r\n * Note: This is intended only for use with dynamic meta tags such as browser color and title.\r\n * Tags that are only processed when the page is rendered (such as `charset`, and `http-equiv`)\r\n * will not work since `$$mdMeta` adds the tags after the page has already been loaded.\r\n *\r\n * ```js\r\n * app.config(function($$mdMetaProvider) {\r\n * var removeMeta = $$mdMetaProvider.setMeta('meta-name', 'content');\r\n * var metaValue = $$mdMetaProvider.getMeta('meta-name'); // -> 'content'\r\n *\r\n * removeMeta();\r\n * });\r\n *\r\n * app.controller('myController', function($$mdMeta) {\r\n * var removeMeta = $$mdMeta.setMeta('meta-name', 'content');\r\n * var metaValue = $$mdMeta.getMeta('meta-name'); // -> 'content'\r\n *\r\n * removeMeta();\r\n * });\r\n * ```\r\n *\r\n * @returns {$$mdMeta.$service}\r\n *\r\n */\r\n angular.module(\"material.core.meta\", []).provider(\"$$mdMeta\", function() {\r\n var head = angular.element(document.head);\r\n var metaElements = {};\r\n\r\n /**\r\n * Checks if the requested element was written manually and maps it\r\n *\r\n * @param {string} name meta tag 'name' attribute value\r\n * @returns {boolean} returns true if there is an element with the requested name\r\n */\r\n function mapExistingElement(name) {\r\n if (metaElements[name]) {\r\n return true;\r\n }\r\n\r\n var element = document.getElementsByName(name)[0];\r\n\r\n if (!element) {\r\n return false;\r\n }\r\n\r\n metaElements[name] = angular.element(element);\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $$mdMeta#setMeta\r\n *\r\n * @description\r\n * Creates meta element with the 'name' and 'content' attributes,\r\n * if the meta tag is already created than we replace the 'content' value\r\n *\r\n * @param {string} name meta tag 'name' attribute value\r\n * @param {string} content meta tag 'content' attribute value\r\n * @returns {function} remove function\r\n *\r\n */\r\n function setMeta(name, content) {\r\n mapExistingElement(name);\r\n\r\n if (!metaElements[name]) {\r\n var newMeta = angular.element(\r\n ''\r\n );\r\n head.append(newMeta);\r\n metaElements[name] = newMeta;\r\n } else {\r\n metaElements[name].attr(\"content\", content);\r\n }\r\n\r\n return function() {\r\n metaElements[name].attr(\"content\", \"\");\r\n metaElements[name].remove();\r\n delete metaElements[name];\r\n };\r\n }\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $$mdMeta#getMeta\r\n *\r\n * @description\r\n * Gets the 'content' attribute value of the wanted meta element\r\n *\r\n * @param {string} name meta tag 'name' attribute value\r\n * @returns {string} content attribute value\r\n */\r\n function getMeta(name) {\r\n if (!mapExistingElement(name)) {\r\n throw Error(\r\n \"$$mdMeta: could not find a meta tag with the name '\" + name + \"'\"\r\n );\r\n }\r\n\r\n return metaElements[name].attr(\"content\");\r\n }\r\n\r\n var module = {\r\n setMeta: setMeta,\r\n getMeta: getMeta\r\n };\r\n\r\n return angular.extend({}, module, {\r\n $get: function() {\r\n return module;\r\n }\r\n });\r\n });\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.core.componentRegistry\r\n *\r\n * @description\r\n * A component instance registration service.\r\n * Note: currently this as a private service in the SideNav component.\r\n */\r\n ComponentRegistry.$inject = [\"$log\", \"$q\"];\r\n angular\r\n .module(\"material.core\")\r\n .factory(\"$mdComponentRegistry\", ComponentRegistry);\r\n\r\n /*\r\n * @private\r\n * @ngdoc factory\r\n * @name ComponentRegistry\r\n * @module material.core.componentRegistry\r\n *\r\n */\r\n function ComponentRegistry($log, $q) {\r\n var self;\r\n var instances = [];\r\n var pendings = {};\r\n\r\n return (self = {\r\n /**\r\n * Used to print an error when an instance for a handle isn't found.\r\n */\r\n notFoundError: function(handle, msgContext) {\r\n $log.error(\r\n (msgContext || \"\") + \"No instance found for handle\",\r\n handle\r\n );\r\n },\r\n /**\r\n * Return all registered instances as an array.\r\n */\r\n getInstances: function() {\r\n return instances;\r\n },\r\n\r\n /**\r\n * Get a registered instance.\r\n * @param handle the String handle to look up for a registered instance.\r\n */\r\n get: function(handle) {\r\n if (!isValidID(handle)) return null;\r\n\r\n var i, j, instance;\r\n for (i = 0, j = instances.length; i < j; i++) {\r\n instance = instances[i];\r\n if (instance.$$mdHandle === handle) {\r\n return instance;\r\n }\r\n }\r\n return null;\r\n },\r\n\r\n /**\r\n * Register an instance.\r\n * @param instance the instance to register\r\n * @param handle the handle to identify the instance under.\r\n */\r\n register: function(instance, handle) {\r\n if (!handle) return angular.noop;\r\n\r\n instance.$$mdHandle = handle;\r\n instances.push(instance);\r\n resolveWhen();\r\n\r\n return deregister;\r\n\r\n /**\r\n * Remove registration for an instance\r\n */\r\n function deregister() {\r\n var index = instances.indexOf(instance);\r\n if (index !== -1) {\r\n instances.splice(index, 1);\r\n }\r\n }\r\n\r\n /**\r\n * Resolve any pending promises for this instance\r\n */\r\n function resolveWhen() {\r\n var dfd = pendings[handle];\r\n if (dfd) {\r\n dfd.forEach(function(promise) {\r\n promise.resolve(instance);\r\n });\r\n delete pendings[handle];\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Async accessor to registered component instance\r\n * If not available then a promise is created to notify\r\n * all listeners when the instance is registered.\r\n */\r\n when: function(handle) {\r\n if (isValidID(handle)) {\r\n var deferred = $q.defer();\r\n var instance = self.get(handle);\r\n\r\n if (instance) {\r\n deferred.resolve(instance);\r\n } else {\r\n if (pendings[handle] === undefined) {\r\n pendings[handle] = [];\r\n }\r\n pendings[handle].push(deferred);\r\n }\r\n\r\n return deferred.promise;\r\n }\r\n return $q.reject(\"Invalid `md-component-id` value.\");\r\n }\r\n });\r\n\r\n function isValidID(handle) {\r\n return handle && handle !== \"\";\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdButtonInkRipple\r\n * @module material.core\r\n *\r\n * @description\r\n * Provides ripple effects for md-button. See $mdInkRipple service for all possible configuration options.\r\n *\r\n * @param {object=} scope Scope within the current context\r\n * @param {object=} element The element the ripple effect should be applied to\r\n * @param {object=} options (Optional) Configuration options to override the default ripple configuration\r\n */\r\n\r\n MdButtonInkRipple.$inject = [\"$mdInkRipple\"];\r\n angular\r\n .module(\"material.core\")\r\n .factory(\"$mdButtonInkRipple\", MdButtonInkRipple);\r\n\r\n function MdButtonInkRipple($mdInkRipple) {\r\n return {\r\n attach: function attachRipple(scope, element, options) {\r\n options = angular.extend(optionsForElement(element), options);\r\n\r\n return $mdInkRipple.attach(scope, element, options);\r\n }\r\n };\r\n\r\n function optionsForElement(element) {\r\n if (element.hasClass(\"md-icon-button\")) {\r\n return {\r\n isMenuItem: element.hasClass(\"md-menu-item\"),\r\n fitRipple: true,\r\n center: true\r\n };\r\n } else {\r\n return {\r\n isMenuItem: element.hasClass(\"md-menu-item\"),\r\n dimBackground: true\r\n };\r\n }\r\n }\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdCheckboxInkRipple\r\n * @module material.core\r\n *\r\n * @description\r\n * Provides ripple effects for md-checkbox. See $mdInkRipple service for all possible configuration options.\r\n *\r\n * @param {object=} scope Scope within the current context\r\n * @param {object=} element The element the ripple effect should be applied to\r\n * @param {object=} options (Optional) Configuration options to override the defaultripple configuration\r\n */\r\n\r\n MdCheckboxInkRipple.$inject = [\"$mdInkRipple\"];\r\n angular\r\n .module(\"material.core\")\r\n .factory(\"$mdCheckboxInkRipple\", MdCheckboxInkRipple);\r\n\r\n function MdCheckboxInkRipple($mdInkRipple) {\r\n return {\r\n attach: attach\r\n };\r\n\r\n function attach(scope, element, options) {\r\n return $mdInkRipple.attach(\r\n scope,\r\n element,\r\n angular.extend(\r\n {\r\n center: true,\r\n dimBackground: false,\r\n fitRipple: true\r\n },\r\n options\r\n )\r\n );\r\n }\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdListInkRipple\r\n * @module material.core\r\n *\r\n * @description\r\n * Provides ripple effects for md-list. See $mdInkRipple service for all possible configuration options.\r\n *\r\n * @param {object=} scope Scope within the current context\r\n * @param {object=} element The element the ripple effect should be applied to\r\n * @param {object=} options (Optional) Configuration options to override the defaultripple configuration\r\n */\r\n\r\n MdListInkRipple.$inject = [\"$mdInkRipple\"];\r\n angular\r\n .module(\"material.core\")\r\n .factory(\"$mdListInkRipple\", MdListInkRipple);\r\n\r\n function MdListInkRipple($mdInkRipple) {\r\n return {\r\n attach: attach\r\n };\r\n\r\n function attach(scope, element, options) {\r\n return $mdInkRipple.attach(\r\n scope,\r\n element,\r\n angular.extend(\r\n {\r\n center: false,\r\n dimBackground: true,\r\n outline: false,\r\n rippleSize: \"full\"\r\n },\r\n options\r\n )\r\n );\r\n }\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.core.ripple\r\n * @description\r\n * Ripple\r\n */\r\n InkRippleCtrl.$inject = [\r\n \"$scope\",\r\n \"$element\",\r\n \"rippleOptions\",\r\n \"$window\",\r\n \"$timeout\",\r\n \"$mdUtil\",\r\n \"$mdColorUtil\"\r\n ];\r\n InkRippleDirective.$inject = [\"$mdButtonInkRipple\", \"$mdCheckboxInkRipple\"];\r\n angular\r\n .module(\"material.core\")\r\n .provider(\"$mdInkRipple\", InkRippleProvider)\r\n .directive(\"mdInkRipple\", InkRippleDirective)\r\n .directive(\"mdNoInk\", attrNoDirective)\r\n .directive(\"mdNoBar\", attrNoDirective)\r\n .directive(\"mdNoStretch\", attrNoDirective);\r\n\r\n var DURATION = 450;\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdInkRipple\r\n * @module material.core.ripple\r\n *\r\n * @description\r\n * The `md-ink-ripple` directive allows you to specify the ripple color or id a ripple is allowed.\r\n *\r\n * @param {string|boolean} md-ink-ripple A color string `#FF0000` or boolean (`false` or `0`) for preventing ripple\r\n *\r\n * @usage\r\n * ### String values\r\n * \r\n * \r\n * Ripples in red\r\n * \r\n *\r\n * \r\n * Not rippling\r\n * \r\n * \r\n *\r\n * ### Interpolated values\r\n * \r\n * \r\n * Ripples with the return value of 'randomColor' function\r\n * \r\n *\r\n * \r\n * Ripples if 'canRipple' function return value is not 'false' or '0'\r\n * \r\n * \r\n */\r\n function InkRippleDirective($mdButtonInkRipple, $mdCheckboxInkRipple) {\r\n return {\r\n controller: angular.noop,\r\n link: function(scope, element, attr) {\r\n attr.hasOwnProperty(\"mdInkRippleCheckbox\")\r\n ? $mdCheckboxInkRipple.attach(scope, element)\r\n : $mdButtonInkRipple.attach(scope, element);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdInkRipple\r\n * @module material.core.ripple\r\n *\r\n * @description\r\n * `$mdInkRipple` is a service for adding ripples to any element\r\n *\r\n * @usage\r\n * \r\n * app.factory('$myElementInkRipple', function($mdInkRipple) {\r\n * return {\r\n * attach: function (scope, element, options) {\r\n * return $mdInkRipple.attach(scope, element, angular.extend({\r\n * center: false,\r\n * dimBackground: true\r\n * }, options));\r\n * }\r\n * };\r\n * });\r\n *\r\n * app.controller('myController', function ($scope, $element, $myElementInkRipple) {\r\n * $scope.onClick = function (ev) {\r\n * $myElementInkRipple.attach($scope, angular.element(ev.target), { center: true });\r\n * }\r\n * });\r\n * \r\n *\r\n * ### Disabling ripples globally\r\n * If you want to disable ink ripples globally, for all components, you can call the\r\n * `disableInkRipple` method in your app's config.\r\n *\r\n * \r\n * app.config(function ($mdInkRippleProvider) {\r\n * $mdInkRippleProvider.disableInkRipple();\r\n * });\r\n */\r\n\r\n function InkRippleProvider() {\r\n var isDisabledGlobally = false;\r\n\r\n return {\r\n disableInkRipple: disableInkRipple,\r\n $get: [\r\n \"$injector\",\r\n function($injector) {\r\n return { attach: attach };\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdInkRipple#attach\r\n *\r\n * @description\r\n * Attaching given scope, element and options to inkRipple controller\r\n *\r\n * @param {object=} scope Scope within the current context\r\n * @param {object=} element The element the ripple effect should be applied to\r\n * @param {object=} options (Optional) Configuration options to override the defaultRipple configuration\r\n * * `center` - Whether the ripple should start from the center of the container element\r\n * * `dimBackground` - Whether the background should be dimmed with the ripple color\r\n * * `colorElement` - The element the ripple should take its color from, defined by css property `color`\r\n * * `fitRipple` - Whether the ripple should fill the element\r\n */\r\n function attach(scope, element, options) {\r\n if (isDisabledGlobally || element.controller(\"mdNoInk\"))\r\n return angular.noop;\r\n return $injector.instantiate(InkRippleCtrl, {\r\n $scope: scope,\r\n $element: element,\r\n rippleOptions: options\r\n });\r\n }\r\n }\r\n ]\r\n };\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdInkRipple#disableInkRipple\r\n *\r\n * @description\r\n * A config-time method that, when called, disables ripples globally.\r\n */\r\n function disableInkRipple() {\r\n isDisabledGlobally = true;\r\n }\r\n }\r\n\r\n /**\r\n * Controller used by the ripple service in order to apply ripples\r\n * @ngInject\r\n */\r\n function InkRippleCtrl(\r\n $scope,\r\n $element,\r\n rippleOptions,\r\n $window,\r\n $timeout,\r\n $mdUtil,\r\n $mdColorUtil\r\n ) {\r\n this.$window = $window;\r\n this.$timeout = $timeout;\r\n this.$mdUtil = $mdUtil;\r\n this.$mdColorUtil = $mdColorUtil;\r\n this.$scope = $scope;\r\n this.$element = $element;\r\n this.options = rippleOptions;\r\n this.mousedown = false;\r\n this.ripples = [];\r\n this.timeout = null; // Stores a reference to the most-recent ripple timeout\r\n this.lastRipple = null;\r\n\r\n $mdUtil.valueOnUse(this, \"container\", this.createContainer);\r\n\r\n this.$element.addClass(\"md-ink-ripple\");\r\n\r\n // attach method for unit tests\r\n ($element.controller(\"mdInkRipple\") || {}).createRipple = angular.bind(\r\n this,\r\n this.createRipple\r\n );\r\n ($element.controller(\"mdInkRipple\") || {}).setColor = angular.bind(\r\n this,\r\n this.color\r\n );\r\n\r\n this.bindEvents();\r\n }\r\n\r\n /**\r\n * Either remove or unlock any remaining ripples when the user mouses off of the element (either by\r\n * mouseup or mouseleave event)\r\n */\r\n function autoCleanup(self, cleanupFn) {\r\n if (self.mousedown || self.lastRipple) {\r\n self.mousedown = false;\r\n self.$mdUtil.nextTick(angular.bind(self, cleanupFn), false);\r\n }\r\n }\r\n\r\n /**\r\n * Returns the color that the ripple should be (either based on CSS or hard-coded)\r\n * @returns {string}\r\n */\r\n InkRippleCtrl.prototype.color = function(value) {\r\n var self = this;\r\n\r\n // If assigning a color value, apply it to background and the ripple color\r\n if (angular.isDefined(value)) {\r\n self._color = self._parseColor(value);\r\n }\r\n\r\n // If color lookup, use assigned, defined, or inherited\r\n return (\r\n self._color ||\r\n self._parseColor(self.inkRipple()) ||\r\n self._parseColor(getElementColor())\r\n );\r\n\r\n /**\r\n * Finds the color element and returns its text color for use as default ripple color\r\n * @returns {string}\r\n */\r\n function getElementColor() {\r\n var items =\r\n self.options && self.options.colorElement\r\n ? self.options.colorElement\r\n : [];\r\n var elem = items.length ? items[0] : self.$element[0];\r\n\r\n return elem ? self.$window.getComputedStyle(elem).color : \"rgb(0,0,0)\";\r\n }\r\n };\r\n\r\n /**\r\n * Updating the ripple colors based on the current inkRipple value\r\n * or the element's computed style color\r\n */\r\n InkRippleCtrl.prototype.calculateColor = function() {\r\n return this.color();\r\n };\r\n\r\n /**\r\n * Takes a string color and converts it to RGBA format\r\n * @param color {string}\r\n * @param [multiplier] {int}\r\n * @returns {string}\r\n */\r\n\r\n InkRippleCtrl.prototype._parseColor = function parseColor(\r\n color,\r\n multiplier\r\n ) {\r\n multiplier = multiplier || 1;\r\n var colorUtil = this.$mdColorUtil;\r\n\r\n if (!color) return;\r\n if (color.indexOf(\"rgba\") === 0)\r\n return color.replace(\r\n /\\d?\\.?\\d*\\s*\\)\\s*$/,\r\n (0.1 * multiplier).toString() + \")\"\r\n );\r\n if (color.indexOf(\"rgb\") === 0) return colorUtil.rgbToRgba(color);\r\n if (color.indexOf(\"#\") === 0) return colorUtil.hexToRgba(color);\r\n };\r\n\r\n /**\r\n * Binds events to the root element for\r\n */\r\n InkRippleCtrl.prototype.bindEvents = function() {\r\n this.$element.on(\"mousedown\", angular.bind(this, this.handleMousedown));\r\n this.$element.on(\r\n \"mouseup touchend\",\r\n angular.bind(this, this.handleMouseup)\r\n );\r\n this.$element.on(\"mouseleave\", angular.bind(this, this.handleMouseup));\r\n this.$element.on(\"touchmove\", angular.bind(this, this.handleTouchmove));\r\n };\r\n\r\n /**\r\n * Create a new ripple on every mousedown event from the root element\r\n * @param event {MouseEvent}\r\n */\r\n InkRippleCtrl.prototype.handleMousedown = function(event) {\r\n if (this.mousedown) return;\r\n\r\n // When jQuery is loaded, we have to get the original event\r\n if (event.hasOwnProperty(\"originalEvent\")) event = event.originalEvent;\r\n this.mousedown = true;\r\n if (this.options.center) {\r\n this.createRipple(\r\n this.container.prop(\"clientWidth\") / 2,\r\n this.container.prop(\"clientWidth\") / 2\r\n );\r\n } else {\r\n // We need to calculate the relative coordinates if the target is a sublayer of the ripple element\r\n if (event.srcElement !== this.$element[0]) {\r\n var layerRect = this.$element[0].getBoundingClientRect();\r\n var layerX = event.clientX - layerRect.left;\r\n var layerY = event.clientY - layerRect.top;\r\n\r\n this.createRipple(layerX, layerY);\r\n } else {\r\n this.createRipple(event.offsetX, event.offsetY);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Either remove or unlock any remaining ripples when the user mouses off of the element (either by\r\n * mouseup, touchend or mouseleave event)\r\n */\r\n InkRippleCtrl.prototype.handleMouseup = function() {\r\n autoCleanup(this, this.clearRipples);\r\n };\r\n\r\n /**\r\n * Either remove or unlock any remaining ripples when the user mouses off of the element (by\r\n * touchmove)\r\n */\r\n InkRippleCtrl.prototype.handleTouchmove = function() {\r\n autoCleanup(this, this.deleteRipples);\r\n };\r\n\r\n /**\r\n * Cycles through all ripples and attempts to remove them.\r\n */\r\n InkRippleCtrl.prototype.deleteRipples = function() {\r\n for (var i = 0; i < this.ripples.length; i++) {\r\n this.ripples[i].remove();\r\n }\r\n };\r\n\r\n /**\r\n * Cycles through all ripples and attempts to remove them with fade.\r\n * Depending on logic within `fadeInComplete`, some removals will be postponed.\r\n */\r\n InkRippleCtrl.prototype.clearRipples = function() {\r\n for (var i = 0; i < this.ripples.length; i++) {\r\n this.fadeInComplete(this.ripples[i]);\r\n }\r\n };\r\n\r\n /**\r\n * Creates the ripple container element\r\n * @returns {*}\r\n */\r\n InkRippleCtrl.prototype.createContainer = function() {\r\n var container = angular.element(\r\n '
'\r\n );\r\n this.$element.append(container);\r\n return container;\r\n };\r\n\r\n InkRippleCtrl.prototype.clearTimeout = function() {\r\n if (this.timeout) {\r\n this.$timeout.cancel(this.timeout);\r\n this.timeout = null;\r\n }\r\n };\r\n\r\n InkRippleCtrl.prototype.isRippleAllowed = function() {\r\n var element = this.$element[0];\r\n do {\r\n if (!element.tagName || element.tagName === \"BODY\") break;\r\n\r\n if (element && angular.isFunction(element.hasAttribute)) {\r\n if (element.hasAttribute(\"disabled\")) return false;\r\n if (this.inkRipple() === \"false\" || this.inkRipple() === \"0\")\r\n return false;\r\n }\r\n } while ((element = element.parentNode));\r\n return true;\r\n };\r\n\r\n /**\r\n * The attribute `md-ink-ripple` may be a static or interpolated\r\n * color value OR a boolean indicator (used to disable ripples)\r\n */\r\n InkRippleCtrl.prototype.inkRipple = function() {\r\n return this.$element.attr(\"md-ink-ripple\");\r\n };\r\n\r\n /**\r\n * Creates a new ripple and adds it to the container. Also tracks ripple in `this.ripples`.\r\n * @param left\r\n * @param top\r\n */\r\n InkRippleCtrl.prototype.createRipple = function(left, top) {\r\n if (!this.isRippleAllowed()) return;\r\n\r\n var ctrl = this;\r\n var colorUtil = ctrl.$mdColorUtil;\r\n var ripple = angular.element('
');\r\n var width = this.$element.prop(\"clientWidth\");\r\n var height = this.$element.prop(\"clientHeight\");\r\n var x = Math.max(Math.abs(width - left), left) * 2;\r\n var y = Math.max(Math.abs(height - top), top) * 2;\r\n var size = getSize(this.options.fitRipple, x, y);\r\n var color = this.calculateColor();\r\n\r\n ripple.css({\r\n left: left + \"px\",\r\n top: top + \"px\",\r\n background: \"black\",\r\n width: size + \"px\",\r\n height: size + \"px\",\r\n backgroundColor: colorUtil.rgbaToRgb(color),\r\n borderColor: colorUtil.rgbaToRgb(color)\r\n });\r\n this.lastRipple = ripple;\r\n\r\n // we only want one timeout to be running at a time\r\n this.clearTimeout();\r\n this.timeout = this.$timeout(\r\n function() {\r\n ctrl.clearTimeout();\r\n if (!ctrl.mousedown) ctrl.fadeInComplete(ripple);\r\n },\r\n DURATION * 0.35,\r\n false\r\n );\r\n\r\n if (this.options.dimBackground)\r\n this.container.css({ backgroundColor: color });\r\n this.container.append(ripple);\r\n this.ripples.push(ripple);\r\n ripple.addClass(\"md-ripple-placed\");\r\n\r\n this.$mdUtil.nextTick(function() {\r\n ripple.addClass(\"md-ripple-scaled md-ripple-active\");\r\n ctrl.$timeout(\r\n function() {\r\n ctrl.clearRipples();\r\n },\r\n DURATION,\r\n false\r\n );\r\n }, false);\r\n\r\n function getSize(fit, x, y) {\r\n return fit\r\n ? Math.max(x, y)\r\n : Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\r\n }\r\n };\r\n\r\n /**\r\n * After fadeIn finishes, either kicks off the fade-out animation or queues the element for removal on mouseup\r\n * @param ripple\r\n */\r\n InkRippleCtrl.prototype.fadeInComplete = function(ripple) {\r\n if (this.lastRipple === ripple) {\r\n if (!this.timeout && !this.mousedown) {\r\n this.removeRipple(ripple);\r\n }\r\n } else {\r\n this.removeRipple(ripple);\r\n }\r\n };\r\n\r\n /**\r\n * Kicks off the animation for removing a ripple\r\n * @param ripple {Element}\r\n */\r\n InkRippleCtrl.prototype.removeRipple = function(ripple) {\r\n var ctrl = this;\r\n var index = this.ripples.indexOf(ripple);\r\n if (index < 0) return;\r\n this.ripples.splice(this.ripples.indexOf(ripple), 1);\r\n ripple.removeClass(\"md-ripple-active\");\r\n ripple.addClass(\"md-ripple-remove\");\r\n if (this.ripples.length === 0)\r\n this.container.css({ backgroundColor: \"\" });\r\n // use a 2-second timeout in order to allow for the animation to finish\r\n // we don't actually care how long the animation takes\r\n this.$timeout(\r\n function() {\r\n ctrl.fadeOutComplete(ripple);\r\n },\r\n DURATION,\r\n false\r\n );\r\n };\r\n\r\n /**\r\n * Removes the provided ripple from the DOM\r\n * @param ripple\r\n */\r\n InkRippleCtrl.prototype.fadeOutComplete = function(ripple) {\r\n ripple.remove();\r\n this.lastRipple = null;\r\n };\r\n\r\n /**\r\n * Used to create an empty directive. This is used to track flag-directives whose children may have\r\n * functionality based on them.\r\n *\r\n * Example: `md-no-ink` will potentially be used by all child directives.\r\n */\r\n function attrNoDirective() {\r\n return { controller: angular.noop };\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdTabInkRipple\r\n * @module material.core\r\n *\r\n * @description\r\n * Provides ripple effects for md-tabs. See $mdInkRipple service for all possible configuration options.\r\n *\r\n * @param {object=} scope Scope within the current context\r\n * @param {object=} element The element the ripple effect should be applied to\r\n * @param {object=} options (Optional) Configuration options to override the defaultripple configuration\r\n */\r\n\r\n MdTabInkRipple.$inject = [\"$mdInkRipple\"];\r\n angular\r\n .module(\"material.core\")\r\n .factory(\"$mdTabInkRipple\", MdTabInkRipple);\r\n\r\n function MdTabInkRipple($mdInkRipple) {\r\n return {\r\n attach: attach\r\n };\r\n\r\n function attach(scope, element, options) {\r\n return $mdInkRipple.attach(\r\n scope,\r\n element,\r\n angular.extend(\r\n {\r\n center: false,\r\n dimBackground: true,\r\n outline: false,\r\n rippleSize: \"full\"\r\n },\r\n options\r\n )\r\n );\r\n }\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"material.core.theming.palette\", [])\r\n .constant(\"$mdColorPalette\", {\r\n red: {\r\n \"50\": \"#ffebee\",\r\n \"100\": \"#ffcdd2\",\r\n \"200\": \"#ef9a9a\",\r\n \"300\": \"#e57373\",\r\n \"400\": \"#ef5350\",\r\n \"500\": \"#f44336\",\r\n \"600\": \"#e53935\",\r\n \"700\": \"#d32f2f\",\r\n \"800\": \"#c62828\",\r\n \"900\": \"#b71c1c\",\r\n A100: \"#ff8a80\",\r\n A200: \"#ff5252\",\r\n A400: \"#ff1744\",\r\n A700: \"#d50000\",\r\n contrastDefaultColor: \"light\",\r\n contrastDarkColors: \"50 100 200 300 A100\",\r\n contrastStrongLightColors: \"400 500 600 700 A200 A400 A700\"\r\n },\r\n pink: {\r\n \"50\": \"#fce4ec\",\r\n \"100\": \"#f8bbd0\",\r\n \"200\": \"#f48fb1\",\r\n \"300\": \"#f06292\",\r\n \"400\": \"#ec407a\",\r\n \"500\": \"#e91e63\",\r\n \"600\": \"#d81b60\",\r\n \"700\": \"#c2185b\",\r\n \"800\": \"#ad1457\",\r\n \"900\": \"#880e4f\",\r\n A100: \"#ff80ab\",\r\n A200: \"#ff4081\",\r\n A400: \"#f50057\",\r\n A700: \"#c51162\",\r\n contrastDefaultColor: \"light\",\r\n contrastDarkColors: \"50 100 200 A100\",\r\n contrastStrongLightColors: \"500 600 A200 A400 A700\"\r\n },\r\n purple: {\r\n \"50\": \"#f3e5f5\",\r\n \"100\": \"#e1bee7\",\r\n \"200\": \"#ce93d8\",\r\n \"300\": \"#ba68c8\",\r\n \"400\": \"#ab47bc\",\r\n \"500\": \"#9c27b0\",\r\n \"600\": \"#8e24aa\",\r\n \"700\": \"#7b1fa2\",\r\n \"800\": \"#6a1b9a\",\r\n \"900\": \"#4a148c\",\r\n A100: \"#ea80fc\",\r\n A200: \"#e040fb\",\r\n A400: \"#d500f9\",\r\n A700: \"#aa00ff\",\r\n contrastDefaultColor: \"light\",\r\n contrastDarkColors: \"50 100 200 A100\",\r\n contrastStrongLightColors: \"300 400 A200 A400 A700\"\r\n },\r\n \"deep-purple\": {\r\n \"50\": \"#ede7f6\",\r\n \"100\": \"#d1c4e9\",\r\n \"200\": \"#b39ddb\",\r\n \"300\": \"#9575cd\",\r\n \"400\": \"#7e57c2\",\r\n \"500\": \"#673ab7\",\r\n \"600\": \"#5e35b1\",\r\n \"700\": \"#512da8\",\r\n \"800\": \"#4527a0\",\r\n \"900\": \"#311b92\",\r\n A100: \"#b388ff\",\r\n A200: \"#7c4dff\",\r\n A400: \"#651fff\",\r\n A700: \"#6200ea\",\r\n contrastDefaultColor: \"light\",\r\n contrastDarkColors: \"50 100 200 A100\",\r\n contrastStrongLightColors: \"300 400 A200\"\r\n },\r\n indigo: {\r\n \"50\": \"#e8eaf6\",\r\n \"100\": \"#c5cae9\",\r\n \"200\": \"#9fa8da\",\r\n \"300\": \"#7986cb\",\r\n \"400\": \"#5c6bc0\",\r\n \"500\": \"#3f51b5\",\r\n \"600\": \"#3949ab\",\r\n \"700\": \"#303f9f\",\r\n \"800\": \"#283593\",\r\n \"900\": \"#1a237e\",\r\n A100: \"#8c9eff\",\r\n A200: \"#536dfe\",\r\n A400: \"#3d5afe\",\r\n A700: \"#304ffe\",\r\n contrastDefaultColor: \"light\",\r\n contrastDarkColors: \"50 100 200 A100\",\r\n contrastStrongLightColors: \"300 400 A200 A400\"\r\n },\r\n blue: {\r\n \"50\": \"#e3f2fd\",\r\n \"100\": \"#bbdefb\",\r\n \"200\": \"#90caf9\",\r\n \"300\": \"#64b5f6\",\r\n \"400\": \"#42a5f5\",\r\n \"500\": \"#2196f3\",\r\n \"600\": \"#1e88e5\",\r\n \"700\": \"#1976d2\",\r\n \"800\": \"#1565c0\",\r\n \"900\": \"#0d47a1\",\r\n A100: \"#82b1ff\",\r\n A200: \"#448aff\",\r\n A400: \"#2979ff\",\r\n A700: \"#2962ff\",\r\n contrastDefaultColor: \"light\",\r\n contrastDarkColors: \"50 100 200 300 400 A100\",\r\n contrastStrongLightColors: \"500 600 700 A200 A400 A700\"\r\n },\r\n \"light-blue\": {\r\n \"50\": \"#e1f5fe\",\r\n \"100\": \"#b3e5fc\",\r\n \"200\": \"#81d4fa\",\r\n \"300\": \"#4fc3f7\",\r\n \"400\": \"#29b6f6\",\r\n \"500\": \"#03a9f4\",\r\n \"600\": \"#039be5\",\r\n \"700\": \"#0288d1\",\r\n \"800\": \"#0277bd\",\r\n \"900\": \"#01579b\",\r\n A100: \"#80d8ff\",\r\n A200: \"#40c4ff\",\r\n A400: \"#00b0ff\",\r\n A700: \"#0091ea\",\r\n contrastDefaultColor: \"dark\",\r\n contrastLightColors: \"600 700 800 900 A700\",\r\n contrastStrongLightColors: \"600 700 800 A700\"\r\n },\r\n cyan: {\r\n \"50\": \"#e0f7fa\",\r\n \"100\": \"#b2ebf2\",\r\n \"200\": \"#80deea\",\r\n \"300\": \"#4dd0e1\",\r\n \"400\": \"#26c6da\",\r\n \"500\": \"#00bcd4\",\r\n \"600\": \"#00acc1\",\r\n \"700\": \"#0097a7\",\r\n \"800\": \"#00838f\",\r\n \"900\": \"#006064\",\r\n A100: \"#84ffff\",\r\n A200: \"#18ffff\",\r\n A400: \"#00e5ff\",\r\n A700: \"#00b8d4\",\r\n contrastDefaultColor: \"dark\",\r\n contrastLightColors: \"700 800 900\",\r\n contrastStrongLightColors: \"700 800 900\"\r\n },\r\n teal: {\r\n \"50\": \"#e0f2f1\",\r\n \"100\": \"#b2dfdb\",\r\n \"200\": \"#80cbc4\",\r\n \"300\": \"#4db6ac\",\r\n \"400\": \"#26a69a\",\r\n \"500\": \"#009688\",\r\n \"600\": \"#00897b\",\r\n \"700\": \"#00796b\",\r\n \"800\": \"#00695c\",\r\n \"900\": \"#004d40\",\r\n A100: \"#a7ffeb\",\r\n A200: \"#64ffda\",\r\n A400: \"#1de9b6\",\r\n A700: \"#00bfa5\",\r\n contrastDefaultColor: \"dark\",\r\n contrastLightColors: \"500 600 700 800 900\",\r\n contrastStrongLightColors: \"500 600 700\"\r\n },\r\n green: {\r\n \"50\": \"#e8f5e9\",\r\n \"100\": \"#c8e6c9\",\r\n \"200\": \"#a5d6a7\",\r\n \"300\": \"#81c784\",\r\n \"400\": \"#66bb6a\",\r\n \"500\": \"#4caf50\",\r\n \"600\": \"#43a047\",\r\n \"700\": \"#388e3c\",\r\n \"800\": \"#2e7d32\",\r\n \"900\": \"#1b5e20\",\r\n A100: \"#b9f6ca\",\r\n A200: \"#69f0ae\",\r\n A400: \"#00e676\",\r\n A700: \"#00c853\",\r\n contrastDefaultColor: \"dark\",\r\n contrastLightColors: \"500 600 700 800 900\",\r\n contrastStrongLightColors: \"500 600 700\"\r\n },\r\n \"light-green\": {\r\n \"50\": \"#f1f8e9\",\r\n \"100\": \"#dcedc8\",\r\n \"200\": \"#c5e1a5\",\r\n \"300\": \"#aed581\",\r\n \"400\": \"#9ccc65\",\r\n \"500\": \"#8bc34a\",\r\n \"600\": \"#7cb342\",\r\n \"700\": \"#689f38\",\r\n \"800\": \"#558b2f\",\r\n \"900\": \"#33691e\",\r\n A100: \"#ccff90\",\r\n A200: \"#b2ff59\",\r\n A400: \"#76ff03\",\r\n A700: \"#64dd17\",\r\n contrastDefaultColor: \"dark\",\r\n contrastLightColors: \"700 800 900\",\r\n contrastStrongLightColors: \"700 800 900\"\r\n },\r\n lime: {\r\n \"50\": \"#f9fbe7\",\r\n \"100\": \"#f0f4c3\",\r\n \"200\": \"#e6ee9c\",\r\n \"300\": \"#dce775\",\r\n \"400\": \"#d4e157\",\r\n \"500\": \"#cddc39\",\r\n \"600\": \"#c0ca33\",\r\n \"700\": \"#afb42b\",\r\n \"800\": \"#9e9d24\",\r\n \"900\": \"#827717\",\r\n A100: \"#f4ff81\",\r\n A200: \"#eeff41\",\r\n A400: \"#c6ff00\",\r\n A700: \"#aeea00\",\r\n contrastDefaultColor: \"dark\",\r\n contrastLightColors: \"900\",\r\n contrastStrongLightColors: \"900\"\r\n },\r\n yellow: {\r\n \"50\": \"#fffde7\",\r\n \"100\": \"#fff9c4\",\r\n \"200\": \"#fff59d\",\r\n \"300\": \"#fff176\",\r\n \"400\": \"#ffee58\",\r\n \"500\": \"#ffeb3b\",\r\n \"600\": \"#fdd835\",\r\n \"700\": \"#fbc02d\",\r\n \"800\": \"#f9a825\",\r\n \"900\": \"#f57f17\",\r\n A100: \"#ffff8d\",\r\n A200: \"#ffff00\",\r\n A400: \"#ffea00\",\r\n A700: \"#ffd600\",\r\n contrastDefaultColor: \"dark\"\r\n },\r\n amber: {\r\n \"50\": \"#fff8e1\",\r\n \"100\": \"#ffecb3\",\r\n \"200\": \"#ffe082\",\r\n \"300\": \"#ffd54f\",\r\n \"400\": \"#ffca28\",\r\n \"500\": \"#ffc107\",\r\n \"600\": \"#ffb300\",\r\n \"700\": \"#ffa000\",\r\n \"800\": \"#ff8f00\",\r\n \"900\": \"#ff6f00\",\r\n A100: \"#ffe57f\",\r\n A200: \"#ffd740\",\r\n A400: \"#ffc400\",\r\n A700: \"#ffab00\",\r\n contrastDefaultColor: \"dark\"\r\n },\r\n orange: {\r\n \"50\": \"#fff3e0\",\r\n \"100\": \"#ffe0b2\",\r\n \"200\": \"#ffcc80\",\r\n \"300\": \"#ffb74d\",\r\n \"400\": \"#ffa726\",\r\n \"500\": \"#ff9800\",\r\n \"600\": \"#fb8c00\",\r\n \"700\": \"#f57c00\",\r\n \"800\": \"#ef6c00\",\r\n \"900\": \"#e65100\",\r\n A100: \"#ffd180\",\r\n A200: \"#ffab40\",\r\n A400: \"#ff9100\",\r\n A700: \"#ff6d00\",\r\n contrastDefaultColor: \"dark\",\r\n contrastLightColors: \"800 900\",\r\n contrastStrongLightColors: \"800 900\"\r\n },\r\n \"deep-orange\": {\r\n \"50\": \"#fbe9e7\",\r\n \"100\": \"#ffccbc\",\r\n \"200\": \"#ffab91\",\r\n \"300\": \"#ff8a65\",\r\n \"400\": \"#ff7043\",\r\n \"500\": \"#ff5722\",\r\n \"600\": \"#f4511e\",\r\n \"700\": \"#e64a19\",\r\n \"800\": \"#d84315\",\r\n \"900\": \"#bf360c\",\r\n A100: \"#ff9e80\",\r\n A200: \"#ff6e40\",\r\n A400: \"#ff3d00\",\r\n A700: \"#dd2c00\",\r\n contrastDefaultColor: \"light\",\r\n contrastDarkColors: \"50 100 200 300 400 A100 A200\",\r\n contrastStrongLightColors: \"500 600 700 800 900 A400 A700\"\r\n },\r\n brown: {\r\n \"50\": \"#efebe9\",\r\n \"100\": \"#d7ccc8\",\r\n \"200\": \"#bcaaa4\",\r\n \"300\": \"#a1887f\",\r\n \"400\": \"#8d6e63\",\r\n \"500\": \"#795548\",\r\n \"600\": \"#6d4c41\",\r\n \"700\": \"#5d4037\",\r\n \"800\": \"#4e342e\",\r\n \"900\": \"#3e2723\",\r\n A100: \"#d7ccc8\",\r\n A200: \"#bcaaa4\",\r\n A400: \"#8d6e63\",\r\n A700: \"#5d4037\",\r\n contrastDefaultColor: \"light\",\r\n contrastDarkColors: \"50 100 200 A100 A200\",\r\n contrastStrongLightColors: \"300 400\"\r\n },\r\n grey: {\r\n \"50\": \"#fafafa\",\r\n \"100\": \"#f5f5f5\",\r\n \"200\": \"#eeeeee\",\r\n \"300\": \"#e0e0e0\",\r\n \"400\": \"#bdbdbd\",\r\n \"500\": \"#9e9e9e\",\r\n \"600\": \"#757575\",\r\n \"700\": \"#616161\",\r\n \"800\": \"#424242\",\r\n \"900\": \"#212121\",\r\n A100: \"#ffffff\",\r\n A200: \"#000000\",\r\n A400: \"#303030\",\r\n A700: \"#616161\",\r\n contrastDefaultColor: \"dark\",\r\n contrastLightColors: \"600 700 800 900 A200 A400 A700\"\r\n },\r\n \"blue-grey\": {\r\n \"50\": \"#eceff1\",\r\n \"100\": \"#cfd8dc\",\r\n \"200\": \"#b0bec5\",\r\n \"300\": \"#90a4ae\",\r\n \"400\": \"#78909c\",\r\n \"500\": \"#607d8b\",\r\n \"600\": \"#546e7a\",\r\n \"700\": \"#455a64\",\r\n \"800\": \"#37474f\",\r\n \"900\": \"#263238\",\r\n A100: \"#cfd8dc\",\r\n A200: \"#b0bec5\",\r\n A400: \"#78909c\",\r\n A700: \"#455a64\",\r\n contrastDefaultColor: \"light\",\r\n contrastDarkColors: \"50 100 200 300 A100 A200\",\r\n contrastStrongLightColors: \"400 500 700\"\r\n }\r\n });\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function(angular) {\r\n \"use strict\";\r\n /**\r\n * @ngdoc module\r\n * @name material.core.theming\r\n * @description\r\n * Theming\r\n */\r\n detectDisabledThemes.$inject = [\"$mdThemingProvider\"];\r\n ThemingDirective.$inject = [\"$mdTheming\", \"$interpolate\", \"$log\"];\r\n ThemableDirective.$inject = [\"$mdTheming\"];\r\n ThemingProvider.$inject = [\"$mdColorPalette\", \"$$mdMetaProvider\"];\r\n generateAllThemes.$inject = [\"$injector\", \"$mdTheming\"];\r\n angular\r\n .module(\"material.core.theming\", [\r\n \"material.core.theming.palette\",\r\n \"material.core.meta\"\r\n ])\r\n .directive(\"mdTheme\", ThemingDirective)\r\n .directive(\"mdThemable\", ThemableDirective)\r\n .directive(\"mdThemesDisabled\", disableThemesDirective)\r\n .provider(\"$mdTheming\", ThemingProvider)\r\n .config(detectDisabledThemes)\r\n .run(generateAllThemes);\r\n\r\n /**\r\n * Detect if the HTML or the BODY tags has a [md-themes-disabled] attribute\r\n * If yes, then immediately disable all theme stylesheet generation and DOM injection\r\n */\r\n /**\r\n * @ngInject\r\n */\r\n function detectDisabledThemes($mdThemingProvider) {\r\n var isDisabled = !!document.querySelector(\"[md-themes-disabled]\");\r\n $mdThemingProvider.disableTheming(isDisabled);\r\n }\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdThemingProvider\r\n * @module material.core.theming\r\n *\r\n * @description Provider to configure the `$mdTheming` service.\r\n *\r\n * ### Default Theme\r\n * The `$mdThemingProvider` uses by default the following theme configuration:\r\n *\r\n * - Primary Palette: `Primary`\r\n * - Accent Palette: `Pink`\r\n * - Warn Palette: `Deep-Orange`\r\n * - Background Palette: `Grey`\r\n *\r\n * If you don't want to use the `md-theme` directive on the elements itself, you may want to overwrite\r\n * the default theme.
\r\n * This can be done by using the following markup.\r\n *\r\n * \r\n * myAppModule.config(function($mdThemingProvider) {\r\n * $mdThemingProvider\r\n * .theme('default')\r\n * .primaryPalette('blue')\r\n * .accentPalette('teal')\r\n * .warnPalette('red')\r\n * .backgroundPalette('grey');\r\n * });\r\n * \r\n *\r\n\r\n * ### Dynamic Themes\r\n *\r\n * By default, if you change a theme at runtime, the `$mdTheming` service will not detect those changes.
\r\n * If you have an application, which changes its theme on runtime, you have to enable theme watching.\r\n *\r\n * \r\n * myAppModule.config(function($mdThemingProvider) {\r\n * // Enable theme watching.\r\n * $mdThemingProvider.alwaysWatchTheme(true);\r\n * });\r\n * \r\n *\r\n * ### Custom Theme Styles\r\n *\r\n * Sometimes you may want to use your own theme styles for some custom components.
\r\n * You are able to register your own styles by using the following markup.\r\n *\r\n * \r\n * myAppModule.config(function($mdThemingProvider) {\r\n * // Register our custom stylesheet into the theming provider.\r\n * $mdThemingProvider.registerStyles(STYLESHEET);\r\n * });\r\n * \r\n *\r\n * The `registerStyles` method only accepts strings as value, so you're actually not able to load an external\r\n * stylesheet file into the `$mdThemingProvider`.\r\n *\r\n * If it's necessary to load an external stylesheet, we suggest using a bundler, which supports including raw content,\r\n * like [raw-loader](https://github.com/webpack/raw-loader) for `webpack`.\r\n *\r\n * \r\n * myAppModule.config(function($mdThemingProvider) {\r\n * // Register your custom stylesheet into the theming provider.\r\n * $mdThemingProvider.registerStyles(require('../styles/my-component.theme.css'));\r\n * });\r\n * \r\n *\r\n * ### Browser color\r\n *\r\n * Enables browser header coloring\r\n * for more info please visit:\r\n * https://developers.google.com/web/fundamentals/design-and-ui/browser-customization/theme-color\r\n *\r\n * Options parameter:
\r\n * `theme` - A defined theme via `$mdThemeProvider` to use the palettes from. Default is `default` theme.
\r\n * `palette` - Can be any one of the basic material design palettes, extended defined palettes and 'primary',\r\n * 'accent', 'background' and 'warn'. Default is `primary`.
\r\n * `hue` - The hue from the selected palette. Default is `800`
\r\n *\r\n * \r\n * myAppModule.config(function($mdThemingProvider) {\r\n * // Enable browser color\r\n * $mdThemingProvider.enableBrowserColor({\r\n * theme: 'myTheme', // Default is 'default'\r\n * palette: 'accent', // Default is 'primary', any basic material palette and extended palettes are available\r\n * hue: '200' // Default is '800'\r\n * });\r\n * });\r\n * \r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdThemingProvider#registerStyles\r\n * @param {string} styles The styles to be appended to Angular Material's built in theme css.\r\n */\r\n /**\r\n * @ngdoc method\r\n * @name $mdThemingProvider#setNonce\r\n * @param {string} nonceValue The nonce to be added as an attribute to the theme style tags.\r\n * Setting a value allows the use of CSP policy without using the unsafe-inline directive.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdThemingProvider#setDefaultTheme\r\n * @param {string} themeName Default theme name to be applied to elements. Default value is `default`.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdThemingProvider#alwaysWatchTheme\r\n * @param {boolean} watch Whether or not to always watch themes for changes and re-apply\r\n * classes when they change. Default is `false`. Enabling can reduce performance.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdThemingProvider#enableBrowserColor\r\n * @param {Object=} options Options object for the browser color
\r\n * `theme` - A defined theme via `$mdThemeProvider` to use the palettes from. Default is `default` theme.
\r\n * `palette` - Can be any one of the basic material design palettes, extended defined palettes and 'primary',\r\n * 'accent', 'background' and 'warn'. Default is `primary`.
\r\n * `hue` - The hue from the selected palette. Default is `800`
\r\n * @returns {Function} remove function of the browser color\r\n */\r\n\r\n /* Some Example Valid Theming Expressions\r\n * =======================================\r\n *\r\n * Intention group expansion: (valid for primary, accent, warn, background)\r\n *\r\n * {{primary-100}} - grab shade 100 from the primary palette\r\n * {{primary-100-0.7}} - grab shade 100, apply opacity of 0.7\r\n * {{primary-100-contrast}} - grab shade 100's contrast color\r\n * {{primary-hue-1}} - grab the shade assigned to hue-1 from the primary palette\r\n * {{primary-hue-1-0.7}} - apply 0.7 opacity to primary-hue-1\r\n * {{primary-color}} - Generates .md-hue-1, .md-hue-2, .md-hue-3 with configured shades set for each hue\r\n * {{primary-color-0.7}} - Apply 0.7 opacity to each of the above rules\r\n * {{primary-contrast}} - Generates .md-hue-1, .md-hue-2, .md-hue-3 with configured contrast (ie. text) color shades set for each hue\r\n * {{primary-contrast-0.7}} - Apply 0.7 opacity to each of the above rules\r\n *\r\n * Foreground expansion: Applies rgba to black/white foreground text\r\n *\r\n * {{foreground-1}} - used for primary text\r\n * {{foreground-2}} - used for secondary text/divider\r\n * {{foreground-3}} - used for disabled text\r\n * {{foreground-4}} - used for dividers\r\n *\r\n */\r\n\r\n // In memory generated CSS rules; registered by theme.name\r\n var GENERATED = {};\r\n\r\n // In memory storage of defined themes and color palettes (both loaded by CSS, and user specified)\r\n var PALETTES;\r\n\r\n // Text Colors on light and dark backgrounds\r\n // @see https://www.google.com/design/spec/style/color.html#color-text-background-colors\r\n var DARK_FOREGROUND = {\r\n name: \"dark\",\r\n \"1\": \"rgba(0,0,0,0.87)\",\r\n \"2\": \"rgba(0,0,0,0.54)\",\r\n \"3\": \"rgba(0,0,0,0.38)\",\r\n \"4\": \"rgba(0,0,0,0.12)\"\r\n };\r\n var LIGHT_FOREGROUND = {\r\n name: \"light\",\r\n \"1\": \"rgba(255,255,255,1.0)\",\r\n \"2\": \"rgba(255,255,255,0.7)\",\r\n \"3\": \"rgba(255,255,255,0.5)\",\r\n \"4\": \"rgba(255,255,255,0.12)\"\r\n };\r\n\r\n var DARK_SHADOW =\r\n \"1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)\";\r\n var LIGHT_SHADOW = \"\";\r\n\r\n var DARK_CONTRAST_COLOR = colorToRgbaArray(\"rgba(0,0,0,0.87)\");\r\n var LIGHT_CONTRAST_COLOR = colorToRgbaArray(\"rgba(255,255,255,0.87)\");\r\n var STRONG_LIGHT_CONTRAST_COLOR = colorToRgbaArray(\"rgb(255,255,255)\");\r\n\r\n var THEME_COLOR_TYPES = [\"primary\", \"accent\", \"warn\", \"background\"];\r\n var DEFAULT_COLOR_TYPE = \"primary\";\r\n\r\n // A color in a theme will use these hues by default, if not specified by user.\r\n var LIGHT_DEFAULT_HUES = {\r\n accent: {\r\n default: \"A200\",\r\n \"hue-1\": \"A100\",\r\n \"hue-2\": \"A400\",\r\n \"hue-3\": \"A700\"\r\n },\r\n background: {\r\n default: \"50\",\r\n \"hue-1\": \"A100\",\r\n \"hue-2\": \"100\",\r\n \"hue-3\": \"300\"\r\n }\r\n };\r\n\r\n var DARK_DEFAULT_HUES = {\r\n background: {\r\n default: \"A400\",\r\n \"hue-1\": \"800\",\r\n \"hue-2\": \"900\",\r\n \"hue-3\": \"A200\"\r\n }\r\n };\r\n THEME_COLOR_TYPES.forEach(function(colorType) {\r\n // Color types with unspecified default hues will use these default hue values\r\n var defaultDefaultHues = {\r\n default: \"500\",\r\n \"hue-1\": \"300\",\r\n \"hue-2\": \"800\",\r\n \"hue-3\": \"A100\"\r\n };\r\n if (!LIGHT_DEFAULT_HUES[colorType])\r\n LIGHT_DEFAULT_HUES[colorType] = defaultDefaultHues;\r\n if (!DARK_DEFAULT_HUES[colorType])\r\n DARK_DEFAULT_HUES[colorType] = defaultDefaultHues;\r\n });\r\n\r\n var VALID_HUE_VALUES = [\r\n \"50\",\r\n \"100\",\r\n \"200\",\r\n \"300\",\r\n \"400\",\r\n \"500\",\r\n \"600\",\r\n \"700\",\r\n \"800\",\r\n \"900\",\r\n \"A100\",\r\n \"A200\",\r\n \"A400\",\r\n \"A700\"\r\n ];\r\n\r\n var themeConfig = {\r\n disableTheming: false, // Generate our themes at run time; also disable stylesheet DOM injection\r\n generateOnDemand: false, // Whether or not themes are to be generated on-demand (vs. eagerly).\r\n registeredStyles: [], // Custom styles registered to be used in the theming of custom components.\r\n nonce: null // Nonce to be added as an attribute to the generated themes style tags.\r\n };\r\n\r\n /**\r\n *\r\n */\r\n function ThemingProvider($mdColorPalette, $$mdMetaProvider) {\r\n ThemingService.$inject = [\"$rootScope\", \"$log\"];\r\n PALETTES = {};\r\n var THEMES = {};\r\n\r\n var themingProvider;\r\n\r\n var alwaysWatchTheme = false;\r\n var defaultTheme = \"default\";\r\n\r\n // Load JS Defined Palettes\r\n angular.extend(PALETTES, $mdColorPalette);\r\n\r\n // Default theme defined in core.js\r\n\r\n /**\r\n * Adds `theme-color` and `msapplication-navbutton-color` meta tags with the color parameter\r\n * @param {string} color Hex value of the wanted browser color\r\n * @returns {Function} Remove function of the meta tags\r\n */\r\n var setBrowserColor = function(color) {\r\n // Chrome, Firefox OS and Opera\r\n var removeChrome = $$mdMetaProvider.setMeta(\"theme-color\", color);\r\n // Windows Phone\r\n var removeWindows = $$mdMetaProvider.setMeta(\r\n \"msapplication-navbutton-color\",\r\n color\r\n );\r\n\r\n return function() {\r\n removeChrome();\r\n removeWindows();\r\n };\r\n };\r\n\r\n /**\r\n * Enables browser header coloring\r\n * for more info please visit:\r\n * https://developers.google.com/web/fundamentals/design-and-ui/browser-customization/theme-color\r\n *\r\n * The default color is `800` from `primary` palette of the `default` theme\r\n *\r\n * options are:\r\n * `theme` - A defined theme via `$mdThemeProvider` to use the palettes from. Default is `default` theme\r\n * `palette` - Can be any one of the basic material design palettes, extended defined palettes and 'primary',\r\n * 'accent', 'background' and 'warn'. Default is `primary`\r\n * `hue` - The hue from the selected palette. Default is `800`\r\n *\r\n * @param {Object=} options Options object for the browser color\r\n * @returns {Function} remove function of the browser color\r\n */\r\n var enableBrowserColor = function(options) {\r\n options = angular.isObject(options) ? options : {};\r\n\r\n var theme = options.theme || \"default\";\r\n var hue = options.hue || \"800\";\r\n\r\n var palette =\r\n PALETTES[options.palette] ||\r\n PALETTES[THEMES[theme].colors[options.palette || \"primary\"].name];\r\n\r\n var color = angular.isObject(palette[hue])\r\n ? palette[hue].hex\r\n : palette[hue];\r\n\r\n return setBrowserColor(color);\r\n };\r\n\r\n return (themingProvider = {\r\n definePalette: definePalette,\r\n extendPalette: extendPalette,\r\n theme: registerTheme,\r\n\r\n /**\r\n * return a read-only clone of the current theme configuration\r\n */\r\n configuration: function() {\r\n return angular.extend({}, themeConfig, {\r\n defaultTheme: defaultTheme,\r\n alwaysWatchTheme: alwaysWatchTheme,\r\n registeredStyles: [].concat(themeConfig.registeredStyles)\r\n });\r\n },\r\n\r\n /**\r\n * Easy way to disable theming without having to use\r\n * `.constant(\"$MD_THEME_CSS\",\"\");` This disables\r\n * all dynamic theme style sheet generations and injections...\r\n */\r\n disableTheming: function(isDisabled) {\r\n themeConfig.disableTheming =\r\n angular.isUndefined(isDisabled) || !!isDisabled;\r\n },\r\n\r\n registerStyles: function(styles) {\r\n themeConfig.registeredStyles.push(styles);\r\n },\r\n\r\n setNonce: function(nonceValue) {\r\n themeConfig.nonce = nonceValue;\r\n },\r\n\r\n generateThemesOnDemand: function(onDemand) {\r\n themeConfig.generateOnDemand = onDemand;\r\n },\r\n\r\n setDefaultTheme: function(theme) {\r\n defaultTheme = theme;\r\n },\r\n\r\n alwaysWatchTheme: function(alwaysWatch) {\r\n alwaysWatchTheme = alwaysWatch;\r\n },\r\n\r\n enableBrowserColor: enableBrowserColor,\r\n\r\n $get: ThemingService,\r\n _LIGHT_DEFAULT_HUES: LIGHT_DEFAULT_HUES,\r\n _DARK_DEFAULT_HUES: DARK_DEFAULT_HUES,\r\n _PALETTES: PALETTES,\r\n _THEMES: THEMES,\r\n _parseRules: parseRules,\r\n _rgba: rgba\r\n });\r\n\r\n // Example: $mdThemingProvider.definePalette('neonRed', { 50: '#f5fafa', ... });\r\n function definePalette(name, map) {\r\n map = map || {};\r\n PALETTES[name] = checkPaletteValid(name, map);\r\n return themingProvider;\r\n }\r\n\r\n // Returns an new object which is a copy of a given palette `name` with variables from\r\n // `map` overwritten\r\n // Example: var neonRedMap = $mdThemingProvider.extendPalette('red', { 50: '#f5fafafa' });\r\n function extendPalette(name, map) {\r\n return checkPaletteValid(\r\n name,\r\n angular.extend({}, PALETTES[name] || {}, map)\r\n );\r\n }\r\n\r\n // Make sure that palette has all required hues\r\n function checkPaletteValid(name, map) {\r\n var missingColors = VALID_HUE_VALUES.filter(function(field) {\r\n return !map[field];\r\n });\r\n if (missingColors.length) {\r\n throw new Error(\r\n \"Missing colors %1 in palette %2!\"\r\n .replace(\"%1\", missingColors.join(\", \"))\r\n .replace(\"%2\", name)\r\n );\r\n }\r\n\r\n return map;\r\n }\r\n\r\n // Register a theme (which is a collection of color palettes to use with various states\r\n // ie. warn, accent, primary )\r\n // Optionally inherit from an existing theme\r\n // $mdThemingProvider.theme('custom-theme').primaryPalette('red');\r\n function registerTheme(name, inheritFrom) {\r\n if (THEMES[name]) return THEMES[name];\r\n\r\n inheritFrom = inheritFrom || \"default\";\r\n\r\n var parentTheme =\r\n typeof inheritFrom === \"string\" ? THEMES[inheritFrom] : inheritFrom;\r\n var theme = new Theme(name);\r\n\r\n if (parentTheme) {\r\n angular.forEach(parentTheme.colors, function(color, colorType) {\r\n theme.colors[colorType] = {\r\n name: color.name,\r\n // Make sure a COPY of the hues is given to the child color,\r\n // not the same reference.\r\n hues: angular.extend({}, color.hues)\r\n };\r\n });\r\n }\r\n THEMES[name] = theme;\r\n\r\n return theme;\r\n }\r\n\r\n function Theme(name) {\r\n var self = this;\r\n self.name = name;\r\n self.colors = {};\r\n\r\n self.dark = setDark;\r\n setDark(false);\r\n\r\n function setDark(isDark) {\r\n isDark = arguments.length === 0 ? true : !!isDark;\r\n\r\n // If no change, abort\r\n if (isDark === self.isDark) return;\r\n\r\n self.isDark = isDark;\r\n\r\n self.foregroundPalette = self.isDark\r\n ? LIGHT_FOREGROUND\r\n : DARK_FOREGROUND;\r\n self.foregroundShadow = self.isDark ? DARK_SHADOW : LIGHT_SHADOW;\r\n\r\n // Light and dark themes have different default hues.\r\n // Go through each existing color type for this theme, and for every\r\n // hue value that is still the default hue value from the previous light/dark setting,\r\n // set it to the default hue value from the new light/dark setting.\r\n var newDefaultHues = self.isDark\r\n ? DARK_DEFAULT_HUES\r\n : LIGHT_DEFAULT_HUES;\r\n var oldDefaultHues = self.isDark\r\n ? LIGHT_DEFAULT_HUES\r\n : DARK_DEFAULT_HUES;\r\n angular.forEach(newDefaultHues, function(newDefaults, colorType) {\r\n var color = self.colors[colorType];\r\n var oldDefaults = oldDefaultHues[colorType];\r\n if (color) {\r\n for (var hueName in color.hues) {\r\n if (color.hues[hueName] === oldDefaults[hueName]) {\r\n color.hues[hueName] = newDefaults[hueName];\r\n }\r\n }\r\n }\r\n });\r\n\r\n return self;\r\n }\r\n\r\n THEME_COLOR_TYPES.forEach(function(colorType) {\r\n var defaultHues = (self.isDark\r\n ? DARK_DEFAULT_HUES\r\n : LIGHT_DEFAULT_HUES)[colorType];\r\n self[colorType + \"Palette\"] = function setPaletteType(\r\n paletteName,\r\n hues\r\n ) {\r\n var color = (self.colors[colorType] = {\r\n name: paletteName,\r\n hues: angular.extend({}, defaultHues, hues)\r\n });\r\n\r\n Object.keys(color.hues).forEach(function(name) {\r\n if (!defaultHues[name]) {\r\n throw new Error(\r\n \"Invalid hue name '%1' in theme %2's %3 color %4. Available hue names: %4\"\r\n .replace(\"%1\", name)\r\n .replace(\"%2\", self.name)\r\n .replace(\"%3\", paletteName)\r\n .replace(\"%4\", Object.keys(defaultHues).join(\", \"))\r\n );\r\n }\r\n });\r\n Object.keys(color.hues)\r\n .map(function(key) {\r\n return color.hues[key];\r\n })\r\n .forEach(function(hueValue) {\r\n if (VALID_HUE_VALUES.indexOf(hueValue) == -1) {\r\n throw new Error(\r\n \"Invalid hue value '%1' in theme %2's %3 color %4. Available hue values: %5\"\r\n .replace(\"%1\", hueValue)\r\n .replace(\"%2\", self.name)\r\n .replace(\"%3\", colorType)\r\n .replace(\"%4\", paletteName)\r\n .replace(\"%5\", VALID_HUE_VALUES.join(\", \"))\r\n );\r\n }\r\n });\r\n return self;\r\n };\r\n\r\n self[colorType + \"Color\"] = function() {\r\n var args = Array.prototype.slice.call(arguments);\r\n console.warn(\r\n \"$mdThemingProviderTheme.\" +\r\n colorType +\r\n \"Color() has been deprecated. \" +\r\n \"Use $mdThemingProviderTheme.\" +\r\n colorType +\r\n \"Palette() instead.\"\r\n );\r\n return self[colorType + \"Palette\"].apply(self, args);\r\n };\r\n });\r\n }\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdTheming\r\n *\r\n * @description\r\n *\r\n * Service that makes an element apply theming related classes to itself.\r\n *\r\n * ```js\r\n * app.directive('myFancyDirective', function($mdTheming) {\r\n * return {\r\n * restrict: 'e',\r\n * link: function(scope, el, attrs) {\r\n * $mdTheming(el);\r\n * }\r\n * };\r\n * });\r\n * ```\r\n * @param {el=} element to apply theming to\r\n */\r\n /* @ngInject */\r\n function ThemingService($rootScope, $log) {\r\n // Allow us to be invoked via a linking function signature.\r\n var applyTheme = function(scope, el) {\r\n if (el === undefined) {\r\n el = scope;\r\n scope = undefined;\r\n }\r\n if (scope === undefined) {\r\n scope = $rootScope;\r\n }\r\n applyTheme.inherit(el, el);\r\n };\r\n\r\n applyTheme.THEMES = angular.extend({}, THEMES);\r\n applyTheme.PALETTES = angular.extend({}, PALETTES);\r\n applyTheme.inherit = inheritTheme;\r\n applyTheme.registered = registered;\r\n applyTheme.defaultTheme = function() {\r\n return defaultTheme;\r\n };\r\n applyTheme.generateTheme = function(name) {\r\n generateTheme(THEMES[name], name, themeConfig.nonce);\r\n };\r\n applyTheme.setBrowserColor = enableBrowserColor;\r\n\r\n return applyTheme;\r\n\r\n /**\r\n * Determine is specified theme name is a valid, registered theme\r\n */\r\n function registered(themeName) {\r\n if (themeName === undefined || themeName === \"\") return true;\r\n return applyTheme.THEMES[themeName] !== undefined;\r\n }\r\n\r\n /**\r\n * Get theme name for the element, then update with Theme CSS class\r\n */\r\n function inheritTheme(el, parent) {\r\n var ctrl = parent.controller(\"mdTheme\");\r\n var attrThemeValue = el.attr(\"md-theme-watch\");\r\n var watchTheme =\r\n (alwaysWatchTheme || angular.isDefined(attrThemeValue)) &&\r\n attrThemeValue != \"false\";\r\n\r\n updateThemeClass(lookupThemeName());\r\n\r\n if (\r\n (alwaysWatchTheme && !registerChangeCallback()) ||\r\n (!alwaysWatchTheme && watchTheme)\r\n ) {\r\n el.on(\r\n \"$destroy\",\r\n $rootScope.$watch(lookupThemeName, updateThemeClass)\r\n );\r\n }\r\n\r\n /**\r\n * Find the theme name from the parent controller or element data\r\n */\r\n function lookupThemeName() {\r\n // As a few components (dialog) add their controllers later, we should also watch for a controller init.\r\n ctrl =\r\n parent.controller(\"mdTheme\") || el.data(\"$mdThemeController\");\r\n return (\r\n (ctrl && ctrl.$mdTheme) ||\r\n (defaultTheme == \"default\" ? \"\" : defaultTheme)\r\n );\r\n }\r\n\r\n /**\r\n * Remove old theme class and apply a new one\r\n * NOTE: if not a valid theme name, then the current name is not changed\r\n */\r\n function updateThemeClass(theme) {\r\n if (!theme) return;\r\n if (!registered(theme)) {\r\n $log.warn(\r\n \"Attempted to use unregistered theme '\" +\r\n theme +\r\n \"'. \" +\r\n \"Register it with $mdThemingProvider.theme().\"\r\n );\r\n }\r\n\r\n var oldTheme = el.data(\"$mdThemeName\");\r\n if (oldTheme) el.removeClass(\"md-\" + oldTheme + \"-theme\");\r\n el.addClass(\"md-\" + theme + \"-theme\");\r\n el.data(\"$mdThemeName\", theme);\r\n if (ctrl) {\r\n el.data(\"$mdThemeController\", ctrl);\r\n }\r\n }\r\n\r\n /**\r\n * Register change callback with parent mdTheme controller\r\n */\r\n function registerChangeCallback() {\r\n var parentController = parent.controller(\"mdTheme\");\r\n if (!parentController) return false;\r\n el.on(\r\n \"$destroy\",\r\n parentController.registerChanges(function() {\r\n updateThemeClass(lookupThemeName());\r\n })\r\n );\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function ThemingDirective($mdTheming, $interpolate, $log) {\r\n return {\r\n priority: 100,\r\n link: {\r\n pre: function(scope, el, attrs) {\r\n var registeredCallbacks = [];\r\n var ctrl = {\r\n registerChanges: function(cb, context) {\r\n if (context) {\r\n cb = angular.bind(context, cb);\r\n }\r\n\r\n registeredCallbacks.push(cb);\r\n\r\n return function() {\r\n var index = registeredCallbacks.indexOf(cb);\r\n\r\n if (index > -1) {\r\n registeredCallbacks.splice(index, 1);\r\n }\r\n };\r\n },\r\n $setTheme: function(theme) {\r\n if (!$mdTheming.registered(theme)) {\r\n $log.warn(\r\n \"attempted to use unregistered theme '\" + theme + \"'\"\r\n );\r\n }\r\n ctrl.$mdTheme = theme;\r\n\r\n registeredCallbacks.forEach(function(cb) {\r\n cb();\r\n });\r\n }\r\n };\r\n el.data(\"$mdThemeController\", ctrl);\r\n ctrl.$setTheme($interpolate(attrs.mdTheme)(scope));\r\n attrs.$observe(\"mdTheme\", ctrl.$setTheme);\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Special directive that will disable ALL runtime Theme style generation and DOM injection\r\n *\r\n * \r\n * \r\n *\r\n * \r\n * ...\r\n * \r\n *\r\n * Note: Using md-themes-css directive requires the developer to load external\r\n * theme stylesheets; e.g. custom themes from Material-Tools:\r\n *\r\n * `angular-material.themes.css`\r\n *\r\n * Another option is to use the ThemingProvider to configure and disable the attribute\r\n * conversions; this would obviate the use of the `md-themes-css` directive\r\n *\r\n */\r\n function disableThemesDirective() {\r\n themeConfig.disableTheming = true;\r\n\r\n // Return a 1x-only, first-match attribute directive\r\n return {\r\n restrict: \"A\",\r\n priority: \"900\"\r\n };\r\n }\r\n\r\n function ThemableDirective($mdTheming) {\r\n return $mdTheming;\r\n }\r\n\r\n function parseRules(theme, colorType, rules) {\r\n checkValidPalette(theme, colorType);\r\n\r\n rules = rules.replace(/THEME_NAME/g, theme.name);\r\n var generatedRules = [];\r\n var color = theme.colors[colorType];\r\n\r\n var themeNameRegex = new RegExp(\"\\\\.md-\" + theme.name + \"-theme\", \"g\");\r\n // Matches '{{ primary-color }}', etc\r\n var hueRegex = new RegExp(\r\n \"('|\\\")?{{\\\\s*(\" +\r\n colorType +\r\n \")-(color|contrast)-?(\\\\d\\\\.?\\\\d*)?\\\\s*}}(\\\"|')?\",\r\n \"g\"\r\n );\r\n var simpleVariableRegex = /'?\"?\\{\\{\\s*([a-zA-Z]+)-(A?\\d+|hue\\-[0-3]|shadow|default)-?(\\d\\.?\\d*)?(contrast)?\\s*\\}\\}'?\"?/g;\r\n var palette = PALETTES[color.name];\r\n\r\n // find and replace simple variables where we use a specific hue, not an entire palette\r\n // eg. \"{{primary-100}}\"\r\n //\\(' + THEME_COLOR_TYPES.join('\\|') + '\\)'\r\n rules = rules.replace(simpleVariableRegex, function(\r\n match,\r\n colorType,\r\n hue,\r\n opacity,\r\n contrast\r\n ) {\r\n if (colorType === \"foreground\") {\r\n if (hue == \"shadow\") {\r\n return theme.foregroundShadow;\r\n } else {\r\n return (\r\n theme.foregroundPalette[hue] || theme.foregroundPalette[\"1\"]\r\n );\r\n }\r\n }\r\n\r\n // `default` is also accepted as a hue-value, because the background palettes are\r\n // using it as a name for the default hue.\r\n if (hue.indexOf(\"hue\") === 0 || hue === \"default\") {\r\n hue = theme.colors[colorType].hues[hue];\r\n }\r\n\r\n return rgba(\r\n (PALETTES[theme.colors[colorType].name][hue] || \"\")[\r\n contrast ? \"contrast\" : \"value\"\r\n ],\r\n opacity\r\n );\r\n });\r\n\r\n // For each type, generate rules for each hue (ie. default, md-hue-1, md-hue-2, md-hue-3)\r\n angular.forEach(color.hues, function(hueValue, hueName) {\r\n var newRule = rules.replace(hueRegex, function(\r\n match,\r\n _,\r\n colorType,\r\n hueType,\r\n opacity\r\n ) {\r\n return rgba(\r\n palette[hueValue][hueType === \"color\" ? \"value\" : \"contrast\"],\r\n opacity\r\n );\r\n });\r\n if (hueName !== \"default\") {\r\n newRule = newRule.replace(\r\n themeNameRegex,\r\n \".md-\" + theme.name + \"-theme.md-\" + hueName\r\n );\r\n }\r\n\r\n // Don't apply a selector rule to the default theme, making it easier to override\r\n // styles of the base-component\r\n if (theme.name == \"default\") {\r\n var themeRuleRegex = /((?:(?:(?: |>|\\.|\\w|-|:|\\(|\\)|\\[|\\]|\"|'|=)+) )?)((?:(?:\\w|\\.|-)+)?)\\.md-default-theme((?: |>|\\.|\\w|-|:|\\(|\\)|\\[|\\]|\"|'|=)*)/g;\r\n newRule = newRule.replace(themeRuleRegex, function(\r\n match,\r\n prefix,\r\n target,\r\n suffix\r\n ) {\r\n return match + \", \" + prefix + target + suffix;\r\n });\r\n }\r\n generatedRules.push(newRule);\r\n });\r\n\r\n return generatedRules;\r\n }\r\n\r\n var rulesByType = {};\r\n\r\n // Generate our themes at run time given the state of THEMES and PALETTES\r\n function generateAllThemes($injector, $mdTheming) {\r\n var head = document.head;\r\n var firstChild = head ? head.firstElementChild : null;\r\n var themeCss =\r\n !themeConfig.disableTheming && $injector.has(\"$MD_THEME_CSS\")\r\n ? $injector.get(\"$MD_THEME_CSS\")\r\n : \"\";\r\n\r\n // Append our custom registered styles to the theme stylesheet.\r\n themeCss += themeConfig.registeredStyles.join(\"\");\r\n\r\n if (!firstChild) return;\r\n if (themeCss.length === 0) return; // no rules, so no point in running this expensive task\r\n\r\n // Expose contrast colors for palettes to ensure that text is always readable\r\n angular.forEach(PALETTES, sanitizePalette);\r\n\r\n // MD_THEME_CSS is a string generated by the build process that includes all the themable\r\n // components as templates\r\n\r\n // Break the CSS into individual rules\r\n var rules = themeCss\r\n .split(/\\}(?!(\\}|'|\"|;))/)\r\n .filter(function(rule) {\r\n return rule && rule.trim().length;\r\n })\r\n .map(function(rule) {\r\n return rule.trim() + \"}\";\r\n });\r\n\r\n var ruleMatchRegex = new RegExp(\r\n \"md-(\" + THEME_COLOR_TYPES.join(\"|\") + \")\",\r\n \"g\"\r\n );\r\n\r\n THEME_COLOR_TYPES.forEach(function(type) {\r\n rulesByType[type] = \"\";\r\n });\r\n\r\n // Sort the rules based on type, allowing us to do color substitution on a per-type basis\r\n rules.forEach(function(rule) {\r\n var match = rule.match(ruleMatchRegex);\r\n // First: test that if the rule has '.md-accent', it goes into the accent set of rules\r\n for (var i = 0, type; (type = THEME_COLOR_TYPES[i]); i++) {\r\n if (rule.indexOf(\".md-\" + type) > -1) {\r\n return (rulesByType[type] += rule);\r\n }\r\n }\r\n\r\n // If no eg 'md-accent' class is found, try to just find 'accent' in the rule and guess from\r\n // there\r\n for (i = 0; (type = THEME_COLOR_TYPES[i]); i++) {\r\n if (rule.indexOf(type) > -1) {\r\n return (rulesByType[type] += rule);\r\n }\r\n }\r\n\r\n // Default to the primary array\r\n return (rulesByType[DEFAULT_COLOR_TYPE] += rule);\r\n });\r\n\r\n // If themes are being generated on-demand, quit here. The user will later manually\r\n // call generateTheme to do this on a theme-by-theme basis.\r\n if (themeConfig.generateOnDemand) return;\r\n\r\n angular.forEach($mdTheming.THEMES, function(theme) {\r\n if (\r\n !GENERATED[theme.name] &&\r\n !(\r\n $mdTheming.defaultTheme() !== \"default\" &&\r\n theme.name === \"default\"\r\n )\r\n ) {\r\n generateTheme(theme, theme.name, themeConfig.nonce);\r\n }\r\n });\r\n\r\n // *************************\r\n // Internal functions\r\n // *************************\r\n\r\n // The user specifies a 'default' contrast color as either light or dark,\r\n // then explicitly lists which hues are the opposite contrast (eg. A100 has dark, A200 has light)\r\n function sanitizePalette(palette, name) {\r\n var defaultContrast = palette.contrastDefaultColor;\r\n var lightColors = palette.contrastLightColors || [];\r\n var strongLightColors = palette.contrastStrongLightColors || [];\r\n var darkColors = palette.contrastDarkColors || [];\r\n\r\n // These colors are provided as space-separated lists\r\n if (typeof lightColors === \"string\")\r\n lightColors = lightColors.split(\" \");\r\n if (typeof strongLightColors === \"string\")\r\n strongLightColors = strongLightColors.split(\" \");\r\n if (typeof darkColors === \"string\")\r\n darkColors = darkColors.split(\" \");\r\n\r\n // Cleanup after ourselves\r\n delete palette.contrastDefaultColor;\r\n delete palette.contrastLightColors;\r\n delete palette.contrastStrongLightColors;\r\n delete palette.contrastDarkColors;\r\n\r\n // Change { 'A100': '#fffeee' } to { 'A100': { value: '#fffeee', contrast:DARK_CONTRAST_COLOR }\r\n angular.forEach(palette, function(hueValue, hueName) {\r\n if (angular.isObject(hueValue)) return; // Already converted\r\n // Map everything to rgb colors\r\n var rgbValue = colorToRgbaArray(hueValue);\r\n if (!rgbValue) {\r\n throw new Error(\r\n \"Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.\"\r\n .replace(\"%1\", hueValue)\r\n .replace(\"%2\", palette.name)\r\n .replace(\"%3\", hueName)\r\n );\r\n }\r\n\r\n palette[hueName] = {\r\n hex: palette[hueName],\r\n value: rgbValue,\r\n contrast: getContrastColor()\r\n };\r\n function getContrastColor() {\r\n if (defaultContrast === \"light\") {\r\n if (darkColors.indexOf(hueName) > -1) {\r\n return DARK_CONTRAST_COLOR;\r\n } else {\r\n return strongLightColors.indexOf(hueName) > -1\r\n ? STRONG_LIGHT_CONTRAST_COLOR\r\n : LIGHT_CONTRAST_COLOR;\r\n }\r\n } else {\r\n if (lightColors.indexOf(hueName) > -1) {\r\n return strongLightColors.indexOf(hueName) > -1\r\n ? STRONG_LIGHT_CONTRAST_COLOR\r\n : LIGHT_CONTRAST_COLOR;\r\n } else {\r\n return DARK_CONTRAST_COLOR;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n function generateTheme(theme, name, nonce) {\r\n var head = document.head;\r\n var firstChild = head ? head.firstElementChild : null;\r\n\r\n if (!GENERATED[name]) {\r\n // For each theme, use the color palettes specified for\r\n // `primary`, `warn` and `accent` to generate CSS rules.\r\n THEME_COLOR_TYPES.forEach(function(colorType) {\r\n var styleStrings = parseRules(\r\n theme,\r\n colorType,\r\n rulesByType[colorType]\r\n );\r\n while (styleStrings.length) {\r\n var styleContent = styleStrings.shift();\r\n if (styleContent) {\r\n var style = document.createElement(\"style\");\r\n style.setAttribute(\"md-theme-style\", \"\");\r\n if (nonce) {\r\n style.setAttribute(\"nonce\", nonce);\r\n }\r\n style.appendChild(document.createTextNode(styleContent));\r\n head.insertBefore(style, firstChild);\r\n }\r\n }\r\n });\r\n\r\n GENERATED[theme.name] = true;\r\n }\r\n }\r\n\r\n function checkValidPalette(theme, colorType) {\r\n // If theme attempts to use a palette that doesnt exist, throw error\r\n if (!PALETTES[(theme.colors[colorType] || {}).name]) {\r\n throw new Error(\r\n \"You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3\"\r\n .replace(\"%1\", theme.name)\r\n .replace(\"%2\", colorType)\r\n .replace(\"%3\", Object.keys(PALETTES).join(\", \"))\r\n );\r\n }\r\n }\r\n\r\n function colorToRgbaArray(clr) {\r\n if (angular.isArray(clr) && clr.length == 3) return clr;\r\n if (/^rgb/.test(clr)) {\r\n return clr\r\n .replace(/(^\\s*rgba?\\(|\\)\\s*$)/g, \"\")\r\n .split(\",\")\r\n .map(function(value, i) {\r\n return i == 3 ? parseFloat(value, 10) : parseInt(value, 10);\r\n });\r\n }\r\n if (clr.charAt(0) == \"#\") clr = clr.substring(1);\r\n if (!/^([a-fA-F0-9]{3}){1,2}$/g.test(clr)) return;\r\n\r\n var dig = clr.length / 3;\r\n var red = clr.substr(0, dig);\r\n var grn = clr.substr(dig, dig);\r\n var blu = clr.substr(dig * 2);\r\n if (dig === 1) {\r\n red += red;\r\n grn += grn;\r\n blu += blu;\r\n }\r\n return [parseInt(red, 16), parseInt(grn, 16), parseInt(blu, 16)];\r\n }\r\n\r\n function rgba(rgbArray, opacity) {\r\n if (!rgbArray) return \"rgb('0,0,0')\";\r\n\r\n if (rgbArray.length == 4) {\r\n rgbArray = angular.copy(rgbArray);\r\n opacity ? rgbArray.pop() : (opacity = rgbArray.pop());\r\n }\r\n return opacity &&\r\n (typeof opacity == \"number\" ||\r\n (typeof opacity == \"string\" && opacity.length))\r\n ? \"rgba(\" + rgbArray.join(\",\") + \",\" + opacity + \")\"\r\n : \"rgb(\" + rgbArray.join(\",\") + \")\";\r\n }\r\n })(window.angular);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n // Polyfill angular < 1.4 (provide $animateCss)\r\n angular.module(\"material.core\").factory(\"$$mdAnimate\", [\r\n \"$q\",\r\n \"$timeout\",\r\n \"$mdConstant\",\r\n \"$animateCss\",\r\n function($q, $timeout, $mdConstant, $animateCss) {\r\n // Since $$mdAnimate is injected into $mdUtil... use a wrapper function\r\n // to subsequently inject $mdUtil as an argument to the AnimateDomUtils\r\n\r\n return function($mdUtil) {\r\n return AnimateDomUtils(\r\n $mdUtil,\r\n $q,\r\n $timeout,\r\n $mdConstant,\r\n $animateCss\r\n );\r\n };\r\n }\r\n ]);\r\n\r\n /**\r\n * Factory function that requires special injections\r\n */\r\n function AnimateDomUtils($mdUtil, $q, $timeout, $mdConstant, $animateCss) {\r\n var self;\r\n return (self = {\r\n /**\r\n *\r\n */\r\n translate3d: function(target, from, to, options) {\r\n return $animateCss(target, {\r\n from: from,\r\n to: to,\r\n addClass: options.transitionInClass,\r\n removeClass: options.transitionOutClass\r\n })\r\n .start()\r\n .then(function() {\r\n // Resolve with reverser function...\r\n return reverseTranslate;\r\n });\r\n\r\n /**\r\n * Specific reversal of the request translate animation above...\r\n */\r\n function reverseTranslate(newFrom) {\r\n return $animateCss(target, {\r\n to: newFrom || from,\r\n addClass: options.transitionOutClass,\r\n removeClass: options.transitionInClass\r\n }).start();\r\n }\r\n },\r\n\r\n /**\r\n * Listen for transitionEnd event (with optional timeout)\r\n * Announce completion or failure via promise handlers\r\n */\r\n waitTransitionEnd: function(element, opts) {\r\n var TIMEOUT = 3000; // fallback is 3 secs\r\n\r\n return $q(function(resolve, reject) {\r\n opts = opts || {};\r\n\r\n // If there is no transition is found, resolve immediately\r\n //\r\n // NOTE: using $mdUtil.nextTick() causes delays/issues\r\n if (noTransitionFound(opts.cachedTransitionStyles)) {\r\n TIMEOUT = 0;\r\n }\r\n\r\n var timer = $timeout(finished, opts.timeout || TIMEOUT);\r\n element.on($mdConstant.CSS.TRANSITIONEND, finished);\r\n\r\n /**\r\n * Upon timeout or transitionEnd, reject or resolve (respectively) this promise.\r\n * NOTE: Make sure this transitionEnd didn't bubble up from a child\r\n */\r\n function finished(ev) {\r\n if (ev && ev.target !== element[0]) return;\r\n\r\n if (ev) $timeout.cancel(timer);\r\n element.off($mdConstant.CSS.TRANSITIONEND, finished);\r\n\r\n // Never reject since ngAnimate may cause timeouts due missed transitionEnd events\r\n resolve();\r\n }\r\n\r\n /**\r\n * Checks whether or not there is a transition.\r\n *\r\n * @param styles The cached styles to use for the calculation. If null, getComputedStyle()\r\n * will be used.\r\n *\r\n * @returns {boolean} True if there is no transition/duration; false otherwise.\r\n */\r\n function noTransitionFound(styles) {\r\n styles = styles || window.getComputedStyle(element[0]);\r\n\r\n return (\r\n styles.transitionDuration == \"0s\" ||\r\n (!styles.transition && !styles.transitionProperty)\r\n );\r\n }\r\n });\r\n },\r\n\r\n calculateTransformValues: function(element, originator) {\r\n var origin = originator.element;\r\n var bounds = originator.bounds;\r\n\r\n if (origin || bounds) {\r\n var originBnds = origin\r\n ? self.clientRect(origin) || currentBounds()\r\n : self.copyRect(bounds);\r\n var dialogRect = self.copyRect(element[0].getBoundingClientRect());\r\n var dialogCenterPt = self.centerPointFor(dialogRect);\r\n var originCenterPt = self.centerPointFor(originBnds);\r\n\r\n return {\r\n centerX: originCenterPt.x - dialogCenterPt.x,\r\n centerY: originCenterPt.y - dialogCenterPt.y,\r\n scaleX:\r\n Math.round(\r\n 100 * Math.min(0.5, originBnds.width / dialogRect.width)\r\n ) / 100,\r\n scaleY:\r\n Math.round(\r\n 100 * Math.min(0.5, originBnds.height / dialogRect.height)\r\n ) / 100\r\n };\r\n }\r\n return { centerX: 0, centerY: 0, scaleX: 0.5, scaleY: 0.5 };\r\n\r\n /**\r\n * This is a fallback if the origin information is no longer valid, then the\r\n * origin bounds simply becomes the current bounds for the dialogContainer's parent\r\n */\r\n function currentBounds() {\r\n var cntr = element ? element.parent() : null;\r\n var parent = cntr ? cntr.parent() : null;\r\n\r\n return parent ? self.clientRect(parent) : null;\r\n }\r\n },\r\n\r\n /**\r\n * Calculate the zoom transform from dialog to origin.\r\n *\r\n * We use this to set the dialog position immediately;\r\n * then the md-transition-in actually translates back to\r\n * `translate3d(0,0,0) scale(1.0)`...\r\n *\r\n * NOTE: all values are rounded to the nearest integer\r\n */\r\n calculateZoomToOrigin: function(element, originator) {\r\n var zoomTemplate =\r\n \"translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )\";\r\n var buildZoom = angular.bind(null, $mdUtil.supplant, zoomTemplate);\r\n\r\n return buildZoom(self.calculateTransformValues(element, originator));\r\n },\r\n\r\n /**\r\n * Calculate the slide transform from panel to origin.\r\n * NOTE: all values are rounded to the nearest integer\r\n */\r\n calculateSlideToOrigin: function(element, originator) {\r\n var slideTemplate = \"translate3d( {centerX}px, {centerY}px, 0 )\";\r\n var buildSlide = angular.bind(null, $mdUtil.supplant, slideTemplate);\r\n\r\n return buildSlide(self.calculateTransformValues(element, originator));\r\n },\r\n\r\n /**\r\n * Enhance raw values to represent valid css stylings...\r\n */\r\n toCss: function(raw) {\r\n var css = {};\r\n var lookups =\r\n \"left top right bottom width height x y min-width min-height max-width max-height\";\r\n\r\n angular.forEach(raw, function(value, key) {\r\n if (angular.isUndefined(value)) return;\r\n\r\n if (lookups.indexOf(key) >= 0) {\r\n css[key] = value + \"px\";\r\n } else {\r\n switch (key) {\r\n case \"transition\":\r\n convertToVendor(key, $mdConstant.CSS.TRANSITION, value);\r\n break;\r\n case \"transform\":\r\n convertToVendor(key, $mdConstant.CSS.TRANSFORM, value);\r\n break;\r\n case \"transformOrigin\":\r\n convertToVendor(key, $mdConstant.CSS.TRANSFORM_ORIGIN, value);\r\n break;\r\n case \"font-size\":\r\n css[\"font-size\"] = value; // font sizes aren't always in px\r\n break;\r\n }\r\n }\r\n });\r\n\r\n return css;\r\n\r\n function convertToVendor(key, vendor, value) {\r\n angular.forEach(vendor.split(\" \"), function(key) {\r\n css[key] = value;\r\n });\r\n }\r\n },\r\n\r\n /**\r\n * Convert the translate CSS value to key/value pair(s).\r\n */\r\n toTransformCss: function(transform, addTransition, transition) {\r\n var css = {};\r\n angular.forEach($mdConstant.CSS.TRANSFORM.split(\" \"), function(key) {\r\n css[key] = transform;\r\n });\r\n\r\n if (addTransition) {\r\n transition =\r\n transition ||\r\n \"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important\";\r\n css.transition = transition;\r\n }\r\n\r\n return css;\r\n },\r\n\r\n /**\r\n * Clone the Rect and calculate the height/width if needed\r\n */\r\n copyRect: function(source, destination) {\r\n if (!source) return null;\r\n\r\n destination = destination || {};\r\n\r\n angular.forEach(\r\n \"left top right bottom width height\".split(\" \"),\r\n function(key) {\r\n destination[key] = Math.round(source[key]);\r\n }\r\n );\r\n\r\n destination.width =\r\n destination.width || destination.right - destination.left;\r\n destination.height =\r\n destination.height || destination.bottom - destination.top;\r\n\r\n return destination;\r\n },\r\n\r\n /**\r\n * Calculate ClientRect of element; return null if hidden or zero size\r\n */\r\n clientRect: function(element) {\r\n var bounds = angular.element(element)[0].getBoundingClientRect();\r\n var isPositiveSizeClientRect = function(rect) {\r\n return rect && rect.width > 0 && rect.height > 0;\r\n };\r\n\r\n // If the event origin element has zero size, it has probably been hidden.\r\n return isPositiveSizeClientRect(bounds)\r\n ? self.copyRect(bounds)\r\n : null;\r\n },\r\n\r\n /**\r\n * Calculate 'rounded' center point of Rect\r\n */\r\n centerPointFor: function(targetRect) {\r\n return targetRect\r\n ? {\r\n x: Math.round(targetRect.left + targetRect.width / 2),\r\n y: Math.round(targetRect.top + targetRect.height / 2)\r\n }\r\n : { x: 0, y: 0 };\r\n }\r\n });\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n \"use strict\";\r\n\r\n if (angular.version.minor >= 4) {\r\n angular.module(\"material.core.animate\", []);\r\n } else {\r\n (function() {\r\n var forEach = angular.forEach;\r\n\r\n var WEBKIT = angular.isDefined(\r\n document.documentElement.style.WebkitAppearance\r\n );\r\n var TRANSITION_PROP = WEBKIT ? \"WebkitTransition\" : \"transition\";\r\n var ANIMATION_PROP = WEBKIT ? \"WebkitAnimation\" : \"animation\";\r\n var PREFIX = WEBKIT ? \"-webkit-\" : \"\";\r\n\r\n var TRANSITION_EVENTS =\r\n (WEBKIT ? \"webkitTransitionEnd \" : \"\") + \"transitionend\";\r\n var ANIMATION_EVENTS =\r\n (WEBKIT ? \"webkitAnimationEnd \" : \"\") + \"animationend\";\r\n\r\n var $$ForceReflowFactory = [\r\n \"$document\",\r\n function($document) {\r\n return function() {\r\n return $document[0].body.clientWidth + 1;\r\n };\r\n }\r\n ];\r\n\r\n var $$rAFMutexFactory = [\r\n \"$$rAF\",\r\n function($$rAF) {\r\n return function() {\r\n var passed = false;\r\n $$rAF(function() {\r\n passed = true;\r\n });\r\n return function(fn) {\r\n passed ? fn() : $$rAF(fn);\r\n };\r\n };\r\n }\r\n ];\r\n\r\n var $$AnimateRunnerFactory = [\r\n \"$q\",\r\n \"$$rAFMutex\",\r\n function($q, $$rAFMutex) {\r\n var INITIAL_STATE = 0;\r\n var DONE_PENDING_STATE = 1;\r\n var DONE_COMPLETE_STATE = 2;\r\n\r\n function AnimateRunner(host) {\r\n this.setHost(host);\r\n\r\n this._doneCallbacks = [];\r\n this._runInAnimationFrame = $$rAFMutex();\r\n this._state = 0;\r\n }\r\n\r\n AnimateRunner.prototype = {\r\n setHost: function(host) {\r\n this.host = host || {};\r\n },\r\n\r\n done: function(fn) {\r\n if (this._state === DONE_COMPLETE_STATE) {\r\n fn();\r\n } else {\r\n this._doneCallbacks.push(fn);\r\n }\r\n },\r\n\r\n progress: angular.noop,\r\n\r\n getPromise: function() {\r\n if (!this.promise) {\r\n var self = this;\r\n this.promise = $q(function(resolve, reject) {\r\n self.done(function(status) {\r\n status === false ? reject() : resolve();\r\n });\r\n });\r\n }\r\n return this.promise;\r\n },\r\n\r\n then: function(resolveHandler, rejectHandler) {\r\n return this.getPromise().then(resolveHandler, rejectHandler);\r\n },\r\n\r\n catch: function(handler) {\r\n return this.getPromise()[\"catch\"](handler);\r\n },\r\n\r\n finally: function(handler) {\r\n return this.getPromise()[\"finally\"](handler);\r\n },\r\n\r\n pause: function() {\r\n if (this.host.pause) {\r\n this.host.pause();\r\n }\r\n },\r\n\r\n resume: function() {\r\n if (this.host.resume) {\r\n this.host.resume();\r\n }\r\n },\r\n\r\n end: function() {\r\n if (this.host.end) {\r\n this.host.end();\r\n }\r\n this._resolve(true);\r\n },\r\n\r\n cancel: function() {\r\n if (this.host.cancel) {\r\n this.host.cancel();\r\n }\r\n this._resolve(false);\r\n },\r\n\r\n complete: function(response) {\r\n var self = this;\r\n if (self._state === INITIAL_STATE) {\r\n self._state = DONE_PENDING_STATE;\r\n self._runInAnimationFrame(function() {\r\n self._resolve(response);\r\n });\r\n }\r\n },\r\n\r\n _resolve: function(response) {\r\n if (this._state !== DONE_COMPLETE_STATE) {\r\n forEach(this._doneCallbacks, function(fn) {\r\n fn(response);\r\n });\r\n this._doneCallbacks.length = 0;\r\n this._state = DONE_COMPLETE_STATE;\r\n }\r\n }\r\n };\r\n\r\n // Polyfill AnimateRunner.all which is used by input animations\r\n AnimateRunner.all = function(runners, callback) {\r\n var count = 0;\r\n var status = true;\r\n forEach(runners, function(runner) {\r\n runner.done(onProgress);\r\n });\r\n\r\n function onProgress(response) {\r\n status = status && response;\r\n if (++count === runners.length) {\r\n callback(status);\r\n }\r\n }\r\n };\r\n\r\n return AnimateRunner;\r\n }\r\n ];\r\n\r\n angular\r\n .module(\"material.core.animate\", [])\r\n .factory(\"$$forceReflow\", $$ForceReflowFactory)\r\n .factory(\"$$AnimateRunner\", $$AnimateRunnerFactory)\r\n .factory(\"$$rAFMutex\", $$rAFMutexFactory)\r\n .factory(\"$animateCss\", [\r\n \"$window\",\r\n \"$$rAF\",\r\n \"$$AnimateRunner\",\r\n \"$$forceReflow\",\r\n \"$$jqLite\",\r\n \"$timeout\",\r\n \"$animate\",\r\n function(\r\n $window,\r\n $$rAF,\r\n $$AnimateRunner,\r\n $$forceReflow,\r\n $$jqLite,\r\n $timeout,\r\n $animate\r\n ) {\r\n function init(element, options) {\r\n var temporaryStyles = [];\r\n var node = getDomNode(element);\r\n var areAnimationsAllowed = node && $animate.enabled();\r\n\r\n var hasCompleteStyles = false;\r\n var hasCompleteClasses = false;\r\n\r\n if (areAnimationsAllowed) {\r\n if (options.transitionStyle) {\r\n temporaryStyles.push([\r\n PREFIX + \"transition\",\r\n options.transitionStyle\r\n ]);\r\n }\r\n\r\n if (options.keyframeStyle) {\r\n temporaryStyles.push([\r\n PREFIX + \"animation\",\r\n options.keyframeStyle\r\n ]);\r\n }\r\n\r\n if (options.delay) {\r\n temporaryStyles.push([\r\n PREFIX + \"transition-delay\",\r\n options.delay + \"s\"\r\n ]);\r\n }\r\n\r\n if (options.duration) {\r\n temporaryStyles.push([\r\n PREFIX + \"transition-duration\",\r\n options.duration + \"s\"\r\n ]);\r\n }\r\n\r\n hasCompleteStyles =\r\n options.keyframeStyle ||\r\n (options.to &&\r\n (options.duration > 0 || options.transitionStyle));\r\n hasCompleteClasses =\r\n !!options.addClass || !!options.removeClass;\r\n\r\n blockTransition(element, true);\r\n }\r\n\r\n var hasCompleteAnimation =\r\n areAnimationsAllowed &&\r\n (hasCompleteStyles || hasCompleteClasses);\r\n\r\n applyAnimationFromStyles(element, options);\r\n\r\n var animationClosed = false;\r\n var events, eventFn;\r\n\r\n return {\r\n close: $window.close,\r\n start: function() {\r\n var runner = new $$AnimateRunner();\r\n waitUntilQuiet(function() {\r\n blockTransition(element, false);\r\n if (!hasCompleteAnimation) {\r\n return close();\r\n }\r\n\r\n forEach(temporaryStyles, function(entry) {\r\n var key = entry[0];\r\n var value = entry[1];\r\n node.style[camelCase(key)] = value;\r\n });\r\n\r\n applyClasses(element, options);\r\n\r\n var timings = computeTimings(element);\r\n if (timings.duration === 0) {\r\n return close();\r\n }\r\n\r\n var moreStyles = [];\r\n\r\n if (options.easing) {\r\n if (timings.transitionDuration) {\r\n moreStyles.push([\r\n PREFIX + \"transition-timing-function\",\r\n options.easing\r\n ]);\r\n }\r\n if (timings.animationDuration) {\r\n moreStyles.push([\r\n PREFIX + \"animation-timing-function\",\r\n options.easing\r\n ]);\r\n }\r\n }\r\n\r\n if (options.delay && timings.animationDelay) {\r\n moreStyles.push([\r\n PREFIX + \"animation-delay\",\r\n options.delay + \"s\"\r\n ]);\r\n }\r\n\r\n if (options.duration && timings.animationDuration) {\r\n moreStyles.push([\r\n PREFIX + \"animation-duration\",\r\n options.duration + \"s\"\r\n ]);\r\n }\r\n\r\n forEach(moreStyles, function(entry) {\r\n var key = entry[0];\r\n var value = entry[1];\r\n node.style[camelCase(key)] = value;\r\n temporaryStyles.push(entry);\r\n });\r\n\r\n var maxDelay = timings.delay;\r\n var maxDelayTime = maxDelay * 1000;\r\n var maxDuration = timings.duration;\r\n var maxDurationTime = maxDuration * 1000;\r\n var startTime = Date.now();\r\n\r\n events = [];\r\n if (timings.transitionDuration) {\r\n events.push(TRANSITION_EVENTS);\r\n }\r\n if (timings.animationDuration) {\r\n events.push(ANIMATION_EVENTS);\r\n }\r\n events = events.join(\" \");\r\n eventFn = function(event) {\r\n event.stopPropagation();\r\n var ev = event.originalEvent || event;\r\n var timeStamp = ev.timeStamp || Date.now();\r\n var elapsedTime = parseFloat(ev.elapsedTime.toFixed(3));\r\n if (\r\n Math.max(timeStamp - startTime, 0) >= maxDelayTime &&\r\n elapsedTime >= maxDuration\r\n ) {\r\n close();\r\n }\r\n };\r\n element.on(events, eventFn);\r\n\r\n applyAnimationToStyles(element, options);\r\n\r\n $timeout(\r\n close,\r\n maxDelayTime + maxDurationTime * 1.5,\r\n false\r\n );\r\n });\r\n\r\n return runner;\r\n\r\n function close() {\r\n if (animationClosed) return;\r\n animationClosed = true;\r\n\r\n if (events && eventFn) {\r\n element.off(events, eventFn);\r\n }\r\n applyClasses(element, options);\r\n applyAnimationStyles(element, options);\r\n forEach(temporaryStyles, function(entry) {\r\n node.style[camelCase(entry[0])] = \"\";\r\n });\r\n runner.complete(true);\r\n return runner;\r\n }\r\n }\r\n };\r\n }\r\n\r\n function applyClasses(element, options) {\r\n if (options.addClass) {\r\n $$jqLite.addClass(element, options.addClass);\r\n options.addClass = null;\r\n }\r\n if (options.removeClass) {\r\n $$jqLite.removeClass(element, options.removeClass);\r\n options.removeClass = null;\r\n }\r\n }\r\n\r\n function computeTimings(element) {\r\n var node = getDomNode(element);\r\n var cs = $window.getComputedStyle(node);\r\n var tdr = parseMaxTime(cs[prop(\"transitionDuration\")]);\r\n var adr = parseMaxTime(cs[prop(\"animationDuration\")]);\r\n var tdy = parseMaxTime(cs[prop(\"transitionDelay\")]);\r\n var ady = parseMaxTime(cs[prop(\"animationDelay\")]);\r\n\r\n adr *= parseInt(cs[prop(\"animationIterationCount\")], 10) || 1;\r\n var duration = Math.max(adr, tdr);\r\n var delay = Math.max(ady, tdy);\r\n\r\n return {\r\n duration: duration,\r\n delay: delay,\r\n animationDuration: adr,\r\n transitionDuration: tdr,\r\n animationDelay: ady,\r\n transitionDelay: tdy\r\n };\r\n\r\n function prop(key) {\r\n return WEBKIT\r\n ? \"Webkit\" + key.charAt(0).toUpperCase() + key.substr(1)\r\n : key;\r\n }\r\n }\r\n\r\n function parseMaxTime(str) {\r\n var maxValue = 0;\r\n var values = (str || \"\").split(/\\s*,\\s*/);\r\n forEach(values, function(value) {\r\n // it's always safe to consider only second values and omit `ms` values since\r\n // getComputedStyle will always handle the conversion for us\r\n if (value.charAt(value.length - 1) == \"s\") {\r\n value = value.substring(0, value.length - 1);\r\n }\r\n value = parseFloat(value) || 0;\r\n maxValue = maxValue ? Math.max(value, maxValue) : value;\r\n });\r\n return maxValue;\r\n }\r\n\r\n var cancelLastRAFRequest;\r\n var rafWaitQueue = [];\r\n function waitUntilQuiet(callback) {\r\n if (cancelLastRAFRequest) {\r\n cancelLastRAFRequest(); //cancels the request\r\n }\r\n rafWaitQueue.push(callback);\r\n cancelLastRAFRequest = $$rAF(function() {\r\n cancelLastRAFRequest = null;\r\n\r\n // DO NOT REMOVE THIS LINE OR REFACTOR OUT THE `pageWidth` variable.\r\n // PLEASE EXAMINE THE `$$forceReflow` service to understand why.\r\n var pageWidth = $$forceReflow();\r\n\r\n // we use a for loop to ensure that if the queue is changed\r\n // during this looping then it will consider new requests\r\n for (var i = 0; i < rafWaitQueue.length; i++) {\r\n rafWaitQueue[i](pageWidth);\r\n }\r\n rafWaitQueue.length = 0;\r\n });\r\n }\r\n\r\n function applyAnimationStyles(element, options) {\r\n applyAnimationFromStyles(element, options);\r\n applyAnimationToStyles(element, options);\r\n }\r\n\r\n function applyAnimationFromStyles(element, options) {\r\n if (options.from) {\r\n element.css(options.from);\r\n options.from = null;\r\n }\r\n }\r\n\r\n function applyAnimationToStyles(element, options) {\r\n if (options.to) {\r\n element.css(options.to);\r\n options.to = null;\r\n }\r\n }\r\n\r\n function getDomNode(element) {\r\n for (var i = 0; i < element.length; i++) {\r\n if (element[i].nodeType === 1) return element[i];\r\n }\r\n }\r\n\r\n function blockTransition(element, bool) {\r\n var node = getDomNode(element);\r\n var key = camelCase(PREFIX + \"transition-delay\");\r\n node.style[key] = bool ? \"-9999s\" : \"\";\r\n }\r\n\r\n return init;\r\n }\r\n ]);\r\n\r\n /**\r\n * Older browsers [FF31] expect camelCase\r\n * property keys.\r\n * e.g.\r\n * animation-duration --> animationDuration\r\n */\r\n function camelCase(str) {\r\n return str.replace(/-[a-z]/g, function(str) {\r\n return str.charAt(1).toUpperCase();\r\n });\r\n }\r\n })();\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.autocomplete\r\n */\r\n /*\r\n * @see js folder for autocomplete implementation\r\n */\r\n angular.module(\"material.components.autocomplete\", [\r\n \"material.core\",\r\n \"material.components.icon\",\r\n \"material.components.virtualRepeat\"\r\n ]);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /*\r\n * @ngdoc module\r\n * @name material.components.backdrop\r\n * @description Backdrop\r\n */\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdBackdrop\r\n * @module material.components.backdrop\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * `` is a backdrop element used by other components, such as dialog and bottom sheet.\r\n * Apply class `opaque` to make the backdrop use the theme backdrop color.\r\n *\r\n */\r\n\r\n angular\r\n .module(\"material.components.backdrop\", [\"material.core\"])\r\n .directive(\"mdBackdrop\", [\r\n \"$mdTheming\",\r\n \"$mdUtil\",\r\n \"$animate\",\r\n \"$rootElement\",\r\n \"$window\",\r\n \"$log\",\r\n \"$$rAF\",\r\n \"$document\",\r\n function BackdropDirective(\r\n $mdTheming,\r\n $mdUtil,\r\n $animate,\r\n $rootElement,\r\n $window,\r\n $log,\r\n $$rAF,\r\n $document\r\n ) {\r\n var ERROR_CSS_POSITION =\r\n \" may not work properly in a scrolled, static-positioned parent container.\";\r\n\r\n return {\r\n restrict: \"E\",\r\n link: postLink\r\n };\r\n\r\n function postLink(scope, element, attrs) {\r\n // backdrop may be outside the $rootElement, tell ngAnimate to animate regardless\r\n if ($animate.pin) $animate.pin(element, $rootElement);\r\n\r\n var bodyStyles;\r\n\r\n $$rAF(function() {\r\n // If body scrolling has been disabled using mdUtil.disableBodyScroll(),\r\n // adjust the 'backdrop' height to account for the fixed 'body' top offset.\r\n // Note that this can be pretty expensive and is better done inside the $$rAF.\r\n bodyStyles = $window.getComputedStyle($document[0].body);\r\n\r\n if (bodyStyles.position === \"fixed\") {\r\n var resizeHandler = $mdUtil.debounce(\r\n function() {\r\n bodyStyles = $window.getComputedStyle($document[0].body);\r\n resize();\r\n },\r\n 60,\r\n null,\r\n false\r\n );\r\n\r\n resize();\r\n angular.element($window).on(\"resize\", resizeHandler);\r\n\r\n scope.$on(\"$destroy\", function() {\r\n angular.element($window).off(\"resize\", resizeHandler);\r\n });\r\n }\r\n\r\n // Often $animate.enter() is used to append the backDrop element\r\n // so let's wait until $animate is done...\r\n var parent = element.parent();\r\n\r\n if (parent.length) {\r\n if (parent[0].nodeName === \"BODY\") {\r\n element.css(\"position\", \"fixed\");\r\n }\r\n\r\n var styles = $window.getComputedStyle(parent[0]);\r\n\r\n if (styles.position === \"static\") {\r\n // backdrop uses position:absolute and will not work properly with parent position:static (default)\r\n $log.warn(ERROR_CSS_POSITION);\r\n }\r\n\r\n // Only inherit the parent if the backdrop has a parent.\r\n $mdTheming.inherit(element, parent);\r\n }\r\n });\r\n\r\n function resize() {\r\n var viewportHeight =\r\n parseInt(bodyStyles.height, 10) +\r\n Math.abs(parseInt(bodyStyles.top, 10));\r\n element.css(\"height\", viewportHeight + \"px\");\r\n }\r\n }\r\n }\r\n ]);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.bottomSheet\r\n * @description\r\n * BottomSheet\r\n */\r\n MdBottomSheetDirective.$inject = [\"$mdBottomSheet\"];\r\n MdBottomSheetProvider.$inject = [\"$$interimElementProvider\"];\r\n angular\r\n .module(\"material.components.bottomSheet\", [\r\n \"material.core\",\r\n \"material.components.backdrop\"\r\n ])\r\n .directive(\"mdBottomSheet\", MdBottomSheetDirective)\r\n .provider(\"$mdBottomSheet\", MdBottomSheetProvider);\r\n\r\n /* @ngInject */\r\n function MdBottomSheetDirective($mdBottomSheet) {\r\n return {\r\n restrict: \"E\",\r\n link: function postLink(scope, element) {\r\n element.addClass(\"_md\"); // private md component indicator for styling\r\n\r\n // When navigation force destroys an interimElement, then\r\n // listen and $destroy() that interim instance...\r\n scope.$on(\"$destroy\", function() {\r\n $mdBottomSheet.destroy();\r\n });\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdBottomSheet\r\n * @module material.components.bottomSheet\r\n *\r\n * @description\r\n * `$mdBottomSheet` opens a bottom sheet over the app and provides a simple promise API.\r\n *\r\n * ## Restrictions\r\n *\r\n * - The bottom sheet's template must have an outer `` element.\r\n * - Add the `md-grid` class to the bottom sheet for a grid layout.\r\n * - Add the `md-list` class to the bottom sheet for a list layout.\r\n *\r\n * @usage\r\n * \r\n *
\r\n * \r\n * Open a Bottom Sheet!\r\n * \r\n *
\r\n *
\r\n * \r\n * var app = angular.module('app', ['ngMaterial']);\r\n * app.controller('MyController', function($scope, $mdBottomSheet) {\r\n * $scope.openBottomSheet = function() {\r\n * $mdBottomSheet.show({\r\n * template: 'Hello!'\r\n * });\r\n * };\r\n * });\r\n * \r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdBottomSheet#show\r\n *\r\n * @description\r\n * Show a bottom sheet with the specified options.\r\n *\r\n * @param {object} options An options object, with the following properties:\r\n *\r\n * - `templateUrl` - `{string=}`: The url of an html template file that will\r\n * be used as the content of the bottom sheet. Restrictions: the template must\r\n * have an outer `md-bottom-sheet` element.\r\n * - `template` - `{string=}`: Same as templateUrl, except this is an actual\r\n * template string.\r\n * - `scope` - `{object=}`: the scope to link the template / controller to. If none is specified, it will create a new child scope.\r\n * This scope will be destroyed when the bottom sheet is removed unless `preserveScope` is set to true.\r\n * - `preserveScope` - `{boolean=}`: whether to preserve the scope when the element is removed. Default is false\r\n * - `controller` - `{string=}`: The controller to associate with this bottom sheet.\r\n * - `locals` - `{string=}`: An object containing key/value pairs. The keys will\r\n * be used as names of values to inject into the controller. For example,\r\n * `locals: {three: 3}` would inject `three` into the controller with the value\r\n * of 3.\r\n * - `clickOutsideToClose` - `{boolean=}`: Whether the user can click outside the bottom sheet to\r\n * close it. Default true.\r\n * - `disableBackdrop` - `{boolean=}`: When set to true, the bottomsheet will not show a backdrop.\r\n * - `escapeToClose` - `{boolean=}`: Whether the user can press escape to close the bottom sheet.\r\n * Default true.\r\n * - `resolve` - `{object=}`: Similar to locals, except it takes promises as values\r\n * and the bottom sheet will not open until the promises resolve.\r\n * - `controllerAs` - `{string=}`: An alias to assign the controller to on the scope.\r\n * - `parent` - `{element=}`: The element to append the bottom sheet to. The `parent` may be a `function`, `string`,\r\n * `object`, or null. Defaults to appending to the body of the root element (or the root element) of the application.\r\n * e.g. angular.element(document.getElementById('content')) or \"#content\"\r\n * - `disableParentScroll` - `{boolean=}`: Whether to disable scrolling while the bottom sheet is open.\r\n * Default true.\r\n *\r\n * @returns {promise} A promise that can be resolved with `$mdBottomSheet.hide()` or\r\n * rejected with `$mdBottomSheet.cancel()`.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdBottomSheet#hide\r\n *\r\n * @description\r\n * Hide the existing bottom sheet and resolve the promise returned from\r\n * `$mdBottomSheet.show()`. This call will close the most recently opened/current bottomsheet (if any).\r\n *\r\n * @param {*=} response An argument for the resolved promise.\r\n *\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdBottomSheet#cancel\r\n *\r\n * @description\r\n * Hide the existing bottom sheet and reject the promise returned from\r\n * `$mdBottomSheet.show()`.\r\n *\r\n * @param {*=} response An argument for the rejected promise.\r\n *\r\n */\r\n\r\n function MdBottomSheetProvider($$interimElementProvider) {\r\n // how fast we need to flick down to close the sheet, pixels/ms\r\n bottomSheetDefaults.$inject = [\r\n \"$animate\",\r\n \"$mdConstant\",\r\n \"$mdUtil\",\r\n \"$mdTheming\",\r\n \"$mdBottomSheet\",\r\n \"$rootElement\",\r\n \"$mdGesture\",\r\n \"$log\"\r\n ];\r\n var CLOSING_VELOCITY = 0.5;\r\n var PADDING = 80; // same as css\r\n\r\n return $$interimElementProvider(\"$mdBottomSheet\").setDefaults({\r\n methods: [\r\n \"disableParentScroll\",\r\n \"escapeToClose\",\r\n \"clickOutsideToClose\"\r\n ],\r\n options: bottomSheetDefaults\r\n });\r\n\r\n /* @ngInject */\r\n function bottomSheetDefaults(\r\n $animate,\r\n $mdConstant,\r\n $mdUtil,\r\n $mdTheming,\r\n $mdBottomSheet,\r\n $rootElement,\r\n $mdGesture,\r\n $log\r\n ) {\r\n var backdrop;\r\n\r\n return {\r\n themable: true,\r\n onShow: onShow,\r\n onRemove: onRemove,\r\n disableBackdrop: false,\r\n escapeToClose: true,\r\n clickOutsideToClose: true,\r\n disableParentScroll: true\r\n };\r\n\r\n function onShow(scope, element, options, controller) {\r\n element = $mdUtil.extractElementByName(element, \"md-bottom-sheet\");\r\n\r\n // prevent tab focus or click focus on the bottom-sheet container\r\n element.attr(\"tabindex\", \"-1\");\r\n\r\n // Once the md-bottom-sheet has `ng-cloak` applied on his template the opening animation will not work properly.\r\n // This is a very common problem, so we have to notify the developer about this.\r\n if (element.hasClass(\"ng-cloak\")) {\r\n var message =\r\n \"$mdBottomSheet: using `` will affect the bottom-sheet opening animations.\";\r\n $log.warn(message, element[0]);\r\n }\r\n\r\n if (!options.disableBackdrop) {\r\n // Add a backdrop that will close on click\r\n backdrop = $mdUtil.createBackdrop(\r\n scope,\r\n \"md-bottom-sheet-backdrop md-opaque\"\r\n );\r\n\r\n // Prevent mouse focus on backdrop; ONLY programatic focus allowed.\r\n // This allows clicks on backdrop to propogate to the $rootElement and\r\n // ESC key events to be detected properly.\r\n\r\n backdrop[0].tabIndex = -1;\r\n\r\n if (options.clickOutsideToClose) {\r\n backdrop.on(\"click\", function() {\r\n $mdUtil.nextTick($mdBottomSheet.cancel, true);\r\n });\r\n }\r\n\r\n $mdTheming.inherit(backdrop, options.parent);\r\n\r\n $animate.enter(backdrop, options.parent, null);\r\n }\r\n\r\n var bottomSheet = new BottomSheet(element, options.parent);\r\n options.bottomSheet = bottomSheet;\r\n\r\n $mdTheming.inherit(bottomSheet.element, options.parent);\r\n\r\n if (options.disableParentScroll) {\r\n options.restoreScroll = $mdUtil.disableScrollAround(\r\n bottomSheet.element,\r\n options.parent\r\n );\r\n }\r\n\r\n return $animate\r\n .enter(bottomSheet.element, options.parent, backdrop)\r\n .then(function() {\r\n var focusable =\r\n $mdUtil.findFocusTarget(element) ||\r\n angular.element(\r\n element[0].querySelector(\"button\") ||\r\n element[0].querySelector(\"a\") ||\r\n element[0].querySelector($mdUtil.prefixer(\"ng-click\", true))\r\n ) ||\r\n backdrop;\r\n\r\n if (options.escapeToClose) {\r\n options.rootElementKeyupCallback = function(e) {\r\n if (e.keyCode === $mdConstant.KEY_CODE.ESCAPE) {\r\n $mdUtil.nextTick($mdBottomSheet.cancel, true);\r\n }\r\n };\r\n\r\n $rootElement.on(\"keyup\", options.rootElementKeyupCallback);\r\n focusable && focusable.focus();\r\n }\r\n });\r\n }\r\n\r\n function onRemove(scope, element, options) {\r\n var bottomSheet = options.bottomSheet;\r\n\r\n if (!options.disableBackdrop) $animate.leave(backdrop);\r\n return $animate.leave(bottomSheet.element).then(function() {\r\n if (options.disableParentScroll) {\r\n options.restoreScroll();\r\n delete options.restoreScroll;\r\n }\r\n\r\n bottomSheet.cleanup();\r\n });\r\n }\r\n\r\n /**\r\n * BottomSheet class to apply bottom-sheet behavior to an element\r\n */\r\n function BottomSheet(element, parent) {\r\n var deregister = $mdGesture.register(parent, \"drag\", {\r\n horizontal: false\r\n });\r\n parent\r\n .on(\"$md.dragstart\", onDragStart)\r\n .on(\"$md.drag\", onDrag)\r\n .on(\"$md.dragend\", onDragEnd);\r\n\r\n return {\r\n element: element,\r\n cleanup: function cleanup() {\r\n deregister();\r\n parent.off(\"$md.dragstart\", onDragStart);\r\n parent.off(\"$md.drag\", onDrag);\r\n parent.off(\"$md.dragend\", onDragEnd);\r\n }\r\n };\r\n\r\n function onDragStart(ev) {\r\n // Disable transitions on transform so that it feels fast\r\n element.css($mdConstant.CSS.TRANSITION_DURATION, \"0ms\");\r\n }\r\n\r\n function onDrag(ev) {\r\n var transform = ev.pointer.distanceY;\r\n if (transform < 5) {\r\n // Slow down drag when trying to drag up, and stop after PADDING\r\n transform = Math.max(-PADDING, transform / 2);\r\n }\r\n element.css(\r\n $mdConstant.CSS.TRANSFORM,\r\n \"translate3d(0,\" + (PADDING + transform) + \"px,0)\"\r\n );\r\n }\r\n\r\n function onDragEnd(ev) {\r\n if (\r\n ev.pointer.distanceY > 0 &&\r\n (ev.pointer.distanceY > 20 ||\r\n Math.abs(ev.pointer.velocityY) > CLOSING_VELOCITY)\r\n ) {\r\n var distanceRemaining =\r\n element.prop(\"offsetHeight\") - ev.pointer.distanceY;\r\n var transitionDuration = Math.min(\r\n (distanceRemaining / ev.pointer.velocityY) * 0.75,\r\n 500\r\n );\r\n element.css(\r\n $mdConstant.CSS.TRANSITION_DURATION,\r\n transitionDuration + \"ms\"\r\n );\r\n $mdUtil.nextTick($mdBottomSheet.cancel, true);\r\n } else {\r\n element.css($mdConstant.CSS.TRANSITION_DURATION, \"\");\r\n element.css($mdConstant.CSS.TRANSFORM, \"\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.button\r\n * @description\r\n *\r\n * Button\r\n */\r\n MdButtonDirective.$inject = [\r\n \"$mdButtonInkRipple\",\r\n \"$mdTheming\",\r\n \"$mdAria\",\r\n \"$timeout\"\r\n ];\r\n MdAnchorDirective.$inject = [\"$mdTheming\"];\r\n angular\r\n .module(\"material.components.button\", [\"material.core\"])\r\n .directive(\"mdButton\", MdButtonDirective)\r\n .directive(\"a\", MdAnchorDirective);\r\n\r\n /**\r\n * @private\r\n * @restrict E\r\n *\r\n * @description\r\n * `a` is an anchor directive used to inherit theme colors for md-primary, md-accent, etc.\r\n *\r\n * @usage\r\n *\r\n * \r\n * \r\n * \r\n * \r\n * \r\n */\r\n function MdAnchorDirective($mdTheming) {\r\n return {\r\n restrict: \"E\",\r\n link: function postLink(scope, element) {\r\n // Make sure to inherit theme so stand-alone anchors\r\n // support theme colors for md-primary, md-accent, etc.\r\n $mdTheming(element);\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdButton\r\n * @module material.components.button\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * `` is a button directive with optional ink ripples (default enabled).\r\n *\r\n * If you supply a `href` or `ng-href` attribute, it will become an `` element. Otherwise, it\r\n * will become a `'\r\n );\r\n }\r\n }\r\n\r\n function postLink(scope, element, attr) {\r\n $mdTheming(element);\r\n $mdButtonInkRipple.attach(scope, element);\r\n\r\n // Use async expect to support possible bindings in the button label\r\n $mdAria.expectWithoutText(element, \"aria-label\");\r\n\r\n // For anchor elements, we have to set tabindex manually when the\r\n // element is disabled\r\n if (isAnchor(attr) && angular.isDefined(attr.ngDisabled)) {\r\n scope.$watch(attr.ngDisabled, function(isDisabled) {\r\n element.attr(\"tabindex\", isDisabled ? -1 : 0);\r\n });\r\n }\r\n\r\n // disabling click event when disabled is true\r\n element.on(\"click\", function(e) {\r\n if (attr.disabled === true) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n }\r\n });\r\n\r\n if (!element.hasClass(\"md-no-focus\")) {\r\n // restrict focus styles to the keyboard\r\n scope.mouseActive = false;\r\n element\r\n .on(\"mousedown\", function() {\r\n scope.mouseActive = true;\r\n $timeout(function() {\r\n scope.mouseActive = false;\r\n }, 100);\r\n })\r\n .on(\"focus\", function() {\r\n if (scope.mouseActive === false) {\r\n element.addClass(\"md-focused\");\r\n }\r\n })\r\n .on(\"blur\", function(ev) {\r\n element.removeClass(\"md-focused\");\r\n });\r\n }\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.card\r\n *\r\n * @description\r\n * Card components.\r\n */\r\n mdCardDirective.$inject = [\"$mdTheming\"];\r\n angular\r\n .module(\"material.components.card\", [\"material.core\"])\r\n .directive(\"mdCard\", mdCardDirective);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdCard\r\n * @module material.components.card\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * The `` directive is a container element used within `` containers.\r\n *\r\n * An image included as a direct descendant will fill the card's width. If you want to avoid this,\r\n * you can add the `md-image-no-fill` class to the parent element. The ``\r\n * container will wrap text content and provide padding. An `` element can be\r\n * optionally included to put content flush against the bottom edge of the card.\r\n *\r\n * Action buttons can be included in an `` element, similar to ``.\r\n * You can then position buttons using layout attributes.\r\n *\r\n * Card is built with:\r\n * * `` - Header for the card, holds avatar, text and squared image\r\n * - `` - Card avatar\r\n * - `md-user-avatar` - Class for user image\r\n * - ``\r\n * - `` - Contains elements for the card description\r\n * - `md-title` - Class for the card title\r\n * - `md-subhead` - Class for the card sub header\r\n * * `` - Image for the card\r\n * * `` - Card content title\r\n * - ``\r\n * - `md-headline` - Class for the card content title\r\n * - `md-subhead` - Class for the card content sub header\r\n * - `` - Squared image within the title\r\n * - `md-media-sm` - Class for small image\r\n * - `md-media-md` - Class for medium image\r\n * - `md-media-lg` - Class for large image\r\n * * `` - Card content\r\n * - `md-media-xl` - Class for extra large image\r\n * * `` - Card actions\r\n * - `` - Icon actions\r\n *\r\n * Cards have constant width and variable heights; where the maximum height is limited to what can\r\n * fit within a single view on a platform, but it can temporarily expand as needed.\r\n *\r\n * @usage\r\n * ### Card with optional footer\r\n * \r\n * \r\n * \"image\r\n * \r\n *

Card headline

\r\n *

Card content

\r\n *
\r\n * \r\n * Card footer\r\n * \r\n *
\r\n *
\r\n *\r\n * ### Card with actions\r\n * \r\n * \r\n * \"image\r\n * \r\n *

Card headline

\r\n *

Card content

\r\n *
\r\n * \r\n * Action 1\r\n * Action 2\r\n * \r\n *
\r\n *
\r\n *\r\n * ### Card with header, image, title actions and content\r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * Title\r\n * Sub header\r\n * \r\n * \r\n * \"image\r\n * \r\n * \r\n * Card headline\r\n * Card subheader\r\n * \r\n * \r\n * \r\n * Action 1\r\n * Action 2\r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n *

\r\n * Card content\r\n *

\r\n *
\r\n *
\r\n *
\r\n */\r\n function mdCardDirective($mdTheming) {\r\n return {\r\n restrict: \"E\",\r\n link: function($scope, $element, attr) {\r\n $element.addClass(\"_md\"); // private md component indicator for styling\r\n $mdTheming($element);\r\n }\r\n };\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.chips\r\n */\r\n /*\r\n * @see js folder for chips implementation\r\n */\r\n angular.module(\"material.components.chips\", [\r\n \"material.core\",\r\n \"material.components.autocomplete\"\r\n ]);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.checkbox\r\n * @description Checkbox module!\r\n */\r\n MdCheckboxDirective.$inject = [\r\n \"inputDirective\",\r\n \"$mdAria\",\r\n \"$mdConstant\",\r\n \"$mdTheming\",\r\n \"$mdUtil\",\r\n \"$timeout\"\r\n ];\r\n angular\r\n .module(\"material.components.checkbox\", [\"material.core\"])\r\n .directive(\"mdCheckbox\", MdCheckboxDirective);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdCheckbox\r\n * @module material.components.checkbox\r\n * @restrict E\r\n *\r\n * @description\r\n * The checkbox directive is used like the normal [angular checkbox](https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D).\r\n *\r\n * As per the [material design spec](http://www.google.com/design/spec/style/color.html#color-color-schemes)\r\n * the checkbox is in the accent color by default. The primary color palette may be used with\r\n * the `md-primary` class.\r\n *\r\n * @param {string} ng-model Assignable angular expression to data-bind to.\r\n * @param {string=} name Property name of the form under which the control is published.\r\n * @param {expression=} ng-true-value The value to which the expression should be set when selected.\r\n * @param {expression=} ng-false-value The value to which the expression should be set when not selected.\r\n * @param {string=} ng-change Angular expression to be executed when input changes due to user interaction with the input element.\r\n * @param {boolean=} md-no-ink Use of attribute indicates use of ripple ink effects\r\n * @param {string=} aria-label Adds label to checkbox for accessibility.\r\n * Defaults to checkbox's text. If no default text is found, a warning will be logged.\r\n * @param {expression=} md-indeterminate This determines when the checkbox should be rendered as 'indeterminate'.\r\n * If a truthy expression or no value is passed in the checkbox renders in the md-indeterminate state.\r\n * If falsy expression is passed in it just looks like a normal unchecked checkbox.\r\n * The indeterminate, checked, and unchecked states are mutually exclusive. A box cannot be in any two states at the same time.\r\n * Adding the 'md-indeterminate' attribute overrides any checked/unchecked rendering logic.\r\n * When using the 'md-indeterminate' attribute use 'ng-checked' to define rendering logic instead of using 'ng-model'.\r\n * @param {expression=} ng-checked If this expression evaluates as truthy, the 'md-checked' css class is added to the checkbox and it\r\n * will appear checked.\r\n *\r\n * @usage\r\n * \r\n * \r\n * Finished ?\r\n * \r\n *\r\n * \r\n * No Ink Effects\r\n * \r\n *\r\n * \r\n * Disabled\r\n * \r\n *\r\n * \r\n *\r\n */\r\n function MdCheckboxDirective(\r\n inputDirective,\r\n $mdAria,\r\n $mdConstant,\r\n $mdTheming,\r\n $mdUtil,\r\n $timeout\r\n ) {\r\n inputDirective = inputDirective[0];\r\n\r\n return {\r\n restrict: \"E\",\r\n transclude: true,\r\n require: \"?ngModel\",\r\n priority: 210, // Run before ngAria\r\n template:\r\n '
' +\r\n '
' +\r\n \"
\" +\r\n '
',\r\n compile: compile\r\n };\r\n\r\n // **********************************************************\r\n // Private Methods\r\n // **********************************************************\r\n\r\n function compile(tElement, tAttrs) {\r\n tAttrs.$set(\"tabindex\", tAttrs.tabindex || \"0\");\r\n tAttrs.$set(\"type\", \"checkbox\");\r\n tAttrs.$set(\"role\", tAttrs.type);\r\n\r\n return {\r\n pre: function(scope, element) {\r\n // Attach a click handler during preLink, in order to immediately stop propagation\r\n // (especially for ng-click) when the checkbox is disabled.\r\n element.on(\"click\", function(e) {\r\n if (this.hasAttribute(\"disabled\")) {\r\n e.stopImmediatePropagation();\r\n }\r\n });\r\n },\r\n post: postLink\r\n };\r\n\r\n function postLink(scope, element, attr, ngModelCtrl) {\r\n var isIndeterminate;\r\n ngModelCtrl = ngModelCtrl || $mdUtil.fakeNgModel();\r\n $mdTheming(element);\r\n\r\n // Redirect focus events to the root element, because IE11 is always focusing the container element instead\r\n // of the md-checkbox element. This causes issues when using ngModelOptions: `updateOnBlur`\r\n element.children().on(\"focus\", function() {\r\n element.focus();\r\n });\r\n\r\n if ($mdUtil.parseAttributeBoolean(attr.mdIndeterminate)) {\r\n setIndeterminateState();\r\n scope.$watch(attr.mdIndeterminate, setIndeterminateState);\r\n }\r\n\r\n if (attr.ngChecked) {\r\n scope.$watch(scope.$eval.bind(scope, attr.ngChecked), function(\r\n value\r\n ) {\r\n ngModelCtrl.$setViewValue(value);\r\n ngModelCtrl.$render();\r\n });\r\n }\r\n\r\n $$watchExpr(\"ngDisabled\", \"tabindex\", {\r\n true: \"-1\",\r\n false: attr.tabindex\r\n });\r\n\r\n $mdAria.expectWithText(element, \"aria-label\");\r\n\r\n // Reuse the original input[type=checkbox] directive from Angular core.\r\n // This is a bit hacky as we need our own event listener and own render\r\n // function.\r\n inputDirective.link.pre(\r\n scope,\r\n {\r\n on: angular.noop,\r\n 0: {}\r\n },\r\n attr,\r\n [ngModelCtrl]\r\n );\r\n\r\n scope.mouseActive = false;\r\n element\r\n .on(\"click\", listener)\r\n .on(\"keypress\", keypressHandler)\r\n .on(\"mousedown\", function() {\r\n scope.mouseActive = true;\r\n $timeout(function() {\r\n scope.mouseActive = false;\r\n }, 100);\r\n })\r\n .on(\"focus\", function() {\r\n if (scope.mouseActive === false) {\r\n element.addClass(\"md-focused\");\r\n }\r\n })\r\n .on(\"blur\", function() {\r\n element.removeClass(\"md-focused\");\r\n });\r\n\r\n ngModelCtrl.$render = render;\r\n\r\n function $$watchExpr(expr, htmlAttr, valueOpts) {\r\n if (attr[expr]) {\r\n scope.$watch(attr[expr], function(val) {\r\n if (valueOpts[val]) {\r\n element.attr(htmlAttr, valueOpts[val]);\r\n }\r\n });\r\n }\r\n }\r\n\r\n function keypressHandler(ev) {\r\n var keyCode = ev.which || ev.keyCode;\r\n if (\r\n keyCode === $mdConstant.KEY_CODE.SPACE ||\r\n keyCode === $mdConstant.KEY_CODE.ENTER\r\n ) {\r\n ev.preventDefault();\r\n element.addClass(\"md-focused\");\r\n listener(ev);\r\n }\r\n }\r\n\r\n function listener(ev) {\r\n // skipToggle boolean is used by the switch directive to prevent the click event\r\n // when releasing the drag. There will be always a click if releasing the drag over the checkbox\r\n if (element[0].hasAttribute(\"disabled\") || scope.skipToggle) {\r\n return;\r\n }\r\n\r\n scope.$apply(function() {\r\n // Toggle the checkbox value...\r\n var viewValue = attr.ngChecked\r\n ? attr.checked\r\n : !ngModelCtrl.$viewValue;\r\n\r\n ngModelCtrl.$setViewValue(viewValue, ev && ev.type);\r\n ngModelCtrl.$render();\r\n });\r\n }\r\n\r\n function render() {\r\n // Cast the $viewValue to a boolean since it could be undefined\r\n element.toggleClass(\r\n \"md-checked\",\r\n !!ngModelCtrl.$viewValue && !isIndeterminate\r\n );\r\n }\r\n\r\n function setIndeterminateState(newValue) {\r\n isIndeterminate = newValue !== false;\r\n if (isIndeterminate) {\r\n element.attr(\"aria-checked\", \"mixed\");\r\n }\r\n element.toggleClass(\"md-indeterminate\", isIndeterminate);\r\n }\r\n }\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * Use a RegExp to check if the `md-colors=\"\"` is static string\r\n * or one that should be observed and dynamically interpolated.\r\n */\r\n MdColorsDirective.$inject = [\"$mdColors\", \"$mdUtil\", \"$log\", \"$parse\"];\r\n MdColorsService.$inject = [\"$mdTheming\", \"$mdUtil\", \"$log\"];\r\n var STATIC_COLOR_EXPRESSION = /^{((\\s|,)*?[\"'a-zA-Z-]+?\\s*?:\\s*?('|\")[a-zA-Z0-9-.]*('|\"))+\\s*}$/;\r\n var colorPalettes = null;\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.colors\r\n *\r\n * @description\r\n * Define $mdColors service and a `md-colors=\"\"` attribute directive\r\n */\r\n angular\r\n .module(\"material.components.colors\", [\"material.core\"])\r\n .directive(\"mdColors\", MdColorsDirective)\r\n .service(\"$mdColors\", MdColorsService);\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdColors\r\n * @module material.components.colors\r\n *\r\n * @description\r\n * With only defining themes, one couldn't get non ngMaterial elements colored with Material colors,\r\n * `$mdColors` service is used by the md-color directive to convert the 1..n color expressions to RGBA values and will apply\r\n * those values to element as CSS property values.\r\n *\r\n * @usage\r\n * \r\n * angular.controller('myCtrl', function ($mdColors) {\r\n * var color = $mdColors.getThemeColor('myTheme-red-200-0.5');\r\n * ...\r\n * });\r\n * \r\n *\r\n */\r\n function MdColorsService($mdTheming, $mdUtil, $log) {\r\n colorPalettes = colorPalettes || Object.keys($mdTheming.PALETTES);\r\n\r\n // Publish service instance\r\n return {\r\n applyThemeColors: applyThemeColors,\r\n getThemeColor: getThemeColor,\r\n hasTheme: hasTheme\r\n };\r\n\r\n // ********************************************\r\n // Internal Methods\r\n // ********************************************\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdColors#applyThemeColors\r\n *\r\n * @description\r\n * Gets a color json object, keys are css properties and values are string of the wanted color\r\n * Then calculate the rgba() values based on the theme color parts\r\n *\r\n * @param {DOMElement} element the element to apply the styles on.\r\n * @param {object} colorExpression json object, keys are css properties and values are string of the wanted color,\r\n * for example: `{color: 'red-A200-0.3'}`.\r\n *\r\n * @usage\r\n * \r\n * app.directive('myDirective', function($mdColors) {\r\n * return {\r\n * ...\r\n * link: function (scope, elem) {\r\n * $mdColors.applyThemeColors(elem, {color: 'red'});\r\n * }\r\n * }\r\n * });\r\n * \r\n */\r\n function applyThemeColors(element, colorExpression) {\r\n try {\r\n if (colorExpression) {\r\n // Assign the calculate RGBA color values directly as inline CSS\r\n element.css(interpolateColors(colorExpression));\r\n }\r\n } catch (e) {\r\n $log.error(e.message);\r\n }\r\n }\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdColors#getThemeColor\r\n *\r\n * @description\r\n * Get parsed color from expression\r\n *\r\n * @param {string} expression string of a color expression (for instance `'red-700-0.8'`)\r\n *\r\n * @returns {string} a css color expression (for instance `rgba(211, 47, 47, 0.8)`)\r\n *\r\n * @usage\r\n * \r\n * angular.controller('myCtrl', function ($mdColors) {\r\n * var color = $mdColors.getThemeColor('myTheme-red-200-0.5');\r\n * ...\r\n * });\r\n * \r\n */\r\n function getThemeColor(expression) {\r\n var color = extractColorOptions(expression);\r\n\r\n return parseColor(color);\r\n }\r\n\r\n /**\r\n * Return the parsed color\r\n * @param color hashmap of color definitions\r\n * @param contrast whether use contrast color for foreground\r\n * @returns rgba color string\r\n */\r\n function parseColor(color, contrast) {\r\n contrast = contrast || false;\r\n var rgbValues = $mdTheming.PALETTES[color.palette][color.hue];\r\n\r\n rgbValues = contrast ? rgbValues.contrast : rgbValues.value;\r\n\r\n return $mdUtil.supplant(\"rgba({0}, {1}, {2}, {3})\", [\r\n rgbValues[0],\r\n rgbValues[1],\r\n rgbValues[2],\r\n rgbValues[3] || color.opacity\r\n ]);\r\n }\r\n\r\n /**\r\n * Convert the color expression into an object with scope-interpolated values\r\n * Then calculate the rgba() values based on the theme color parts\r\n *\r\n * @results Hashmap of CSS properties with associated `rgba( )` string vales\r\n *\r\n *\r\n */\r\n function interpolateColors(themeColors) {\r\n var rgbColors = {};\r\n\r\n var hasColorProperty = themeColors.hasOwnProperty(\"color\");\r\n\r\n angular.forEach(themeColors, function(value, key) {\r\n var color = extractColorOptions(value);\r\n var hasBackground = key.indexOf(\"background\") > -1;\r\n\r\n rgbColors[key] = parseColor(color);\r\n if (hasBackground && !hasColorProperty) {\r\n rgbColors.color = parseColor(color, true);\r\n }\r\n });\r\n\r\n return rgbColors;\r\n }\r\n\r\n /**\r\n * Check if expression has defined theme\r\n * e.g.\r\n * 'myTheme-primary' => true\r\n * 'red-800' => false\r\n */\r\n function hasTheme(expression) {\r\n return angular.isDefined($mdTheming.THEMES[expression.split(\"-\")[0]]);\r\n }\r\n\r\n /**\r\n * For the evaluated expression, extract the color parts into a hash map\r\n */\r\n function extractColorOptions(expression) {\r\n var parts = expression.split(\"-\");\r\n var hasTheme = angular.isDefined($mdTheming.THEMES[parts[0]]);\r\n var theme = hasTheme\r\n ? parts.splice(0, 1)[0]\r\n : $mdTheming.defaultTheme();\r\n\r\n return {\r\n theme: theme,\r\n palette: extractPalette(parts, theme),\r\n hue: extractHue(parts, theme),\r\n opacity: parts[2] || 1\r\n };\r\n }\r\n\r\n /**\r\n * Calculate the theme palette name\r\n */\r\n function extractPalette(parts, theme) {\r\n // If the next section is one of the palettes we assume it's a two word palette\r\n // Two word palette can be also written in camelCase, forming camelCase to dash-case\r\n\r\n var isTwoWord =\r\n parts.length > 1 && colorPalettes.indexOf(parts[1]) !== -1;\r\n var palette = parts[0]\r\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\r\n .toLowerCase();\r\n\r\n if (isTwoWord) palette = parts[0] + \"-\" + parts.splice(1, 1);\r\n\r\n if (colorPalettes.indexOf(palette) === -1) {\r\n // If the palette is not in the palette list it's one of primary/accent/warn/background\r\n var scheme = $mdTheming.THEMES[theme].colors[palette];\r\n if (!scheme) {\r\n throw new Error(\r\n $mdUtil.supplant(\r\n \"mdColors: couldn't find '{palette}' in the palettes.\",\r\n { palette: palette }\r\n )\r\n );\r\n }\r\n palette = scheme.name;\r\n }\r\n\r\n return palette;\r\n }\r\n\r\n function extractHue(parts, theme) {\r\n var themeColors = $mdTheming.THEMES[theme].colors;\r\n\r\n if (parts[1] === \"hue\") {\r\n var hueNumber = parseInt(parts.splice(2, 1)[0], 10);\r\n\r\n if (hueNumber < 1 || hueNumber > 3) {\r\n throw new Error(\r\n $mdUtil.supplant(\r\n \"mdColors: 'hue-{hueNumber}' is not a valid hue, can be only 'hue-1', 'hue-2' and 'hue-3'\",\r\n { hueNumber: hueNumber }\r\n )\r\n );\r\n }\r\n parts[1] = \"hue-\" + hueNumber;\r\n\r\n if (!(parts[0] in themeColors)) {\r\n throw new Error(\r\n $mdUtil.supplant(\r\n \"mdColors: 'hue-x' can only be used with [{availableThemes}], but was used with '{usedTheme}'\",\r\n {\r\n availableThemes: Object.keys(themeColors).join(\", \"),\r\n usedTheme: parts[0]\r\n }\r\n )\r\n );\r\n }\r\n\r\n return themeColors[parts[0]].hues[parts[1]];\r\n }\r\n\r\n return (\r\n parts[1] ||\r\n themeColors[parts[0] in themeColors ? parts[0] : \"primary\"].hues[\r\n \"default\"\r\n ]\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdColors\r\n * @module material.components.colors\r\n *\r\n * @restrict A\r\n *\r\n * @description\r\n * `mdColors` directive will apply the theme-based color expression as RGBA CSS style values.\r\n *\r\n * The format will be similar to our color defining in the scss files:\r\n *\r\n * ## `[?theme]-[palette]-[?hue]-[?opacity]`\r\n * - [theme] - default value is the default theme\r\n * - [palette] - can be either palette name or primary/accent/warn/background\r\n * - [hue] - default is 500 (hue-x can be used with primary/accent/warn/background)\r\n * - [opacity] - default is 1\r\n *\r\n * > `?` indicates optional parameter\r\n *\r\n * @usage\r\n * \r\n *
\r\n *
\r\n * Color demo\r\n *
\r\n *
\r\n *
\r\n *\r\n * `mdColors` directive will automatically watch for changes in the expression if it recognizes an interpolation\r\n * expression or a function. For performance options, you can use `::` prefix to the `md-colors` expression\r\n * to indicate a one-time data binding.\r\n * \r\n * \r\n * \r\n * \r\n *\r\n */\r\n function MdColorsDirective($mdColors, $mdUtil, $log, $parse) {\r\n return {\r\n restrict: \"A\",\r\n require: [\"^?mdTheme\"],\r\n compile: function(tElem, tAttrs) {\r\n var shouldWatch = shouldColorsWatch();\r\n\r\n return function(scope, element, attrs, ctrl) {\r\n var mdThemeController = ctrl[0];\r\n\r\n var lastColors = {};\r\n\r\n var parseColors = function(theme) {\r\n if (typeof theme !== \"string\") {\r\n theme = \"\";\r\n }\r\n\r\n if (!attrs.mdColors) {\r\n attrs.mdColors = \"{}\";\r\n }\r\n\r\n /**\r\n * Json.parse() does not work because the keys are not quoted;\r\n * use $parse to convert to a hash map\r\n */\r\n var colors = $parse(attrs.mdColors)(scope);\r\n\r\n /**\r\n * If mdTheme is defined up the DOM tree\r\n * we add mdTheme theme to colors who doesn't specified a theme\r\n *\r\n * # example\r\n * \r\n *
\r\n *
\r\n * Color demo\r\n *
\r\n *
\r\n *
\r\n *\r\n * 'primary-600' will be 'myTheme-primary-600',\r\n * but 'mySecondTheme-accent-200' will stay the same cause it has a theme prefix\r\n */\r\n if (mdThemeController) {\r\n Object.keys(colors).forEach(function(prop) {\r\n var color = colors[prop];\r\n if (!$mdColors.hasTheme(color)) {\r\n colors[prop] =\r\n (theme || mdThemeController.$mdTheme) + \"-\" + color;\r\n }\r\n });\r\n }\r\n\r\n cleanElement(colors);\r\n\r\n return colors;\r\n };\r\n\r\n var cleanElement = function(colors) {\r\n if (!angular.equals(colors, lastColors)) {\r\n var keys = Object.keys(lastColors);\r\n\r\n if (lastColors.background && !keys.color) {\r\n keys.push(\"color\");\r\n }\r\n\r\n keys.forEach(function(key) {\r\n element.css(key, \"\");\r\n });\r\n }\r\n\r\n lastColors = colors;\r\n };\r\n\r\n /**\r\n * Registering for mgTheme changes and asking mdTheme controller run our callback whenever a theme changes\r\n */\r\n var unregisterChanges = angular.noop;\r\n\r\n if (mdThemeController) {\r\n unregisterChanges = mdThemeController.registerChanges(function(\r\n theme\r\n ) {\r\n $mdColors.applyThemeColors(element, parseColors(theme));\r\n });\r\n }\r\n\r\n scope.$on(\"$destroy\", function() {\r\n unregisterChanges();\r\n });\r\n\r\n try {\r\n if (shouldWatch) {\r\n scope.$watch(\r\n parseColors,\r\n angular.bind(this, $mdColors.applyThemeColors, element),\r\n true\r\n );\r\n } else {\r\n $mdColors.applyThemeColors(element, parseColors());\r\n }\r\n } catch (e) {\r\n $log.error(e.message);\r\n }\r\n };\r\n\r\n function shouldColorsWatch() {\r\n // Simulate 1x binding and mark mdColorsWatch == false\r\n var rawColorExpression = tAttrs.mdColors;\r\n var bindOnce = rawColorExpression.indexOf(\"::\") > -1;\r\n var isStatic = bindOnce\r\n ? true\r\n : STATIC_COLOR_EXPRESSION.test(tAttrs.mdColors);\r\n\r\n // Remove it for the postLink...\r\n tAttrs.mdColors = rawColorExpression.replace(\"::\", \"\");\r\n\r\n var hasWatchAttr = angular.isDefined(tAttrs.mdColorsWatch);\r\n\r\n return bindOnce || isStatic\r\n ? false\r\n : hasWatchAttr\r\n ? $mdUtil.parseAttributeBoolean(tAttrs.mdColorsWatch)\r\n : true;\r\n }\r\n }\r\n };\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.content\r\n *\r\n * @description\r\n * Scrollable content\r\n */\r\n mdContentDirective.$inject = [\"$mdTheming\"];\r\n angular\r\n .module(\"material.components.content\", [\"material.core\"])\r\n .directive(\"mdContent\", mdContentDirective);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdContent\r\n * @module material.components.content\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n *\r\n * The `` directive is a container element useful for scrollable content. It achieves\r\n * this by setting the CSS `overflow` property to `auto` so that content can properly scroll.\r\n *\r\n * In general, `` components are not designed to be nested inside one another. If\r\n * possible, it is better to make them siblings. This often results in a better user experience as\r\n * having nested scrollbars may confuse the user.\r\n *\r\n * ## Troubleshooting\r\n *\r\n * In some cases, you may wish to apply the `md-no-momentum` class to ensure that Safari's\r\n * momentum scrolling is disabled. Momentum scrolling can cause flickering issues while scrolling\r\n * SVG icons and some other components.\r\n *\r\n * Additionally, we now also offer the `md-no-flicker` class which can be applied to any element\r\n * and uses a Webkit-specific filter of `blur(0px)` that forces GPU rendering of all elements\r\n * inside (which eliminates the flicker on iOS devices).\r\n *\r\n * _Note: Forcing an element to render on the GPU can have unintended side-effects, especially\r\n * related to the z-index of elements. Please use with caution and only on the elements needed._\r\n *\r\n * @usage\r\n *\r\n * Add the `[layout-padding]` attribute to make the content padded.\r\n *\r\n * \r\n * \r\n * Lorem ipsum dolor sit amet, ne quod novum mei.\r\n * \r\n * \r\n */\r\n\r\n function mdContentDirective($mdTheming) {\r\n return {\r\n restrict: \"E\",\r\n controller: [\"$scope\", \"$element\", ContentController],\r\n link: function(scope, element) {\r\n element.addClass(\"_md\"); // private md component indicator for styling\r\n\r\n $mdTheming(element);\r\n scope.$broadcast(\"$mdContentLoaded\", element);\r\n\r\n iosScrollFix(element[0]);\r\n }\r\n };\r\n\r\n function ContentController($scope, $element) {\r\n this.$scope = $scope;\r\n this.$element = $element;\r\n }\r\n }\r\n\r\n function iosScrollFix(node) {\r\n // IOS FIX:\r\n // If we scroll where there is no more room for the webview to scroll,\r\n // by default the webview itself will scroll up and down, this looks really\r\n // bad. So if we are scrolling to the very top or bottom, add/subtract one\r\n angular.element(node).on(\"$md.pressdown\", function(ev) {\r\n // Only touch events\r\n if (ev.pointer.type !== \"t\") return;\r\n // Don't let a child content's touchstart ruin it for us.\r\n if (ev.$materialScrollFixed) return;\r\n ev.$materialScrollFixed = true;\r\n\r\n if (node.scrollTop === 0) {\r\n node.scrollTop = 1;\r\n } else if (node.scrollHeight === node.scrollTop + node.offsetHeight) {\r\n node.scrollTop -= 1;\r\n }\r\n });\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.datepicker\r\n * @description Module for the datepicker component.\r\n */\r\n\r\n angular.module(\"material.components.datepicker\", [\r\n \"material.core\",\r\n \"material.components.icon\",\r\n \"material.components.virtualRepeat\"\r\n ]);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.dialog\r\n */\r\n MdDialogDirective.$inject = [\"$$rAF\", \"$mdTheming\", \"$mdDialog\"];\r\n MdDialogProvider.$inject = [\"$$interimElementProvider\"];\r\n angular\r\n .module(\"material.components.dialog\", [\r\n \"material.core\",\r\n \"material.components.backdrop\"\r\n ])\r\n .directive(\"mdDialog\", MdDialogDirective)\r\n .provider(\"$mdDialog\", MdDialogProvider);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdDialog\r\n * @module material.components.dialog\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * `` - The dialog's template must be inside this element.\r\n *\r\n * Inside, use an `` element for the dialog's content, and use\r\n * an `` element for the dialog's actions.\r\n *\r\n * ## CSS\r\n * - `.md-dialog-content` - class that sets the padding on the content as the spec file\r\n *\r\n * ## Notes\r\n * - If you specify an `id` for the ``, the `` will have the same `id`\r\n * prefixed with `dialogContent_`.\r\n *\r\n * @usage\r\n * ### Dialog template\r\n * \r\n * \r\n * \r\n * \r\n * \r\n *

Number {{item}}

\r\n *
\r\n *
\r\n *
\r\n * \r\n * Close Dialog\r\n * \r\n *
\r\n *
\r\n */\r\n function MdDialogDirective($$rAF, $mdTheming, $mdDialog) {\r\n return {\r\n restrict: \"E\",\r\n link: function(scope, element) {\r\n element.addClass(\"_md\"); // private md component indicator for styling\r\n\r\n $mdTheming(element);\r\n $$rAF(function() {\r\n var images;\r\n var content = element[0].querySelector(\"md-dialog-content\");\r\n\r\n if (content) {\r\n images = content.getElementsByTagName(\"img\");\r\n addOverflowClass();\r\n //-- delayed image loading may impact scroll height, check after images are loaded\r\n angular.element(images).on(\"load\", addOverflowClass);\r\n }\r\n\r\n scope.$on(\"$destroy\", function() {\r\n $mdDialog.destroy(element);\r\n });\r\n\r\n /**\r\n *\r\n */\r\n function addOverflowClass() {\r\n element.toggleClass(\r\n \"md-content-overflow\",\r\n content.scrollHeight > content.clientHeight\r\n );\r\n }\r\n });\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdDialog\r\n * @module material.components.dialog\r\n *\r\n * @description\r\n * `$mdDialog` opens a dialog over the app to inform users about critical information or require\r\n * them to make decisions. There are two approaches for setup: a simple promise API\r\n * and regular object syntax.\r\n *\r\n * ## Restrictions\r\n *\r\n * - The dialog is always given an isolate scope.\r\n * - The dialog's template must have an outer `` element.\r\n * Inside, use an `` element for the dialog's content, and use\r\n * an `` element for the dialog's actions.\r\n * - Dialogs must cover the entire application to keep interactions inside of them.\r\n * Use the `parent` option to change where dialogs are appended.\r\n *\r\n * ## Sizing\r\n * - Complex dialogs can be sized with `flex=\"percentage\"`, i.e. `flex=\"66\"`.\r\n * - Default max-width is 80% of the `rootElement` or `parent`.\r\n *\r\n * ## CSS\r\n * - `.md-dialog-content` - class that sets the padding on the content as the spec file\r\n *\r\n * @usage\r\n * \r\n *
\r\n *
\r\n * \r\n * Employee Alert!\r\n * \r\n *
\r\n *
\r\n * \r\n * Custom Dialog\r\n * \r\n *
\r\n *
\r\n * \r\n * Close Alert\r\n * \r\n *
\r\n *
\r\n * \r\n * Greet Employee\r\n * \r\n *
\r\n *
\r\n *
\r\n *\r\n * ### JavaScript: object syntax\r\n * \r\n * (function(angular, undefined){\r\n * \"use strict\";\r\n *\r\n * angular\r\n * .module('demoApp', ['ngMaterial'])\r\n * .controller('AppCtrl', AppController);\r\n *\r\n * function AppController($scope, $mdDialog) {\r\n * var alert;\r\n * $scope.showAlert = showAlert;\r\n * $scope.showDialog = showDialog;\r\n * $scope.items = [1, 2, 3];\r\n *\r\n * // Internal method\r\n * function showAlert() {\r\n * alert = $mdDialog.alert({\r\n * title: 'Attention',\r\n * textContent: 'This is an example of how easy dialogs can be!',\r\n * ok: 'Close'\r\n * });\r\n *\r\n * $mdDialog\r\n * .show( alert )\r\n * .finally(function() {\r\n * alert = undefined;\r\n * });\r\n * }\r\n *\r\n * function showDialog($event) {\r\n * var parentEl = angular.element(document.body);\r\n * $mdDialog.show({\r\n * parent: parentEl,\r\n * targetEvent: $event,\r\n * template:\r\n * '' +\r\n * ' '+\r\n * ' '+\r\n * ' '+\r\n * '

Number {{item}}

' +\r\n * ' '+\r\n * '
'+\r\n * '
' +\r\n * ' ' +\r\n * ' ' +\r\n * ' Close Dialog' +\r\n * ' ' +\r\n * ' ' +\r\n * '
',\r\n * locals: {\r\n * items: $scope.items\r\n * },\r\n * controller: DialogController\r\n * });\r\n * function DialogController($scope, $mdDialog, items) {\r\n * $scope.items = items;\r\n * $scope.closeDialog = function() {\r\n * $mdDialog.hide();\r\n * }\r\n * }\r\n * }\r\n * }\r\n * })(angular);\r\n *
\r\n *\r\n * ### Pre-Rendered Dialogs\r\n * By using the `contentElement` option, it is possible to use an already existing element in the DOM.\r\n *\r\n * \r\n * $scope.showPrerenderedDialog = function() {\r\n * $mdDialog.show({\r\n * contentElement: '#myStaticDialog',\r\n * parent: angular.element(document.body)\r\n * });\r\n * };\r\n * \r\n *\r\n * When using a string as value, `$mdDialog` will automatically query the DOM for the specified CSS selector.\r\n *\r\n * \r\n *
\r\n *
\r\n * \r\n * This is a pre-rendered dialog.\r\n * \r\n *
\r\n *
\r\n *
\r\n *\r\n * **Notice**: It is important, to use the `.md-dialog-container` as the content element, otherwise the dialog\r\n * will not show up.\r\n *\r\n * It also possible to use a DOM element for the `contentElement` option.\r\n * - `contentElement: document.querySelector('#myStaticDialog')`\r\n * - `contentElement: angular.element(TEMPLATE)`\r\n *\r\n * When using a `template` as content element, it will be not compiled upon open.\r\n * This allows you to compile the element yourself and use it each time the dialog opens.\r\n *\r\n * ### Custom Presets\r\n * Developers are also able to create their own preset, which can be easily used without repeating\r\n * their options each time.\r\n *\r\n * \r\n * $mdDialogProvider.addPreset('testPreset', {\r\n * options: function() {\r\n * return {\r\n * template:\r\n * '' +\r\n * 'This is a custom preset' +\r\n * '',\r\n * controllerAs: 'dialog',\r\n * bindToController: true,\r\n * clickOutsideToClose: true,\r\n * escapeToClose: true\r\n * };\r\n * }\r\n * });\r\n * \r\n *\r\n * After you created your preset at config phase, you can easily access it.\r\n *\r\n * \r\n * $mdDialog.show(\r\n * $mdDialog.testPreset()\r\n * );\r\n * \r\n *\r\n * ### JavaScript: promise API syntax, custom dialog template\r\n * \r\n * (function(angular, undefined){\r\n * \"use strict\";\r\n *\r\n * angular\r\n * .module('demoApp', ['ngMaterial'])\r\n * .controller('EmployeeController', EmployeeEditor)\r\n * .controller('GreetingController', GreetingController);\r\n *\r\n * // Fictitious Employee Editor to show how to use simple and complex dialogs.\r\n *\r\n * function EmployeeEditor($scope, $mdDialog) {\r\n * var alert;\r\n *\r\n * $scope.showAlert = showAlert;\r\n * $scope.closeAlert = closeAlert;\r\n * $scope.showGreeting = showCustomGreeting;\r\n *\r\n * $scope.hasAlert = function() { return !!alert };\r\n * $scope.userName = $scope.userName || 'Bobby';\r\n *\r\n * // Dialog #1 - Show simple alert dialog and cache\r\n * // reference to dialog instance\r\n *\r\n * function showAlert() {\r\n * alert = $mdDialog.alert()\r\n * .title('Attention, ' + $scope.userName)\r\n * .textContent('This is an example of how easy dialogs can be!')\r\n * .ok('Close');\r\n *\r\n * $mdDialog\r\n * .show( alert )\r\n * .finally(function() {\r\n * alert = undefined;\r\n * });\r\n * }\r\n *\r\n * // Close the specified dialog instance and resolve with 'finished' flag\r\n * // Normally this is not needed, just use '$mdDialog.hide()' to close\r\n * // the most recent dialog popup.\r\n *\r\n * function closeAlert() {\r\n * $mdDialog.hide( alert, \"finished\" );\r\n * alert = undefined;\r\n * }\r\n *\r\n * // Dialog #2 - Demonstrate more complex dialogs construction and popup.\r\n *\r\n * function showCustomGreeting($event) {\r\n * $mdDialog.show({\r\n * targetEvent: $event,\r\n * template:\r\n * '' +\r\n *\r\n * ' Hello {{ employee }}!' +\r\n *\r\n * ' ' +\r\n * ' ' +\r\n * ' Close Greeting' +\r\n * ' ' +\r\n * ' ' +\r\n * '',\r\n * controller: 'GreetingController',\r\n * onComplete: afterShowAnimation,\r\n * locals: { employee: $scope.userName }\r\n * });\r\n *\r\n * // When the 'enter' animation finishes...\r\n *\r\n * function afterShowAnimation(scope, element, options) {\r\n * // post-show code here: DOM element focus, etc.\r\n * }\r\n * }\r\n *\r\n * // Dialog #3 - Demonstrate use of ControllerAs and passing $scope to dialog\r\n * // Here we used ng-controller=\"GreetingController as vm\" and\r\n * // $scope.vm === \r\n *\r\n * function showCustomGreeting() {\r\n *\r\n * $mdDialog.show({\r\n * clickOutsideToClose: true,\r\n *\r\n * scope: $scope, // use parent scope in template\r\n * preserveScope: true, // do not forget this if use parent scope\r\n\r\n * // Since GreetingController is instantiated with ControllerAs syntax\r\n * // AND we are passing the parent '$scope' to the dialog, we MUST\r\n * // use 'vm.' in the template markup\r\n *\r\n * template: '' +\r\n * ' ' +\r\n * ' Hi There {{vm.employee}}' +\r\n * ' ' +\r\n * '',\r\n *\r\n * controller: function DialogController($scope, $mdDialog) {\r\n * $scope.closeDialog = function() {\r\n * $mdDialog.hide();\r\n * }\r\n * }\r\n * });\r\n * }\r\n *\r\n * }\r\n *\r\n * // Greeting controller used with the more complex 'showCustomGreeting()' custom dialog\r\n *\r\n * function GreetingController($scope, $mdDialog, employee) {\r\n * // Assigned from construction locals options...\r\n * $scope.employee = employee;\r\n *\r\n * $scope.closeDialog = function() {\r\n * // Easily hides most recent dialog shown...\r\n * // no specific instance reference is needed.\r\n * $mdDialog.hide();\r\n * };\r\n * }\r\n *\r\n * })(angular);\r\n * \r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdDialog#alert\r\n *\r\n * @description\r\n * Builds a preconfigured dialog with the specified message.\r\n *\r\n * @returns {obj} an `$mdDialogPreset` with the chainable configuration methods:\r\n *\r\n * - $mdDialogPreset#title(string) - Sets the alert title.\r\n * - $mdDialogPreset#textContent(string) - Sets the alert message.\r\n * - $mdDialogPreset#htmlContent(string) - Sets the alert message as HTML. Requires ngSanitize\r\n * module to be loaded. HTML is not run through Angular's compiler.\r\n * - $mdDialogPreset#ok(string) - Sets the alert \"Okay\" button text.\r\n * - $mdDialogPreset#theme(string) - Sets the theme of the alert dialog.\r\n * - $mdDialogPreset#targetEvent(DOMClickEvent=) - A click's event object. When passed in as an option,\r\n * the location of the click will be used as the starting point for the opening animation\r\n * of the the dialog.\r\n *\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdDialog#confirm\r\n *\r\n * @description\r\n * Builds a preconfigured dialog with the specified message. You can call show and the promise returned\r\n * will be resolved only if the user clicks the confirm action on the dialog.\r\n *\r\n * @returns {obj} an `$mdDialogPreset` with the chainable configuration methods:\r\n *\r\n * Additionally, it supports the following methods:\r\n *\r\n * - $mdDialogPreset#title(string) - Sets the confirm title.\r\n * - $mdDialogPreset#textContent(string) - Sets the confirm message.\r\n * - $mdDialogPreset#htmlContent(string) - Sets the confirm message as HTML. Requires ngSanitize\r\n * module to be loaded. HTML is not run through Angular's compiler.\r\n * - $mdDialogPreset#ok(string) - Sets the confirm \"Okay\" button text.\r\n * - $mdDialogPreset#cancel(string) - Sets the confirm \"Cancel\" button text.\r\n * - $mdDialogPreset#theme(string) - Sets the theme of the confirm dialog.\r\n * - $mdDialogPreset#targetEvent(DOMClickEvent=) - A click's event object. When passed in as an option,\r\n * the location of the click will be used as the starting point for the opening animation\r\n * of the the dialog.\r\n *\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdDialog#prompt\r\n *\r\n * @description\r\n * Builds a preconfigured dialog with the specified message and input box. You can call show and the promise returned\r\n * will be resolved only if the user clicks the prompt action on the dialog, passing the input value as the first argument.\r\n *\r\n * @returns {obj} an `$mdDialogPreset` with the chainable configuration methods:\r\n *\r\n * Additionally, it supports the following methods:\r\n *\r\n * - $mdDialogPreset#title(string) - Sets the prompt title.\r\n * - $mdDialogPreset#textContent(string) - Sets the prompt message.\r\n * - $mdDialogPreset#htmlContent(string) - Sets the prompt message as HTML. Requires ngSanitize\r\n * module to be loaded. HTML is not run through Angular's compiler.\r\n * - $mdDialogPreset#placeholder(string) - Sets the placeholder text for the input.\r\n * - $mdDialogPreset#initialValue(string) - Sets the initial value for the prompt input.\r\n * - $mdDialogPreset#ok(string) - Sets the prompt \"Okay\" button text.\r\n * - $mdDialogPreset#cancel(string) - Sets the prompt \"Cancel\" button text.\r\n * - $mdDialogPreset#theme(string) - Sets the theme of the prompt dialog.\r\n * - $mdDialogPreset#targetEvent(DOMClickEvent=) - A click's event object. When passed in as an option,\r\n * the location of the click will be used as the starting point for the opening animation\r\n * of the the dialog.\r\n *\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdDialog#show\r\n *\r\n * @description\r\n * Show a dialog with the specified options.\r\n *\r\n * @param {object} optionsOrPreset Either provide an `$mdDialogPreset` returned from `alert()`, and\r\n * `confirm()`, or an options object with the following properties:\r\n * - `templateUrl` - `{string=}`: The url of a template that will be used as the content\r\n * of the dialog.\r\n * - `template` - `{string=}`: HTML template to show in the dialog. This **must** be trusted HTML\r\n * with respect to Angular's [$sce service](https://docs.angularjs.org/api/ng/service/$sce).\r\n * This template should **never** be constructed with any kind of user input or user data.\r\n * - `contentElement` - `{string|Element}`: Instead of using a template, which will be compiled each time a\r\n * dialog opens, you can also use a DOM element.
\r\n * * When specifying an element, which is present on the DOM, `$mdDialog` will temporary fetch the element into\r\n * the dialog and restores it at the old DOM position upon close.\r\n * * When specifying a string, the string be used as a CSS selector, to lookup for the element in the DOM.\r\n * - `autoWrap` - `{boolean=}`: Whether or not to automatically wrap the template with a\r\n * `` tag if one is not provided. Defaults to true. Can be disabled if you provide a\r\n * custom dialog directive.\r\n * - `targetEvent` - `{DOMClickEvent=}`: A click's event object. When passed in as an option,\r\n * the location of the click will be used as the starting point for the opening animation\r\n * of the the dialog.\r\n * - `openFrom` - `{string|Element|object}`: The query selector, DOM element or the Rect object\r\n * that is used to determine the bounds (top, left, height, width) from which the Dialog will\r\n * originate.\r\n * - `closeTo` - `{string|Element|object}`: The query selector, DOM element or the Rect object\r\n * that is used to determine the bounds (top, left, height, width) to which the Dialog will\r\n * target.\r\n * - `scope` - `{object=}`: the scope to link the template / controller to. If none is specified,\r\n * it will create a new isolate scope.\r\n * This scope will be destroyed when the dialog is removed unless `preserveScope` is set to true.\r\n * - `preserveScope` - `{boolean=}`: whether to preserve the scope when the element is removed. Default is false\r\n * - `disableParentScroll` - `{boolean=}`: Whether to disable scrolling while the dialog is open.\r\n * Default true.\r\n * - `hasBackdrop` - `{boolean=}`: Whether there should be an opaque backdrop behind the dialog.\r\n * Default true.\r\n * - `clickOutsideToClose` - `{boolean=}`: Whether the user can click outside the dialog to\r\n * close it. Default false.\r\n * - `escapeToClose` - `{boolean=}`: Whether the user can press escape to close the dialog.\r\n * Default true.\r\n * - `focusOnOpen` - `{boolean=}`: An option to override focus behavior on open. Only disable if\r\n * focusing some other way, as focus management is required for dialogs to be accessible.\r\n * Defaults to true.\r\n * - `controller` - `{function|string=}`: The controller to associate with the dialog. The controller\r\n * will be injected with the local `$mdDialog`, which passes along a scope for the dialog.\r\n * - `locals` - `{object=}`: An object containing key/value pairs. The keys will be used as names\r\n * of values to inject into the controller. For example, `locals: {three: 3}` would inject\r\n * `three` into the controller, with the value 3. If `bindToController` is true, they will be\r\n * copied to the controller instead.\r\n * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in.\r\n * - `resolve` - `{object=}`: Similar to locals, except it takes promises as values, and the\r\n * dialog will not open until all of the promises resolve.\r\n * - `controllerAs` - `{string=}`: An alias to assign the controller to on the scope.\r\n * - `parent` - `{element=}`: The element to append the dialog to. Defaults to appending\r\n * to the root element of the application.\r\n * - `onShowing` - `function(scope, element)`: Callback function used to announce the show() action is\r\n * starting.\r\n * - `onComplete` - `function(scope, element)`: Callback function used to announce when the show() action is\r\n * finished.\r\n * - `onRemoving` - `function(element, removePromise)`: Callback function used to announce the\r\n * close/hide() action is starting. This allows developers to run custom animations\r\n * in parallel the close animations.\r\n * - `fullscreen` `{boolean=}`: An option to toggle whether the dialog should show in fullscreen\r\n * or not. Defaults to `false`.\r\n * @returns {promise} A promise that can be resolved with `$mdDialog.hide()` or\r\n * rejected with `$mdDialog.cancel()`.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdDialog#hide\r\n *\r\n * @description\r\n * Hide an existing dialog and resolve the promise returned from `$mdDialog.show()`.\r\n *\r\n * @param {*=} response An argument for the resolved promise.\r\n *\r\n * @returns {promise} A promise that is resolved when the dialog has been closed.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdDialog#cancel\r\n *\r\n * @description\r\n * Hide an existing dialog and reject the promise returned from `$mdDialog.show()`.\r\n *\r\n * @param {*=} response An argument for the rejected promise.\r\n *\r\n * @returns {promise} A promise that is resolved when the dialog has been closed.\r\n */\r\n\r\n function MdDialogProvider($$interimElementProvider) {\r\n // Elements to capture and redirect focus when the user presses tab at the dialog boundary.\r\n advancedDialogOptions.$inject = [\"$mdDialog\", \"$mdConstant\"];\r\n dialogDefaultOptions.$inject = [\r\n \"$mdDialog\",\r\n \"$mdAria\",\r\n \"$mdUtil\",\r\n \"$mdConstant\",\r\n \"$animate\",\r\n \"$document\",\r\n \"$window\",\r\n \"$rootElement\",\r\n \"$log\",\r\n \"$injector\",\r\n \"$mdTheming\"\r\n ];\r\n var topFocusTrap, bottomFocusTrap;\r\n\r\n return $$interimElementProvider(\"$mdDialog\")\r\n .setDefaults({\r\n methods: [\r\n \"disableParentScroll\",\r\n \"hasBackdrop\",\r\n \"clickOutsideToClose\",\r\n \"escapeToClose\",\r\n \"targetEvent\",\r\n \"closeTo\",\r\n \"openFrom\",\r\n \"parent\",\r\n \"fullscreen\",\r\n \"contentElement\"\r\n ],\r\n options: dialogDefaultOptions\r\n })\r\n .addPreset(\"alert\", {\r\n methods: [\r\n \"title\",\r\n \"htmlContent\",\r\n \"textContent\",\r\n \"content\",\r\n \"ariaLabel\",\r\n \"ok\",\r\n \"theme\",\r\n \"css\"\r\n ],\r\n options: advancedDialogOptions\r\n })\r\n .addPreset(\"confirm\", {\r\n methods: [\r\n \"title\",\r\n \"htmlContent\",\r\n \"textContent\",\r\n \"content\",\r\n \"ariaLabel\",\r\n \"ok\",\r\n \"cancel\",\r\n \"theme\",\r\n \"css\"\r\n ],\r\n options: advancedDialogOptions\r\n })\r\n .addPreset(\"prompt\", {\r\n methods: [\r\n \"title\",\r\n \"htmlContent\",\r\n \"textContent\",\r\n \"initialValue\",\r\n \"content\",\r\n \"placeholder\",\r\n \"ariaLabel\",\r\n \"ok\",\r\n \"cancel\",\r\n \"theme\",\r\n \"css\"\r\n ],\r\n options: advancedDialogOptions\r\n });\r\n\r\n /* @ngInject */\r\n function advancedDialogOptions($mdDialog, $mdConstant) {\r\n return {\r\n template: [\r\n '',\r\n ' ',\r\n '

{{ dialog.title }}

',\r\n '
',\r\n '
',\r\n \"

{{::dialog.mdTextContent}}

\",\r\n \"
\",\r\n ' ',\r\n ' ',\r\n \" \",\r\n \"
\",\r\n \" \",\r\n \" ',\r\n \" {{ dialog.cancel }}\",\r\n \" \",\r\n ' ',\r\n \" {{ dialog.ok }}\",\r\n \" \",\r\n \" \",\r\n \"
\"\r\n ]\r\n .join(\"\")\r\n .replace(/\\s\\s+/g, \"\"),\r\n controller: function mdDialogCtrl() {\r\n var isPrompt = this.$type == \"prompt\";\r\n\r\n if (isPrompt && this.initialValue) {\r\n this.result = this.initialValue;\r\n }\r\n\r\n this.hide = function() {\r\n $mdDialog.hide(isPrompt ? this.result : true);\r\n };\r\n this.abort = function() {\r\n $mdDialog.cancel();\r\n };\r\n this.keypress = function($event) {\r\n if ($event.keyCode === $mdConstant.KEY_CODE.ENTER) {\r\n $mdDialog.hide(this.result);\r\n }\r\n };\r\n },\r\n controllerAs: \"dialog\",\r\n bindToController: true\r\n };\r\n }\r\n\r\n /* @ngInject */\r\n function dialogDefaultOptions(\r\n $mdDialog,\r\n $mdAria,\r\n $mdUtil,\r\n $mdConstant,\r\n $animate,\r\n $document,\r\n $window,\r\n $rootElement,\r\n $log,\r\n $injector,\r\n $mdTheming\r\n ) {\r\n return {\r\n hasBackdrop: true,\r\n isolateScope: true,\r\n onCompiling: beforeCompile,\r\n onShow: onShow,\r\n onShowing: beforeShow,\r\n onRemove: onRemove,\r\n clickOutsideToClose: false,\r\n escapeToClose: true,\r\n targetEvent: null,\r\n contentElement: null,\r\n closeTo: null,\r\n openFrom: null,\r\n focusOnOpen: true,\r\n disableParentScroll: true,\r\n autoWrap: true,\r\n fullscreen: false,\r\n transformTemplate: function(template, options) {\r\n // Make the dialog container focusable, because otherwise the focus will be always redirected to\r\n // an element outside of the container, and the focus trap won't work probably..\r\n // Also the tabindex is needed for the `escapeToClose` functionality, because\r\n // the keyDown event can't be triggered when the focus is outside of the container.\r\n return (\r\n '
' +\r\n validatedTemplate(template) +\r\n \"
\"\r\n );\r\n\r\n /**\r\n * The specified template should contain a wrapper element....\r\n */\r\n function validatedTemplate(template) {\r\n if (options.autoWrap && !/<\\/md-dialog>/g.test(template)) {\r\n return \"\" + (template || \"\") + \"\";\r\n } else {\r\n return template || \"\";\r\n }\r\n }\r\n }\r\n };\r\n\r\n function beforeCompile(options) {\r\n // Automatically apply the theme, if the user didn't specify a theme explicitly.\r\n // Those option changes need to be done, before the compilation has started, because otherwise\r\n // the option changes will be not available in the $mdCompilers locales.\r\n detectTheming(options);\r\n\r\n if (options.contentElement) {\r\n options.restoreContentElement = installContentElement(options);\r\n }\r\n }\r\n\r\n function beforeShow(scope, element, options, controller) {\r\n if (controller) {\r\n controller.mdHtmlContent =\r\n controller.htmlContent || options.htmlContent || \"\";\r\n controller.mdTextContent =\r\n controller.textContent ||\r\n options.textContent ||\r\n controller.content ||\r\n options.content ||\r\n \"\";\r\n\r\n if (controller.mdHtmlContent && !$injector.has(\"$sanitize\")) {\r\n throw Error(\r\n \"The ngSanitize module must be loaded in order to use htmlContent.\"\r\n );\r\n }\r\n\r\n if (controller.mdHtmlContent && controller.mdTextContent) {\r\n throw Error(\r\n \"md-dialog cannot have both `htmlContent` and `textContent`\"\r\n );\r\n }\r\n }\r\n }\r\n\r\n /** Show method for dialogs */\r\n function onShow(scope, element, options, controller) {\r\n angular.element($document[0].body).addClass(\"md-dialog-is-showing\");\r\n\r\n var dialogElement = element.find(\"md-dialog\");\r\n\r\n // Once a dialog has `ng-cloak` applied on his template the dialog animation will not work properly.\r\n // This is a very common problem, so we have to notify the developer about this.\r\n if (dialogElement.hasClass(\"ng-cloak\")) {\r\n var message =\r\n \"$mdDialog: using `` will affect the dialog opening animations.\";\r\n $log.warn(message, element[0]);\r\n }\r\n\r\n captureParentAndFromToElements(options);\r\n configureAria(dialogElement, options);\r\n showBackdrop(scope, element, options);\r\n activateListeners(element, options);\r\n\r\n return dialogPopIn(element, options).then(function() {\r\n lockScreenReader(element, options);\r\n warnDeprecatedActions();\r\n focusOnOpen();\r\n });\r\n\r\n /**\r\n * Check to see if they used the deprecated .md-actions class and log a warning\r\n */\r\n function warnDeprecatedActions() {\r\n if (element[0].querySelector(\".md-actions\")) {\r\n $log.warn(\r\n \"Using a class of md-actions is deprecated, please use .\"\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * For alerts, focus on content... otherwise focus on\r\n * the close button (or equivalent)\r\n */\r\n function focusOnOpen() {\r\n if (options.focusOnOpen) {\r\n var target =\r\n $mdUtil.findFocusTarget(element) ||\r\n findCloseButton() ||\r\n dialogElement;\r\n target.focus();\r\n }\r\n\r\n /**\r\n * If no element with class dialog-close, try to find the last\r\n * button child in md-actions and assume it is a close button.\r\n *\r\n * If we find no actions at all, log a warning to the console.\r\n */\r\n function findCloseButton() {\r\n var closeButton = element[0].querySelector(\".dialog-close\");\r\n\r\n if (!closeButton) {\r\n var actionButtons = element[0].querySelectorAll(\r\n \".md-actions button, md-dialog-actions button\"\r\n );\r\n closeButton = actionButtons[actionButtons.length - 1];\r\n }\r\n\r\n return closeButton;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Remove function for all dialogs\r\n */\r\n function onRemove(scope, element, options) {\r\n options.deactivateListeners();\r\n options.unlockScreenReader();\r\n options.hideBackdrop(options.$destroy);\r\n\r\n // Remove the focus traps that we added earlier for keeping focus within the dialog.\r\n if (topFocusTrap && topFocusTrap.parentNode) {\r\n topFocusTrap.parentNode.removeChild(topFocusTrap);\r\n }\r\n\r\n if (bottomFocusTrap && bottomFocusTrap.parentNode) {\r\n bottomFocusTrap.parentNode.removeChild(bottomFocusTrap);\r\n }\r\n\r\n // For navigation $destroy events, do a quick, non-animated removal,\r\n // but for normal closes (from clicks, etc) animate the removal\r\n return !!options.$destroy\r\n ? detachAndClean()\r\n : animateRemoval().then(detachAndClean);\r\n\r\n /**\r\n * For normal closes, animate the removal.\r\n * For forced closes (like $destroy events), skip the animations\r\n */\r\n function animateRemoval() {\r\n return dialogPopOut(element, options);\r\n }\r\n\r\n /**\r\n * Detach the element\r\n */\r\n function detachAndClean() {\r\n angular\r\n .element($document[0].body)\r\n .removeClass(\"md-dialog-is-showing\");\r\n // Only remove the element, if it's not provided through the contentElement option.\r\n if (!options.contentElement) {\r\n element.remove();\r\n } else {\r\n options.reverseContainerStretch();\r\n options.restoreContentElement();\r\n }\r\n\r\n if (!options.$destroy) options.origin.focus();\r\n }\r\n }\r\n\r\n function detectTheming(options) {\r\n // Only detect the theming, if the developer didn't specify the theme specifically.\r\n if (options.theme) return;\r\n\r\n options.theme = $mdTheming.defaultTheme();\r\n\r\n if (options.targetEvent && options.targetEvent.target) {\r\n var targetEl = angular.element(options.targetEvent.target);\r\n\r\n // Once the user specifies a targetEvent, we will automatically try to find the correct\r\n // nested theme.\r\n options.theme =\r\n (targetEl.controller(\"mdTheme\") || {}).$mdTheme || options.theme;\r\n }\r\n }\r\n\r\n /**\r\n * Installs a content element to the current $$interimElement provider options.\r\n * @returns {Function} Function to restore the content element at its old DOM location.\r\n */\r\n function installContentElement(options) {\r\n var contentEl = options.contentElement;\r\n var restoreFn = null;\r\n\r\n if (angular.isString(contentEl)) {\r\n contentEl = document.querySelector(contentEl);\r\n restoreFn = createRestoreFn(contentEl);\r\n } else {\r\n contentEl = contentEl[0] || contentEl;\r\n\r\n // When the element is visible in the DOM, then we restore it at close of the dialog.\r\n // Otherwise it will be removed from the DOM after close.\r\n if (document.contains(contentEl)) {\r\n restoreFn = createRestoreFn(contentEl);\r\n } else {\r\n restoreFn = function() {\r\n contentEl.parentNode.removeChild(contentEl);\r\n };\r\n }\r\n }\r\n\r\n // Overwrite the options to use the content element.\r\n options.element = angular.element(contentEl);\r\n options.skipCompile = true;\r\n\r\n return restoreFn;\r\n\r\n function createRestoreFn(element) {\r\n var parent = element.parentNode;\r\n var nextSibling = element.nextElementSibling;\r\n\r\n return function() {\r\n if (!nextSibling) {\r\n // When the element didn't had any sibling, then it can be simply appended to the\r\n // parent, because it plays no role, which index it had before.\r\n parent.appendChild(element);\r\n } else {\r\n // When the element had a sibling, which marks the previous position of the element\r\n // in the DOM, we insert it correctly before the sibling, to have the same index as\r\n // before.\r\n parent.insertBefore(element, nextSibling);\r\n }\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Capture originator/trigger/from/to element information (if available)\r\n * and the parent container for the dialog; defaults to the $rootElement\r\n * unless overridden in the options.parent\r\n */\r\n function captureParentAndFromToElements(options) {\r\n options.origin = angular.extend(\r\n {\r\n element: null,\r\n bounds: null,\r\n focus: angular.noop\r\n },\r\n options.origin || {}\r\n );\r\n\r\n options.parent = getDomElement(options.parent, $rootElement);\r\n options.closeTo = getBoundingClientRect(\r\n getDomElement(options.closeTo)\r\n );\r\n options.openFrom = getBoundingClientRect(\r\n getDomElement(options.openFrom)\r\n );\r\n\r\n if (options.targetEvent) {\r\n options.origin = getBoundingClientRect(\r\n options.targetEvent.target,\r\n options.origin\r\n );\r\n }\r\n\r\n /**\r\n * Identify the bounding RECT for the target element\r\n *\r\n */\r\n function getBoundingClientRect(element, orig) {\r\n var source = angular.element(element || {});\r\n if (source && source.length) {\r\n // Compute and save the target element's bounding rect, so that if the\r\n // element is hidden when the dialog closes, we can shrink the dialog\r\n // back to the same position it expanded from.\r\n //\r\n // Checking if the source is a rect object or a DOM element\r\n var bounds = { top: 0, left: 0, height: 0, width: 0 };\r\n var hasFn = angular.isFunction(source[0].getBoundingClientRect);\r\n\r\n return angular.extend(orig || {}, {\r\n element: hasFn ? source : undefined,\r\n bounds: hasFn\r\n ? source[0].getBoundingClientRect()\r\n : angular.extend({}, bounds, source[0]),\r\n focus: angular.bind(source, source.focus)\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * If the specifier is a simple string selector, then query for\r\n * the DOM element.\r\n */\r\n function getDomElement(element, defaultElement) {\r\n if (angular.isString(element)) {\r\n element = $document[0].querySelector(element);\r\n }\r\n\r\n // If we have a reference to a raw dom element, always wrap it in jqLite\r\n return angular.element(element || defaultElement);\r\n }\r\n }\r\n\r\n /**\r\n * Listen for escape keys and outside clicks to auto close\r\n */\r\n function activateListeners(element, options) {\r\n var window = angular.element($window);\r\n var onWindowResize = $mdUtil.debounce(function() {\r\n stretchDialogContainerToViewport(element, options);\r\n }, 60);\r\n\r\n var removeListeners = [];\r\n var smartClose = function() {\r\n // Only 'confirm' dialogs have a cancel button... escape/clickOutside will\r\n // cancel or fallback to hide.\r\n var closeFn =\r\n options.$type == \"alert\" ? $mdDialog.hide : $mdDialog.cancel;\r\n $mdUtil.nextTick(closeFn, true);\r\n };\r\n\r\n if (options.escapeToClose) {\r\n var parentTarget = options.parent;\r\n var keyHandlerFn = function(ev) {\r\n if (ev.keyCode === $mdConstant.KEY_CODE.ESCAPE) {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n\r\n smartClose();\r\n }\r\n };\r\n\r\n // Add keydown listeners\r\n element.on(\"keydown\", keyHandlerFn);\r\n parentTarget.on(\"keydown\", keyHandlerFn);\r\n\r\n // Queue remove listeners function\r\n removeListeners.push(function() {\r\n element.off(\"keydown\", keyHandlerFn);\r\n parentTarget.off(\"keydown\", keyHandlerFn);\r\n });\r\n }\r\n\r\n // Register listener to update dialog on window resize\r\n window.on(\"resize\", onWindowResize);\r\n\r\n removeListeners.push(function() {\r\n window.off(\"resize\", onWindowResize);\r\n });\r\n\r\n if (options.clickOutsideToClose) {\r\n var target = element;\r\n var sourceElem;\r\n\r\n // Keep track of the element on which the mouse originally went down\r\n // so that we can only close the backdrop when the 'click' started on it.\r\n // A simple 'click' handler does not work,\r\n // it sets the target object as the element the mouse went down on.\r\n var mousedownHandler = function(ev) {\r\n sourceElem = ev.target;\r\n };\r\n\r\n // We check if our original element and the target is the backdrop\r\n // because if the original was the backdrop and the target was inside the dialog\r\n // we don't want to dialog to close.\r\n var mouseupHandler = function(ev) {\r\n if (sourceElem === target[0] && ev.target === target[0]) {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n\r\n smartClose();\r\n }\r\n };\r\n\r\n // Add listeners\r\n target.on(\"mousedown\", mousedownHandler);\r\n target.on(\"mouseup\", mouseupHandler);\r\n\r\n // Queue remove listeners function\r\n removeListeners.push(function() {\r\n target.off(\"mousedown\", mousedownHandler);\r\n target.off(\"mouseup\", mouseupHandler);\r\n });\r\n }\r\n\r\n // Attach specific `remove` listener handler\r\n options.deactivateListeners = function() {\r\n removeListeners.forEach(function(removeFn) {\r\n removeFn();\r\n });\r\n options.deactivateListeners = null;\r\n };\r\n }\r\n\r\n /**\r\n * Show modal backdrop element...\r\n */\r\n function showBackdrop(scope, element, options) {\r\n if (options.disableParentScroll) {\r\n // !! DO this before creating the backdrop; since disableScrollAround()\r\n // configures the scroll offset; which is used by mdBackDrop postLink()\r\n options.restoreScroll = $mdUtil.disableScrollAround(\r\n element,\r\n options.parent\r\n );\r\n }\r\n\r\n if (options.hasBackdrop) {\r\n options.backdrop = $mdUtil.createBackdrop(\r\n scope,\r\n \"md-dialog-backdrop md-opaque\"\r\n );\r\n $animate.enter(options.backdrop, options.parent);\r\n }\r\n\r\n /**\r\n * Hide modal backdrop element...\r\n */\r\n options.hideBackdrop = function hideBackdrop($destroy) {\r\n if (options.backdrop) {\r\n if (!!$destroy) options.backdrop.remove();\r\n else $animate.leave(options.backdrop);\r\n }\r\n\r\n if (options.disableParentScroll) {\r\n options.restoreScroll();\r\n delete options.restoreScroll;\r\n }\r\n\r\n options.hideBackdrop = null;\r\n };\r\n }\r\n\r\n /**\r\n * Inject ARIA-specific attributes appropriate for Dialogs\r\n */\r\n function configureAria(element, options) {\r\n var role = options.$type === \"alert\" ? \"alertdialog\" : \"dialog\";\r\n var dialogContent = element.find(\"md-dialog-content\");\r\n var existingDialogId = element.attr(\"id\");\r\n var dialogContentId =\r\n \"dialogContent_\" + (existingDialogId || $mdUtil.nextUid());\r\n\r\n element.attr({\r\n role: role,\r\n tabIndex: \"-1\"\r\n });\r\n\r\n if (dialogContent.length === 0) {\r\n dialogContent = element;\r\n // If the dialog element already had an ID, don't clobber it.\r\n if (existingDialogId) {\r\n dialogContentId = existingDialogId;\r\n }\r\n }\r\n\r\n dialogContent.attr(\"id\", dialogContentId);\r\n element.attr(\"aria-describedby\", dialogContentId);\r\n\r\n if (options.ariaLabel) {\r\n $mdAria.expect(element, \"aria-label\", options.ariaLabel);\r\n } else {\r\n $mdAria.expectAsync(element, \"aria-label\", function() {\r\n var words = dialogContent.text().split(/\\s+/);\r\n if (words.length > 3) words = words.slice(0, 3).concat(\"...\");\r\n return words.join(\" \");\r\n });\r\n }\r\n\r\n // Set up elements before and after the dialog content to capture focus and\r\n // redirect back into the dialog.\r\n topFocusTrap = document.createElement(\"div\");\r\n topFocusTrap.classList.add(\"md-dialog-focus-trap\");\r\n topFocusTrap.tabIndex = 0;\r\n\r\n bottomFocusTrap = topFocusTrap.cloneNode(false);\r\n\r\n // When focus is about to move out of the dialog, we want to intercept it and redirect it\r\n // back to the dialog element.\r\n var focusHandler = function() {\r\n element.focus();\r\n };\r\n topFocusTrap.addEventListener(\"focus\", focusHandler);\r\n bottomFocusTrap.addEventListener(\"focus\", focusHandler);\r\n\r\n // The top focus trap inserted immeidately before the md-dialog element (as a sibling).\r\n // The bottom focus trap is inserted at the very end of the md-dialog element (as a child).\r\n element[0].parentNode.insertBefore(topFocusTrap, element[0]);\r\n element.after(bottomFocusTrap);\r\n }\r\n\r\n /**\r\n * Prevents screen reader interaction behind modal window\r\n * on swipe interfaces\r\n */\r\n function lockScreenReader(element, options) {\r\n var isHidden = true;\r\n\r\n // get raw DOM node\r\n walkDOM(element[0]);\r\n\r\n options.unlockScreenReader = function() {\r\n isHidden = false;\r\n walkDOM(element[0]);\r\n\r\n options.unlockScreenReader = null;\r\n };\r\n\r\n /**\r\n * Walk DOM to apply or remove aria-hidden on sibling nodes\r\n * and parent sibling nodes\r\n *\r\n */\r\n function walkDOM(element) {\r\n while (element.parentNode) {\r\n if (element === document.body) {\r\n return;\r\n }\r\n var children = element.parentNode.children;\r\n for (var i = 0; i < children.length; i++) {\r\n // skip over child if it is an ascendant of the dialog\r\n // or a script or style tag\r\n if (\r\n element !== children[i] &&\r\n !isNodeOneOf(children[i], [\"SCRIPT\", \"STYLE\"])\r\n ) {\r\n children[i].setAttribute(\"aria-hidden\", isHidden);\r\n }\r\n }\r\n\r\n walkDOM((element = element.parentNode));\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Ensure the dialog container fill-stretches to the viewport\r\n */\r\n function stretchDialogContainerToViewport(container, options) {\r\n var isFixed =\r\n $window.getComputedStyle($document[0].body).position == \"fixed\";\r\n var backdrop = options.backdrop\r\n ? $window.getComputedStyle(options.backdrop[0])\r\n : null;\r\n var height = backdrop\r\n ? Math.min(\r\n $document[0].body.clientHeight,\r\n Math.ceil(Math.abs(parseInt(backdrop.height, 10)))\r\n )\r\n : 0;\r\n\r\n var previousStyles = {\r\n top: container.css(\"top\"),\r\n height: container.css(\"height\")\r\n };\r\n\r\n container.css({\r\n top: (isFixed ? $mdUtil.scrollTop(options.parent) : 0) + \"px\",\r\n height: height ? height + \"px\" : \"100%\"\r\n });\r\n\r\n return function() {\r\n // Reverts the modified styles back to the previous values.\r\n // This is needed for contentElements, which should have the same styles after close\r\n // as before.\r\n container.css(previousStyles);\r\n };\r\n }\r\n\r\n /**\r\n * Dialog open and pop-in animation\r\n */\r\n function dialogPopIn(container, options) {\r\n // Add the `md-dialog-container` to the DOM\r\n options.parent.append(container);\r\n options.reverseContainerStretch = stretchDialogContainerToViewport(\r\n container,\r\n options\r\n );\r\n\r\n var dialogEl = container.find(\"md-dialog\");\r\n var animator = $mdUtil.dom.animator;\r\n var buildTranslateToOrigin = animator.calculateZoomToOrigin;\r\n var translateOptions = {\r\n transitionInClass: \"md-transition-in\",\r\n transitionOutClass: \"md-transition-out\"\r\n };\r\n var from = animator.toTransformCss(\r\n buildTranslateToOrigin(dialogEl, options.openFrom || options.origin)\r\n );\r\n var to = animator.toTransformCss(\"\"); // defaults to center display (or parent or $rootElement)\r\n\r\n dialogEl.toggleClass(\"md-dialog-fullscreen\", !!options.fullscreen);\r\n\r\n return animator\r\n .translate3d(dialogEl, from, to, translateOptions)\r\n .then(function(animateReversal) {\r\n // Build a reversal translate function synced to this translation...\r\n options.reverseAnimate = function() {\r\n delete options.reverseAnimate;\r\n\r\n if (options.closeTo) {\r\n // Using the opposite classes to create a close animation to the closeTo element\r\n translateOptions = {\r\n transitionInClass: \"md-transition-out\",\r\n transitionOutClass: \"md-transition-in\"\r\n };\r\n from = to;\r\n to = animator.toTransformCss(\r\n buildTranslateToOrigin(dialogEl, options.closeTo)\r\n );\r\n\r\n return animator.translate3d(\r\n dialogEl,\r\n from,\r\n to,\r\n translateOptions\r\n );\r\n }\r\n\r\n return animateReversal(\r\n (to = animator.toTransformCss(\r\n // in case the origin element has moved or is hidden,\r\n // let's recalculate the translateCSS\r\n buildTranslateToOrigin(dialogEl, options.origin)\r\n ))\r\n );\r\n };\r\n\r\n // Function to revert the generated animation styles on the dialog element.\r\n // Useful when using a contentElement instead of a template.\r\n options.clearAnimate = function() {\r\n delete options.clearAnimate;\r\n\r\n // Remove the transition classes, added from $animateCSS, since those can't be removed\r\n // by reversely running the animator.\r\n dialogEl.removeClass(\r\n [\r\n translateOptions.transitionOutClass,\r\n translateOptions.transitionInClass\r\n ].join(\" \")\r\n );\r\n\r\n // Run the animation reversely to remove the previous added animation styles.\r\n return animator.translate3d(\r\n dialogEl,\r\n to,\r\n animator.toTransformCss(\"\"),\r\n {}\r\n );\r\n };\r\n\r\n return true;\r\n });\r\n }\r\n\r\n /**\r\n * Dialog close and pop-out animation\r\n */\r\n function dialogPopOut(container, options) {\r\n return options.reverseAnimate().then(function() {\r\n if (options.contentElement) {\r\n // When we use a contentElement, we want the element to be the same as before.\r\n // That means, that we have to clear all the animation properties, like transform.\r\n options.clearAnimate();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Utility function to filter out raw DOM nodes\r\n */\r\n function isNodeOneOf(elem, nodeTypeArray) {\r\n if (nodeTypeArray.indexOf(elem.nodeName) !== -1) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.divider\r\n * @description Divider module!\r\n */\r\n MdDividerDirective.$inject = [\"$mdTheming\"];\r\n angular\r\n .module(\"material.components.divider\", [\"material.core\"])\r\n .directive(\"mdDivider\", MdDividerDirective);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdDivider\r\n * @module material.components.divider\r\n * @restrict E\r\n *\r\n * @description\r\n * Dividers group and separate content within lists and page layouts using strong visual and spatial distinctions. This divider is a thin rule, lightweight enough to not distract the user from content.\r\n *\r\n * @param {boolean=} md-inset Add this attribute to activate the inset divider style.\r\n * @usage\r\n * \r\n * \r\n *\r\n * \r\n * \r\n *\r\n */\r\n function MdDividerDirective($mdTheming) {\r\n return {\r\n restrict: \"E\",\r\n link: $mdTheming\r\n };\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.fabActions\r\n */\r\n MdFabActionsDirective.$inject = [\"$mdUtil\"];\r\n angular\r\n .module(\"material.components.fabActions\", [\"material.core\"])\r\n .directive(\"mdFabActions\", MdFabActionsDirective);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdFabActions\r\n * @module material.components.fabActions\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * The `` directive is used inside of a `` or\r\n * `` directive to mark an element (or elements) as the actions and setup the\r\n * proper event listeners.\r\n *\r\n * @usage\r\n * See the `` or `` directives for example usage.\r\n */\r\n function MdFabActionsDirective($mdUtil) {\r\n return {\r\n restrict: \"E\",\r\n\r\n require: [\"^?mdFabSpeedDial\", \"^?mdFabToolbar\"],\r\n\r\n compile: function(element, attributes) {\r\n var children = element.children();\r\n\r\n var hasNgRepeat = $mdUtil\r\n .prefixer()\r\n .hasAttribute(children, \"ng-repeat\");\r\n\r\n // Support both ng-repeat and static content\r\n if (hasNgRepeat) {\r\n children.addClass(\"md-fab-action-item\");\r\n } else {\r\n // Wrap every child in a new div and add a class that we can scale/fling independently\r\n children.wrap('
');\r\n }\r\n }\r\n };\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n MdFabController.$inject = [\r\n \"$scope\",\r\n \"$element\",\r\n \"$animate\",\r\n \"$mdUtil\",\r\n \"$mdConstant\",\r\n \"$timeout\"\r\n ];\r\n angular\r\n .module(\"material.components.fabShared\", [\"material.core\"])\r\n .controller(\"MdFabController\", MdFabController);\r\n\r\n function MdFabController(\r\n $scope,\r\n $element,\r\n $animate,\r\n $mdUtil,\r\n $mdConstant,\r\n $timeout\r\n ) {\r\n var vm = this;\r\n\r\n // NOTE: We use async eval(s) below to avoid conflicts with any existing digest loops\r\n\r\n vm.open = function() {\r\n $scope.$evalAsync(\"vm.isOpen = true\");\r\n };\r\n\r\n vm.close = function() {\r\n // Async eval to avoid conflicts with existing digest loops\r\n $scope.$evalAsync(\"vm.isOpen = false\");\r\n\r\n // Focus the trigger when the element closes so users can still tab to the next item\r\n $element.find(\"md-fab-trigger\")[0].focus();\r\n };\r\n\r\n // Toggle the open/close state when the trigger is clicked\r\n vm.toggle = function() {\r\n $scope.$evalAsync(\"vm.isOpen = !vm.isOpen\");\r\n };\r\n\r\n setupDefaults();\r\n setupListeners();\r\n setupWatchers();\r\n\r\n var initialAnimationAttempts = 0;\r\n fireInitialAnimations();\r\n\r\n function setupDefaults() {\r\n // Set the default direction to 'down' if none is specified\r\n vm.direction = vm.direction || \"down\";\r\n\r\n // Set the default to be closed\r\n vm.isOpen = vm.isOpen || false;\r\n\r\n // Start the keyboard interaction at the first action\r\n resetActionIndex();\r\n\r\n // Add an animations waiting class so we know not to run\r\n $element.addClass(\"md-animations-waiting\");\r\n }\r\n\r\n function setupListeners() {\r\n var eventTypes = [\"click\", \"focusin\", \"focusout\"];\r\n\r\n // Add our listeners\r\n angular.forEach(eventTypes, function(eventType) {\r\n $element.on(eventType, parseEvents);\r\n });\r\n\r\n // Remove our listeners when destroyed\r\n $scope.$on(\"$destroy\", function() {\r\n angular.forEach(eventTypes, function(eventType) {\r\n $element.off(eventType, parseEvents);\r\n });\r\n\r\n // remove any attached keyboard handlers in case element is removed while\r\n // speed dial is open\r\n disableKeyboard();\r\n });\r\n }\r\n\r\n var closeTimeout;\r\n function parseEvents(event) {\r\n // If the event is a click, just handle it\r\n if (event.type == \"click\") {\r\n handleItemClick(event);\r\n }\r\n\r\n // If we focusout, set a timeout to close the element\r\n if (event.type == \"focusout\" && !closeTimeout) {\r\n closeTimeout = $timeout(\r\n function() {\r\n vm.close();\r\n },\r\n 100,\r\n false\r\n );\r\n }\r\n\r\n // If we see a focusin and there is a timeout about to run, cancel it so we stay open\r\n if (event.type == \"focusin\" && closeTimeout) {\r\n $timeout.cancel(closeTimeout);\r\n closeTimeout = null;\r\n }\r\n }\r\n\r\n function resetActionIndex() {\r\n vm.currentActionIndex = -1;\r\n }\r\n\r\n function setupWatchers() {\r\n // Watch for changes to the direction and update classes/attributes\r\n $scope.$watch(\"vm.direction\", function(newDir, oldDir) {\r\n // Add the appropriate classes so we can target the direction in the CSS\r\n $animate.removeClass($element, \"md-\" + oldDir);\r\n $animate.addClass($element, \"md-\" + newDir);\r\n\r\n // Reset the action index since it may have changed\r\n resetActionIndex();\r\n });\r\n\r\n var trigger, actions;\r\n\r\n // Watch for changes to md-open\r\n $scope.$watch(\"vm.isOpen\", function(isOpen) {\r\n // Reset the action index since it may have changed\r\n resetActionIndex();\r\n\r\n // We can't get the trigger/actions outside of the watch because the component hasn't been\r\n // linked yet, so we wait until the first watch fires to cache them.\r\n if (!trigger || !actions) {\r\n trigger = getTriggerElement();\r\n actions = getActionsElement();\r\n }\r\n\r\n if (isOpen) {\r\n enableKeyboard();\r\n } else {\r\n disableKeyboard();\r\n }\r\n\r\n var toAdd = isOpen ? \"md-is-open\" : \"\";\r\n var toRemove = isOpen ? \"\" : \"md-is-open\";\r\n\r\n // Set the proper ARIA attributes\r\n trigger.attr(\"aria-haspopup\", true);\r\n trigger.attr(\"aria-expanded\", isOpen);\r\n actions.attr(\"aria-hidden\", !isOpen);\r\n\r\n // Animate the CSS classes\r\n $animate.setClass($element, toAdd, toRemove);\r\n });\r\n }\r\n\r\n function fireInitialAnimations() {\r\n // If the element is actually visible on the screen\r\n if ($element[0].scrollHeight > 0) {\r\n // Fire our animation\r\n $animate\r\n .addClass($element, \"_md-animations-ready\")\r\n .then(function() {\r\n // Remove the waiting class\r\n $element.removeClass(\"md-animations-waiting\");\r\n });\r\n }\r\n\r\n // Otherwise, try for up to 1 second before giving up\r\n else if (initialAnimationAttempts < 10) {\r\n $timeout(fireInitialAnimations, 100);\r\n\r\n // Increment our counter\r\n initialAnimationAttempts = initialAnimationAttempts + 1;\r\n }\r\n }\r\n\r\n function enableKeyboard() {\r\n $element.on(\"keydown\", keyPressed);\r\n\r\n // On the next tick, setup a check for outside clicks; we do this on the next tick to avoid\r\n // clicks/touches that result in the isOpen attribute changing (e.g. a bound radio button)\r\n $mdUtil.nextTick(function() {\r\n angular\r\n .element(document)\r\n .on(\"click touchend\", checkForOutsideClick);\r\n });\r\n\r\n // TODO: On desktop, we should be able to reset the indexes so you cannot tab through, but\r\n // this breaks accessibility, especially on mobile, since you have no arrow keys to press\r\n //resetActionTabIndexes();\r\n }\r\n\r\n function disableKeyboard() {\r\n $element.off(\"keydown\", keyPressed);\r\n angular.element(document).off(\"click touchend\", checkForOutsideClick);\r\n }\r\n\r\n function checkForOutsideClick(event) {\r\n if (event.target) {\r\n var closestTrigger = $mdUtil.getClosest(\r\n event.target,\r\n \"md-fab-trigger\"\r\n );\r\n var closestActions = $mdUtil.getClosest(\r\n event.target,\r\n \"md-fab-actions\"\r\n );\r\n\r\n if (!closestTrigger && !closestActions) {\r\n vm.close();\r\n }\r\n }\r\n }\r\n\r\n function keyPressed(event) {\r\n switch (event.which) {\r\n case $mdConstant.KEY_CODE.ESCAPE:\r\n vm.close();\r\n event.preventDefault();\r\n return false;\r\n case $mdConstant.KEY_CODE.LEFT_ARROW:\r\n doKeyLeft(event);\r\n return false;\r\n case $mdConstant.KEY_CODE.UP_ARROW:\r\n doKeyUp(event);\r\n return false;\r\n case $mdConstant.KEY_CODE.RIGHT_ARROW:\r\n doKeyRight(event);\r\n return false;\r\n case $mdConstant.KEY_CODE.DOWN_ARROW:\r\n doKeyDown(event);\r\n return false;\r\n }\r\n }\r\n\r\n function doActionPrev(event) {\r\n focusAction(event, -1);\r\n }\r\n\r\n function doActionNext(event) {\r\n focusAction(event, 1);\r\n }\r\n\r\n function focusAction(event, direction) {\r\n var actions = resetActionTabIndexes();\r\n\r\n // Increment/decrement the counter with restrictions\r\n vm.currentActionIndex = vm.currentActionIndex + direction;\r\n vm.currentActionIndex = Math.min(\r\n actions.length - 1,\r\n vm.currentActionIndex\r\n );\r\n vm.currentActionIndex = Math.max(0, vm.currentActionIndex);\r\n\r\n // Focus the element\r\n var focusElement = angular\r\n .element(actions[vm.currentActionIndex])\r\n .children()[0];\r\n angular.element(focusElement).attr(\"tabindex\", 0);\r\n focusElement.focus();\r\n\r\n // Make sure the event doesn't bubble and cause something else\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n\r\n function resetActionTabIndexes() {\r\n // Grab all of the actions\r\n var actions = getActionsElement()[0].querySelectorAll(\r\n \".md-fab-action-item\"\r\n );\r\n\r\n // Disable all other actions for tabbing\r\n angular.forEach(actions, function(action) {\r\n angular\r\n .element(angular.element(action).children()[0])\r\n .attr(\"tabindex\", -1);\r\n });\r\n\r\n return actions;\r\n }\r\n\r\n function doKeyLeft(event) {\r\n if (vm.direction === \"left\") {\r\n doActionNext(event);\r\n } else {\r\n doActionPrev(event);\r\n }\r\n }\r\n\r\n function doKeyUp(event) {\r\n if (vm.direction === \"down\") {\r\n doActionPrev(event);\r\n } else {\r\n doActionNext(event);\r\n }\r\n }\r\n\r\n function doKeyRight(event) {\r\n if (vm.direction === \"left\") {\r\n doActionPrev(event);\r\n } else {\r\n doActionNext(event);\r\n }\r\n }\r\n\r\n function doKeyDown(event) {\r\n if (vm.direction === \"up\") {\r\n doActionPrev(event);\r\n } else {\r\n doActionNext(event);\r\n }\r\n }\r\n\r\n function isTrigger(element) {\r\n return $mdUtil.getClosest(element, \"md-fab-trigger\");\r\n }\r\n\r\n function isAction(element) {\r\n return $mdUtil.getClosest(element, \"md-fab-actions\");\r\n }\r\n\r\n function handleItemClick(event) {\r\n if (isTrigger(event.target)) {\r\n vm.toggle();\r\n }\r\n\r\n if (isAction(event.target)) {\r\n vm.close();\r\n }\r\n }\r\n\r\n function getTriggerElement() {\r\n return $element.find(\"md-fab-trigger\");\r\n }\r\n\r\n function getActionsElement() {\r\n return $element.find(\"md-fab-actions\");\r\n }\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * The duration of the CSS animation in milliseconds.\r\n *\r\n * @type {number}\r\n */\r\n MdFabSpeedDialFlingAnimation.$inject = [\"$timeout\"];\r\n MdFabSpeedDialScaleAnimation.$inject = [\"$timeout\"];\r\n var cssAnimationDuration = 300;\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.fabSpeedDial\r\n */\r\n angular\r\n // Declare our module\r\n .module(\"material.components.fabSpeedDial\", [\r\n \"material.core\",\r\n \"material.components.fabShared\",\r\n \"material.components.fabActions\"\r\n ])\r\n\r\n // Register our directive\r\n .directive(\"mdFabSpeedDial\", MdFabSpeedDialDirective)\r\n\r\n // Register our custom animations\r\n .animation(\".md-fling\", MdFabSpeedDialFlingAnimation)\r\n .animation(\".md-scale\", MdFabSpeedDialScaleAnimation)\r\n\r\n // Register a service for each animation so that we can easily inject them into unit tests\r\n .service(\"mdFabSpeedDialFlingAnimation\", MdFabSpeedDialFlingAnimation)\r\n .service(\"mdFabSpeedDialScaleAnimation\", MdFabSpeedDialScaleAnimation);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdFabSpeedDial\r\n * @module material.components.fabSpeedDial\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * The `` directive is used to present a series of popup elements (usually\r\n * ``s) for quick access to common actions.\r\n *\r\n * There are currently two animations available by applying one of the following classes to\r\n * the component:\r\n *\r\n * - `md-fling` - The speed dial items appear from underneath the trigger and move into their\r\n * appropriate positions.\r\n * - `md-scale` - The speed dial items appear in their proper places by scaling from 0% to 100%.\r\n *\r\n * You may also easily position the trigger by applying one one of the following classes to the\r\n * `` element:\r\n * - `md-fab-top-left`\r\n * - `md-fab-top-right`\r\n * - `md-fab-bottom-left`\r\n * - `md-fab-bottom-right`\r\n *\r\n * These CSS classes use `position: absolute`, so you need to ensure that the container element\r\n * also uses `position: absolute` or `position: relative` in order for them to work.\r\n *\r\n * Additionally, you may use the standard `ng-mouseenter` and `ng-mouseleave` directives to\r\n * open or close the speed dial. However, if you wish to allow users to hover over the empty\r\n * space where the actions will appear, you must also add the `md-hover-full` class to the speed\r\n * dial element. Without this, the hover effect will only occur on top of the trigger.\r\n *\r\n * See the demos for more information.\r\n *\r\n * ## Troubleshooting\r\n *\r\n * If your speed dial shows the closing animation upon launch, you may need to use `ng-cloak` on\r\n * the parent container to ensure that it is only visible once ready. We have plans to remove this\r\n * necessity in the future.\r\n *\r\n * @usage\r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * \r\n * \r\n * \r\n * \r\n *\r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * @param {string} md-direction From which direction you would like the speed dial to appear\r\n * relative to the trigger element.\r\n * @param {expression=} md-open Programmatically control whether or not the speed-dial is visible.\r\n */\r\n function MdFabSpeedDialDirective() {\r\n return {\r\n restrict: \"E\",\r\n\r\n scope: {\r\n direction: \"@?mdDirection\",\r\n isOpen: \"=?mdOpen\"\r\n },\r\n\r\n bindToController: true,\r\n controller: \"MdFabController\",\r\n controllerAs: \"vm\",\r\n\r\n link: FabSpeedDialLink\r\n };\r\n\r\n function FabSpeedDialLink(scope, element) {\r\n // Prepend an element to hold our CSS variables so we can use them in the animations below\r\n element.prepend('
');\r\n }\r\n }\r\n\r\n function MdFabSpeedDialFlingAnimation($timeout) {\r\n function delayDone(done) {\r\n $timeout(done, cssAnimationDuration, false);\r\n }\r\n\r\n function runAnimation(element) {\r\n // Don't run if we are still waiting and we are not ready\r\n if (\r\n element.hasClass(\"md-animations-waiting\") &&\r\n !element.hasClass(\"_md-animations-ready\")\r\n ) {\r\n return;\r\n }\r\n\r\n var el = element[0];\r\n var ctrl = element.controller(\"mdFabSpeedDial\");\r\n var items = el.querySelectorAll(\".md-fab-action-item\");\r\n\r\n // Grab our trigger element\r\n var triggerElement = el.querySelector(\"md-fab-trigger\");\r\n\r\n // Grab our element which stores CSS variables\r\n var variablesElement = el.querySelector(\"._md-css-variables\");\r\n\r\n // Setup JS variables based on our CSS variables\r\n var startZIndex = parseInt(\r\n window.getComputedStyle(variablesElement).zIndex\r\n );\r\n\r\n // Always reset the items to their natural position/state\r\n angular.forEach(items, function(item, index) {\r\n var styles = item.style;\r\n\r\n styles.transform = styles.webkitTransform = \"\";\r\n styles.transitionDelay = \"\";\r\n styles.opacity = 1;\r\n\r\n // Make the items closest to the trigger have the highest z-index\r\n styles.zIndex = items.length - index + startZIndex;\r\n });\r\n\r\n // Set the trigger to be above all of the actions so they disappear behind it.\r\n triggerElement.style.zIndex = startZIndex + items.length + 1;\r\n\r\n // If the control is closed, hide the items behind the trigger\r\n if (!ctrl.isOpen) {\r\n angular.forEach(items, function(item, index) {\r\n var newPosition, axis;\r\n var styles = item.style;\r\n\r\n // Make sure to account for differences in the dimensions of the trigger verses the items\r\n // so that we can properly center everything; this helps hide the item's shadows behind\r\n // the trigger.\r\n var triggerItemHeightOffset =\r\n (triggerElement.clientHeight - item.clientHeight) / 2;\r\n var triggerItemWidthOffset =\r\n (triggerElement.clientWidth - item.clientWidth) / 2;\r\n\r\n switch (ctrl.direction) {\r\n case \"up\":\r\n newPosition =\r\n item.scrollHeight * (index + 1) + triggerItemHeightOffset;\r\n axis = \"Y\";\r\n break;\r\n case \"down\":\r\n newPosition = -(\r\n item.scrollHeight * (index + 1) +\r\n triggerItemHeightOffset\r\n );\r\n axis = \"Y\";\r\n break;\r\n case \"left\":\r\n newPosition =\r\n item.scrollWidth * (index + 1) + triggerItemWidthOffset;\r\n axis = \"X\";\r\n break;\r\n case \"right\":\r\n newPosition = -(\r\n item.scrollWidth * (index + 1) +\r\n triggerItemWidthOffset\r\n );\r\n axis = \"X\";\r\n break;\r\n }\r\n\r\n var newTranslate = \"translate\" + axis + \"(\" + newPosition + \"px)\";\r\n\r\n styles.transform = styles.webkitTransform = newTranslate;\r\n });\r\n }\r\n }\r\n\r\n return {\r\n addClass: function(element, className, done) {\r\n if (element.hasClass(\"md-fling\")) {\r\n runAnimation(element);\r\n delayDone(done);\r\n } else {\r\n done();\r\n }\r\n },\r\n removeClass: function(element, className, done) {\r\n runAnimation(element);\r\n delayDone(done);\r\n }\r\n };\r\n }\r\n\r\n function MdFabSpeedDialScaleAnimation($timeout) {\r\n function delayDone(done) {\r\n $timeout(done, cssAnimationDuration, false);\r\n }\r\n\r\n var delay = 65;\r\n\r\n function runAnimation(element) {\r\n var el = element[0];\r\n var ctrl = element.controller(\"mdFabSpeedDial\");\r\n var items = el.querySelectorAll(\".md-fab-action-item\");\r\n\r\n // Grab our element which stores CSS variables\r\n var variablesElement = el.querySelector(\"._md-css-variables\");\r\n\r\n // Setup JS variables based on our CSS variables\r\n var startZIndex = parseInt(\r\n window.getComputedStyle(variablesElement).zIndex\r\n );\r\n\r\n // Always reset the items to their natural position/state\r\n angular.forEach(items, function(item, index) {\r\n var styles = item.style,\r\n offsetDelay = index * delay;\r\n\r\n styles.opacity = ctrl.isOpen ? 1 : 0;\r\n styles.transform = styles.webkitTransform = ctrl.isOpen\r\n ? \"scale(1)\"\r\n : \"scale(0)\";\r\n styles.transitionDelay =\r\n (ctrl.isOpen ? offsetDelay : items.length - offsetDelay) + \"ms\";\r\n\r\n // Make the items closest to the trigger have the highest z-index\r\n styles.zIndex = items.length - index + startZIndex;\r\n });\r\n }\r\n\r\n return {\r\n addClass: function(element, className, done) {\r\n runAnimation(element);\r\n delayDone(done);\r\n },\r\n\r\n removeClass: function(element, className, done) {\r\n runAnimation(element);\r\n delayDone(done);\r\n }\r\n };\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.fabToolbar\r\n */\r\n angular\r\n // Declare our module\r\n .module(\"material.components.fabToolbar\", [\r\n \"material.core\",\r\n \"material.components.fabShared\",\r\n \"material.components.fabActions\"\r\n ])\r\n\r\n // Register our directive\r\n .directive(\"mdFabToolbar\", MdFabToolbarDirective)\r\n\r\n // Register our custom animations\r\n .animation(\".md-fab-toolbar\", MdFabToolbarAnimation)\r\n\r\n // Register a service for the animation so that we can easily inject it into unit tests\r\n .service(\"mdFabToolbarAnimation\", MdFabToolbarAnimation);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdFabToolbar\r\n * @module material.components.fabToolbar\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n *\r\n * The `` directive is used present a toolbar of elements (usually ``s)\r\n * for quick access to common actions when a floating action button is activated (via click or\r\n * keyboard navigation).\r\n *\r\n * You may also easily position the trigger by applying one one of the following classes to the\r\n * `` element:\r\n * - `md-fab-top-left`\r\n * - `md-fab-top-right`\r\n * - `md-fab-bottom-left`\r\n * - `md-fab-bottom-right`\r\n *\r\n * These CSS classes use `position: absolute`, so you need to ensure that the container element\r\n * also uses `position: absolute` or `position: relative` in order for them to work.\r\n *\r\n * @usage\r\n *\r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * @param {string} md-direction From which direction you would like the toolbar items to appear\r\n * relative to the trigger element. Supports `left` and `right` directions.\r\n * @param {expression=} md-open Programmatically control whether or not the toolbar is visible.\r\n */\r\n function MdFabToolbarDirective() {\r\n return {\r\n restrict: \"E\",\r\n transclude: true,\r\n template:\r\n '
' +\r\n '
' +\r\n \"
\",\r\n\r\n scope: {\r\n direction: \"@?mdDirection\",\r\n isOpen: \"=?mdOpen\"\r\n },\r\n\r\n bindToController: true,\r\n controller: \"MdFabController\",\r\n controllerAs: \"vm\",\r\n\r\n link: link\r\n };\r\n\r\n function link(scope, element, attributes) {\r\n // Add the base class for animations\r\n element.addClass(\"md-fab-toolbar\");\r\n\r\n // Prepend the background element to the trigger's button\r\n element\r\n .find(\"md-fab-trigger\")\r\n .find(\"button\")\r\n .prepend('
');\r\n }\r\n }\r\n\r\n function MdFabToolbarAnimation() {\r\n function runAnimation(element, className, done) {\r\n // If no className was specified, don't do anything\r\n if (!className) {\r\n return;\r\n }\r\n\r\n var el = element[0];\r\n var ctrl = element.controller(\"mdFabToolbar\");\r\n\r\n // Grab the relevant child elements\r\n var backgroundElement = el.querySelector(\r\n \".md-fab-toolbar-background\"\r\n );\r\n var triggerElement = el.querySelector(\"md-fab-trigger button\");\r\n var toolbarElement = el.querySelector(\"md-toolbar\");\r\n var iconElement = el.querySelector(\"md-fab-trigger button md-icon\");\r\n var actions = element.find(\"md-fab-actions\").children();\r\n\r\n // If we have both elements, use them to position the new background\r\n if (triggerElement && backgroundElement) {\r\n // Get our variables\r\n var color = window\r\n .getComputedStyle(triggerElement)\r\n .getPropertyValue(\"background-color\");\r\n var width = el.offsetWidth;\r\n var height = el.offsetHeight;\r\n\r\n // Make it twice as big as it should be since we scale from the center\r\n var scale = 2 * (width / triggerElement.offsetWidth);\r\n\r\n // Set some basic styles no matter what animation we're doing\r\n backgroundElement.style.backgroundColor = color;\r\n backgroundElement.style.borderRadius = width + \"px\";\r\n\r\n // If we're open\r\n if (ctrl.isOpen) {\r\n // Turn on toolbar pointer events when closed\r\n toolbarElement.style.pointerEvents = \"inherit\";\r\n\r\n backgroundElement.style.width = triggerElement.offsetWidth + \"px\";\r\n backgroundElement.style.height =\r\n triggerElement.offsetHeight + \"px\";\r\n backgroundElement.style.transform = \"scale(\" + scale + \")\";\r\n\r\n // Set the next close animation to have the proper delays\r\n backgroundElement.style.transitionDelay = \"0ms\";\r\n iconElement && (iconElement.style.transitionDelay = \".3s\");\r\n\r\n // Apply a transition delay to actions\r\n angular.forEach(actions, function(action, index) {\r\n action.style.transitionDelay =\r\n (actions.length - index) * 25 + \"ms\";\r\n });\r\n } else {\r\n // Turn off toolbar pointer events when closed\r\n toolbarElement.style.pointerEvents = \"none\";\r\n\r\n // Scale it back down to the trigger's size\r\n backgroundElement.style.transform = \"scale(1)\";\r\n\r\n // Reset the position\r\n backgroundElement.style.top = \"0\";\r\n\r\n if (element.hasClass(\"md-right\")) {\r\n backgroundElement.style.left = \"0\";\r\n backgroundElement.style.right = null;\r\n }\r\n\r\n if (element.hasClass(\"md-left\")) {\r\n backgroundElement.style.right = \"0\";\r\n backgroundElement.style.left = null;\r\n }\r\n\r\n // Set the next open animation to have the proper delays\r\n backgroundElement.style.transitionDelay = \"200ms\";\r\n iconElement && (iconElement.style.transitionDelay = \"0ms\");\r\n\r\n // Apply a transition delay to actions\r\n angular.forEach(actions, function(action, index) {\r\n action.style.transitionDelay = 200 + index * 25 + \"ms\";\r\n });\r\n }\r\n }\r\n }\r\n\r\n return {\r\n addClass: function(element, className, done) {\r\n runAnimation(element, className, done);\r\n done();\r\n },\r\n\r\n removeClass: function(element, className, done) {\r\n runAnimation(element, className, done);\r\n done();\r\n }\r\n };\r\n }\r\n })();\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.gridList\r\n */\r\n GridListController.$inject = [\"$mdUtil\"];\r\n GridLayoutFactory.$inject = [\"$mdUtil\"];\r\n GridListDirective.$inject = [\r\n \"$interpolate\",\r\n \"$mdConstant\",\r\n \"$mdGridLayout\",\r\n \"$mdMedia\"\r\n ];\r\n GridTileDirective.$inject = [\"$mdMedia\"];\r\n angular\r\n .module(\"material.components.gridList\", [\"material.core\"])\r\n .directive(\"mdGridList\", GridListDirective)\r\n .directive(\"mdGridTile\", GridTileDirective)\r\n .directive(\"mdGridTileFooter\", GridTileCaptionDirective)\r\n .directive(\"mdGridTileHeader\", GridTileCaptionDirective)\r\n .factory(\"$mdGridLayout\", GridLayoutFactory);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdGridList\r\n * @module material.components.gridList\r\n * @restrict E\r\n * @description\r\n * Grid lists are an alternative to standard list views. Grid lists are distinct\r\n * from grids used for layouts and other visual presentations.\r\n *\r\n * A grid list is best suited to presenting a homogenous data type, typically\r\n * images, and is optimized for visual comprehension and differentiating between\r\n * like data types.\r\n *\r\n * A grid list is a continuous element consisting of tessellated, regular\r\n * subdivisions called cells that contain tiles (`md-grid-tile`).\r\n *\r\n * \"Concept\r\n * \"Grid\r\n *\r\n * Cells are arrayed vertically and horizontally within the grid.\r\n *\r\n * Tiles hold content and can span one or more cells vertically or horizontally.\r\n *\r\n * ### Responsive Attributes\r\n *\r\n * The `md-grid-list` directive supports \"responsive\" attributes, which allow\r\n * different `md-cols`, `md-gutter` and `md-row-height` values depending on the\r\n * currently matching media query.\r\n *\r\n * In order to set a responsive attribute, first define the fallback value with\r\n * the standard attribute name, then add additional attributes with the\r\n * following convention: `{base-attribute-name}-{media-query-name}=\"{value}\"`\r\n * (ie. `md-cols-lg=\"8\"`)\r\n *\r\n * @param {number} md-cols Number of columns in the grid.\r\n * @param {string} md-row-height One of\r\n *
    \r\n *
  • CSS length - Fixed height rows (eg. `8px` or `1rem`)
  • \r\n *
  • `{width}:{height}` - Ratio of width to height (eg.\r\n * `md-row-height=\"16:9\"`)
  • \r\n *
  • `\"fit\"` - Height will be determined by subdividing the available\r\n * height by the number of rows
  • \r\n *
\r\n * @param {string=} md-gutter The amount of space between tiles in CSS units\r\n * (default 1px)\r\n * @param {expression=} md-on-layout Expression to evaluate after layout. Event\r\n * object is available as `$event`, and contains performance information.\r\n *\r\n * @usage\r\n * Basic:\r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * Fixed-height rows:\r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * Fit rows:\r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n * Using responsive attributes:\r\n * \r\n * \r\n * \r\n * \r\n * \r\n */\r\n function GridListDirective(\r\n $interpolate,\r\n $mdConstant,\r\n $mdGridLayout,\r\n $mdMedia\r\n ) {\r\n return {\r\n restrict: \"E\",\r\n controller: GridListController,\r\n scope: {\r\n mdOnLayout: \"&\"\r\n },\r\n link: postLink\r\n };\r\n\r\n function postLink(scope, element, attrs, ctrl) {\r\n element.addClass(\"_md\"); // private md component indicator for styling\r\n\r\n // Apply semantics\r\n element.attr(\"role\", \"list\");\r\n\r\n // Provide the controller with a way to trigger layouts.\r\n ctrl.layoutDelegate = layoutDelegate;\r\n\r\n var invalidateLayout = angular.bind(ctrl, ctrl.invalidateLayout),\r\n unwatchAttrs = watchMedia();\r\n scope.$on(\"$destroy\", unwatchMedia);\r\n\r\n /**\r\n * Watches for changes in media, invalidating layout as necessary.\r\n */\r\n function watchMedia() {\r\n for (var mediaName in $mdConstant.MEDIA) {\r\n $mdMedia(mediaName); // initialize\r\n $mdMedia\r\n .getQuery($mdConstant.MEDIA[mediaName])\r\n .addListener(invalidateLayout);\r\n }\r\n return $mdMedia.watchResponsiveAttributes(\r\n [\"md-cols\", \"md-row-height\", \"md-gutter\"],\r\n attrs,\r\n layoutIfMediaMatch\r\n );\r\n }\r\n\r\n function unwatchMedia() {\r\n ctrl.layoutDelegate = angular.noop;\r\n\r\n unwatchAttrs();\r\n for (var mediaName in $mdConstant.MEDIA) {\r\n $mdMedia\r\n .getQuery($mdConstant.MEDIA[mediaName])\r\n .removeListener(invalidateLayout);\r\n }\r\n }\r\n\r\n /**\r\n * Performs grid layout if the provided mediaName matches the currently\r\n * active media type.\r\n */\r\n function layoutIfMediaMatch(mediaName) {\r\n if (mediaName == null) {\r\n // TODO(shyndman): It would be nice to only layout if we have\r\n // instances of attributes using this media type\r\n ctrl.invalidateLayout();\r\n } else if ($mdMedia(mediaName)) {\r\n ctrl.invalidateLayout();\r\n }\r\n }\r\n\r\n var lastLayoutProps;\r\n\r\n /**\r\n * Invokes the layout engine, and uses its results to lay out our\r\n * tile elements.\r\n *\r\n * @param {boolean} tilesInvalidated Whether tiles have been\r\n * added/removed/moved since the last layout. This is to avoid situations\r\n * where tiles are replaced with properties identical to their removed\r\n * counterparts.\r\n */\r\n function layoutDelegate(tilesInvalidated) {\r\n var tiles = getTileElements();\r\n var props = {\r\n tileSpans: getTileSpans(tiles),\r\n colCount: getColumnCount(),\r\n rowMode: getRowMode(),\r\n rowHeight: getRowHeight(),\r\n gutter: getGutter()\r\n };\r\n\r\n if (!tilesInvalidated && angular.equals(props, lastLayoutProps)) {\r\n return;\r\n }\r\n\r\n var performance = $mdGridLayout(\r\n props.colCount,\r\n props.tileSpans,\r\n tiles\r\n )\r\n .map(function(tilePositions, rowCount) {\r\n return {\r\n grid: {\r\n element: element,\r\n style: getGridStyle(\r\n props.colCount,\r\n rowCount,\r\n props.gutter,\r\n props.rowMode,\r\n props.rowHeight\r\n )\r\n },\r\n tiles: tilePositions.map(function(ps, i) {\r\n return {\r\n element: angular.element(tiles[i]),\r\n style: getTileStyle(\r\n ps.position,\r\n ps.spans,\r\n props.colCount,\r\n rowCount,\r\n props.gutter,\r\n props.rowMode,\r\n props.rowHeight\r\n )\r\n };\r\n })\r\n };\r\n })\r\n .reflow()\r\n .performance();\r\n\r\n // Report layout\r\n scope.mdOnLayout({\r\n $event: {\r\n performance: performance\r\n }\r\n });\r\n\r\n lastLayoutProps = props;\r\n }\r\n\r\n // Use $interpolate to do some simple string interpolation as a convenience.\r\n\r\n var startSymbol = $interpolate.startSymbol();\r\n var endSymbol = $interpolate.endSymbol();\r\n\r\n // Returns an expression wrapped in the interpolator's start and end symbols.\r\n function expr(exprStr) {\r\n return startSymbol + exprStr + endSymbol;\r\n }\r\n\r\n // The amount of space a single 1x1 tile would take up (either width or height), used as\r\n // a basis for other calculations. This consists of taking the base size percent (as would be\r\n // if evenly dividing the size between cells), and then subtracting the size of one gutter.\r\n // However, since there are no gutters on the edges, each tile only uses a fration\r\n // (gutterShare = numGutters / numCells) of the gutter size. (Imagine having one gutter per\r\n // tile, and then breaking up the extra gutter on the edge evenly among the cells).\r\n var UNIT = $interpolate(\r\n expr(\"share\") +\r\n \"% - (\" +\r\n expr(\"gutter\") +\r\n \" * \" +\r\n expr(\"gutterShare\") +\r\n \")\"\r\n );\r\n\r\n // The horizontal or vertical position of a tile, e.g., the 'top' or 'left' property value.\r\n // The position comes the size of a 1x1 tile plus gutter for each previous tile in the\r\n // row/column (offset).\r\n var POSITION = $interpolate(\r\n \"calc((\" +\r\n expr(\"unit\") +\r\n \" + \" +\r\n expr(\"gutter\") +\r\n \") * \" +\r\n expr(\"offset\") +\r\n \")\"\r\n );\r\n\r\n // The actual size of a tile, e.g., width or height, taking rowSpan or colSpan into account.\r\n // This is computed by multiplying the base unit by the rowSpan/colSpan, and then adding back\r\n // in the space that the gutter would normally have used (which was already accounted for in\r\n // the base unit calculation).\r\n var DIMENSION = $interpolate(\r\n \"calc((\" +\r\n expr(\"unit\") +\r\n \") * \" +\r\n expr(\"span\") +\r\n \" + (\" +\r\n expr(\"span\") +\r\n \" - 1) * \" +\r\n expr(\"gutter\") +\r\n \")\"\r\n );\r\n\r\n /**\r\n * Gets the styles applied to a tile element described by the given parameters.\r\n * @param {{row: number, col: number}} position The row and column indices of the tile.\r\n * @param {{row: number, col: number}} spans The rowSpan and colSpan of the tile.\r\n * @param {number} colCount The number of columns.\r\n * @param {number} rowCount The number of rows.\r\n * @param {string} gutter The amount of space between tiles. This will be something like\r\n * '5px' or '2em'.\r\n * @param {string} rowMode The row height mode. Can be one of:\r\n * 'fixed': all rows have a fixed size, given by rowHeight,\r\n * 'ratio': row height defined as a ratio to width, or\r\n * 'fit': fit to the grid-list element height, divinding evenly among rows.\r\n * @param {string|number} rowHeight The height of a row. This is only used for 'fixed' mode and\r\n * for 'ratio' mode. For 'ratio' mode, this is the *ratio* of width-to-height (e.g., 0.75).\r\n * @returns {Object} Map of CSS properties to be applied to the style element. Will define\r\n * values for top, left, width, height, marginTop, and paddingTop.\r\n */\r\n function getTileStyle(\r\n position,\r\n spans,\r\n colCount,\r\n rowCount,\r\n gutter,\r\n rowMode,\r\n rowHeight\r\n ) {\r\n // TODO(shyndman): There are style caching opportunities here.\r\n\r\n // Percent of the available horizontal space that one column takes up.\r\n var hShare = (1 / colCount) * 100;\r\n\r\n // Fraction of the gutter size that each column takes up.\r\n var hGutterShare = (colCount - 1) / colCount;\r\n\r\n // Base horizontal size of a column.\r\n var hUnit = UNIT({\r\n share: hShare,\r\n gutterShare: hGutterShare,\r\n gutter: gutter\r\n });\r\n\r\n // The width and horizontal position of each tile is always calculated the same way, but the\r\n // height and vertical position depends on the rowMode.\r\n var style = {\r\n left: POSITION({\r\n unit: hUnit,\r\n offset: position.col,\r\n gutter: gutter\r\n }),\r\n width: DIMENSION({ unit: hUnit, span: spans.col, gutter: gutter }),\r\n // resets\r\n paddingTop: \"\",\r\n marginTop: \"\",\r\n top: \"\",\r\n height: \"\"\r\n };\r\n\r\n switch (rowMode) {\r\n case \"fixed\":\r\n // In fixed mode, simply use the given rowHeight.\r\n style.top = POSITION({\r\n unit: rowHeight,\r\n offset: position.row,\r\n gutter: gutter\r\n });\r\n style.height = DIMENSION({\r\n unit: rowHeight,\r\n span: spans.row,\r\n gutter: gutter\r\n });\r\n break;\r\n\r\n case \"ratio\":\r\n // Percent of the available vertical space that one row takes up. Here, rowHeight holds\r\n // the ratio value. For example, if the width:height ratio is 4:3, rowHeight = 1.333.\r\n var vShare = hShare / rowHeight;\r\n\r\n // Base veritcal size of a row.\r\n var vUnit = UNIT({\r\n share: vShare,\r\n gutterShare: hGutterShare,\r\n gutter: gutter\r\n });\r\n\r\n // padidngTop and marginTop are used to maintain the given aspect ratio, as\r\n // a percentage-based value for these properties is applied to the *width* of the\r\n // containing block. See http://www.w3.org/TR/CSS2/box.html#margin-properties\r\n style.paddingTop = DIMENSION({\r\n unit: vUnit,\r\n span: spans.row,\r\n gutter: gutter\r\n });\r\n style.marginTop = POSITION({\r\n unit: vUnit,\r\n offset: position.row,\r\n gutter: gutter\r\n });\r\n break;\r\n\r\n case \"fit\":\r\n // Fraction of the gutter size that each column takes up.\r\n var vGutterShare = (rowCount - 1) / rowCount;\r\n\r\n // Percent of the available vertical space that one row takes up.\r\n var vShare = (1 / rowCount) * 100;\r\n\r\n // Base vertical size of a row.\r\n var vUnit = UNIT({\r\n share: vShare,\r\n gutterShare: vGutterShare,\r\n gutter: gutter\r\n });\r\n\r\n style.top = POSITION({\r\n unit: vUnit,\r\n offset: position.row,\r\n gutter: gutter\r\n });\r\n style.height = DIMENSION({\r\n unit: vUnit,\r\n span: spans.row,\r\n gutter: gutter\r\n });\r\n break;\r\n }\r\n\r\n return style;\r\n }\r\n\r\n function getGridStyle(colCount, rowCount, gutter, rowMode, rowHeight) {\r\n var style = {};\r\n\r\n switch (rowMode) {\r\n case \"fixed\":\r\n style.height = DIMENSION({\r\n unit: rowHeight,\r\n span: rowCount,\r\n gutter: gutter\r\n });\r\n style.paddingBottom = \"\";\r\n break;\r\n\r\n case \"ratio\":\r\n // rowHeight is width / height\r\n var hGutterShare = colCount === 1 ? 0 : (colCount - 1) / colCount,\r\n hShare = (1 / colCount) * 100,\r\n vShare = hShare * (1 / rowHeight),\r\n vUnit = UNIT({\r\n share: vShare,\r\n gutterShare: hGutterShare,\r\n gutter: gutter\r\n });\r\n\r\n style.height = \"\";\r\n style.paddingBottom = DIMENSION({\r\n unit: vUnit,\r\n span: rowCount,\r\n gutter: gutter\r\n });\r\n break;\r\n\r\n case \"fit\":\r\n // noop, as the height is user set\r\n break;\r\n }\r\n\r\n return style;\r\n }\r\n\r\n function getTileElements() {\r\n return [].filter.call(element.children(), function(ele) {\r\n return ele.tagName == \"MD-GRID-TILE\" && !ele.$$mdDestroyed;\r\n });\r\n }\r\n\r\n /**\r\n * Gets an array of objects containing the rowspan and colspan for each tile.\r\n * @returns {Array<{row: number, col: number}>}\r\n */\r\n function getTileSpans(tileElements) {\r\n return [].map.call(tileElements, function(ele) {\r\n var ctrl = angular.element(ele).controller(\"mdGridTile\");\r\n return {\r\n row:\r\n parseInt(\r\n $mdMedia.getResponsiveAttribute(ctrl.$attrs, \"md-rowspan\"),\r\n 10\r\n ) || 1,\r\n col:\r\n parseInt(\r\n $mdMedia.getResponsiveAttribute(ctrl.$attrs, \"md-colspan\"),\r\n 10\r\n ) || 1\r\n };\r\n });\r\n }\r\n\r\n function getColumnCount() {\r\n var colCount = parseInt(\r\n $mdMedia.getResponsiveAttribute(attrs, \"md-cols\"),\r\n 10\r\n );\r\n if (isNaN(colCount)) {\r\n throw \"md-grid-list: md-cols attribute was not found, or contained a non-numeric value\";\r\n }\r\n return colCount;\r\n }\r\n\r\n function getGutter() {\r\n return applyDefaultUnit(\r\n $mdMedia.getResponsiveAttribute(attrs, \"md-gutter\") || 1\r\n );\r\n }\r\n\r\n function getRowHeight() {\r\n var rowHeight = $mdMedia.getResponsiveAttribute(\r\n attrs,\r\n \"md-row-height\"\r\n );\r\n if (!rowHeight) {\r\n throw \"md-grid-list: md-row-height attribute was not found\";\r\n }\r\n\r\n switch (getRowMode()) {\r\n case \"fixed\":\r\n return applyDefaultUnit(rowHeight);\r\n case \"ratio\":\r\n var whRatio = rowHeight.split(\":\");\r\n return parseFloat(whRatio[0]) / parseFloat(whRatio[1]);\r\n case \"fit\":\r\n return 0; // N/A\r\n }\r\n }\r\n\r\n function getRowMode() {\r\n var rowHeight = $mdMedia.getResponsiveAttribute(\r\n attrs,\r\n \"md-row-height\"\r\n );\r\n if (!rowHeight) {\r\n throw \"md-grid-list: md-row-height attribute was not found\";\r\n }\r\n\r\n if (rowHeight == \"fit\") {\r\n return \"fit\";\r\n } else if (rowHeight.indexOf(\":\") !== -1) {\r\n return \"ratio\";\r\n } else {\r\n return \"fixed\";\r\n }\r\n }\r\n\r\n function applyDefaultUnit(val) {\r\n return /\\D$/.test(val) ? val : val + \"px\";\r\n }\r\n }\r\n }\r\n\r\n /* @ngInject */\r\n function GridListController($mdUtil) {\r\n this.layoutInvalidated = false;\r\n this.tilesInvalidated = false;\r\n this.$timeout_ = $mdUtil.nextTick;\r\n this.layoutDelegate = angular.noop;\r\n }\r\n\r\n GridListController.prototype = {\r\n invalidateTiles: function() {\r\n this.tilesInvalidated = true;\r\n this.invalidateLayout();\r\n },\r\n\r\n invalidateLayout: function() {\r\n if (this.layoutInvalidated) {\r\n return;\r\n }\r\n this.layoutInvalidated = true;\r\n this.$timeout_(angular.bind(this, this.layout));\r\n },\r\n\r\n layout: function() {\r\n try {\r\n this.layoutDelegate(this.tilesInvalidated);\r\n } finally {\r\n this.layoutInvalidated = false;\r\n this.tilesInvalidated = false;\r\n }\r\n }\r\n };\r\n\r\n /* @ngInject */\r\n function GridLayoutFactory($mdUtil) {\r\n var defaultAnimator = GridTileAnimator;\r\n\r\n /**\r\n * Set the reflow animator callback\r\n */\r\n GridLayout.animateWith = function(customAnimator) {\r\n defaultAnimator = !angular.isFunction(customAnimator)\r\n ? GridTileAnimator\r\n : customAnimator;\r\n };\r\n\r\n return GridLayout;\r\n\r\n /**\r\n * Publish layout function\r\n */\r\n function GridLayout(colCount, tileSpans) {\r\n var self, layoutInfo, gridStyles, layoutTime, mapTime, reflowTime;\r\n\r\n layoutTime = $mdUtil.time(function() {\r\n layoutInfo = calculateGridFor(colCount, tileSpans);\r\n });\r\n\r\n return (self = {\r\n /**\r\n * An array of objects describing each tile's position in the grid.\r\n */\r\n layoutInfo: function() {\r\n return layoutInfo;\r\n },\r\n\r\n /**\r\n * Maps grid positioning to an element and a set of styles using the\r\n * provided updateFn.\r\n */\r\n map: function(updateFn) {\r\n mapTime = $mdUtil.time(function() {\r\n var info = self.layoutInfo();\r\n gridStyles = updateFn(info.positioning, info.rowCount);\r\n });\r\n return self;\r\n },\r\n\r\n /**\r\n * Default animator simply sets the element.css( ). An alternate\r\n * animator can be provided as an argument. The function has the following\r\n * signature:\r\n *\r\n * function({grid: {element: JQLite, style: Object}, tiles: Array<{element: JQLite, style: Object}>)\r\n */\r\n reflow: function(animatorFn) {\r\n reflowTime = $mdUtil.time(function() {\r\n var animator = animatorFn || defaultAnimator;\r\n animator(gridStyles.grid, gridStyles.tiles);\r\n });\r\n return self;\r\n },\r\n\r\n /**\r\n * Timing for the most recent layout run.\r\n */\r\n performance: function() {\r\n return {\r\n tileCount: tileSpans.length,\r\n layoutTime: layoutTime,\r\n mapTime: mapTime,\r\n reflowTime: reflowTime,\r\n totalTime: layoutTime + mapTime + reflowTime\r\n };\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Default Gridlist animator simple sets the css for each element;\r\n * NOTE: any transitions effects must be manually set in the CSS.\r\n * e.g.\r\n *\r\n * md-grid-tile {\r\n * transition: all 700ms ease-out 50ms;\r\n * }\r\n *\r\n */\r\n function GridTileAnimator(grid, tiles) {\r\n grid.element.css(grid.style);\r\n tiles.forEach(function(t) {\r\n t.element.css(t.style);\r\n });\r\n }\r\n\r\n /**\r\n * Calculates the positions of tiles.\r\n *\r\n * The algorithm works as follows:\r\n * An Array with length colCount (spaceTracker) keeps track of\r\n * available tiling positions, where elements of value 0 represents an\r\n * empty position. Space for a tile is reserved by finding a sequence of\r\n * 0s with length <= than the tile's colspan. When such a space has been\r\n * found, the occupied tile positions are incremented by the tile's\r\n * rowspan value, as these positions have become unavailable for that\r\n * many rows.\r\n *\r\n * If the end of a row has been reached without finding space for the\r\n * tile, spaceTracker's elements are each decremented by 1 to a minimum\r\n * of 0. Rows are searched in this fashion until space is found.\r\n */\r\n function calculateGridFor(colCount, tileSpans) {\r\n var curCol = 0,\r\n curRow = 0,\r\n spaceTracker = newSpaceTracker();\r\n\r\n return {\r\n positioning: tileSpans.map(function(spans, i) {\r\n return {\r\n spans: spans,\r\n position: reserveSpace(spans, i)\r\n };\r\n }),\r\n rowCount: curRow + Math.max.apply(Math, spaceTracker)\r\n };\r\n\r\n function reserveSpace(spans, i) {\r\n if (spans.col > colCount) {\r\n throw \"md-grid-list: Tile at position \" +\r\n i +\r\n \" has a colspan \" +\r\n \"(\" +\r\n spans.col +\r\n \") that exceeds the column count \" +\r\n \"(\" +\r\n colCount +\r\n \")\";\r\n }\r\n\r\n var start = 0,\r\n end = 0;\r\n\r\n // TODO(shyndman): This loop isn't strictly necessary if you can\r\n // determine the minimum number of rows before a space opens up. To do\r\n // this, recognize that you've iterated across an entire row looking for\r\n // space, and if so fast-forward by the minimum rowSpan count. Repeat\r\n // until the required space opens up.\r\n while (end - start < spans.col) {\r\n if (curCol >= colCount) {\r\n nextRow();\r\n continue;\r\n }\r\n\r\n start = spaceTracker.indexOf(0, curCol);\r\n if (start === -1 || (end = findEnd(start + 1)) === -1) {\r\n start = end = 0;\r\n nextRow();\r\n continue;\r\n }\r\n\r\n curCol = end + 1;\r\n }\r\n\r\n adjustRow(start, spans.col, spans.row);\r\n curCol = start + spans.col;\r\n\r\n return {\r\n col: start,\r\n row: curRow\r\n };\r\n }\r\n\r\n function nextRow() {\r\n curCol = 0;\r\n curRow++;\r\n adjustRow(0, colCount, -1); // Decrement row spans by one\r\n }\r\n\r\n function adjustRow(from, cols, by) {\r\n for (var i = from; i < from + cols; i++) {\r\n spaceTracker[i] = Math.max(spaceTracker[i] + by, 0);\r\n }\r\n }\r\n\r\n function findEnd(start) {\r\n var i;\r\n for (i = start; i < spaceTracker.length; i++) {\r\n if (spaceTracker[i] !== 0) {\r\n return i;\r\n }\r\n }\r\n\r\n if (i === spaceTracker.length) {\r\n return i;\r\n }\r\n }\r\n\r\n function newSpaceTracker() {\r\n var tracker = [];\r\n for (var i = 0; i < colCount; i++) {\r\n tracker.push(0);\r\n }\r\n return tracker;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdGridTile\r\n * @module material.components.gridList\r\n * @restrict E\r\n * @description\r\n * Tiles contain the content of an `md-grid-list`. They span one or more grid\r\n * cells vertically or horizontally, and use `md-grid-tile-{footer,header}` to\r\n * display secondary content.\r\n *\r\n * ### Responsive Attributes\r\n *\r\n * The `md-grid-tile` directive supports \"responsive\" attributes, which allow\r\n * different `md-rowspan` and `md-colspan` values depending on the currently\r\n * matching media query.\r\n *\r\n * In order to set a responsive attribute, first define the fallback value with\r\n * the standard attribute name, then add additional attributes with the\r\n * following convention: `{base-attribute-name}-{media-query-name}=\"{value}\"`\r\n * (ie. `md-colspan-sm=\"4\"`)\r\n *\r\n * @param {number=} md-colspan The number of columns to span (default 1). Cannot\r\n * exceed the number of columns in the grid. Supports interpolation.\r\n * @param {number=} md-rowspan The number of rows to span (default 1). Supports\r\n * interpolation.\r\n *\r\n * @usage\r\n * With header:\r\n * \r\n * \r\n * \r\n *

This is a header

\r\n *
\r\n *
\r\n *
\r\n *\r\n * With footer:\r\n * \r\n * \r\n * \r\n *

This is a footer

\r\n *
\r\n *
\r\n *
\r\n *\r\n * Spanning multiple rows/columns:\r\n * \r\n * \r\n * \r\n * \r\n *\r\n * Responsive attributes:\r\n * \r\n * \r\n * \r\n * \r\n */\r\n function GridTileDirective($mdMedia) {\r\n return {\r\n restrict: \"E\",\r\n require: \"^mdGridList\",\r\n template: \"
\",\r\n transclude: true,\r\n scope: {},\r\n // Simple controller that exposes attributes to the grid directive\r\n controller: [\r\n \"$attrs\",\r\n function($attrs) {\r\n this.$attrs = $attrs;\r\n }\r\n ],\r\n link: postLink\r\n };\r\n\r\n function postLink(scope, element, attrs, gridCtrl) {\r\n // Apply semantics\r\n element.attr(\"role\", \"listitem\");\r\n\r\n // If our colspan or rowspan changes, trigger a layout\r\n var unwatchAttrs = $mdMedia.watchResponsiveAttributes(\r\n [\"md-colspan\", \"md-rowspan\"],\r\n attrs,\r\n angular.bind(gridCtrl, gridCtrl.invalidateLayout)\r\n );\r\n\r\n // Tile registration/deregistration\r\n gridCtrl.invalidateTiles();\r\n scope.$on(\"$destroy\", function() {\r\n // Mark the tile as destroyed so it is no longer considered in layout,\r\n // even if the DOM element sticks around (like during a leave animation)\r\n element[0].$$mdDestroyed = true;\r\n unwatchAttrs();\r\n gridCtrl.invalidateLayout();\r\n });\r\n\r\n if (angular.isDefined(scope.$parent.$index)) {\r\n scope.$watch(\r\n function() {\r\n return scope.$parent.$index;\r\n },\r\n function indexChanged(newIdx, oldIdx) {\r\n if (newIdx === oldIdx) {\r\n return;\r\n }\r\n gridCtrl.invalidateTiles();\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n function GridTileCaptionDirective() {\r\n return {\r\n template: \"
\",\r\n transclude: true\r\n };\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.icon\r\n * @description\r\n * Icon\r\n */\r\n angular.module(\"material.components.icon\", [\"material.core\"]);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.input\r\n */\r\n mdInputContainerDirective.$inject = [\"$mdTheming\", \"$parse\"];\r\n inputTextareaDirective.$inject = [\r\n \"$mdUtil\",\r\n \"$window\",\r\n \"$mdAria\",\r\n \"$timeout\",\r\n \"$mdGesture\"\r\n ];\r\n mdMaxlengthDirective.$inject = [\"$animate\", \"$mdUtil\"];\r\n placeholderDirective.$inject = [\"$compile\"];\r\n ngMessageDirective.$inject = [\"$mdUtil\"];\r\n mdSelectOnFocusDirective.$inject = [\"$timeout\"];\r\n mdInputInvalidMessagesAnimation.$inject = [\r\n \"$$AnimateRunner\",\r\n \"$animateCss\",\r\n \"$mdUtil\"\r\n ];\r\n ngMessagesAnimation.$inject = [\"$$AnimateRunner\", \"$animateCss\", \"$mdUtil\"];\r\n ngMessageAnimation.$inject = [\"$$AnimateRunner\", \"$animateCss\", \"$mdUtil\"];\r\n angular\r\n .module(\"material.components.input\", [\"material.core\"])\r\n .directive(\"mdInputContainer\", mdInputContainerDirective)\r\n .directive(\"label\", labelDirective)\r\n .directive(\"input\", inputTextareaDirective)\r\n .directive(\"textarea\", inputTextareaDirective)\r\n .directive(\"mdMaxlength\", mdMaxlengthDirective)\r\n .directive(\"placeholder\", placeholderDirective)\r\n .directive(\"ngMessages\", ngMessagesDirective)\r\n .directive(\"ngMessage\", ngMessageDirective)\r\n .directive(\"ngMessageExp\", ngMessageDirective)\r\n .directive(\"mdSelectOnFocus\", mdSelectOnFocusDirective)\r\n\r\n .animation(\".md-input-invalid\", mdInputInvalidMessagesAnimation)\r\n .animation(\".md-input-messages-animation\", ngMessagesAnimation)\r\n .animation(\".md-input-message-animation\", ngMessageAnimation)\r\n\r\n // Register a service for each animation so that we can easily inject them into unit tests\r\n .service(\"mdInputInvalidAnimation\", mdInputInvalidMessagesAnimation)\r\n .service(\"mdInputMessagesAnimation\", ngMessagesAnimation)\r\n .service(\"mdInputMessageAnimation\", ngMessageAnimation);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdInputContainer\r\n * @module material.components.input\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * `` is the parent of any input or textarea element.\r\n *\r\n * Input and textarea elements will not behave properly unless the md-input-container\r\n * parent is provided.\r\n *\r\n * A single `` should contain only one `` element, otherwise it will throw an error.\r\n *\r\n * Exception: Hidden inputs (``) are ignored and will not throw an error, so\r\n * you may combine these with other inputs.\r\n *\r\n * Note: When using `ngMessages` with your input element, make sure the message and container elements\r\n * are *block* elements, otherwise animations applied to the messages will not look as intended. Either use a `div` and\r\n * apply the `ng-message` and `ng-messages` classes respectively, or use the `md-block` class on your element.\r\n *\r\n * @param md-is-error {expression=} When the given expression evaluates to true, the input container\r\n * will go into error state. Defaults to erroring if the input has been touched and is invalid.\r\n * @param md-no-float {boolean=} When present, `placeholder` attributes on the input will not be converted to floating\r\n * labels.\r\n *\r\n * @usage\r\n * \r\n *\r\n * \r\n * \r\n * \r\n * \r\n *\r\n * \r\n * \r\n * \r\n * \r\n *\r\n * \r\n *\r\n *

When disabling floating labels

\r\n * \r\n *\r\n * \r\n * \r\n * \r\n *\r\n * \r\n */\r\n function mdInputContainerDirective($mdTheming, $parse) {\r\n ContainerCtrl.$inject = [\"$scope\", \"$element\", \"$attrs\", \"$animate\"];\r\n var INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\", \"MD-SELECT\"];\r\n\r\n var LEFT_SELECTORS = INPUT_TAGS.reduce(function(selectors, isel) {\r\n return selectors.concat([\"md-icon ~ \" + isel, \".md-icon ~ \" + isel]);\r\n }, []).join(\",\");\r\n\r\n var RIGHT_SELECTORS = INPUT_TAGS.reduce(function(selectors, isel) {\r\n return selectors.concat([isel + \" ~ md-icon\", isel + \" ~ .md-icon\"]);\r\n }, []).join(\",\");\r\n\r\n return {\r\n restrict: \"E\",\r\n compile: compile,\r\n controller: ContainerCtrl\r\n };\r\n\r\n function compile(tElement) {\r\n // Check for both a left & right icon\r\n var leftIcon = tElement[0].querySelector(LEFT_SELECTORS);\r\n var rightIcon = tElement[0].querySelector(RIGHT_SELECTORS);\r\n\r\n if (leftIcon) {\r\n tElement.addClass(\"md-icon-left\");\r\n }\r\n if (rightIcon) {\r\n tElement.addClass(\"md-icon-right\");\r\n }\r\n\r\n return function postLink(scope, element) {\r\n $mdTheming(element);\r\n };\r\n }\r\n\r\n function ContainerCtrl($scope, $element, $attrs, $animate) {\r\n var self = this;\r\n\r\n self.isErrorGetter = $attrs.mdIsError && $parse($attrs.mdIsError);\r\n\r\n self.delegateClick = function() {\r\n self.input.focus();\r\n };\r\n self.element = $element;\r\n self.setFocused = function(isFocused) {\r\n $element.toggleClass(\"md-input-focused\", !!isFocused);\r\n };\r\n self.setHasValue = function(hasValue) {\r\n $element.toggleClass(\"md-input-has-value\", !!hasValue);\r\n };\r\n self.setHasPlaceholder = function(hasPlaceholder) {\r\n $element.toggleClass(\"md-input-has-placeholder\", !!hasPlaceholder);\r\n };\r\n self.setInvalid = function(isInvalid) {\r\n if (isInvalid) {\r\n $animate.addClass($element, \"md-input-invalid\");\r\n } else {\r\n $animate.removeClass($element, \"md-input-invalid\");\r\n }\r\n };\r\n $scope.$watch(\r\n function() {\r\n return self.label && self.input;\r\n },\r\n function(hasLabelAndInput) {\r\n if (hasLabelAndInput && !self.label.attr(\"for\")) {\r\n self.label.attr(\"for\", self.input.attr(\"id\"));\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n function labelDirective() {\r\n return {\r\n restrict: \"E\",\r\n require: \"^?mdInputContainer\",\r\n link: function(scope, element, attr, containerCtrl) {\r\n if (\r\n !containerCtrl ||\r\n attr.mdNoFloat ||\r\n element.hasClass(\"md-container-ignore\")\r\n )\r\n return;\r\n\r\n containerCtrl.label = element;\r\n scope.$on(\"$destroy\", function() {\r\n containerCtrl.label = null;\r\n });\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdInput\r\n * @restrict E\r\n * @module material.components.input\r\n *\r\n * @description\r\n * You can use any `` or `\r\n *
\r\n *
This is required!
\r\n *
That's too long!
\r\n *
\r\n *
\r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n *\r\n *

Notes

\r\n *\r\n * - Requires [ngMessages](https://docs.angularjs.org/api/ngMessages).\r\n * - Behaves like the [AngularJS input directive](https://docs.angularjs.org/api/ng/directive/input).\r\n *\r\n * The `md-input` and `md-input-container` directives use very specific positioning to achieve the\r\n * error animation effects. Therefore, it is *not* advised to use the Layout system inside of the\r\n * `` tags. Instead, use relative or absolute positioning.\r\n *\r\n *\r\n *

Textarea directive

\r\n * The `textarea` element within a `md-input-container` has the following specific behavior:\r\n * - By default the `textarea` grows as the user types. This can be disabled via the `md-no-autogrow`\r\n * attribute.\r\n * - If a `textarea` has the `rows` attribute, it will treat the `rows` as the minimum height and will\r\n * continue growing as the user types. For example a textarea with `rows=\"3\"` will be 3 lines of text\r\n * high initially. If no rows are specified, the directive defaults to 1.\r\n * - The textarea's height gets set on initialization, as well as while the user is typing. In certain situations\r\n * (e.g. while animating) the directive might have been initialized, before the element got it's final height. In\r\n * those cases, you can trigger a resize manually by broadcasting a `md-resize-textarea` event on the scope.\r\n * - If you wan't a `textarea` to stop growing at a certain point, you can specify the `max-rows` attribute.\r\n * - The textarea's bottom border acts as a handle which users can drag, in order to resize the element vertically.\r\n * Once the user has resized a `textarea`, the autogrowing functionality becomes disabled. If you don't want a\r\n * `textarea` to be resizeable by the user, you can add the `md-no-resize` attribute.\r\n */\r\n\r\n function inputTextareaDirective(\r\n $mdUtil,\r\n $window,\r\n $mdAria,\r\n $timeout,\r\n $mdGesture\r\n ) {\r\n return {\r\n restrict: \"E\",\r\n require: [\"^?mdInputContainer\", \"?ngModel\", \"?^form\"],\r\n link: postLink\r\n };\r\n\r\n function postLink(scope, element, attr, ctrls) {\r\n var containerCtrl = ctrls[0];\r\n var hasNgModel = !!ctrls[1];\r\n var ngModelCtrl = ctrls[1] || $mdUtil.fakeNgModel();\r\n var parentForm = ctrls[2];\r\n var isReadonly = angular.isDefined(attr.readonly);\r\n var mdNoAsterisk = $mdUtil.parseAttributeBoolean(attr.mdNoAsterisk);\r\n var tagName = element[0].tagName.toLowerCase();\r\n\r\n if (!containerCtrl) return;\r\n if (attr.type === \"hidden\") {\r\n element.attr(\"aria-hidden\", \"true\");\r\n return;\r\n } else if (containerCtrl.input) {\r\n if (containerCtrl.input[0].contains(element[0])) {\r\n return;\r\n } else {\r\n throw new Error(\r\n \" can only have *one* , \r\n * \r\n *\r\n * \r\n */\r\n function mdSelectOnFocusDirective($timeout) {\r\n return {\r\n restrict: \"A\",\r\n link: postLink\r\n };\r\n\r\n function postLink(scope, element, attr) {\r\n if (\r\n element[0].nodeName !== \"INPUT\" &&\r\n element[0].nodeName !== \"TEXTAREA\"\r\n )\r\n return;\r\n\r\n var preventMouseUp = false;\r\n\r\n element.on(\"focus\", onFocus).on(\"mouseup\", onMouseUp);\r\n\r\n scope.$on(\"$destroy\", function() {\r\n element.off(\"focus\", onFocus).off(\"mouseup\", onMouseUp);\r\n });\r\n\r\n function onFocus() {\r\n preventMouseUp = true;\r\n\r\n $timeout(\r\n function() {\r\n // Use HTMLInputElement#select to fix firefox select issues.\r\n // The debounce is here for Edge's sake, otherwise the selection doesn't work.\r\n element[0].select();\r\n\r\n // This should be reset from inside the `focus`, because the event might\r\n // have originated from something different than a click, e.g. a keyboard event.\r\n preventMouseUp = false;\r\n },\r\n 1,\r\n false\r\n );\r\n }\r\n\r\n // Prevents the default action of the first `mouseup` after a focus.\r\n // This is necessary, because browsers fire a `mouseup` right after the element\r\n // has been focused. In some browsers (Firefox in particular) this can clear the\r\n // selection. There are examples of the problem in issue #7487.\r\n function onMouseUp(event) {\r\n if (preventMouseUp) {\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n\r\n var visibilityDirectives = [\r\n \"ngIf\",\r\n \"ngShow\",\r\n \"ngHide\",\r\n \"ngSwitchWhen\",\r\n \"ngSwitchDefault\"\r\n ];\r\n function ngMessagesDirective() {\r\n return {\r\n restrict: \"EA\",\r\n link: postLink,\r\n\r\n // This is optional because we don't want target *all* ngMessage instances, just those inside of\r\n // mdInputContainer.\r\n require: \"^^?mdInputContainer\"\r\n };\r\n\r\n function postLink(scope, element, attrs, inputContainer) {\r\n // If we are not a child of an input container, don't do anything\r\n if (!inputContainer) return;\r\n\r\n // Add our animation class\r\n element.toggleClass(\"md-input-messages-animation\", true);\r\n\r\n // Add our md-auto-hide class to automatically hide/show messages when container is invalid\r\n element.toggleClass(\"md-auto-hide\", true);\r\n\r\n // If we see some known visibility directives, remove the md-auto-hide class\r\n if (attrs.mdAutoHide == \"false\" || hasVisibiltyDirective(attrs)) {\r\n element.toggleClass(\"md-auto-hide\", false);\r\n }\r\n }\r\n\r\n function hasVisibiltyDirective(attrs) {\r\n return visibilityDirectives.some(function(attr) {\r\n return attrs[attr];\r\n });\r\n }\r\n }\r\n\r\n function ngMessageDirective($mdUtil) {\r\n return {\r\n restrict: \"EA\",\r\n compile: compile,\r\n priority: 100\r\n };\r\n\r\n function compile(tElement) {\r\n if (!isInsideInputContainer(tElement)) {\r\n // When the current element is inside of a document fragment, then we need to check for an input-container\r\n // in the postLink, because the element will be later added to the DOM and is currently just in a temporary\r\n // fragment, which causes the input-container check to fail.\r\n if (isInsideFragment()) {\r\n return function(scope, element) {\r\n if (isInsideInputContainer(element)) {\r\n // Inside of the postLink function, a ngMessage directive will be a comment element, because it's\r\n // currently hidden. To access the shown element, we need to use the element from the compile function.\r\n initMessageElement(tElement);\r\n }\r\n };\r\n }\r\n } else {\r\n initMessageElement(tElement);\r\n }\r\n\r\n function isInsideFragment() {\r\n var nextNode = tElement[0];\r\n while ((nextNode = nextNode.parentNode)) {\r\n if (nextNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function isInsideInputContainer(element) {\r\n return !!$mdUtil.getClosest(element, \"md-input-container\");\r\n }\r\n\r\n function initMessageElement(element) {\r\n // Add our animation class\r\n element.toggleClass(\"md-input-message-animation\", true);\r\n }\r\n }\r\n }\r\n\r\n var $$AnimateRunner, $animateCss, $mdUtil;\r\n\r\n function mdInputInvalidMessagesAnimation(\r\n $$AnimateRunner,\r\n $animateCss,\r\n $mdUtil\r\n ) {\r\n saveSharedServices($$AnimateRunner, $animateCss, $mdUtil);\r\n\r\n return {\r\n addClass: function(element, className, done) {\r\n showInputMessages(element, done);\r\n }\r\n\r\n // NOTE: We do not need the removeClass method, because the message ng-leave animation will fire\r\n };\r\n }\r\n\r\n function ngMessagesAnimation($$AnimateRunner, $animateCss, $mdUtil) {\r\n saveSharedServices($$AnimateRunner, $animateCss, $mdUtil);\r\n\r\n return {\r\n enter: function(element, done) {\r\n showInputMessages(element, done);\r\n },\r\n\r\n leave: function(element, done) {\r\n hideInputMessages(element, done);\r\n },\r\n\r\n addClass: function(element, className, done) {\r\n if (className == \"ng-hide\") {\r\n hideInputMessages(element, done);\r\n } else {\r\n done();\r\n }\r\n },\r\n\r\n removeClass: function(element, className, done) {\r\n if (className == \"ng-hide\") {\r\n showInputMessages(element, done);\r\n } else {\r\n done();\r\n }\r\n }\r\n };\r\n }\r\n\r\n function ngMessageAnimation($$AnimateRunner, $animateCss, $mdUtil) {\r\n saveSharedServices($$AnimateRunner, $animateCss, $mdUtil);\r\n\r\n return {\r\n enter: function(element, done) {\r\n var animator = showMessage(element);\r\n\r\n animator.start().done(done);\r\n },\r\n\r\n leave: function(element, done) {\r\n var animator = hideMessage(element);\r\n\r\n animator.start().done(done);\r\n }\r\n };\r\n }\r\n\r\n function showInputMessages(element, done) {\r\n var animators = [],\r\n animator;\r\n var messages = getMessagesElement(element);\r\n\r\n angular.forEach(messages.children(), function(child) {\r\n animator = showMessage(angular.element(child));\r\n\r\n animators.push(animator.start());\r\n });\r\n\r\n $$AnimateRunner.all(animators, done);\r\n }\r\n\r\n function hideInputMessages(element, done) {\r\n var animators = [],\r\n animator;\r\n var messages = getMessagesElement(element);\r\n\r\n angular.forEach(messages.children(), function(child) {\r\n animator = hideMessage(angular.element(child));\r\n\r\n animators.push(animator.start());\r\n });\r\n\r\n $$AnimateRunner.all(animators, done);\r\n }\r\n\r\n function showMessage(element) {\r\n var height = parseInt(window.getComputedStyle(element[0]).height);\r\n var topMargin = parseInt(window.getComputedStyle(element[0]).marginTop);\r\n\r\n var messages = getMessagesElement(element);\r\n var container = getInputElement(element);\r\n\r\n // Check to see if the message is already visible so we can skip\r\n var alreadyVisible = topMargin > -height;\r\n\r\n // If we have the md-auto-hide class, the md-input-invalid animation will fire, so we can skip\r\n if (\r\n alreadyVisible ||\r\n (messages.hasClass(\"md-auto-hide\") &&\r\n !container.hasClass(\"md-input-invalid\"))\r\n ) {\r\n return $animateCss(element, {});\r\n }\r\n\r\n return $animateCss(element, {\r\n event: \"enter\",\r\n structural: true,\r\n from: { opacity: 0, \"margin-top\": -height + \"px\" },\r\n to: { opacity: 1, \"margin-top\": \"0\" },\r\n duration: 0.3\r\n });\r\n }\r\n\r\n function hideMessage(element) {\r\n var height = element[0].offsetHeight;\r\n var styles = window.getComputedStyle(element[0]);\r\n\r\n // If we are already hidden, just return an empty animation\r\n if (styles.opacity == 0) {\r\n return $animateCss(element, {});\r\n }\r\n\r\n // Otherwise, animate\r\n return $animateCss(element, {\r\n event: \"leave\",\r\n structural: true,\r\n from: { opacity: 1, \"margin-top\": 0 },\r\n to: { opacity: 0, \"margin-top\": -height + \"px\" },\r\n duration: 0.3\r\n });\r\n }\r\n\r\n function getInputElement(element) {\r\n var inputContainer = element.controller(\"mdInputContainer\");\r\n\r\n return inputContainer.element;\r\n }\r\n\r\n function getMessagesElement(element) {\r\n // If we are a ng-message element, we need to traverse up the DOM tree\r\n if (element.hasClass(\"md-input-message-animation\")) {\r\n return angular.element(\r\n $mdUtil.getClosest(element, function(node) {\r\n return node.classList.contains(\"md-input-messages-animation\");\r\n })\r\n );\r\n }\r\n\r\n // Otherwise, we can traverse down\r\n return angular.element(\r\n element[0].querySelector(\".md-input-messages-animation\")\r\n );\r\n }\r\n\r\n function saveSharedServices(_$$AnimateRunner_, _$animateCss_, _$mdUtil_) {\r\n $$AnimateRunner = _$$AnimateRunner_;\r\n $animateCss = _$animateCss_;\r\n $mdUtil = _$mdUtil_;\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.list\r\n * @description\r\n * List module\r\n */\r\n MdListController.$inject = [\"$scope\", \"$element\", \"$mdListInkRipple\"];\r\n mdListDirective.$inject = [\"$mdTheming\"];\r\n mdListItemDirective.$inject = [\r\n \"$mdAria\",\r\n \"$mdConstant\",\r\n \"$mdUtil\",\r\n \"$timeout\"\r\n ];\r\n angular\r\n .module(\"material.components.list\", [\"material.core\"])\r\n .controller(\"MdListController\", MdListController)\r\n .directive(\"mdList\", mdListDirective)\r\n .directive(\"mdListItem\", mdListItemDirective);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdList\r\n * @module material.components.list\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * The `` directive is a list container for 1..n `` tags.\r\n *\r\n * @usage\r\n * \r\n * \r\n * \r\n * \r\n *
\r\n *

{{item.title}}

\r\n *

{{item.description}}

\r\n *
\r\n *
\r\n *
\r\n *
\r\n */\r\n\r\n function mdListDirective($mdTheming) {\r\n return {\r\n restrict: \"E\",\r\n compile: function(tEl) {\r\n tEl[0].setAttribute(\"role\", \"list\");\r\n return $mdTheming;\r\n }\r\n };\r\n }\r\n /**\r\n * @ngdoc directive\r\n * @name mdListItem\r\n * @module material.components.list\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * A `md-list-item` element can be used to represent some information in a row.
\r\n *\r\n * @usage\r\n * ### Single Row Item\r\n * \r\n * \r\n * Single Row Item\r\n * \r\n * \r\n *\r\n * ### Multiple Lines\r\n * By using the following markup, you will be able to have two lines inside of one `md-list-item`.\r\n *\r\n * \r\n * \r\n *
\r\n *

First Line

\r\n *

Second Line

\r\n *
\r\n *
\r\n *
\r\n *\r\n * It is also possible to have three lines inside of one list item.\r\n *\r\n * \r\n * \r\n *
\r\n *

First Line

\r\n *

Second Line

\r\n *

Third Line

\r\n *
\r\n *
\r\n *
\r\n *\r\n * ### Secondary Items\r\n * Secondary items are elements which will be aligned at the end of the `md-list-item`.\r\n *\r\n * \r\n * \r\n * Single Row Item\r\n * \r\n * Secondary Button\r\n * \r\n * \r\n * \r\n *\r\n * It also possible to have multiple secondary items inside of one `md-list-item`.\r\n *\r\n * \r\n * \r\n * Single Row Item\r\n * First Button\r\n * Second Button\r\n * \r\n * \r\n *\r\n * ### Proxy Item\r\n * Proxies are elements, which will execute their specific action on click
\r\n * Currently supported proxy items are\r\n * - `md-checkbox` (Toggle)\r\n * - `md-switch` (Toggle)\r\n * - `md-menu` (Open)\r\n *\r\n * This means, when using a supported proxy item inside of `md-list-item`, the list item will\r\n * become clickable and executes the associated action of the proxy element on click.\r\n *\r\n * \r\n * \r\n * First Line\r\n * \r\n * \r\n * \r\n *\r\n * The `md-checkbox` element will be automatically detected as a proxy element and will toggle on click.\r\n *\r\n * \r\n * \r\n * First Line\r\n * \r\n * \r\n * \r\n *\r\n * The recognized `md-switch` will toggle its state, when the user clicks on the `md-list-item`.\r\n *\r\n * It is also possible to have a `md-menu` inside of a `md-list-item`.\r\n * \r\n * \r\n *

Click anywhere to fire the secondary action

\r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * \r\n * Redial\r\n * \r\n * \r\n * \r\n * \r\n * Check voicemail\r\n * \r\n * \r\n * \r\n * \r\n * \r\n * Notifications\r\n * \r\n * \r\n * \r\n * \r\n *
\r\n *
\r\n *\r\n * The menu will automatically open, when the users clicks on the `md-list-item`.
\r\n *\r\n * If the developer didn't specify any position mode on the menu, the `md-list-item` will automatically detect the\r\n * position mode and applies it to the `md-menu`.\r\n *\r\n * ### Avatars\r\n * Sometimes you may want to have some avatars inside of the `md-list-item `.
\r\n * You are able to create a optimized icon for the list item, by applying the `.md-avatar` class on the `` element.\r\n *\r\n * \r\n * \r\n * \r\n * Alan Turing\r\n * \r\n *\r\n * When using `` for an avater, you have to use the `.md-avatar-icon` class.\r\n * \r\n * \r\n * \r\n * Timothy Kopra\r\n * \r\n * \r\n *\r\n * In cases, you have a `md-list-item`, which doesn't have any avatar,\r\n * but you want to align it with the other avatar items, you have to use the `.md-offset` class.\r\n *\r\n * \r\n * \r\n * Jon Doe\r\n * \r\n * \r\n *\r\n * ### DOM modification\r\n * The `md-list-item` component automatically detects if the list item should be clickable.\r\n *\r\n * ---\r\n * If the `md-list-item` is clickable, we wrap all content inside of a `
` and create\r\n * an overlaying button, which will will execute the given actions (like `ng-href`, `ng-click`)\r\n *\r\n * We create an overlaying button, instead of wrapping all content inside of the button,\r\n * because otherwise some elements may not be clickable inside of the button.\r\n *\r\n * ---\r\n * When using a secondary item inside of your list item, the `md-list-item` component will automatically create\r\n * a secondary container at the end of the `md-list-item`, which contains all secondary items.\r\n *\r\n * The secondary item container is not static, because otherwise the overflow will not work properly on the\r\n * list item.\r\n *\r\n */\r\n function mdListItemDirective($mdAria, $mdConstant, $mdUtil, $timeout) {\r\n var proxiedTypes = [\"md-checkbox\", \"md-switch\", \"md-menu\"];\r\n return {\r\n restrict: \"E\",\r\n controller: \"MdListController\",\r\n compile: function(tEl, tAttrs) {\r\n // Check for proxy controls (no ng-click on parent, and a control inside)\r\n var secondaryItems = tEl[0].querySelectorAll(\".md-secondary\");\r\n var hasProxiedElement;\r\n var proxyElement;\r\n var itemContainer = tEl;\r\n\r\n tEl[0].setAttribute(\"role\", \"listitem\");\r\n\r\n if (\r\n tAttrs.ngClick ||\r\n tAttrs.ngDblclick ||\r\n tAttrs.ngHref ||\r\n tAttrs.href ||\r\n tAttrs.uiSref ||\r\n tAttrs.ngAttrUiSref\r\n ) {\r\n wrapIn(\"button\");\r\n } else {\r\n for (var i = 0, type; (type = proxiedTypes[i]); ++i) {\r\n if ((proxyElement = tEl[0].querySelector(type))) {\r\n hasProxiedElement = true;\r\n break;\r\n }\r\n }\r\n if (hasProxiedElement) {\r\n wrapIn(\"div\");\r\n } else if (\r\n !tEl[0].querySelector(\r\n \"md-button:not(.md-secondary):not(.md-exclude)\"\r\n )\r\n ) {\r\n tEl.addClass(\"md-no-proxy\");\r\n }\r\n }\r\n\r\n wrapSecondaryItems();\r\n setupToggleAria();\r\n\r\n if (hasProxiedElement && proxyElement.nodeName === \"MD-MENU\") {\r\n setupProxiedMenu();\r\n }\r\n\r\n function setupToggleAria() {\r\n var toggleTypes = [\"md-switch\", \"md-checkbox\"];\r\n var toggle;\r\n\r\n for (var i = 0, toggleType; (toggleType = toggleTypes[i]); ++i) {\r\n if ((toggle = tEl.find(toggleType)[0])) {\r\n if (!toggle.hasAttribute(\"aria-label\")) {\r\n var p = tEl.find(\"p\")[0];\r\n if (!p) return;\r\n toggle.setAttribute(\"aria-label\", \"Toggle \" + p.textContent);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setupProxiedMenu() {\r\n var menuEl = angular.element(proxyElement);\r\n\r\n var isEndAligned =\r\n menuEl.parent().hasClass(\"md-secondary-container\") ||\r\n proxyElement.parentNode.firstElementChild !== proxyElement;\r\n\r\n var xAxisPosition = \"left\";\r\n\r\n if (isEndAligned) {\r\n // When the proxy item is aligned at the end of the list, we have to set the origin to the end.\r\n xAxisPosition = \"right\";\r\n }\r\n\r\n // Set the position mode / origin of the proxied menu.\r\n if (!menuEl.attr(\"md-position-mode\")) {\r\n menuEl.attr(\"md-position-mode\", xAxisPosition + \" target\");\r\n }\r\n\r\n // Apply menu open binding to menu button\r\n var menuOpenButton = menuEl.children().eq(0);\r\n if (!hasClickEvent(menuOpenButton[0])) {\r\n menuOpenButton.attr(\"ng-click\", \"$mdOpenMenu($event)\");\r\n }\r\n\r\n if (!menuOpenButton.attr(\"aria-label\")) {\r\n menuOpenButton.attr(\"aria-label\", \"Open List Menu\");\r\n }\r\n }\r\n\r\n function wrapIn(type) {\r\n if (type == \"div\") {\r\n itemContainer = angular.element(\r\n '
'\r\n );\r\n itemContainer.append(tEl.contents());\r\n tEl.addClass(\"md-proxy-focus\");\r\n } else {\r\n // Element which holds the default list-item content.\r\n itemContainer = angular.element(\r\n '
' +\r\n '
' +\r\n \"
\"\r\n );\r\n\r\n // Button which shows ripple and executes primary action.\r\n var buttonWrap = angular.element(\r\n ''\r\n );\r\n\r\n buttonWrap[0].setAttribute(\"aria-label\", tEl[0].textContent);\r\n\r\n copyAttributes(tEl[0], buttonWrap[0]);\r\n\r\n // We allow developers to specify the `md-no-focus` class, to disable the focus style\r\n // on the button executor. Once more classes should be forwarded, we should probably make the\r\n // class forward more generic.\r\n if (tEl.hasClass(\"md-no-focus\")) {\r\n buttonWrap.addClass(\"md-no-focus\");\r\n }\r\n\r\n // Append the button wrap before our list-item content, because it will overlay in relative.\r\n itemContainer.prepend(buttonWrap);\r\n itemContainer\r\n .children()\r\n .eq(1)\r\n .append(tEl.contents());\r\n\r\n tEl.addClass(\"_md-button-wrap\");\r\n }\r\n\r\n tEl[0].setAttribute(\"tabindex\", \"-1\");\r\n tEl.append(itemContainer);\r\n }\r\n\r\n function wrapSecondaryItems() {\r\n var secondaryItemsWrapper = angular.element(\r\n '
'\r\n );\r\n\r\n angular.forEach(secondaryItems, function(secondaryItem) {\r\n wrapSecondaryItem(secondaryItem, secondaryItemsWrapper);\r\n });\r\n\r\n itemContainer.append(secondaryItemsWrapper);\r\n }\r\n\r\n function wrapSecondaryItem(secondaryItem, container) {\r\n // If the current secondary item is not a button, but contains a ng-click attribute,\r\n // the secondary item will be automatically wrapped inside of a button.\r\n if (\r\n secondaryItem &&\r\n !isButton(secondaryItem) &&\r\n secondaryItem.hasAttribute(\"ng-click\")\r\n ) {\r\n $mdAria.expect(secondaryItem, \"aria-label\");\r\n var buttonWrapper = angular.element(\r\n ''\r\n );\r\n\r\n // Copy the attributes from the secondary item to the generated button.\r\n // We also support some additional attributes from the secondary item,\r\n // because some developers may use a ngIf, ngHide, ngShow on their item.\r\n copyAttributes(secondaryItem, buttonWrapper[0], [\r\n \"ng-if\",\r\n \"ng-hide\",\r\n \"ng-show\"\r\n ]);\r\n\r\n secondaryItem.setAttribute(\"tabindex\", \"-1\");\r\n buttonWrapper.append(secondaryItem);\r\n\r\n secondaryItem = buttonWrapper[0];\r\n }\r\n\r\n if (\r\n secondaryItem &&\r\n (!hasClickEvent(secondaryItem) ||\r\n (!tAttrs.ngClick && isProxiedElement(secondaryItem)))\r\n ) {\r\n // In this case we remove the secondary class, so we can identify it later, when we searching for the\r\n // proxy items.\r\n angular.element(secondaryItem).removeClass(\"md-secondary\");\r\n }\r\n\r\n tEl.addClass(\"md-with-secondary\");\r\n container.append(secondaryItem);\r\n }\r\n\r\n /**\r\n * Copies attributes from a source element to the destination element\r\n * By default the function will copy the most necessary attributes, supported\r\n * by the button executor for clickable list items.\r\n * @param source Element with the specified attributes\r\n * @param destination Element which will retrieve the attributes\r\n * @param extraAttrs Additional attributes, which will be copied over.\r\n */\r\n function copyAttributes(source, destination, extraAttrs) {\r\n var copiedAttrs = $mdUtil.prefixer([\r\n \"ng-if\",\r\n \"ng-click\",\r\n \"ng-dblclick\",\r\n \"aria-label\",\r\n \"ng-disabled\",\r\n \"ui-sref\",\r\n \"href\",\r\n \"ng-href\",\r\n \"target\",\r\n \"ng-attr-ui-sref\",\r\n \"ui-sref-opts\"\r\n ]);\r\n\r\n if (extraAttrs) {\r\n copiedAttrs = copiedAttrs.concat($mdUtil.prefixer(extraAttrs));\r\n }\r\n\r\n angular.forEach(copiedAttrs, function(attr) {\r\n if (source.hasAttribute(attr)) {\r\n destination.setAttribute(attr, source.getAttribute(attr));\r\n source.removeAttribute(attr);\r\n }\r\n });\r\n }\r\n\r\n function isProxiedElement(el) {\r\n return proxiedTypes.indexOf(el.nodeName.toLowerCase()) != -1;\r\n }\r\n\r\n function isButton(el) {\r\n var nodeName = el.nodeName.toUpperCase();\r\n\r\n return nodeName == \"MD-BUTTON\" || nodeName == \"BUTTON\";\r\n }\r\n\r\n function hasClickEvent(element) {\r\n var attr = element.attributes;\r\n for (var i = 0; i < attr.length; i++) {\r\n if (tAttrs.$normalize(attr[i].name) === \"ngClick\") return true;\r\n }\r\n return false;\r\n }\r\n\r\n return postLink;\r\n\r\n function postLink($scope, $element, $attr, ctrl) {\r\n $element.addClass(\"_md\"); // private md component indicator for styling\r\n\r\n var proxies = [],\r\n firstElement = $element[0].firstElementChild,\r\n isButtonWrap = $element.hasClass(\"_md-button-wrap\"),\r\n clickChild = isButtonWrap\r\n ? firstElement.firstElementChild\r\n : firstElement,\r\n hasClick = clickChild && hasClickEvent(clickChild);\r\n\r\n computeProxies();\r\n computeClickable();\r\n\r\n if ($element.hasClass(\"md-proxy-focus\") && proxies.length) {\r\n angular.forEach(proxies, function(proxy) {\r\n proxy = angular.element(proxy);\r\n\r\n $scope.mouseActive = false;\r\n proxy\r\n .on(\"mousedown\", function() {\r\n $scope.mouseActive = true;\r\n $timeout(function() {\r\n $scope.mouseActive = false;\r\n }, 100);\r\n })\r\n .on(\"focus\", function() {\r\n if ($scope.mouseActive === false) {\r\n $element.addClass(\"md-focused\");\r\n }\r\n proxy.on(\"blur\", function proxyOnBlur() {\r\n $element.removeClass(\"md-focused\");\r\n proxy.off(\"blur\", proxyOnBlur);\r\n });\r\n });\r\n });\r\n }\r\n\r\n function computeProxies() {\r\n if (firstElement && firstElement.children && !hasClick) {\r\n angular.forEach(proxiedTypes, function(type) {\r\n // All elements which are not capable for being used a proxy have the .md-secondary class\r\n // applied. These items had been sorted out in the secondary wrap function.\r\n angular.forEach(\r\n firstElement.querySelectorAll(type + \":not(.md-secondary)\"),\r\n function(child) {\r\n proxies.push(child);\r\n }\r\n );\r\n });\r\n }\r\n }\r\n\r\n function computeClickable() {\r\n if (proxies.length == 1 || hasClick) {\r\n $element.addClass(\"md-clickable\");\r\n\r\n if (!hasClick) {\r\n ctrl.attachRipple(\r\n $scope,\r\n angular.element($element[0].querySelector(\".md-no-style\"))\r\n );\r\n }\r\n }\r\n }\r\n\r\n function isEventFromControl(event) {\r\n var forbiddenControls = [\"md-slider\"];\r\n\r\n // If there is no path property in the event, then we can assume that the event was not bubbled.\r\n if (!event.path) {\r\n return (\r\n forbiddenControls.indexOf(\r\n event.target.tagName.toLowerCase()\r\n ) !== -1\r\n );\r\n }\r\n\r\n // We iterate the event path up and check for a possible component.\r\n // Our maximum index to search, is the list item root.\r\n var maxPath = event.path.indexOf($element.children()[0]);\r\n\r\n for (var i = 0; i < maxPath; i++) {\r\n if (\r\n forbiddenControls.indexOf(\r\n event.path[i].tagName.toLowerCase()\r\n ) !== -1\r\n ) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n var clickChildKeypressListener = function(e) {\r\n if (\r\n e.target.nodeName != \"INPUT\" &&\r\n e.target.nodeName != \"TEXTAREA\" &&\r\n !e.target.isContentEditable\r\n ) {\r\n var keyCode = e.which || e.keyCode;\r\n if (keyCode == $mdConstant.KEY_CODE.SPACE) {\r\n if (clickChild) {\r\n clickChild.click();\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n }\r\n };\r\n\r\n if (!hasClick && !proxies.length) {\r\n clickChild &&\r\n clickChild.addEventListener(\r\n \"keypress\",\r\n clickChildKeypressListener\r\n );\r\n }\r\n\r\n $element.off(\"click\");\r\n $element.off(\"keypress\");\r\n\r\n if (proxies.length == 1 && clickChild) {\r\n $element\r\n .children()\r\n .eq(0)\r\n .on(\"click\", function(e) {\r\n // When the event is coming from an control and it should not trigger the proxied element\r\n // then we are skipping.\r\n if (isEventFromControl(e)) return;\r\n\r\n var parentButton = $mdUtil.getClosest(e.target, \"BUTTON\");\r\n if (!parentButton && clickChild.contains(e.target)) {\r\n angular.forEach(proxies, function(proxy) {\r\n if (e.target !== proxy && !proxy.contains(e.target)) {\r\n if (proxy.nodeName === \"MD-MENU\") {\r\n proxy = proxy.children[0];\r\n }\r\n angular.element(proxy).triggerHandler(\"click\");\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n $scope.$on(\"$destroy\", function() {\r\n clickChild &&\r\n clickChild.removeEventListener(\r\n \"keypress\",\r\n clickChildKeypressListener\r\n );\r\n });\r\n }\r\n }\r\n };\r\n }\r\n\r\n /*\r\n * @private\r\n * @ngdoc controller\r\n * @name MdListController\r\n * @module material.components.list\r\n *\r\n */\r\n function MdListController($scope, $element, $mdListInkRipple) {\r\n var ctrl = this;\r\n ctrl.attachRipple = attachRipple;\r\n\r\n function attachRipple(scope, element) {\r\n var options = {};\r\n $mdListInkRipple.attach(scope, element, options);\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.menu\r\n */\r\n\r\n angular.module(\"material.components.menu\", [\r\n \"material.core\",\r\n \"material.components.backdrop\"\r\n ]);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.menu-bar\r\n */\r\n\r\n angular.module(\"material.components.menuBar\", [\r\n \"material.core\",\r\n \"material.components.icon\",\r\n \"material.components.menu\"\r\n ]);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.navBar\r\n */\r\n\r\n MdNavBarController.$inject = [\r\n \"$element\",\r\n \"$scope\",\r\n \"$timeout\",\r\n \"$mdConstant\"\r\n ];\r\n MdNavItem.$inject = [\"$$rAF\"];\r\n MdNavItemController.$inject = [\"$element\"];\r\n MdNavBar.$inject = [\"$mdAria\", \"$mdTheming\"];\r\n angular\r\n .module(\"material.components.navBar\", [\"material.core\"])\r\n .controller(\"MdNavBarController\", MdNavBarController)\r\n .directive(\"mdNavBar\", MdNavBar)\r\n .controller(\"MdNavItemController\", MdNavItemController)\r\n .directive(\"mdNavItem\", MdNavItem);\r\n\r\n /*****************************************************************************\r\n * PUBLIC DOCUMENTATION *\r\n *****************************************************************************/\r\n /**\r\n * @ngdoc directive\r\n * @name mdNavBar\r\n * @module material.components.navBar\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * The `` directive renders a list of material tabs that can be used\r\n * for top-level page navigation. Unlike ``, it has no concept of a tab\r\n * body and no bar pagination.\r\n *\r\n * Because it deals with page navigation, certain routing concepts are built-in.\r\n * Route changes via via ng-href, ui-sref, or ng-click events are supported.\r\n * Alternatively, the user could simply watch currentNavItem for changes.\r\n *\r\n * Accessibility functionality is implemented as a site navigator with a\r\n * listbox, according to\r\n * https://www.w3.org/TR/wai-aria-practices/#Site_Navigator_Tabbed_Style\r\n *\r\n * @param {string=} mdSelectedNavItem The name of the current tab; this must\r\n * match the name attribute of ``\r\n * @param {string=} navBarAriaLabel An aria-label for the nav-bar\r\n *\r\n * @usage\r\n * \r\n * \r\n * Page One\r\n * Page Two\r\n * Page Three\r\n * \r\n *\r\n * \r\n * (function() {\r\n * ‘use strict’;\r\n *\r\n * $rootScope.$on('$routeChangeSuccess', function(event, current) {\r\n * $scope.currentLink = getCurrentLinkFromRoute(current);\r\n * });\r\n * });\r\n * \r\n */\r\n\r\n /*****************************************************************************\r\n * mdNavItem\r\n *****************************************************************************/\r\n /**\r\n * @ngdoc directive\r\n * @name mdNavItem\r\n * @module material.components.navBar\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * `` describes a page navigation link within the ``\r\n * component. It renders an md-button as the actual link.\r\n *\r\n * Exactly one of the mdNavClick, mdNavHref, mdNavSref attributes are required to be\r\n * specified.\r\n *\r\n * @param {Function=} mdNavClick Function which will be called when the\r\n * link is clicked to change the page. Renders as an `ng-click`.\r\n * @param {string=} mdNavHref url to transition to when this link is clicked.\r\n * Renders as an `ng-href`.\r\n * @param {string=} mdNavSref Ui-router state to transition to when this link is\r\n * clicked. Renders as a `ui-sref`.\r\n * @param {string=} name The name of this link. Used by the nav bar to know\r\n * which link is currently selected.\r\n *\r\n * @usage\r\n * See `` for usage.\r\n */\r\n\r\n /*****************************************************************************\r\n * IMPLEMENTATION *\r\n *****************************************************************************/\r\n\r\n function MdNavBar($mdAria, $mdTheming) {\r\n return {\r\n restrict: \"E\",\r\n transclude: true,\r\n controller: MdNavBarController,\r\n controllerAs: \"ctrl\",\r\n bindToController: true,\r\n scope: {\r\n mdSelectedNavItem: \"=?\",\r\n navBarAriaLabel: \"@?\"\r\n },\r\n template:\r\n '
' +\r\n '\" +\r\n \"\" +\r\n \"
\",\r\n link: function(scope, element, attrs, ctrl) {\r\n $mdTheming(element);\r\n if (!ctrl.navBarAriaLabel) {\r\n $mdAria.expectAsync(element, \"aria-label\", angular.noop);\r\n }\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Controller for the nav-bar component.\r\n *\r\n * Accessibility functionality is implemented as a site navigator with a\r\n * listbox, according to\r\n * https://www.w3.org/TR/wai-aria-practices/#Site_Navigator_Tabbed_Style\r\n * @param {!angular.JQLite} $element\r\n * @param {!angular.Scope} $scope\r\n * @param {!angular.Timeout} $timeout\r\n * @param {!Object} $mdConstant\r\n * @constructor\r\n * @final\r\n * @ngInject\r\n */\r\n function MdNavBarController($element, $scope, $timeout, $mdConstant) {\r\n // Injected variables\r\n /** @private @const {!angular.Timeout} */\r\n this._$timeout = $timeout;\r\n\r\n /** @private @const {!angular.Scope} */\r\n this._$scope = $scope;\r\n\r\n /** @private @const {!Object} */\r\n this._$mdConstant = $mdConstant;\r\n\r\n // Data-bound variables.\r\n /** @type {string} */\r\n this.mdSelectedNavItem;\r\n\r\n /** @type {string} */\r\n this.navBarAriaLabel;\r\n\r\n // State variables.\r\n\r\n /** @type {?angular.JQLite} */\r\n this._navBarEl = $element[0];\r\n\r\n /** @type {?angular.JQLite} */\r\n this._inkbar;\r\n\r\n var self = this;\r\n // need to wait for transcluded content to be available\r\n var deregisterTabWatch = this._$scope.$watch(\r\n function() {\r\n return self._navBarEl.querySelectorAll(\"._md-nav-button\").length;\r\n },\r\n function(newLength) {\r\n if (newLength > 0) {\r\n self._initTabs();\r\n deregisterTabWatch();\r\n }\r\n }\r\n );\r\n }\r\n\r\n /**\r\n * Initializes the tab components once they exist.\r\n * @private\r\n */\r\n MdNavBarController.prototype._initTabs = function() {\r\n this._inkbar = angular.element(\r\n this._navBarEl.getElementsByTagName(\"md-nav-ink-bar\")[0]\r\n );\r\n\r\n var self = this;\r\n this._$timeout(function() {\r\n self._updateTabs(self.mdSelectedNavItem, undefined);\r\n });\r\n\r\n this._$scope.$watch(\"ctrl.mdSelectedNavItem\", function(\r\n newValue,\r\n oldValue\r\n ) {\r\n // Wait a digest before update tabs for products doing\r\n // anything dynamic in the template.\r\n self._$timeout(function() {\r\n self._updateTabs(newValue, oldValue);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Set the current tab to be selected.\r\n * @param {string|undefined} newValue New current tab name.\r\n * @param {string|undefined} oldValue Previous tab name.\r\n * @private\r\n */\r\n MdNavBarController.prototype._updateTabs = function(newValue, oldValue) {\r\n var self = this;\r\n var tabs = this._getTabs();\r\n var oldIndex = -1;\r\n var newIndex = -1;\r\n var newTab = this._getTabByName(newValue);\r\n var oldTab = this._getTabByName(oldValue);\r\n\r\n if (oldTab) {\r\n oldTab.setSelected(false);\r\n oldIndex = tabs.indexOf(oldTab);\r\n }\r\n\r\n if (newTab) {\r\n newTab.setSelected(true);\r\n newIndex = tabs.indexOf(newTab);\r\n }\r\n\r\n this._$timeout(function() {\r\n self._updateInkBarStyles(newTab, newIndex, oldIndex);\r\n });\r\n };\r\n\r\n /**\r\n * Repositions the ink bar to the selected tab.\r\n * @private\r\n */\r\n MdNavBarController.prototype._updateInkBarStyles = function(\r\n tab,\r\n newIndex,\r\n oldIndex\r\n ) {\r\n this._inkbar\r\n .toggleClass(\"_md-left\", newIndex < oldIndex)\r\n .toggleClass(\"_md-right\", newIndex > oldIndex);\r\n\r\n this._inkbar.css({ display: newIndex < 0 ? \"none\" : \"\" });\r\n\r\n if (tab) {\r\n var tabEl = tab.getButtonEl();\r\n var left = tabEl.offsetLeft;\r\n\r\n this._inkbar.css({\r\n left: left + \"px\",\r\n width: tabEl.offsetWidth + \"px\"\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Returns an array of the current tabs.\r\n * @return {!Array}\r\n * @private\r\n */\r\n MdNavBarController.prototype._getTabs = function() {\r\n var linkArray = Array.prototype.slice.call(\r\n this._navBarEl.querySelectorAll(\".md-nav-item\")\r\n );\r\n return linkArray.map(function(el) {\r\n return angular.element(el).controller(\"mdNavItem\");\r\n });\r\n };\r\n\r\n /**\r\n * Returns the tab with the specified name.\r\n * @param {string} name The name of the tab, found in its name attribute.\r\n * @return {!NavItemController|undefined}\r\n * @private\r\n */\r\n MdNavBarController.prototype._getTabByName = function(name) {\r\n return this._findTab(function(tab) {\r\n return tab.getName() == name;\r\n });\r\n };\r\n\r\n /**\r\n * Returns the selected tab.\r\n * @return {!NavItemController|undefined}\r\n * @private\r\n */\r\n MdNavBarController.prototype._getSelectedTab = function() {\r\n return this._findTab(function(tab) {\r\n return tab.isSelected();\r\n });\r\n };\r\n\r\n /**\r\n * Returns the focused tab.\r\n * @return {!NavItemController|undefined}\r\n */\r\n MdNavBarController.prototype.getFocusedTab = function() {\r\n return this._findTab(function(tab) {\r\n return tab.hasFocus();\r\n });\r\n };\r\n\r\n /**\r\n * Find a tab that matches the specified function.\r\n * @private\r\n */\r\n MdNavBarController.prototype._findTab = function(fn) {\r\n var tabs = this._getTabs();\r\n for (var i = 0; i < tabs.length; i++) {\r\n if (fn(tabs[i])) {\r\n return tabs[i];\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n /**\r\n * Direct focus to the selected tab when focus enters the nav bar.\r\n */\r\n MdNavBarController.prototype.onFocus = function() {\r\n var tab = this._getSelectedTab();\r\n if (tab) {\r\n tab.setFocused(true);\r\n }\r\n };\r\n\r\n /**\r\n * Clear tab focus when focus leaves the nav bar.\r\n */\r\n MdNavBarController.prototype.onBlur = function() {\r\n var tab = this.getFocusedTab();\r\n if (tab) {\r\n tab.setFocused(false);\r\n }\r\n };\r\n\r\n /**\r\n * Move focus from oldTab to newTab.\r\n * @param {!NavItemController} oldTab\r\n * @param {!NavItemController} newTab\r\n * @private\r\n */\r\n MdNavBarController.prototype._moveFocus = function(oldTab, newTab) {\r\n oldTab.setFocused(false);\r\n newTab.setFocused(true);\r\n };\r\n\r\n /**\r\n * Responds to keypress events.\r\n * @param {!Event} e\r\n */\r\n MdNavBarController.prototype.onKeydown = function(e) {\r\n var keyCodes = this._$mdConstant.KEY_CODE;\r\n var tabs = this._getTabs();\r\n var focusedTab = this.getFocusedTab();\r\n if (!focusedTab) return;\r\n\r\n var focusedTabIndex = tabs.indexOf(focusedTab);\r\n\r\n // use arrow keys to navigate between tabs\r\n switch (e.keyCode) {\r\n case keyCodes.UP_ARROW:\r\n case keyCodes.LEFT_ARROW:\r\n if (focusedTabIndex > 0) {\r\n this._moveFocus(focusedTab, tabs[focusedTabIndex - 1]);\r\n }\r\n break;\r\n case keyCodes.DOWN_ARROW:\r\n case keyCodes.RIGHT_ARROW:\r\n if (focusedTabIndex < tabs.length - 1) {\r\n this._moveFocus(focusedTab, tabs[focusedTabIndex + 1]);\r\n }\r\n break;\r\n case keyCodes.SPACE:\r\n case keyCodes.ENTER:\r\n // timeout to avoid a \"digest already in progress\" console error\r\n this._$timeout(function() {\r\n focusedTab.getButtonEl().click();\r\n });\r\n break;\r\n }\r\n };\r\n\r\n /**\r\n * @ngInject\r\n */\r\n function MdNavItem($$rAF) {\r\n return {\r\n restrict: \"E\",\r\n require: [\"mdNavItem\", \"^mdNavBar\"],\r\n controller: MdNavItemController,\r\n bindToController: true,\r\n controllerAs: \"ctrl\",\r\n replace: true,\r\n transclude: true,\r\n template:\r\n '
  • ' +\r\n '' +\r\n '' +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"\" +\r\n '' +\r\n '' +\r\n \"\" +\r\n \"
  • \",\r\n scope: {\r\n mdNavClick: \"&?\",\r\n mdNavHref: \"@?\",\r\n mdNavSref: \"@?\",\r\n name: \"@\"\r\n },\r\n link: function(scope, element, attrs, controllers) {\r\n var mdNavItem = controllers[0];\r\n var mdNavBar = controllers[1];\r\n\r\n // When accessing the element's contents synchronously, they\r\n // may not be defined yet because of transclusion. There is a higher chance\r\n // that it will be accessible if we wait one frame.\r\n $$rAF(function() {\r\n if (!mdNavItem.name) {\r\n mdNavItem.name = angular\r\n .element(element[0].querySelector(\"._md-nav-button-text\"))\r\n .text()\r\n .trim();\r\n }\r\n\r\n var navButton = angular.element(\r\n element[0].querySelector(\"._md-nav-button\")\r\n );\r\n navButton.on(\"click\", function() {\r\n mdNavBar.mdSelectedNavItem = mdNavItem.name;\r\n scope.$apply();\r\n });\r\n });\r\n }\r\n };\r\n }\r\n\r\n /**\r\n * Controller for the nav-item component.\r\n * @param {!angular.JQLite} $element\r\n * @constructor\r\n * @final\r\n * @ngInject\r\n */\r\n function MdNavItemController($element) {\r\n /** @private @const {!angular.JQLite} */\r\n this._$element = $element;\r\n\r\n // Data-bound variables\r\n /** @const {?Function} */\r\n this.mdNavClick;\r\n /** @const {?string} */\r\n this.mdNavHref;\r\n /** @const {?string} */\r\n this.name;\r\n\r\n // State variables\r\n /** @private {boolean} */\r\n this._selected = false;\r\n\r\n /** @private {boolean} */\r\n this._focused = false;\r\n\r\n var hasNavClick = !!$element.attr(\"md-nav-click\");\r\n var hasNavHref = !!$element.attr(\"md-nav-href\");\r\n var hasNavSref = !!$element.attr(\"md-nav-sref\");\r\n\r\n // Cannot specify more than one nav attribute\r\n if (\r\n (hasNavClick ? 1 : 0) + (hasNavHref ? 1 : 0) + (hasNavSref ? 1 : 0) >\r\n 1\r\n ) {\r\n throw Error(\r\n \"Must specify exactly one of md-nav-click, md-nav-href, \" +\r\n \"md-nav-sref for nav-item directive\"\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Returns a map of class names and values for use by ng-class.\r\n * @return {!Object}\r\n */\r\n MdNavItemController.prototype.getNgClassMap = function() {\r\n return {\r\n \"md-active\": this._selected,\r\n \"md-primary\": this._selected,\r\n \"md-unselected\": !this._selected,\r\n \"md-focused\": this._focused\r\n };\r\n };\r\n\r\n /**\r\n * Get the name attribute of the tab.\r\n * @return {string}\r\n */\r\n MdNavItemController.prototype.getName = function() {\r\n return this.name;\r\n };\r\n\r\n /**\r\n * Get the button element associated with the tab.\r\n * @return {!Element}\r\n */\r\n MdNavItemController.prototype.getButtonEl = function() {\r\n return this._$element[0].querySelector(\"._md-nav-button\");\r\n };\r\n\r\n /**\r\n * Set the selected state of the tab.\r\n * @param {boolean} isSelected\r\n */\r\n MdNavItemController.prototype.setSelected = function(isSelected) {\r\n this._selected = isSelected;\r\n };\r\n\r\n /**\r\n * @return {boolean}\r\n */\r\n MdNavItemController.prototype.isSelected = function() {\r\n return this._selected;\r\n };\r\n\r\n /**\r\n * Set the focused state of the tab.\r\n * @param {boolean} isFocused\r\n */\r\n MdNavItemController.prototype.setFocused = function(isFocused) {\r\n this._focused = isFocused;\r\n };\r\n\r\n /**\r\n * @return {boolean}\r\n */\r\n MdNavItemController.prototype.hasFocus = function() {\r\n return this._focused;\r\n };\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.panel\r\n */\r\n MdPanelService.$inject = [\r\n \"$rootElement\",\r\n \"$rootScope\",\r\n \"$injector\",\r\n \"$window\"\r\n ];\r\n angular\r\n .module(\"material.components.panel\", [\r\n \"material.core\",\r\n \"material.components.backdrop\"\r\n ])\r\n .service(\"$mdPanel\", MdPanelService);\r\n\r\n /*****************************************************************************\r\n * PUBLIC DOCUMENTATION *\r\n *****************************************************************************/\r\n\r\n /**\r\n * @ngdoc service\r\n * @name $mdPanel\r\n * @module material.components.panel\r\n *\r\n * @description\r\n * `$mdPanel` is a robust, low-level service for creating floating panels on\r\n * the screen. It can be used to implement tooltips, dialogs, pop-ups, etc.\r\n *\r\n * @usage\r\n * \r\n * (function(angular, undefined) {\r\n * ‘use strict’;\r\n *\r\n * angular\r\n * .module('demoApp', ['ngMaterial'])\r\n * .controller('DemoDialogController', DialogController);\r\n *\r\n * var panelRef;\r\n *\r\n * function showPanel($event) {\r\n * var panelPosition = $mdPanel.newPanelPosition()\r\n * .absolute()\r\n * .top('50%')\r\n * .left('50%');\r\n *\r\n * var panelAnimation = $mdPanel.newPanelAnimation()\r\n * .targetEvent($event)\r\n * .defaultAnimation('md-panel-animate-fly')\r\n * .closeTo('.show-button');\r\n *\r\n * var config = {\r\n * attachTo: angular.element(document.body),\r\n * controller: DialogController,\r\n * controllerAs: 'ctrl',\r\n * position: panelPosition,\r\n * animation: panelAnimation,\r\n * targetEvent: $event,\r\n * templateUrl: 'dialog-template.html',\r\n * clickOutsideToClose: true,\r\n * escapeToClose: true,\r\n * focusOnOpen: true\r\n * }\r\n *\r\n * $mdPanel.open(config)\r\n * .then(function(result) {\r\n * panelRef = result;\r\n * });\r\n * }\r\n *\r\n * function DialogController(MdPanelRef, toppings) {\r\n * var toppings;\r\n *\r\n * function closeDialog() {\r\n * MdPanelRef && MdPanelRef.close();\r\n * }\r\n * }\r\n * })(angular);\r\n * \r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdPanel#create\r\n * @description\r\n * Creates a panel with the specified options.\r\n *\r\n * @param config {!Object=} Specific configuration object that may contain the\r\n * following properties:\r\n *\r\n * - `id` - `{string=}`: An ID to track the panel by. When an ID is provided,\r\n * the created panel is added to a tracked panels object. Any subsequent\r\n * requests made to create a panel with that ID are ignored. This is useful\r\n * in having the panel service not open multiple panels from the same user\r\n * interaction when there is no backdrop and events are propagated. Defaults\r\n * to an arbitrary string that is not tracked.\r\n * - `template` - `{string=}`: HTML template to show in the panel. This\r\n * **must** be trusted HTML with respect to Angular’s\r\n * [$sce service](https://docs.angularjs.org/api/ng/service/$sce).\r\n * - `templateUrl` - `{string=}`: The URL that will be used as the content of\r\n * the panel.\r\n * - `controller` - `{(function|string)=}`: The controller to associate with\r\n * the panel. The controller can inject a reference to the returned\r\n * panelRef, which allows the panel to be closed, hidden, and shown. Any\r\n * fields passed in through locals or resolve will be bound to the\r\n * controller.\r\n * - `controllerAs` - `{string=}`: An alias to assign the controller to on\r\n * the scope.\r\n * - `bindToController` - `{boolean=}`: Binds locals to the controller\r\n * instead of passing them in. Defaults to true, as this is a best\r\n * practice.\r\n * - `locals` - `{Object=}`: An object containing key/value pairs. The keys\r\n * will be used as names of values to inject into the controller. For\r\n * example, `locals: {three: 3}` would inject `three` into the controller,\r\n * with the value 3.\r\n * - `resolve` - `{Object=}`: Similar to locals, except it takes promises as\r\n * values. The panel will not open until all of the promises resolve.\r\n * - `attachTo` - `{(string|!angular.JQLite|!Element)=}`: The element to\r\n * attach the panel to. Defaults to appending to the root element of the\r\n * application.\r\n * - `propagateContainerEvents` - `{boolean=}`: Whether pointer or touch\r\n * events should be allowed to propagate 'go through' the container, aka the\r\n * wrapper, of the panel. Defaults to false.\r\n * - `panelClass` - `{string=}`: A css class to apply to the panel element.\r\n * This class should define any borders, box-shadow, etc. for the panel.\r\n * - `zIndex` - `{number=}`: The z-index to place the panel at.\r\n * Defaults to 80.\r\n * - `position` - `{MdPanelPosition=}`: An MdPanelPosition object that\r\n * specifies the alignment of the panel. For more information, see\r\n * `MdPanelPosition`.\r\n * - `clickOutsideToClose` - `{boolean=}`: Whether the user can click\r\n * outside the panel to close it. Defaults to false.\r\n * - `escapeToClose` - `{boolean=}`: Whether the user can press escape to\r\n * close the panel. Defaults to false.\r\n * - `trapFocus` - `{boolean=}`: Whether focus should be trapped within the\r\n * panel. If `trapFocus` is true, the user will not be able to interact\r\n * with the rest of the page until the panel is dismissed. Defaults to\r\n * false.\r\n * - `focusOnOpen` - `{boolean=}`: An option to override focus behavior on\r\n * open. Only disable if focusing some other way, as focus management is\r\n * required for panels to be accessible. Defaults to true.\r\n * - `fullscreen` - `{boolean=}`: Whether the panel should be full screen.\r\n * Applies the class `._md-panel-fullscreen` to the panel on open. Defaults\r\n * to false.\r\n * - `animation` - `{MdPanelAnimation=}`: An MdPanelAnimation object that\r\n * specifies the animation of the panel. For more information, see\r\n * `MdPanelAnimation`.\r\n * - `hasBackdrop` - `{boolean=}`: Whether there should be an opaque backdrop\r\n * behind the panel. Defaults to false.\r\n * - `disableParentScroll` - `{boolean=}`: Whether the user can scroll the\r\n * page behind the panel. Defaults to false.\r\n * - `onDomAdded` - `{function=}`: Callback function used to announce when\r\n * the panel is added to the DOM.\r\n * - `onOpenComplete` - `{function=}`: Callback function used to announce\r\n * when the open() action is finished.\r\n * - `onRemoving` - `{function=}`: Callback function used to announce the\r\n * close/hide() action is starting.\r\n * - `onDomRemoved` - `{function=}`: Callback function used to announce when\r\n * the panel is removed from the DOM.\r\n * - `origin` - `{(string|!angular.JQLite|!Element)=}`: The element to focus\r\n * on when the panel closes. This is commonly the element which triggered\r\n * the opening of the panel. If you do not use `origin`, you need to control\r\n * the focus manually.\r\n *\r\n * @returns {!MdPanelRef} panelRef\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdPanel#open\r\n * @description\r\n * Calls the create method above, then opens the panel. This is a shortcut for\r\n * creating and then calling open manually. If custom methods need to be\r\n * called when the panel is added to the DOM or opened, do not use this method.\r\n * Instead create the panel, chain promises on the domAdded and openComplete\r\n * methods, and call open from the returned panelRef.\r\n *\r\n * @param {!Object=} config Specific configuration object that may contain\r\n * the properties defined in `$mdPanel.create`.\r\n * @returns {!angular.$q.Promise} panelRef A promise that resolves\r\n * to an instance of the panel.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdPanel#newPanelPosition\r\n * @description\r\n * Returns a new instance of the MdPanelPosition object. Use this to create\r\n * the position config object.\r\n *\r\n * @returns {!MdPanelPosition} panelPosition\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name $mdPanel#newPanelAnimation\r\n * @description\r\n * Returns a new instance of the MdPanelAnimation object. Use this to create\r\n * the animation config object.\r\n *\r\n * @returns {!MdPanelAnimation} panelAnimation\r\n */\r\n\r\n /*****************************************************************************\r\n * MdPanelRef *\r\n *****************************************************************************/\r\n\r\n /**\r\n * @ngdoc type\r\n * @name MdPanelRef\r\n * @module material.components.panel\r\n * @description\r\n * A reference to a created panel. This reference contains a unique id for the\r\n * panel, along with the following properties:\r\n *\r\n * - `id` - `{string}`: The unique id for the panel. This id is used to track\r\n * when a panel was interacted with.\r\n * - `config` - `{!Object=}`: The entire config object that was used in\r\n * create.\r\n * - `isAttached` - `{boolean}`: Whether the panel is attached to the DOM.\r\n * Visibility to the user does not factor into isAttached.\r\n * - `panelContainer` - `{angular.JQLite}`: The wrapper element containing the\r\n * panel. This property is added in order to have access to the `addClass`,\r\n * `removeClass`, `toggleClass`, etc methods.\r\n * - `panelEl` - `{angular.JQLite}`: The panel element. This property is added\r\n * in order to have access to the `addClass`, `removeClass`, `toggleClass`,\r\n * etc methods.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#open\r\n * @description\r\n * Attaches and shows the panel.\r\n *\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the panel is\r\n * opened.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#close\r\n * @description\r\n * Hides and detaches the panel. Note that this will **not** destroy the panel.\r\n * If you don't intend on using the panel again, call the {@link #destroy\r\n * destroy} method afterwards.\r\n *\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the panel is\r\n * closed.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#attach\r\n * @description\r\n * Create the panel elements and attach them to the DOM. The panel will be\r\n * hidden by default.\r\n *\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the panel is\r\n * attached.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#detach\r\n * @description\r\n * Removes the panel from the DOM. This will NOT hide the panel before removing\r\n * it.\r\n *\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the panel is\r\n * detached.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#show\r\n * @description\r\n * Shows the panel.\r\n *\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the panel has\r\n * shown and animations are completed.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#hide\r\n * @description\r\n * Hides the panel.\r\n *\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the panel has\r\n * hidden and animations are completed.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#destroy\r\n * @description\r\n * Destroys the panel. The panel cannot be opened again after this is called.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#addClass\r\n * @deprecated\r\n * This method is in the process of being deprecated in favor of using the panel\r\n * and container JQLite elements that are referenced in the MdPanelRef object.\r\n * Full deprecation is scheduled for material 1.2.\r\n * @description\r\n * Adds a class to the panel. DO NOT use this hide/show the panel.\r\n *\r\n * @param {string} newClass class to be added.\r\n * @param {boolean} toElement Whether or not to add the class to the panel\r\n * element instead of the container.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#removeClass\r\n * @deprecated\r\n * This method is in the process of being deprecated in favor of using the panel\r\n * and container JQLite elements that are referenced in the MdPanelRef object.\r\n * Full deprecation is scheduled for material 1.2.\r\n * @description\r\n * Removes a class from the panel. DO NOT use this to hide/show the panel.\r\n *\r\n * @param {string} oldClass Class to be removed.\r\n * @param {boolean} fromElement Whether or not to remove the class from the\r\n * panel element instead of the container.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#toggleClass\r\n * @deprecated\r\n * This method is in the process of being deprecated in favor of using the panel\r\n * and container JQLite elements that are referenced in the MdPanelRef object.\r\n * Full deprecation is scheduled for material 1.2.\r\n * @description\r\n * Toggles a class on the panel. DO NOT use this to hide/show the panel.\r\n *\r\n * @param {string} toggleClass Class to be toggled.\r\n * @param {boolean} onElement Whether or not to remove the class from the panel\r\n * element instead of the container.\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelRef#updatePosition\r\n * @description\r\n * Updates the position configuration of a panel. Use this to update the\r\n * position of a panel that is open, without having to close and re-open the\r\n * panel.\r\n *\r\n * @param {!MdPanelPosition} position\r\n */\r\n\r\n /*****************************************************************************\r\n * MdPanelPosition *\r\n *****************************************************************************/\r\n\r\n /**\r\n * @ngdoc type\r\n * @name MdPanelPosition\r\n * @module material.components.panel\r\n * @description\r\n *\r\n * Object for configuring the position of the panel.\r\n *\r\n * @usage\r\n *\r\n * #### Centering the panel\r\n *\r\n * \r\n * new MdPanelPosition().absolute().center();\r\n * \r\n *\r\n * #### Overlapping the panel with an element\r\n *\r\n * \r\n * new MdPanelPosition()\r\n * .relativeTo(someElement)\r\n * .addPanelPosition(\r\n * $mdPanel.xPosition.ALIGN_START,\r\n * $mdPanel.yPosition.ALIGN_TOPS\r\n * );\r\n * \r\n *\r\n * #### Aligning the panel with the bottom of an element\r\n *\r\n * \r\n * new MdPanelPosition()\r\n * .relativeTo(someElement)\r\n * .addPanelPosition($mdPanel.xPosition.CENTER, $mdPanel.yPosition.BELOW);\r\n * \r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#absolute\r\n * @description\r\n * Positions the panel absolutely relative to the parent element. If the parent\r\n * is document.body, this is equivalent to positioning the panel absolutely\r\n * within the viewport.\r\n *\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#relativeTo\r\n * @description\r\n * Positions the panel relative to a specific element.\r\n *\r\n * @param {string|!Element|!angular.JQLite} element Query selector, DOM element,\r\n * or angular element to position the panel with respect to.\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#top\r\n * @description\r\n * Sets the value of `top` for the panel. Clears any previously set vertical\r\n * position.\r\n *\r\n * @param {string=} top Value of `top`. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#bottom\r\n * @description\r\n * Sets the value of `bottom` for the panel. Clears any previously set vertical\r\n * position.\r\n *\r\n * @param {string=} bottom Value of `bottom`. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#start\r\n * @description\r\n * Sets the panel to the start of the page - `left` if `ltr` or `right` for\r\n * `rtl`. Clears any previously set horizontal position.\r\n *\r\n * @param {string=} start Value of position. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#end\r\n * @description\r\n * Sets the panel to the end of the page - `right` if `ltr` or `left` for `rtl`.\r\n * Clears any previously set horizontal position.\r\n *\r\n * @param {string=} end Value of position. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#left\r\n * @description\r\n * Sets the value of `left` for the panel. Clears any previously set\r\n * horizontal position.\r\n *\r\n * @param {string=} left Value of `left`. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#right\r\n * @description\r\n * Sets the value of `right` for the panel. Clears any previously set\r\n * horizontal position.\r\n *\r\n * @param {string=} right Value of `right`. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#centerHorizontally\r\n * @description\r\n * Centers the panel horizontally in the viewport. Clears any previously set\r\n * horizontal position.\r\n *\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#centerVertically\r\n * @description\r\n * Centers the panel vertically in the viewport. Clears any previously set\r\n * vertical position.\r\n *\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#center\r\n * @description\r\n * Centers the panel horizontally and vertically in the viewport. This is\r\n * equivalent to calling both `centerHorizontally` and `centerVertically`.\r\n * Clears any previously set horizontal and vertical positions.\r\n *\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#addPanelPosition\r\n * @description\r\n * Sets the x and y position for the panel relative to another element. Can be\r\n * called multiple times to specify an ordered list of panel positions. The\r\n * first position which allows the panel to be completely on-screen will be\r\n * chosen; the last position will be chose whether it is on-screen or not.\r\n *\r\n * xPosition must be one of the following values available on\r\n * $mdPanel.xPosition:\r\n *\r\n * CENTER | ALIGN_START | ALIGN_END | OFFSET_START | OFFSET_END\r\n *\r\n * *************\r\n * * *\r\n * * PANEL *\r\n * * *\r\n * *************\r\n * A B C D E\r\n *\r\n * A: OFFSET_START (for LTR displays)\r\n * B: ALIGN_START (for LTR displays)\r\n * C: CENTER\r\n * D: ALIGN_END (for LTR displays)\r\n * E: OFFSET_END (for LTR displays)\r\n *\r\n * yPosition must be one of the following values available on\r\n * $mdPanel.yPosition:\r\n *\r\n * CENTER | ALIGN_TOPS | ALIGN_BOTTOMS | ABOVE | BELOW\r\n *\r\n * F\r\n * G *************\r\n * * *\r\n * H * PANEL *\r\n * * *\r\n * I *************\r\n * J\r\n *\r\n * F: BELOW\r\n * G: ALIGN_TOPS\r\n * H: CENTER\r\n * I: ALIGN_BOTTOMS\r\n * J: ABOVE\r\n *\r\n * @param {string} xPosition\r\n * @param {string} yPosition\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#withOffsetX\r\n * @description\r\n * Sets the value of the offset in the x-direction.\r\n *\r\n * @param {string} offsetX\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelPosition#withOffsetY\r\n * @description\r\n * Sets the value of the offset in the y-direction.\r\n *\r\n * @param {string} offsetY\r\n * @returns {!MdPanelPosition}\r\n */\r\n\r\n /*****************************************************************************\r\n * MdPanelAnimation *\r\n *****************************************************************************/\r\n\r\n /**\r\n * @ngdoc object\r\n * @name MdPanelAnimation\r\n * @description\r\n * Animation configuration object. To use, create an MdPanelAnimation with the\r\n * desired properties, then pass the object as part of $mdPanel creation.\r\n *\r\n * Example:\r\n *\r\n * var panelAnimation = new MdPanelAnimation()\r\n * .openFrom(myButtonEl)\r\n * .closeTo('.my-button')\r\n * .withAnimation($mdPanel.animation.SCALE);\r\n *\r\n * $mdPanel.create({\r\n * animation: panelAnimation\r\n * });\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelAnimation#openFrom\r\n * @description\r\n * Specifies where to start the open animation. `openFrom` accepts a\r\n * click event object, query selector, DOM element, or a Rect object that\r\n * is used to determine the bounds. When passed a click event, the location\r\n * of the click will be used as the position to start the animation.\r\n *\r\n * @param {string|!Element|!Event|{top: number, left: number}}\r\n * @returns {!MdPanelAnimation}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelAnimation#closeTo\r\n * @description\r\n * Specifies where to animate the panel close. `closeTo` accepts a\r\n * query selector, DOM element, or a Rect object that is used to determine\r\n * the bounds.\r\n *\r\n * @param {string|!Element|{top: number, left: number}}\r\n * @returns {!MdPanelAnimation}\r\n */\r\n\r\n /**\r\n * @ngdoc method\r\n * @name MdPanelAnimation#withAnimation\r\n * @description\r\n * Specifies the animation class.\r\n *\r\n * There are several default animations that can be used:\r\n * ($mdPanel.animation)\r\n * SLIDE: The panel slides in and out from the specified\r\n * elements. It will not fade in or out.\r\n * SCALE: The panel scales in and out. Slide and fade are\r\n * included in this animation.\r\n * FADE: The panel fades in and out.\r\n *\r\n * Custom classes will by default fade in and out unless\r\n * \"transition: opacity 1ms\" is added to the to custom class.\r\n *\r\n * @param {string|{open: string, close: string}} cssClass\r\n * @returns {!MdPanelAnimation}\r\n */\r\n\r\n /*****************************************************************************\r\n * IMPLEMENTATION *\r\n *****************************************************************************/\r\n\r\n // Default z-index for the panel.\r\n var defaultZIndex = 80;\r\n var MD_PANEL_HIDDEN = \"_md-panel-hidden\";\r\n\r\n var FOCUS_TRAP_TEMPLATE = angular.element(\r\n '
    '\r\n );\r\n\r\n /**\r\n * A service that is used for controlling/displaying panels on the screen.\r\n * @param {!angular.JQLite} $rootElement\r\n * @param {!angular.Scope} $rootScope\r\n * @param {!angular.$injector} $injector\r\n * @param {!angular.$window} $window\r\n * @final @constructor @ngInject\r\n */\r\n function MdPanelService($rootElement, $rootScope, $injector, $window) {\r\n /**\r\n * Default config options for the panel.\r\n * Anything angular related needs to be done later. Therefore\r\n * scope: $rootScope.$new(true),\r\n * attachTo: $rootElement,\r\n * are added later.\r\n * @private {!Object}\r\n */\r\n this._defaultConfigOptions = {\r\n bindToController: true,\r\n clickOutsideToClose: false,\r\n disableParentScroll: false,\r\n escapeToClose: false,\r\n focusOnOpen: true,\r\n fullscreen: false,\r\n hasBackdrop: false,\r\n propagateContainerEvents: false,\r\n transformTemplate: angular.bind(this, this._wrapTemplate),\r\n trapFocus: false,\r\n zIndex: defaultZIndex\r\n };\r\n\r\n /** @private {!Object} */\r\n this._config = {};\r\n\r\n /** @private @const */\r\n this._$rootElement = $rootElement;\r\n\r\n /** @private @const */\r\n this._$rootScope = $rootScope;\r\n\r\n /** @private @const */\r\n this._$injector = $injector;\r\n\r\n /** @private @const */\r\n this._$window = $window;\r\n\r\n /** @private {!Object} */\r\n this._trackedPanels = {};\r\n\r\n /**\r\n * Default animations that can be used within the panel.\r\n * @type {enum}\r\n */\r\n this.animation = MdPanelAnimation.animation;\r\n\r\n /**\r\n * Possible values of xPosition for positioning the panel relative to\r\n * another element.\r\n * @type {enum}\r\n */\r\n this.xPosition = MdPanelPosition.xPosition;\r\n\r\n /**\r\n * Possible values of yPosition for positioning the panel relative to\r\n * another element.\r\n * @type {enum}\r\n */\r\n this.yPosition = MdPanelPosition.yPosition;\r\n }\r\n\r\n /**\r\n * Creates a panel with the specified options.\r\n * @param {!Object=} config Configuration object for the panel.\r\n * @returns {!MdPanelRef}\r\n */\r\n MdPanelService.prototype.create = function(config) {\r\n config = config || {};\r\n\r\n // If the passed-in config contains an ID and the ID is within _trackedPanels,\r\n // return the tracked panel.\r\n if (angular.isDefined(config.id) && this._trackedPanels[config.id]) {\r\n return this._trackedPanels[config.id];\r\n }\r\n\r\n // If no ID is set within the passed-in config, then create an arbitrary ID.\r\n this._config = {\r\n id: config.id || \"panel_\" + this._$injector.get(\"$mdUtil\").nextUid(),\r\n scope: this._$rootScope.$new(true),\r\n attachTo: this._$rootElement\r\n };\r\n angular.extend(this._config, this._defaultConfigOptions, config);\r\n\r\n var panelRef = new MdPanelRef(this._config, this._$injector);\r\n this._trackedPanels[config.id] = panelRef;\r\n\r\n return panelRef;\r\n };\r\n\r\n /**\r\n * Creates and opens a panel with the specified options.\r\n * @param {!Object=} config Configuration object for the panel.\r\n * @returns {!angular.$q.Promise} The panel created from create.\r\n */\r\n MdPanelService.prototype.open = function(config) {\r\n var panelRef = this.create(config);\r\n return panelRef.open().then(function() {\r\n return panelRef;\r\n });\r\n };\r\n\r\n /**\r\n * Returns a new instance of the MdPanelPosition. Use this to create the\r\n * positioning object.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelService.prototype.newPanelPosition = function() {\r\n return new MdPanelPosition(this._$injector);\r\n };\r\n\r\n /**\r\n * Returns a new instance of the MdPanelAnimation. Use this to create the\r\n * animation object.\r\n * @returns {!MdPanelAnimation}\r\n */\r\n MdPanelService.prototype.newPanelAnimation = function() {\r\n return new MdPanelAnimation(this._$injector);\r\n };\r\n\r\n /**\r\n * Wraps the users template in two elements, md-panel-outer-wrapper, which\r\n * covers the entire attachTo element, and md-panel, which contains only the\r\n * template. This allows the panel control over positioning, animations,\r\n * and similar properties.\r\n * @param {string} origTemplate The original template.\r\n * @returns {string} The wrapped template.\r\n * @private\r\n */\r\n MdPanelService.prototype._wrapTemplate = function(origTemplate) {\r\n var template = origTemplate || \"\";\r\n\r\n // The panel should be initially rendered offscreen so we can calculate\r\n // height and width for positioning.\r\n return (\r\n \"\" +\r\n '
    ' +\r\n '
    ' +\r\n template +\r\n \"
    \" +\r\n \"
    \"\r\n );\r\n };\r\n\r\n /*****************************************************************************\r\n * MdPanelRef *\r\n *****************************************************************************/\r\n\r\n /**\r\n * A reference to a created panel. This reference contains a unique id for the\r\n * panel, along with properties/functions used to control the panel.\r\n * @param {!Object} config\r\n * @param {!angular.$injector} $injector\r\n * @final @constructor\r\n */\r\n function MdPanelRef(config, $injector) {\r\n // Injected variables.\r\n /** @private @const {!angular.$q} */\r\n this._$q = $injector.get(\"$q\");\r\n\r\n /** @private @const {!angular.$mdCompiler} */\r\n this._$mdCompiler = $injector.get(\"$mdCompiler\");\r\n\r\n /** @private @const {!angular.$mdConstant} */\r\n this._$mdConstant = $injector.get(\"$mdConstant\");\r\n\r\n /** @private @const {!angular.$mdUtil} */\r\n this._$mdUtil = $injector.get(\"$mdUtil\");\r\n\r\n /** @private @const {!angular.Scope} */\r\n this._$rootScope = $injector.get(\"$rootScope\");\r\n\r\n /** @private @const {!angular.$animate} */\r\n this._$animate = $injector.get(\"$animate\");\r\n\r\n /** @private @const {!MdPanelRef} */\r\n this._$mdPanel = $injector.get(\"$mdPanel\");\r\n\r\n /** @private @const {!angular.$log} */\r\n this._$log = $injector.get(\"$log\");\r\n\r\n /** @private @const {!angular.$window} */\r\n this._$window = $injector.get(\"$window\");\r\n\r\n /** @private @const {!Function} */\r\n this._$$rAF = $injector.get(\"$$rAF\");\r\n\r\n // Public variables.\r\n /**\r\n * Unique id for the panelRef.\r\n * @type {string}\r\n */\r\n this.id = config.id;\r\n\r\n /** @type {!Object} */\r\n this.config = config;\r\n\r\n /** @type {!angular.JQLite|undefined} */\r\n this.panelContainer;\r\n\r\n /** @type {!angular.JQLite|undefined} */\r\n this.panelEl;\r\n\r\n /**\r\n * Whether the panel is attached. This is synchronous. When attach is called,\r\n * isAttached is set to true. When detach is called, isAttached is set to\r\n * false.\r\n * @type {boolean}\r\n */\r\n this.isAttached = false;\r\n\r\n // Private variables.\r\n /** @private {Array} */\r\n this._removeListeners = [];\r\n\r\n /** @private {!angular.JQLite|undefined} */\r\n this._topFocusTrap;\r\n\r\n /** @private {!angular.JQLite|undefined} */\r\n this._bottomFocusTrap;\r\n\r\n /** @private {!$mdPanel|undefined} */\r\n this._backdropRef;\r\n\r\n /** @private {Function?} */\r\n this._restoreScroll = null;\r\n }\r\n\r\n /**\r\n * Opens an already created and configured panel. If the panel is already\r\n * visible, does nothing.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when\r\n * the panel is opened and animations finish.\r\n */\r\n MdPanelRef.prototype.open = function() {\r\n var self = this;\r\n return this._$q(function(resolve, reject) {\r\n var done = self._done(resolve, self);\r\n var show = self._simpleBind(self.show, self);\r\n\r\n self\r\n .attach()\r\n .then(show)\r\n .then(done)\r\n .catch(reject);\r\n });\r\n };\r\n\r\n /**\r\n * Closes the panel.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when\r\n * the panel is closed and animations finish.\r\n */\r\n MdPanelRef.prototype.close = function() {\r\n var self = this;\r\n\r\n return this._$q(function(resolve, reject) {\r\n var done = self._done(resolve, self);\r\n var detach = self._simpleBind(self.detach, self);\r\n\r\n self\r\n .hide()\r\n .then(detach)\r\n .then(done)\r\n .catch(reject);\r\n });\r\n };\r\n\r\n /**\r\n * Attaches the panel. The panel will be hidden afterwards.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when\r\n * the panel is attached.\r\n */\r\n MdPanelRef.prototype.attach = function() {\r\n if (this.isAttached && this.panelEl) {\r\n return this._$q.when(this);\r\n }\r\n\r\n var self = this;\r\n return this._$q(function(resolve, reject) {\r\n var done = self._done(resolve, self);\r\n var onDomAdded = self.config[\"onDomAdded\"] || angular.noop;\r\n var addListeners = function(response) {\r\n self.isAttached = true;\r\n self._addEventListeners();\r\n return response;\r\n };\r\n\r\n self._$q\r\n .all([\r\n self._createBackdrop(),\r\n self\r\n ._createPanel()\r\n .then(addListeners)\r\n .catch(reject)\r\n ])\r\n .then(onDomAdded)\r\n .then(done)\r\n .catch(reject);\r\n });\r\n };\r\n\r\n /**\r\n * Only detaches the panel. Will NOT hide the panel first.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when\r\n * the panel is detached.\r\n */\r\n MdPanelRef.prototype.detach = function() {\r\n if (!this.isAttached) {\r\n return this._$q.when(this);\r\n }\r\n\r\n var self = this;\r\n var onDomRemoved = self.config[\"onDomRemoved\"] || angular.noop;\r\n\r\n var detachFn = function() {\r\n self._removeEventListeners();\r\n\r\n // Remove the focus traps that we added earlier for keeping focus within\r\n // the panel.\r\n if (self._topFocusTrap && self._topFocusTrap.parentNode) {\r\n self._topFocusTrap.parentNode.removeChild(self._topFocusTrap);\r\n }\r\n\r\n if (self._bottomFocusTrap && self._bottomFocusTrap.parentNode) {\r\n self._bottomFocusTrap.parentNode.removeChild(self._bottomFocusTrap);\r\n }\r\n\r\n self.panelContainer.remove();\r\n self.isAttached = false;\r\n return self._$q.when(self);\r\n };\r\n\r\n if (this._restoreScroll) {\r\n this._restoreScroll();\r\n this._restoreScroll = null;\r\n }\r\n\r\n return this._$q(function(resolve, reject) {\r\n var done = self._done(resolve, self);\r\n\r\n self._$q\r\n .all([\r\n detachFn(),\r\n self._backdropRef ? self._backdropRef.detach() : true\r\n ])\r\n .then(onDomRemoved)\r\n .then(done)\r\n .catch(reject);\r\n });\r\n };\r\n\r\n /**\r\n * Destroys the panel. The Panel cannot be opened again after this.\r\n */\r\n MdPanelRef.prototype.destroy = function() {\r\n this.config.scope.$destroy();\r\n this.config.locals = null;\r\n };\r\n\r\n /**\r\n * Shows the panel.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when\r\n * the panel has shown and animations finish.\r\n */\r\n MdPanelRef.prototype.show = function() {\r\n if (!this.panelContainer) {\r\n return this._$q(function(resolve, reject) {\r\n reject(\"Panel does not exist yet. Call open() or attach().\");\r\n });\r\n }\r\n\r\n if (!this.panelContainer.hasClass(MD_PANEL_HIDDEN)) {\r\n return this._$q.when(this);\r\n }\r\n\r\n var self = this;\r\n var animatePromise = function() {\r\n self.panelContainer.removeClass(MD_PANEL_HIDDEN);\r\n return self._animateOpen();\r\n };\r\n\r\n return this._$q(function(resolve, reject) {\r\n var done = self._done(resolve, self);\r\n var onOpenComplete = self.config[\"onOpenComplete\"] || angular.noop;\r\n\r\n self._$q\r\n .all([\r\n self._backdropRef ? self._backdropRef.show() : self,\r\n animatePromise().then(function() {\r\n self._focusOnOpen();\r\n }, reject)\r\n ])\r\n .then(onOpenComplete)\r\n .then(done)\r\n .catch(reject);\r\n });\r\n };\r\n\r\n /**\r\n * Hides the panel.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when\r\n * the panel has hidden and animations finish.\r\n */\r\n MdPanelRef.prototype.hide = function() {\r\n if (!this.panelContainer) {\r\n return this._$q(function(resolve, reject) {\r\n reject(\"Panel does not exist yet. Call open() or attach().\");\r\n });\r\n }\r\n\r\n if (this.panelContainer.hasClass(MD_PANEL_HIDDEN)) {\r\n return this._$q.when(this);\r\n }\r\n\r\n var self = this;\r\n\r\n return this._$q(function(resolve, reject) {\r\n var done = self._done(resolve, self);\r\n var onRemoving = self.config[\"onRemoving\"] || angular.noop;\r\n\r\n var focusOnOrigin = function() {\r\n var origin = self.config[\"origin\"];\r\n if (origin) {\r\n getElement(origin).focus();\r\n }\r\n };\r\n\r\n var hidePanel = function() {\r\n self.panelContainer.addClass(MD_PANEL_HIDDEN);\r\n };\r\n\r\n self._$q\r\n .all([\r\n self._backdropRef ? self._backdropRef.hide() : self,\r\n self\r\n ._animateClose()\r\n .then(onRemoving)\r\n .then(hidePanel)\r\n .then(focusOnOrigin)\r\n .catch(reject)\r\n ])\r\n .then(done, reject);\r\n });\r\n };\r\n\r\n /**\r\n * Add a class to the panel. DO NOT use this to hide/show the panel.\r\n * @deprecated\r\n * This method is in the process of being deprecated in favor of using the panel\r\n * and container JQLite elements that are referenced in the MdPanelRef object.\r\n * Full deprecation is scheduled for material 1.2.\r\n *\r\n * @param {string} newClass Class to be added.\r\n * @param {boolean} toElement Whether or not to add the class to the panel\r\n * element instead of the container.\r\n */\r\n MdPanelRef.prototype.addClass = function(newClass, toElement) {\r\n this._$log.warn(\r\n \"The addClass method is in the process of being deprecated. \" +\r\n \"Full deprecation is scheduled for the Angular Material 1.2 release. \" +\r\n \"To achieve the same results, use the panelContainer or panelEl \" +\r\n \"JQLite elements that are referenced in MdPanelRef.\"\r\n );\r\n\r\n if (!this.panelContainer) {\r\n throw new Error(\"Panel does not exist yet. Call open() or attach().\");\r\n }\r\n\r\n if (!toElement && !this.panelContainer.hasClass(newClass)) {\r\n this.panelContainer.addClass(newClass);\r\n } else if (toElement && !this.panelEl.hasClass(newClass)) {\r\n this.panelEl.addClass(newClass);\r\n }\r\n };\r\n\r\n /**\r\n * Remove a class from the panel. DO NOT use this to hide/show the panel.\r\n * @deprecated\r\n * This method is in the process of being deprecated in favor of using the panel\r\n * and container JQLite elements that are referenced in the MdPanelRef object.\r\n * Full deprecation is scheduled for material 1.2.\r\n *\r\n * @param {string} oldClass Class to be removed.\r\n * @param {boolean} fromElement Whether or not to remove the class from the\r\n * panel element instead of the container.\r\n */\r\n MdPanelRef.prototype.removeClass = function(oldClass, fromElement) {\r\n this._$log.warn(\r\n \"The removeClass method is in the process of being deprecated. \" +\r\n \"Full deprecation is scheduled for the Angular Material 1.2 release. \" +\r\n \"To achieve the same results, use the panelContainer or panelEl \" +\r\n \"JQLite elements that are referenced in MdPanelRef.\"\r\n );\r\n\r\n if (!this.panelContainer) {\r\n throw new Error(\"Panel does not exist yet. Call open() or attach().\");\r\n }\r\n\r\n if (!fromElement && this.panelContainer.hasClass(oldClass)) {\r\n this.panelContainer.removeClass(oldClass);\r\n } else if (fromElement && this.panelEl.hasClass(oldClass)) {\r\n this.panelEl.removeClass(oldClass);\r\n }\r\n };\r\n\r\n /**\r\n * Toggle a class on the panel. DO NOT use this to hide/show the panel.\r\n * @deprecated\r\n * This method is in the process of being deprecated in favor of using the panel\r\n * and container JQLite elements that are referenced in the MdPanelRef object.\r\n * Full deprecation is scheduled for material 1.2.\r\n *\r\n * @param {string} toggleClass The class to toggle.\r\n * @param {boolean} onElement Whether or not to toggle the class on the panel\r\n * element instead of the container.\r\n */\r\n MdPanelRef.prototype.toggleClass = function(toggleClass, onElement) {\r\n this._$log.warn(\r\n \"The toggleClass method is in the process of being deprecated. \" +\r\n \"Full deprecation is scheduled for the Angular Material 1.2 release. \" +\r\n \"To achieve the same results, use the panelContainer or panelEl \" +\r\n \"JQLite elements that are referenced in MdPanelRef.\"\r\n );\r\n\r\n if (!this.panelContainer) {\r\n throw new Error(\"Panel does not exist yet. Call open() or attach().\");\r\n }\r\n\r\n if (!onElement) {\r\n this.panelContainer.toggleClass(toggleClass);\r\n } else {\r\n this.panelEl.toggleClass(toggleClass);\r\n }\r\n };\r\n\r\n /**\r\n * Creates a panel and adds it to the dom.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the panel is\r\n * created.\r\n * @private\r\n */\r\n MdPanelRef.prototype._createPanel = function() {\r\n var self = this;\r\n\r\n return this._$q(function(resolve, reject) {\r\n if (!self.config.locals) {\r\n self.config.locals = {};\r\n }\r\n\r\n self.config.locals.mdPanelRef = self;\r\n self._$mdCompiler.compile(self.config).then(function(compileData) {\r\n self.panelContainer = compileData.link(self.config[\"scope\"]);\r\n getElement(self.config[\"attachTo\"]).append(self.panelContainer);\r\n\r\n if (self.config[\"disableParentScroll\"]) {\r\n self._restoreScroll = self._$mdUtil.disableScrollAround(\r\n null,\r\n self.panelContainer,\r\n { disableScrollMask: true }\r\n );\r\n }\r\n\r\n self.panelEl = angular.element(\r\n self.panelContainer[0].querySelector(\".md-panel\")\r\n );\r\n\r\n // Add a custom CSS class to the panel element.\r\n if (self.config[\"panelClass\"]) {\r\n self.panelEl.addClass(self.config[\"panelClass\"]);\r\n }\r\n\r\n // Handle click and touch events for the panel container.\r\n if (self.config[\"propagateContainerEvents\"]) {\r\n self.panelContainer.css(\"pointer-events\", \"none\");\r\n }\r\n\r\n // Panel may be outside the $rootElement, tell ngAnimate to animate\r\n // regardless.\r\n if (self._$animate.pin) {\r\n self._$animate.pin(\r\n self.panelContainer,\r\n getElement(self.config[\"attachTo\"])\r\n );\r\n }\r\n\r\n self._configureTrapFocus();\r\n self._addStyles().then(function() {\r\n resolve(self);\r\n }, reject);\r\n }, reject);\r\n });\r\n };\r\n\r\n /**\r\n * Adds the styles for the panel, such as positioning and z-index.\r\n * @returns {!angular.$q.Promise}\r\n * @private\r\n */\r\n MdPanelRef.prototype._addStyles = function() {\r\n var self = this;\r\n return this._$q(function(resolve) {\r\n self.panelContainer.css(\"z-index\", self.config[\"zIndex\"]);\r\n self.panelEl.css(\"z-index\", self.config[\"zIndex\"] + 1);\r\n\r\n var hideAndResolve = function() {\r\n // Remove left: -9999px and add hidden class.\r\n self.panelEl.css(\"left\", \"\");\r\n self.panelContainer.addClass(MD_PANEL_HIDDEN);\r\n resolve(self);\r\n };\r\n\r\n if (self.config[\"fullscreen\"]) {\r\n self.panelEl.addClass(\"_md-panel-fullscreen\");\r\n hideAndResolve();\r\n return; // Don't setup positioning.\r\n }\r\n\r\n var positionConfig = self.config[\"position\"];\r\n if (!positionConfig) {\r\n hideAndResolve();\r\n return; // Don't setup positioning.\r\n }\r\n\r\n // Wait for angular to finish processing the template, then position it\r\n // correctly. This is necessary so that the panel will have a defined height\r\n // and width.\r\n self._$rootScope[\"$$postDigest\"](function() {\r\n self._updatePosition(true);\r\n resolve(self);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Updates the position configuration of a panel\r\n * @param {!MdPanelPosition} position\r\n */\r\n MdPanelRef.prototype.updatePosition = function(position) {\r\n if (!this.panelContainer) {\r\n throw new Error(\"Panel does not exist yet. Call open() or attach().\");\r\n }\r\n\r\n this.config[\"position\"] = position;\r\n this._updatePosition();\r\n };\r\n\r\n /**\r\n * Calculates and updates the position of the panel.\r\n * @param {boolean=} init\r\n * @private\r\n */\r\n MdPanelRef.prototype._updatePosition = function(init) {\r\n var positionConfig = this.config[\"position\"];\r\n\r\n if (positionConfig) {\r\n positionConfig._setPanelPosition(this.panelEl);\r\n\r\n // Hide the panel now that position is known.\r\n if (init) {\r\n this.panelContainer.addClass(MD_PANEL_HIDDEN);\r\n }\r\n\r\n this.panelEl.css(\r\n MdPanelPosition.absPosition.TOP,\r\n positionConfig.getTop()\r\n );\r\n this.panelEl.css(\r\n MdPanelPosition.absPosition.BOTTOM,\r\n positionConfig.getBottom()\r\n );\r\n this.panelEl.css(\r\n MdPanelPosition.absPosition.LEFT,\r\n positionConfig.getLeft()\r\n );\r\n this.panelEl.css(\r\n MdPanelPosition.absPosition.RIGHT,\r\n positionConfig.getRight()\r\n );\r\n\r\n // Use the vendor prefixed version of transform.\r\n var prefixedTransform = this._$mdConstant.CSS.TRANSFORM;\r\n this.panelEl.css(prefixedTransform, positionConfig.getTransform());\r\n }\r\n };\r\n\r\n /**\r\n * Focuses on the panel or the first focus target.\r\n * @private\r\n */\r\n MdPanelRef.prototype._focusOnOpen = function() {\r\n if (this.config[\"focusOnOpen\"]) {\r\n // Wait for the template to finish rendering to guarantee md-autofocus has\r\n // finished adding the class md-autofocus, otherwise the focusable element\r\n // isn't available to focus.\r\n var self = this;\r\n this._$rootScope[\"$$postDigest\"](function() {\r\n var target =\r\n self._$mdUtil.findFocusTarget(self.panelEl) || self.panelEl;\r\n target.focus();\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Shows the backdrop.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the backdrop\r\n * is created and attached.\r\n * @private\r\n */\r\n MdPanelRef.prototype._createBackdrop = function() {\r\n if (this.config.hasBackdrop) {\r\n if (!this._backdropRef) {\r\n var backdropAnimation = this._$mdPanel\r\n .newPanelAnimation()\r\n .openFrom(this.config.attachTo)\r\n .withAnimation({\r\n open: \"_md-opaque-enter\",\r\n close: \"_md-opaque-leave\"\r\n });\r\n var backdropConfig = {\r\n animation: backdropAnimation,\r\n attachTo: this.config.attachTo,\r\n focusOnOpen: false,\r\n panelClass: \"_md-panel-backdrop\",\r\n zIndex: this.config.zIndex - 1\r\n };\r\n this._backdropRef = this._$mdPanel.create(backdropConfig);\r\n }\r\n if (!this._backdropRef.isAttached) {\r\n return this._backdropRef.attach();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Listen for escape keys and outside clicks to auto close.\r\n * @private\r\n */\r\n MdPanelRef.prototype._addEventListeners = function() {\r\n this._configureEscapeToClose();\r\n this._configureClickOutsideToClose();\r\n this._configureScrollListener();\r\n };\r\n\r\n /**\r\n * Remove event listeners added in _addEventListeners.\r\n * @private\r\n */\r\n MdPanelRef.prototype._removeEventListeners = function() {\r\n this._removeListeners &&\r\n this._removeListeners.forEach(function(removeFn) {\r\n removeFn();\r\n });\r\n this._removeListeners = [];\r\n };\r\n\r\n /**\r\n * Setup the escapeToClose event listeners.\r\n * @private\r\n */\r\n MdPanelRef.prototype._configureEscapeToClose = function() {\r\n if (this.config[\"escapeToClose\"]) {\r\n var parentTarget = getElement(this.config[\"attachTo\"]);\r\n var self = this;\r\n\r\n var keyHandlerFn = function(ev) {\r\n if (ev.keyCode === self._$mdConstant.KEY_CODE.ESCAPE) {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n\r\n self.close();\r\n }\r\n };\r\n\r\n // Add keydown listeners\r\n this.panelContainer.on(\"keydown\", keyHandlerFn);\r\n parentTarget.on(\"keydown\", keyHandlerFn);\r\n\r\n // Queue remove listeners function\r\n this._removeListeners.push(function() {\r\n self.panelContainer.off(\"keydown\", keyHandlerFn);\r\n parentTarget.off(\"keydown\", keyHandlerFn);\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Setup the clickOutsideToClose event listeners.\r\n * @private\r\n */\r\n MdPanelRef.prototype._configureClickOutsideToClose = function() {\r\n if (this.config[\"clickOutsideToClose\"]) {\r\n var target = this.panelContainer;\r\n var sourceElem;\r\n\r\n // Keep track of the element on which the mouse originally went down\r\n // so that we can only close the backdrop when the 'click' started on it.\r\n // A simple 'click' handler does not work,\r\n // it sets the target object as the element the mouse went down on.\r\n var mousedownHandler = function(ev) {\r\n sourceElem = ev.target;\r\n };\r\n\r\n // We check if our original element and the target is the backdrop\r\n // because if the original was the backdrop and the target was inside the\r\n // panel we don't want to panel to close.\r\n var self = this;\r\n var mouseupHandler = function(ev) {\r\n if (sourceElem === target[0] && ev.target === target[0]) {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n\r\n self.close();\r\n }\r\n };\r\n\r\n // Add listeners\r\n target.on(\"mousedown\", mousedownHandler);\r\n target.on(\"mouseup\", mouseupHandler);\r\n\r\n // Queue remove listeners function\r\n this._removeListeners.push(function() {\r\n target.off(\"mousedown\", mousedownHandler);\r\n target.off(\"mouseup\", mouseupHandler);\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Configures the listeners for updating the panel position on scroll.\r\n * @private\r\n */\r\n MdPanelRef.prototype._configureScrollListener = function() {\r\n var updatePosition = angular.bind(this, this._updatePosition);\r\n var debouncedUpdatePosition = this._$$rAF.throttle(updatePosition);\r\n var self = this;\r\n\r\n var onScroll = function() {\r\n if (!self.config[\"disableParentScroll\"]) {\r\n debouncedUpdatePosition();\r\n }\r\n };\r\n\r\n // Add listeners.\r\n this._$window.addEventListener(\"scroll\", onScroll, true);\r\n\r\n // Queue remove listeners function.\r\n this._removeListeners.push(function() {\r\n self._$window.removeEventListener(\"scroll\", onScroll, true);\r\n });\r\n };\r\n\r\n /**\r\n * Setup the focus traps. These traps will wrap focus when tabbing past the\r\n * panel. When shift-tabbing, the focus will stick in place.\r\n * @private\r\n */\r\n MdPanelRef.prototype._configureTrapFocus = function() {\r\n // Focus doesn't remain instead of the panel without this.\r\n this.panelEl.attr(\"tabIndex\", \"-1\");\r\n if (this.config[\"trapFocus\"]) {\r\n var element = this.panelEl;\r\n // Set up elements before and after the panel to capture focus and\r\n // redirect back into the panel.\r\n this._topFocusTrap = FOCUS_TRAP_TEMPLATE.clone()[0];\r\n this._bottomFocusTrap = FOCUS_TRAP_TEMPLATE.clone()[0];\r\n\r\n // When focus is about to move out of the panel, we want to intercept it\r\n // and redirect it back to the panel element.\r\n var focusHandler = function() {\r\n element.focus();\r\n };\r\n this._topFocusTrap.addEventListener(\"focus\", focusHandler);\r\n this._bottomFocusTrap.addEventListener(\"focus\", focusHandler);\r\n\r\n // Queue remove listeners function\r\n this._removeListeners.push(\r\n this._simpleBind(function() {\r\n this._topFocusTrap.removeEventListener(\"focus\", focusHandler);\r\n this._bottomFocusTrap.removeEventListener(\"focus\", focusHandler);\r\n }, this)\r\n );\r\n\r\n // The top focus trap inserted immediately before the md-panel element (as\r\n // a sibling). The bottom focus trap inserted immediately after the\r\n // md-panel element (as a sibling).\r\n element[0].parentNode.insertBefore(this._topFocusTrap, element[0]);\r\n element.after(this._bottomFocusTrap);\r\n }\r\n };\r\n\r\n /**\r\n * Animate the panel opening.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the panel has\r\n * animated open.\r\n * @private\r\n */\r\n MdPanelRef.prototype._animateOpen = function() {\r\n this.panelContainer.addClass(\"md-panel-is-showing\");\r\n var animationConfig = this.config[\"animation\"];\r\n if (!animationConfig) {\r\n // Promise is in progress, return it.\r\n this.panelContainer.addClass(\"_md-panel-shown\");\r\n return this._$q.when(this);\r\n }\r\n\r\n var self = this;\r\n return this._$q(function(resolve) {\r\n var done = self._done(resolve, self);\r\n var warnAndOpen = function() {\r\n self._$log.warn(\r\n \"MdPanel Animations failed. Showing panel without animating.\"\r\n );\r\n done();\r\n };\r\n\r\n animationConfig.animateOpen(self.panelEl).then(done, warnAndOpen);\r\n });\r\n };\r\n\r\n /**\r\n * Animate the panel closing.\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the panel has\r\n * animated closed.\r\n * @private\r\n */\r\n MdPanelRef.prototype._animateClose = function() {\r\n var animationConfig = this.config[\"animation\"];\r\n if (!animationConfig) {\r\n this.panelContainer.removeClass(\"md-panel-is-showing\");\r\n this.panelContainer.removeClass(\"_md-panel-shown\");\r\n return this._$q.when(this);\r\n }\r\n\r\n var self = this;\r\n return this._$q(function(resolve) {\r\n var done = function() {\r\n self.panelContainer.removeClass(\"md-panel-is-showing\");\r\n resolve(self);\r\n };\r\n var warnAndClose = function() {\r\n self._$log.warn(\r\n \"MdPanel Animations failed. Hiding panel without animating.\"\r\n );\r\n done();\r\n };\r\n\r\n animationConfig.animateClose(self.panelEl).then(done, warnAndClose);\r\n });\r\n };\r\n\r\n /**\r\n * Faster, more basic than angular.bind\r\n * http://jsperf.com/angular-bind-vs-custom-vs-native\r\n * @param {function} callback\r\n * @param {!Object} self\r\n * @return {function} Callback function with a bound self.\r\n */\r\n MdPanelRef.prototype._simpleBind = function(callback, self) {\r\n return function(value) {\r\n return callback.apply(self, value);\r\n };\r\n };\r\n\r\n /**\r\n * @param {function} callback\r\n * @param {!Object} self\r\n * @return {function} Callback function with a self param.\r\n */\r\n MdPanelRef.prototype._done = function(callback, self) {\r\n return function() {\r\n callback(self);\r\n };\r\n };\r\n\r\n /*****************************************************************************\r\n * MdPanelPosition *\r\n *****************************************************************************/\r\n\r\n /**\r\n * Position configuration object. To use, create an MdPanelPosition with the\r\n * desired properties, then pass the object as part of $mdPanel creation.\r\n *\r\n * Example:\r\n *\r\n * var panelPosition = new MdPanelPosition()\r\n * .relativeTo(myButtonEl)\r\n * .addPanelPosition(\r\n * $mdPanel.xPosition.CENTER,\r\n * $mdPanel.yPosition.ALIGN_TOPS\r\n * );\r\n *\r\n * $mdPanel.create({\r\n * position: panelPosition\r\n * });\r\n *\r\n * @param {!angular.$injector} $injector\r\n * @final @constructor\r\n */\r\n function MdPanelPosition($injector) {\r\n /** @private @const {!angular.$window} */\r\n this._$window = $injector.get(\"$window\");\r\n\r\n /** @private {boolean} */\r\n this._isRTL = $injector.get(\"$mdUtil\").bidi() === \"rtl\";\r\n\r\n /** @private {boolean} */\r\n this._absolute = false;\r\n\r\n /** @private {!angular.JQLite} */\r\n this._relativeToEl;\r\n\r\n /** @private {string} */\r\n this._top = \"\";\r\n\r\n /** @private {string} */\r\n this._bottom = \"\";\r\n\r\n /** @private {string} */\r\n this._left = \"\";\r\n\r\n /** @private {string} */\r\n this._right = \"\";\r\n\r\n /** @private {!Array} */\r\n this._translateX = [];\r\n\r\n /** @private {!Array} */\r\n this._translateY = [];\r\n\r\n /** @private {!Array<{x:string, y:string}>} */\r\n this._positions = [];\r\n\r\n /** @private {?{x:string, y:string}} */\r\n this._actualPosition;\r\n }\r\n\r\n /**\r\n * Possible values of xPosition.\r\n * @enum {string}\r\n */\r\n MdPanelPosition.xPosition = {\r\n CENTER: \"center\",\r\n ALIGN_START: \"align-start\",\r\n ALIGN_END: \"align-end\",\r\n OFFSET_START: \"offset-start\",\r\n OFFSET_END: \"offset-end\"\r\n };\r\n\r\n /**\r\n * Possible values of yPosition.\r\n * @enum {string}\r\n */\r\n MdPanelPosition.yPosition = {\r\n CENTER: \"center\",\r\n ALIGN_TOPS: \"align-tops\",\r\n ALIGN_BOTTOMS: \"align-bottoms\",\r\n ABOVE: \"above\",\r\n BELOW: \"below\"\r\n };\r\n\r\n /**\r\n * Possible values of absolute position.\r\n * @enum {string}\r\n */\r\n MdPanelPosition.absPosition = {\r\n TOP: \"top\",\r\n RIGHT: \"right\",\r\n BOTTOM: \"bottom\",\r\n LEFT: \"left\"\r\n };\r\n\r\n /**\r\n * Sets absolute positioning for the panel.\r\n * @return {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.absolute = function() {\r\n this._absolute = true;\r\n return this;\r\n };\r\n\r\n /**\r\n * Sets the value of a position for the panel. Clears any previously set\r\n * position.\r\n * @param {string} position Position to set\r\n * @param {string=} value Value of the position. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n * @private\r\n */\r\n MdPanelPosition.prototype._setPosition = function(position, value) {\r\n if (\r\n position === MdPanelPosition.absPosition.RIGHT ||\r\n position === MdPanelPosition.absPosition.LEFT\r\n ) {\r\n this._left = this._right = \"\";\r\n } else if (\r\n position === MdPanelPosition.absPosition.BOTTOM ||\r\n position === MdPanelPosition.absPosition.TOP\r\n ) {\r\n this._top = this._bottom = \"\";\r\n } else {\r\n var positions = Object.keys(MdPanelPosition.absPosition)\r\n .join()\r\n .toLowerCase();\r\n\r\n throw new Error(\"Position must be one of \" + positions + \".\");\r\n }\r\n\r\n this[\"_\" + position] = angular.isString(value) ? value : \"0\";\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Sets the value of `top` for the panel. Clears any previously set vertical\r\n * position.\r\n * @param {string=} top Value of `top`. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.top = function(top) {\r\n return this._setPosition(MdPanelPosition.absPosition.TOP, top);\r\n };\r\n\r\n /**\r\n * Sets the value of `bottom` for the panel. Clears any previously set vertical\r\n * position.\r\n * @param {string=} bottom Value of `bottom`. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.bottom = function(bottom) {\r\n return this._setPosition(MdPanelPosition.absPosition.BOTTOM, bottom);\r\n };\r\n\r\n /**\r\n * Sets the panel to the start of the page - `left` if `ltr` or `right` for\r\n * `rtl`. Clears any previously set horizontal position.\r\n * @param {string=} start Value of position. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.start = function(start) {\r\n var position = this._isRTL\r\n ? MdPanelPosition.absPosition.RIGHT\r\n : MdPanelPosition.absPosition.LEFT;\r\n return this._setPosition(position, start);\r\n };\r\n\r\n /**\r\n * Sets the panel to the end of the page - `right` if `ltr` or `left` for `rtl`.\r\n * Clears any previously set horizontal position.\r\n * @param {string=} end Value of position. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.end = function(end) {\r\n var position = this._isRTL\r\n ? MdPanelPosition.absPosition.LEFT\r\n : MdPanelPosition.absPosition.RIGHT;\r\n return this._setPosition(position, end);\r\n };\r\n\r\n /**\r\n * Sets the value of `left` for the panel. Clears any previously set\r\n * horizontal position.\r\n * @param {string=} left Value of `left`. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.left = function(left) {\r\n return this._setPosition(MdPanelPosition.absPosition.LEFT, left);\r\n };\r\n\r\n /**\r\n * Sets the value of `right` for the panel. Clears any previously set\r\n * horizontal position.\r\n * @param {string=} right Value of `right`. Defaults to '0'.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.right = function(right) {\r\n return this._setPosition(MdPanelPosition.absPosition.RIGHT, right);\r\n };\r\n\r\n /**\r\n * Centers the panel horizontally in the viewport. Clears any previously set\r\n * horizontal position.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.centerHorizontally = function() {\r\n this._left = \"50%\";\r\n this._right = \"\";\r\n this._translateX = [\"-50%\"];\r\n return this;\r\n };\r\n\r\n /**\r\n * Centers the panel vertically in the viewport. Clears any previously set\r\n * vertical position.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.centerVertically = function() {\r\n this._top = \"50%\";\r\n this._bottom = \"\";\r\n this._translateY = [\"-50%\"];\r\n return this;\r\n };\r\n\r\n /**\r\n * Centers the panel horizontally and vertically in the viewport. This is\r\n * equivalent to calling both `centerHorizontally` and `centerVertically`.\r\n * Clears any previously set horizontal and vertical positions.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.center = function() {\r\n return this.centerHorizontally().centerVertically();\r\n };\r\n\r\n /**\r\n * Sets element for relative positioning.\r\n * @param {string|!Element|!angular.JQLite} element Query selector, DOM element,\r\n * or angular element to set the panel relative to.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.relativeTo = function(element) {\r\n this._absolute = false;\r\n this._relativeToEl = getElement(element);\r\n return this;\r\n };\r\n\r\n /**\r\n * Sets the x and y positions for the panel relative to another element.\r\n * @param {string} xPosition must be one of the MdPanelPosition.xPosition\r\n * values.\r\n * @param {string} yPosition must be one of the MdPanelPosition.yPosition\r\n * values.\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.addPanelPosition = function(\r\n xPosition,\r\n yPosition\r\n ) {\r\n if (!this._relativeToEl) {\r\n throw new Error(\r\n \"addPanelPosition can only be used with relative \" +\r\n \"positioning. Set relativeTo first.\"\r\n );\r\n }\r\n\r\n this._validateXPosition(xPosition);\r\n this._validateYPosition(yPosition);\r\n\r\n this._positions.push({\r\n x: xPosition,\r\n y: yPosition\r\n });\r\n return this;\r\n };\r\n\r\n /**\r\n * Ensures that yPosition is a valid position name. Throw an exception if not.\r\n * @param {string} yPosition\r\n */\r\n MdPanelPosition.prototype._validateYPosition = function(yPosition) {\r\n // empty is ok\r\n if (yPosition == null) {\r\n return;\r\n }\r\n\r\n var positionKeys = Object.keys(MdPanelPosition.yPosition);\r\n var positionValues = [];\r\n for (var key, i = 0; (key = positionKeys[i]); i++) {\r\n var position = MdPanelPosition.yPosition[key];\r\n positionValues.push(position);\r\n\r\n if (position === yPosition) {\r\n return;\r\n }\r\n }\r\n\r\n throw new Error(\r\n \"Panel y position only accepts the following values:\\n\" +\r\n positionValues.join(\" | \")\r\n );\r\n };\r\n\r\n /**\r\n * Ensures that xPosition is a valid position name. Throw an exception if not.\r\n * @param {string} xPosition\r\n */\r\n MdPanelPosition.prototype._validateXPosition = function(xPosition) {\r\n // empty is ok\r\n if (xPosition == null) {\r\n return;\r\n }\r\n\r\n var positionKeys = Object.keys(MdPanelPosition.xPosition);\r\n var positionValues = [];\r\n for (var key, i = 0; (key = positionKeys[i]); i++) {\r\n var position = MdPanelPosition.xPosition[key];\r\n positionValues.push(position);\r\n if (position === xPosition) {\r\n return;\r\n }\r\n }\r\n\r\n throw new Error(\r\n \"Panel x Position only accepts the following values:\\n\" +\r\n positionValues.join(\" | \")\r\n );\r\n };\r\n\r\n /**\r\n * Sets the value of the offset in the x-direction. This will add to any\r\n * previously set offsets.\r\n * @param {string} offsetX\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.withOffsetX = function(offsetX) {\r\n this._translateX.push(offsetX);\r\n return this;\r\n };\r\n\r\n /**\r\n * Sets the value of the offset in the y-direction. This will add to any\r\n * previously set offsets.\r\n * @param {string} offsetY\r\n * @returns {!MdPanelPosition}\r\n */\r\n MdPanelPosition.prototype.withOffsetY = function(offsetY) {\r\n this._translateY.push(offsetY);\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets the value of `top` for the panel.\r\n * @returns {string}\r\n */\r\n MdPanelPosition.prototype.getTop = function() {\r\n return this._top;\r\n };\r\n\r\n /**\r\n * Gets the value of `bottom` for the panel.\r\n * @returns {string}\r\n */\r\n MdPanelPosition.prototype.getBottom = function() {\r\n return this._bottom;\r\n };\r\n\r\n /**\r\n * Gets the value of `left` for the panel.\r\n * @returns {string}\r\n */\r\n MdPanelPosition.prototype.getLeft = function() {\r\n return this._left;\r\n };\r\n\r\n /**\r\n * Gets the value of `right` for the panel.\r\n * @returns {string}\r\n */\r\n MdPanelPosition.prototype.getRight = function() {\r\n return this._right;\r\n };\r\n\r\n /**\r\n * Gets the value of `transform` for the panel.\r\n * @returns {string}\r\n */\r\n MdPanelPosition.prototype.getTransform = function() {\r\n var translateX = this._reduceTranslateValues(\r\n \"translateX\",\r\n this._translateX\r\n );\r\n var translateY = this._reduceTranslateValues(\r\n \"translateY\",\r\n this._translateY\r\n );\r\n\r\n // It's important to trim the result, because the browser will ignore the set\r\n // operation if the string contains only whitespace.\r\n return (translateX + \" \" + translateY).trim();\r\n };\r\n\r\n /**\r\n * True if the panel is completely on-screen with this positioning; false\r\n * otherwise.\r\n * @param {!angular.JQLite} panelEl\r\n * @return {boolean}\r\n */\r\n MdPanelPosition.prototype._isOnscreen = function(panelEl) {\r\n // this works because we always use fixed positioning for the panel,\r\n // which is relative to the viewport.\r\n // TODO(gmoothart): take into account _translateX and _translateY to the\r\n // extent feasible.\r\n\r\n var left = parseInt(this.getLeft());\r\n var top = parseInt(this.getTop());\r\n var right = left + panelEl[0].offsetWidth;\r\n var bottom = top + panelEl[0].offsetHeight;\r\n\r\n return (\r\n left >= 0 &&\r\n top >= 0 &&\r\n bottom <= this._$window.innerHeight &&\r\n right <= this._$window.innerWidth\r\n );\r\n };\r\n\r\n /**\r\n * Gets the first x/y position that can fit on-screen.\r\n * @returns {{x: string, y: string}}\r\n */\r\n MdPanelPosition.prototype.getActualPosition = function() {\r\n return this._actualPosition;\r\n };\r\n\r\n /**\r\n * Reduces a list of translate values to a string that can be used within\r\n * transform.\r\n * @param {string} translateFn\r\n * @param {!Array} values\r\n * @returns {string}\r\n * @private\r\n */\r\n MdPanelPosition.prototype._reduceTranslateValues = function(\r\n translateFn,\r\n values\r\n ) {\r\n return values\r\n .map(function(translation) {\r\n return translateFn + \"(\" + translation + \")\";\r\n })\r\n .join(\" \");\r\n };\r\n\r\n /**\r\n * Sets the panel position based on the created panel element and best x/y\r\n * positioning.\r\n * @param {!angular.JQLite} panelEl\r\n * @private\r\n */\r\n MdPanelPosition.prototype._setPanelPosition = function(panelEl) {\r\n // Only calculate the position if necessary.\r\n if (this._absolute) {\r\n return;\r\n }\r\n\r\n if (this._actualPosition) {\r\n this._calculatePanelPosition(panelEl, this._actualPosition);\r\n return;\r\n }\r\n\r\n for (var i = 0; i < this._positions.length; i++) {\r\n this._actualPosition = this._positions[i];\r\n this._calculatePanelPosition(panelEl, this._actualPosition);\r\n if (this._isOnscreen(panelEl)) {\r\n break;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Switches between 'start' and 'end'.\r\n * @param {string} position Horizontal position of the panel\r\n * @returns {string} Reversed position\r\n * @private\r\n */\r\n MdPanelPosition.prototype._reverseXPosition = function(position) {\r\n if (position === MdPanelPosition.xPosition.CENTER) {\r\n return;\r\n }\r\n\r\n var start = \"start\";\r\n var end = \"end\";\r\n\r\n return position.indexOf(start) > -1\r\n ? position.replace(start, end)\r\n : position.replace(end, start);\r\n };\r\n\r\n /**\r\n * Handles horizontal positioning in rtl or ltr environments.\r\n * @param {string} position Horizontal position of the panel\r\n * @returns {string} The correct position according the page direction\r\n * @private\r\n */\r\n MdPanelPosition.prototype._bidi = function(position) {\r\n return this._isRTL ? this._reverseXPosition(position) : position;\r\n };\r\n\r\n /**\r\n * Calculates the panel position based on the created panel element and the\r\n * provided positioning.\r\n * @param {!angular.JQLite} panelEl\r\n * @param {!{x:string, y:string}} position\r\n * @private\r\n */\r\n MdPanelPosition.prototype._calculatePanelPosition = function(\r\n panelEl,\r\n position\r\n ) {\r\n var panelBounds = panelEl[0].getBoundingClientRect();\r\n var panelWidth = panelBounds.width;\r\n var panelHeight = panelBounds.height;\r\n\r\n var targetBounds = this._relativeToEl[0].getBoundingClientRect();\r\n\r\n var targetLeft = targetBounds.left;\r\n var targetRight = targetBounds.right;\r\n var targetWidth = targetBounds.width;\r\n\r\n switch (this._bidi(position.x)) {\r\n case MdPanelPosition.xPosition.OFFSET_START:\r\n this._left = targetLeft - panelWidth + \"px\";\r\n break;\r\n case MdPanelPosition.xPosition.ALIGN_END:\r\n this._left = targetRight - panelWidth + \"px\";\r\n break;\r\n case MdPanelPosition.xPosition.CENTER:\r\n var left = targetLeft + 0.5 * targetWidth - 0.5 * panelWidth;\r\n this._left = left + \"px\";\r\n break;\r\n case MdPanelPosition.xPosition.ALIGN_START:\r\n this._left = targetLeft + \"px\";\r\n break;\r\n case MdPanelPosition.xPosition.OFFSET_END:\r\n this._left = targetRight + \"px\";\r\n break;\r\n }\r\n\r\n var targetTop = targetBounds.top;\r\n var targetBottom = targetBounds.bottom;\r\n var targetHeight = targetBounds.height;\r\n\r\n switch (position.y) {\r\n case MdPanelPosition.yPosition.ABOVE:\r\n this._top = targetTop - panelHeight + \"px\";\r\n break;\r\n case MdPanelPosition.yPosition.ALIGN_BOTTOMS:\r\n this._top = targetBottom - panelHeight + \"px\";\r\n break;\r\n case MdPanelPosition.yPosition.CENTER:\r\n var top = targetTop + 0.5 * targetHeight - 0.5 * panelHeight;\r\n this._top = top + \"px\";\r\n break;\r\n case MdPanelPosition.yPosition.ALIGN_TOPS:\r\n this._top = targetTop + \"px\";\r\n break;\r\n case MdPanelPosition.yPosition.BELOW:\r\n this._top = targetBottom + \"px\";\r\n break;\r\n }\r\n };\r\n\r\n /*****************************************************************************\r\n * MdPanelAnimation *\r\n *****************************************************************************/\r\n\r\n /**\r\n * Animation configuration object. To use, create an MdPanelAnimation with the\r\n * desired properties, then pass the object as part of $mdPanel creation.\r\n *\r\n * Example:\r\n *\r\n * var panelAnimation = new MdPanelAnimation()\r\n * .openFrom(myButtonEl)\r\n * .closeTo('.my-button')\r\n * .withAnimation($mdPanel.animation.SCALE);\r\n *\r\n * $mdPanel.create({\r\n * animation: panelAnimation\r\n * });\r\n *\r\n * @param {!angular.$injector} $injector\r\n * @final @constructor\r\n */\r\n function MdPanelAnimation($injector) {\r\n /** @private @const {!angular.$mdUtil} */\r\n this._$mdUtil = $injector.get(\"$mdUtil\");\r\n\r\n /**\r\n * @private {{element: !angular.JQLite|undefined, bounds: !DOMRect}|\r\n * undefined}\r\n */\r\n this._openFrom;\r\n\r\n /**\r\n * @private {{element: !angular.JQLite|undefined, bounds: !DOMRect}|\r\n * undefined}\r\n */\r\n this._closeTo;\r\n\r\n /** @private {string|{open: string, close: string}} */\r\n this._animationClass = \"\";\r\n }\r\n\r\n /**\r\n * Possible default animations.\r\n * @enum {string}\r\n */\r\n MdPanelAnimation.animation = {\r\n SLIDE: \"md-panel-animate-slide\",\r\n SCALE: \"md-panel-animate-scale\",\r\n FADE: \"md-panel-animate-fade\"\r\n };\r\n\r\n /**\r\n * Specifies where to start the open animation. `openFrom` accepts a\r\n * click event object, query selector, DOM element, or a Rect object that\r\n * is used to determine the bounds. When passed a click event, the location\r\n * of the click will be used as the position to start the animation.\r\n * @param {string|!Element|!Event|{top: number, left: number}} openFrom\r\n * @returns {!MdPanelAnimation}\r\n */\r\n MdPanelAnimation.prototype.openFrom = function(openFrom) {\r\n // Check if 'openFrom' is an Event.\r\n openFrom = openFrom.target ? openFrom.target : openFrom;\r\n\r\n this._openFrom = this._getPanelAnimationTarget(openFrom);\r\n\r\n if (!this._closeTo) {\r\n this._closeTo = this._openFrom;\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Specifies where to animate the panel close. `closeTo` accepts a\r\n * query selector, DOM element, or a Rect object that is used to determine\r\n * the bounds.\r\n * @param {string|!Element|{top: number, left: number}} closeTo\r\n * @returns {!MdPanelAnimation}\r\n */\r\n MdPanelAnimation.prototype.closeTo = function(closeTo) {\r\n this._closeTo = this._getPanelAnimationTarget(closeTo);\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns the element and bounds for the animation target.\r\n * @param {string|!Element|{top: number, left: number}} location\r\n * @returns {{element: !angular.JQLite|undefined, bounds: !DOMRect}}\r\n * @private\r\n */\r\n MdPanelAnimation.prototype._getPanelAnimationTarget = function(location) {\r\n if (angular.isDefined(location.top) || angular.isDefined(location.left)) {\r\n return {\r\n element: undefined,\r\n bounds: {\r\n top: location.top || 0,\r\n left: location.left || 0\r\n }\r\n };\r\n } else {\r\n return this._getBoundingClientRect(getElement(location));\r\n }\r\n };\r\n\r\n /**\r\n * Specifies the animation class.\r\n *\r\n * There are several default animations that can be used:\r\n * (MdPanelAnimation.animation)\r\n * SLIDE: The panel slides in and out from the specified\r\n * elements.\r\n * SCALE: The panel scales in and out.\r\n * FADE: The panel fades in and out.\r\n *\r\n * @param {string|{open: string, close: string}} cssClass\r\n * @returns {!MdPanelAnimation}\r\n */\r\n MdPanelAnimation.prototype.withAnimation = function(cssClass) {\r\n this._animationClass = cssClass;\r\n return this;\r\n };\r\n\r\n /**\r\n * Animate the panel open.\r\n * @param {!angular.JQLite} panelEl\r\n * @returns {!angular.$q.Promise} A promise that is resolved when the open\r\n * animation is complete.\r\n */\r\n MdPanelAnimation.prototype.animateOpen = function(panelEl) {\r\n var animator = this._$mdUtil.dom.animator;\r\n\r\n this._fixBounds(panelEl);\r\n var animationOptions = {};\r\n\r\n // Include the panel transformations when calculating the animations.\r\n var panelTransform = panelEl[0].style.transform || \"\";\r\n\r\n var openFrom = animator.toTransformCss(panelTransform);\r\n var openTo = animator.toTransformCss(panelTransform);\r\n\r\n switch (this._animationClass) {\r\n case MdPanelAnimation.animation.SLIDE:\r\n // Slide should start with opacity: 1.\r\n panelEl.css(\"opacity\", \"1\");\r\n\r\n animationOptions = {\r\n transitionInClass: \"_md-panel-animate-enter\"\r\n };\r\n\r\n var openSlide =\r\n animator.calculateSlideToOrigin(panelEl, this._openFrom) || \"\";\r\n openFrom = animator.toTransformCss(openSlide + \" \" + panelTransform);\r\n break;\r\n\r\n case MdPanelAnimation.animation.SCALE:\r\n animationOptions = {\r\n transitionInClass: \"_md-panel-animate-enter\"\r\n };\r\n\r\n var openScale =\r\n animator.calculateZoomToOrigin(panelEl, this._openFrom) || \"\";\r\n openFrom = animator.toTransformCss(openScale + \" \" + panelTransform);\r\n break;\r\n\r\n case MdPanelAnimation.animation.FADE:\r\n animationOptions = {\r\n transitionInClass: \"_md-panel-animate-enter\"\r\n };\r\n break;\r\n\r\n default:\r\n if (angular.isString(this._animationClass)) {\r\n animationOptions = {\r\n transitionInClass: this._animationClass\r\n };\r\n } else {\r\n animationOptions = {\r\n transitionInClass: this._animationClass[\"open\"],\r\n transitionOutClass: this._animationClass[\"close\"]\r\n };\r\n }\r\n }\r\n\r\n return animator.translate3d(panelEl, openFrom, openTo, animationOptions);\r\n };\r\n\r\n /**\r\n * Animate the panel close.\r\n * @param {!angular.JQLite} panelEl\r\n * @returns {!angular.$q.Promise} A promise that resolves when the close\r\n * animation is complete.\r\n */\r\n MdPanelAnimation.prototype.animateClose = function(panelEl) {\r\n var animator = this._$mdUtil.dom.animator;\r\n var reverseAnimationOptions = {};\r\n\r\n // Include the panel transformations when calculating the animations.\r\n var panelTransform = panelEl[0].style.transform || \"\";\r\n\r\n var closeFrom = animator.toTransformCss(panelTransform);\r\n var closeTo = animator.toTransformCss(panelTransform);\r\n\r\n switch (this._animationClass) {\r\n case MdPanelAnimation.animation.SLIDE:\r\n // Slide should start with opacity: 1.\r\n panelEl.css(\"opacity\", \"1\");\r\n reverseAnimationOptions = {\r\n transitionInClass: \"_md-panel-animate-leave\"\r\n };\r\n\r\n var closeSlide =\r\n animator.calculateSlideToOrigin(panelEl, this._closeTo) || \"\";\r\n closeTo = animator.toTransformCss(closeSlide + \" \" + panelTransform);\r\n break;\r\n\r\n case MdPanelAnimation.animation.SCALE:\r\n reverseAnimationOptions = {\r\n transitionInClass:\r\n \"_md-panel-animate-scale-out _md-panel-animate-leave\"\r\n };\r\n\r\n var closeScale =\r\n animator.calculateZoomToOrigin(panelEl, this._closeTo) || \"\";\r\n closeTo = animator.toTransformCss(closeScale + \" \" + panelTransform);\r\n break;\r\n\r\n case MdPanelAnimation.animation.FADE:\r\n reverseAnimationOptions = {\r\n transitionInClass:\r\n \"_md-panel-animate-fade-out _md-panel-animate-leave\"\r\n };\r\n break;\r\n\r\n default:\r\n if (angular.isString(this._animationClass)) {\r\n reverseAnimationOptions = {\r\n transitionOutClass: this._animationClass\r\n };\r\n } else {\r\n reverseAnimationOptions = {\r\n transitionInClass: this._animationClass[\"close\"],\r\n transitionOutClass: this._animationClass[\"open\"]\r\n };\r\n }\r\n }\r\n\r\n return animator.translate3d(\r\n panelEl,\r\n closeFrom,\r\n closeTo,\r\n reverseAnimationOptions\r\n );\r\n };\r\n\r\n /**\r\n * Set the height and width to match the panel if not provided.\r\n * @param {!angular.JQLite} panelEl\r\n * @private\r\n */\r\n MdPanelAnimation.prototype._fixBounds = function(panelEl) {\r\n var panelWidth = panelEl[0].offsetWidth;\r\n var panelHeight = panelEl[0].offsetHeight;\r\n\r\n if (this._openFrom && this._openFrom.bounds.height == null) {\r\n this._openFrom.bounds.height = panelHeight;\r\n }\r\n if (this._openFrom && this._openFrom.bounds.width == null) {\r\n this._openFrom.bounds.width = panelWidth;\r\n }\r\n if (this._closeTo && this._closeTo.bounds.height == null) {\r\n this._closeTo.bounds.height = panelHeight;\r\n }\r\n if (this._closeTo && this._closeTo.bounds.width == null) {\r\n this._closeTo.bounds.width = panelWidth;\r\n }\r\n };\r\n\r\n /**\r\n * Identify the bounding RECT for the target element.\r\n * @param {!angular.JQLite} element\r\n * @returns {{element: !angular.JQLite|undefined, bounds: !DOMRect}}\r\n * @private\r\n */\r\n MdPanelAnimation.prototype._getBoundingClientRect = function(element) {\r\n if (element instanceof angular.element) {\r\n return {\r\n element: element,\r\n bounds: element[0].getBoundingClientRect()\r\n };\r\n }\r\n };\r\n\r\n /*****************************************************************************\r\n * Util Methods *\r\n *****************************************************************************/\r\n\r\n /**\r\n * Returns the angular element associated with a css selector or element.\r\n * @param el {string|!angular.JQLite|!Element}\r\n * @returns {!angular.JQLite}\r\n */\r\n function getElement(el) {\r\n var queryResult = angular.isString(el) ? document.querySelector(el) : el;\r\n return angular.element(queryResult);\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.progressCircular\r\n * @description Module for a circular progressbar\r\n */\r\n\r\n angular.module(\"material.components.progressCircular\", [\"material.core\"]);\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.progressLinear\r\n * @description Linear Progress module!\r\n */\r\n MdProgressLinearDirective.$inject = [\"$mdTheming\", \"$mdUtil\", \"$log\"];\r\n angular\r\n .module(\"material.components.progressLinear\", [\"material.core\"])\r\n .directive(\"mdProgressLinear\", MdProgressLinearDirective);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdProgressLinear\r\n * @module material.components.progressLinear\r\n * @restrict E\r\n *\r\n * @description\r\n * The linear progress directive is used to make loading content\r\n * in your app as delightful and painless as possible by minimizing\r\n * the amount of visual change a user sees before they can view\r\n * and interact with content.\r\n *\r\n * Each operation should only be represented by one activity indicator\r\n * For example: one refresh operation should not display both a\r\n * refresh bar and an activity circle.\r\n *\r\n * For operations where the percentage of the operation completed\r\n * can be determined, use a determinate indicator. They give users\r\n * a quick sense of how long an operation will take.\r\n *\r\n * For operations where the user is asked to wait a moment while\r\n * something finishes up, and it’s not necessary to expose what's\r\n * happening behind the scenes and how long it will take, use an\r\n * indeterminate indicator.\r\n *\r\n * @param {string} md-mode Select from one of four modes: determinate, indeterminate, buffer or query.\r\n *\r\n * Note: if the `md-mode` value is set as undefined or specified as 1 of the four (4) valid modes, then `indeterminate`\r\n * will be auto-applied as the mode.\r\n *\r\n * Note: if not configured, the `md-mode=\"indeterminate\"` will be auto injected as an attribute. If `value=\"\"` is also specified, however,\r\n * then `md-mode=\"determinate\"` would be auto-injected instead.\r\n * @param {number=} value In determinate and buffer modes, this number represents the percentage of the primary progress bar. Default: 0\r\n * @param {number=} md-buffer-value In the buffer mode, this number represents the percentage of the secondary progress bar. Default: 0\r\n * @param {boolean=} ng-disabled Determines whether to disable the progress element.\r\n *\r\n * @usage\r\n * \r\n * \r\n *\r\n * \r\n *\r\n * \r\n *\r\n * \r\n *\r\n * \r\n * \r\n */\r\n function MdProgressLinearDirective($mdTheming, $mdUtil, $log) {\r\n var MODE_DETERMINATE = \"determinate\";\r\n var MODE_INDETERMINATE = \"indeterminate\";\r\n var MODE_BUFFER = \"buffer\";\r\n var MODE_QUERY = \"query\";\r\n var DISABLED_CLASS = \"_md-progress-linear-disabled\";\r\n\r\n return {\r\n restrict: \"E\",\r\n template:\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n \"
    \",\r\n compile: compile\r\n };\r\n\r\n function compile(tElement, tAttrs, transclude) {\r\n tElement.attr(\"aria-valuemin\", 0);\r\n tElement.attr(\"aria-valuemax\", 100);\r\n tElement.attr(\"role\", \"progressbar\");\r\n\r\n return postLink;\r\n }\r\n function postLink(scope, element, attr) {\r\n $mdTheming(element);\r\n\r\n var lastMode;\r\n var isDisabled = attr.hasOwnProperty(\"disabled\");\r\n var toVendorCSS = $mdUtil.dom.animator.toCss;\r\n var bar1 = angular.element(element[0].querySelector(\".md-bar1\"));\r\n var bar2 = angular.element(element[0].querySelector(\".md-bar2\"));\r\n var container = angular.element(\r\n element[0].querySelector(\".md-container\")\r\n );\r\n\r\n element.attr(\"md-mode\", mode()).toggleClass(DISABLED_CLASS, isDisabled);\r\n\r\n validateMode();\r\n watchAttributes();\r\n\r\n /**\r\n * Watch the value, md-buffer-value, and md-mode attributes\r\n */\r\n function watchAttributes() {\r\n attr.$observe(\"value\", function(value) {\r\n var percentValue = clamp(value);\r\n element.attr(\"aria-valuenow\", percentValue);\r\n\r\n if (mode() != MODE_QUERY) animateIndicator(bar2, percentValue);\r\n });\r\n\r\n attr.$observe(\"mdBufferValue\", function(value) {\r\n animateIndicator(bar1, clamp(value));\r\n });\r\n\r\n attr.$observe(\"disabled\", function(value) {\r\n if (value === true || value === false) {\r\n isDisabled = !!value;\r\n } else {\r\n isDisabled = angular.isDefined(value);\r\n }\r\n\r\n element.toggleClass(DISABLED_CLASS, isDisabled);\r\n container.toggleClass(lastMode, !isDisabled);\r\n });\r\n\r\n attr.$observe(\"mdMode\", function(mode) {\r\n if (lastMode) container.removeClass(lastMode);\r\n\r\n switch (mode) {\r\n case MODE_QUERY:\r\n case MODE_BUFFER:\r\n case MODE_DETERMINATE:\r\n case MODE_INDETERMINATE:\r\n container.addClass((lastMode = \"md-mode-\" + mode));\r\n break;\r\n default:\r\n container.addClass(\r\n (lastMode = \"md-mode-\" + MODE_INDETERMINATE)\r\n );\r\n break;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Auto-defaults the mode to either `determinate` or `indeterminate` mode; if not specified\r\n */\r\n function validateMode() {\r\n if (angular.isUndefined(attr.mdMode)) {\r\n var hasValue = angular.isDefined(attr.value);\r\n var mode = hasValue ? MODE_DETERMINATE : MODE_INDETERMINATE;\r\n var info =\r\n \"Auto-adding the missing md-mode='{0}' to the ProgressLinear element\";\r\n\r\n //$log.debug( $mdUtil.supplant(info, [mode]) );\r\n\r\n element.attr(\"md-mode\", mode);\r\n attr.mdMode = mode;\r\n }\r\n }\r\n\r\n /**\r\n * Is the md-mode a valid option?\r\n */\r\n function mode() {\r\n var value = (attr.mdMode || \"\").trim();\r\n if (value) {\r\n switch (value) {\r\n case MODE_DETERMINATE:\r\n case MODE_INDETERMINATE:\r\n case MODE_BUFFER:\r\n case MODE_QUERY:\r\n break;\r\n default:\r\n value = MODE_INDETERMINATE;\r\n break;\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n /**\r\n * Manually set CSS to animate the Determinate indicator based on the specified\r\n * percentage value (0-100).\r\n */\r\n function animateIndicator(target, value) {\r\n if (isDisabled || !mode()) return;\r\n\r\n var to = $mdUtil.supplant(\"translateX({0}%) scale({1},1)\", [\r\n (value - 100) / 2,\r\n value / 100\r\n ]);\r\n var styles = toVendorCSS({ transform: to });\r\n angular.element(target).css(styles);\r\n }\r\n }\r\n\r\n /**\r\n * Clamps the value to be between 0 and 100.\r\n * @param {number} value The value to clamp.\r\n * @returns {number}\r\n */\r\n function clamp(value) {\r\n return Math.max(0, Math.min(value || 0, 100));\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.radioButton\r\n * @description radioButton module!\r\n */\r\n mdRadioGroupDirective.$inject = [\r\n \"$mdUtil\",\r\n \"$mdConstant\",\r\n \"$mdTheming\",\r\n \"$timeout\"\r\n ];\r\n mdRadioButtonDirective.$inject = [\"$mdAria\", \"$mdUtil\", \"$mdTheming\"];\r\n angular\r\n .module(\"material.components.radioButton\", [\"material.core\"])\r\n .directive(\"mdRadioGroup\", mdRadioGroupDirective)\r\n .directive(\"mdRadioButton\", mdRadioButtonDirective);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @module material.components.radioButton\r\n * @name mdRadioGroup\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * The `` directive identifies a grouping\r\n * container for the 1..n grouped radio buttons; specified using nested\r\n * `` tags.\r\n *\r\n * As per the [material design spec](http://www.google.com/design/spec/style/color.html#color-ui-color-application)\r\n * the radio button is in the accent color by default. The primary color palette may be used with\r\n * the `md-primary` class.\r\n *\r\n * Note: `` and `` handle tabindex differently\r\n * than the native `` controls. Whereas the native controls\r\n * force the user to tab through all the radio buttons, ``\r\n * is focusable, and by default the ``s are not.\r\n *\r\n * @param {string} ng-model Assignable angular expression to data-bind to.\r\n * @param {boolean=} md-no-ink Use of attribute indicates flag to disable ink ripple effects.\r\n *\r\n * @usage\r\n * \r\n * \r\n *\r\n * \r\n *\r\n * {{ d.label }}\r\n *\r\n * \r\n *\r\n * \r\n * \r\n *\r\n */\r\n function mdRadioGroupDirective($mdUtil, $mdConstant, $mdTheming, $timeout) {\r\n RadioGroupController.prototype = createRadioGroupControllerProto();\r\n\r\n return {\r\n restrict: \"E\",\r\n controller: [\"$element\", RadioGroupController],\r\n require: [\"mdRadioGroup\", \"?ngModel\"],\r\n link: { pre: linkRadioGroup }\r\n };\r\n\r\n function linkRadioGroup(scope, element, attr, ctrls) {\r\n element.addClass(\"_md\"); // private md component indicator for styling\r\n $mdTheming(element);\r\n\r\n var rgCtrl = ctrls[0];\r\n var ngModelCtrl = ctrls[1] || $mdUtil.fakeNgModel();\r\n\r\n rgCtrl.init(ngModelCtrl);\r\n\r\n scope.mouseActive = false;\r\n\r\n element\r\n .attr({\r\n role: \"radiogroup\",\r\n tabIndex: element.attr(\"tabindex\") || \"0\"\r\n })\r\n .on(\"keydown\", keydownListener)\r\n .on(\"mousedown\", function(event) {\r\n scope.mouseActive = true;\r\n $timeout(function() {\r\n scope.mouseActive = false;\r\n }, 100);\r\n })\r\n .on(\"focus\", function() {\r\n if (scope.mouseActive === false) {\r\n rgCtrl.$element.addClass(\"md-focused\");\r\n }\r\n })\r\n .on(\"blur\", function() {\r\n rgCtrl.$element.removeClass(\"md-focused\");\r\n });\r\n\r\n /**\r\n *\r\n */\r\n function setFocus() {\r\n if (!element.hasClass(\"md-focused\")) {\r\n element.addClass(\"md-focused\");\r\n }\r\n }\r\n\r\n /**\r\n *\r\n */\r\n function keydownListener(ev) {\r\n var keyCode = ev.which || ev.keyCode;\r\n\r\n // Only listen to events that we originated ourselves\r\n // so that we don't trigger on things like arrow keys in\r\n // inputs.\r\n\r\n if (\r\n keyCode != $mdConstant.KEY_CODE.ENTER &&\r\n ev.currentTarget != ev.target\r\n ) {\r\n return;\r\n }\r\n\r\n switch (keyCode) {\r\n case $mdConstant.KEY_CODE.LEFT_ARROW:\r\n case $mdConstant.KEY_CODE.UP_ARROW:\r\n ev.preventDefault();\r\n rgCtrl.selectPrevious();\r\n setFocus();\r\n break;\r\n\r\n case $mdConstant.KEY_CODE.RIGHT_ARROW:\r\n case $mdConstant.KEY_CODE.DOWN_ARROW:\r\n ev.preventDefault();\r\n rgCtrl.selectNext();\r\n setFocus();\r\n break;\r\n\r\n case $mdConstant.KEY_CODE.ENTER:\r\n var form = angular.element(\r\n $mdUtil.getClosest(element[0], \"form\")\r\n );\r\n if (form.length > 0) {\r\n form.triggerHandler(\"submit\");\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n function RadioGroupController($element) {\r\n this._radioButtonRenderFns = [];\r\n this.$element = $element;\r\n }\r\n\r\n function createRadioGroupControllerProto() {\r\n return {\r\n init: function(ngModelCtrl) {\r\n this._ngModelCtrl = ngModelCtrl;\r\n this._ngModelCtrl.$render = angular.bind(this, this.render);\r\n },\r\n add: function(rbRender) {\r\n this._radioButtonRenderFns.push(rbRender);\r\n },\r\n remove: function(rbRender) {\r\n var index = this._radioButtonRenderFns.indexOf(rbRender);\r\n if (index !== -1) {\r\n this._radioButtonRenderFns.splice(index, 1);\r\n }\r\n },\r\n render: function() {\r\n this._radioButtonRenderFns.forEach(function(rbRender) {\r\n rbRender();\r\n });\r\n },\r\n setViewValue: function(value, eventType) {\r\n this._ngModelCtrl.$setViewValue(value, eventType);\r\n // update the other radio buttons as well\r\n this.render();\r\n },\r\n getViewValue: function() {\r\n return this._ngModelCtrl.$viewValue;\r\n },\r\n selectNext: function() {\r\n return changeSelectedButton(this.$element, 1);\r\n },\r\n selectPrevious: function() {\r\n return changeSelectedButton(this.$element, -1);\r\n },\r\n setActiveDescendant: function(radioId) {\r\n this.$element.attr(\"aria-activedescendant\", radioId);\r\n },\r\n isDisabled: function() {\r\n return this.$element[0].hasAttribute(\"disabled\");\r\n }\r\n };\r\n }\r\n /**\r\n * Change the radio group's selected button by a given increment.\r\n * If no button is selected, select the first button.\r\n */\r\n function changeSelectedButton(parent, increment) {\r\n // Coerce all child radio buttons into an array, then wrap then in an iterator\r\n var buttons = $mdUtil.iterator(\r\n parent[0].querySelectorAll(\"md-radio-button\"),\r\n true\r\n );\r\n\r\n if (buttons.count()) {\r\n var validate = function(button) {\r\n // If disabled, then NOT valid\r\n return !angular.element(button).attr(\"disabled\");\r\n };\r\n\r\n var selected = parent[0].querySelector(\"md-radio-button.md-checked\");\r\n var target =\r\n buttons[increment < 0 ? \"previous\" : \"next\"](selected, validate) ||\r\n buttons.first();\r\n\r\n // Activate radioButton's click listener (triggerHandler won't create a real click event)\r\n angular.element(target).triggerHandler(\"click\");\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @ngdoc directive\r\n * @module material.components.radioButton\r\n * @name mdRadioButton\r\n *\r\n * @restrict E\r\n *\r\n * @description\r\n * The ``directive is the child directive required to be used within `` elements.\r\n *\r\n * While similar to the `` directive,\r\n * the `` directive provides ink effects, ARIA support, and\r\n * supports use within named radio groups.\r\n *\r\n * @param {string} ngModel Assignable angular expression to data-bind to.\r\n * @param {string=} ngChange Angular expression to be executed when input changes due to user\r\n * interaction with the input element.\r\n * @param {string} ngValue Angular expression which sets the value to which the expression should\r\n * be set when selected.\r\n * @param {string} value The value to which the expression should be set when selected.\r\n * @param {string=} name Property name of the form under which the control is published.\r\n * @param {string=} aria-label Adds label to radio button for accessibility.\r\n * Defaults to radio button's text. If no text content is available, a warning will be logged.\r\n *\r\n * @usage\r\n * \r\n *\r\n * \r\n * Label 1\r\n * \r\n *\r\n * \r\n * Green\r\n * \r\n *\r\n * \r\n *\r\n */\r\n function mdRadioButtonDirective($mdAria, $mdUtil, $mdTheming) {\r\n var CHECKED_CSS = \"md-checked\";\r\n\r\n return {\r\n restrict: \"E\",\r\n require: \"^mdRadioGroup\",\r\n transclude: true,\r\n template:\r\n '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n \"
    \" +\r\n '
    ',\r\n link: link\r\n };\r\n\r\n function link(scope, element, attr, rgCtrl) {\r\n var lastChecked;\r\n\r\n $mdTheming(element);\r\n configureAria(element, scope);\r\n\r\n initialize();\r\n\r\n /**\r\n *\r\n */\r\n function initialize() {\r\n if (!rgCtrl) {\r\n throw \"RadioButton: No RadioGroupController could be found.\";\r\n }\r\n\r\n rgCtrl.add(render);\r\n attr.$observe(\"value\", render);\r\n\r\n element.on(\"click\", listener).on(\"$destroy\", function() {\r\n rgCtrl.remove(render);\r\n });\r\n }\r\n\r\n /**\r\n *\r\n */\r\n function listener(ev) {\r\n if (element[0].hasAttribute(\"disabled\") || rgCtrl.isDisabled())\r\n return;\r\n\r\n scope.$apply(function() {\r\n rgCtrl.setViewValue(attr.value, ev && ev.type);\r\n });\r\n }\r\n\r\n /**\r\n * Add or remove the `.md-checked` class from the RadioButton (and conditionally its parent).\r\n * Update the `aria-activedescendant` attribute.\r\n */\r\n function render() {\r\n var checked = rgCtrl.getViewValue() == attr.value;\r\n if (checked === lastChecked) {\r\n return;\r\n }\r\n\r\n lastChecked = checked;\r\n element.attr(\"aria-checked\", checked);\r\n\r\n if (checked) {\r\n markParentAsChecked(true);\r\n element.addClass(CHECKED_CSS);\r\n\r\n rgCtrl.setActiveDescendant(element.attr(\"id\"));\r\n } else {\r\n markParentAsChecked(false);\r\n element.removeClass(CHECKED_CSS);\r\n }\r\n\r\n /**\r\n * If the radioButton is inside a div, then add class so highlighting will work...\r\n */\r\n function markParentAsChecked(addClass) {\r\n if (element.parent()[0].nodeName != \"MD-RADIO-GROUP\") {\r\n element\r\n .parent()\r\n [!!addClass ? \"addClass\" : \"removeClass\"](CHECKED_CSS);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Inject ARIA-specific attributes appropriate for each radio button\r\n */\r\n function configureAria(element, scope) {\r\n scope.ariaId = buildAriaID();\r\n\r\n element.attr({\r\n id: scope.ariaId,\r\n role: \"radio\",\r\n \"aria-checked\": \"false\"\r\n });\r\n\r\n $mdAria.expectWithText(element, \"aria-label\");\r\n\r\n /**\r\n * Build a unique ID for each radio button that will be used with aria-activedescendant.\r\n * Preserve existing ID if already specified.\r\n * @returns {*|string}\r\n */\r\n function buildAriaID() {\r\n return attr.id || \"radio\" + \"_\" + $mdUtil.nextUid();\r\n }\r\n }\r\n }\r\n }\r\n })();\r\n (function() {\r\n \"use strict\";\r\n\r\n /**\r\n * @ngdoc module\r\n * @name material.components.select\r\n */\r\n\r\n /***************************************************\r\n\r\n ### TODO - POST RC1 ###\r\n - [ ] Abstract placement logic in $mdSelect service to $mdMenu service\r\n\r\n ***************************************************/\r\n\r\n SelectDirective.$inject = [\r\n \"$mdSelect\",\r\n \"$mdUtil\",\r\n \"$mdConstant\",\r\n \"$mdTheming\",\r\n \"$mdAria\",\r\n \"$compile\",\r\n \"$parse\"\r\n ];\r\n SelectMenuDirective.$inject = [\r\n \"$parse\",\r\n \"$mdUtil\",\r\n \"$mdConstant\",\r\n \"$mdTheming\"\r\n ];\r\n OptionDirective.$inject = [\"$mdButtonInkRipple\", \"$mdUtil\"];\r\n SelectProvider.$inject = [\"$$interimElementProvider\"];\r\n var SELECT_EDGE_MARGIN = 8;\r\n var selectNextId = 0;\r\n var CHECKBOX_SELECTION_INDICATOR = angular.element(\r\n '
    '\r\n );\r\n\r\n angular\r\n .module(\"material.components.select\", [\r\n \"material.core\",\r\n \"material.components.backdrop\"\r\n ])\r\n .directive(\"mdSelect\", SelectDirective)\r\n .directive(\"mdSelectMenu\", SelectMenuDirective)\r\n .directive(\"mdOption\", OptionDirective)\r\n .directive(\"mdOptgroup\", OptgroupDirective)\r\n .directive(\"mdSelectHeader\", SelectHeaderDirective)\r\n .provider(\"$mdSelect\", SelectProvider);\r\n\r\n /**\r\n * @ngdoc directive\r\n * @name mdSelect\r\n * @restrict E\r\n * @module material.components.select\r\n *\r\n * @description Displays a select box, bound to an ng-model.\r\n *\r\n * When the select is required and uses a floating label, then the label will automatically contain\r\n * an asterisk (`*`). This behavior can be disabled by using the `md-no-asterisk` attribute.\r\n *\r\n * By default, the select will display with an underline to match other form elements. This can be\r\n * disabled by applying the `md-no-underline` CSS class.\r\n *\r\n * ### Option Params\r\n *\r\n * When applied, `md-option-empty` will mark the option as \"empty\" allowing the option to clear the\r\n * select and put it back in it's default state. You may supply this attribute on any option you\r\n * wish, however, it is automatically applied to an option whose `value` or `ng-value` are not\r\n * defined.\r\n *\r\n * **Automatically Applied**\r\n *\r\n * - ``\r\n * - ``\r\n * - ``\r\n * - ``\r\n * - ``\r\n *\r\n * **NOT Automatically Applied**\r\n *\r\n * - ``\r\n * - ``\r\n * - ``\r\n * - `` (this evaluates to the string `\"undefined\"`)\r\n * - <md-option ng-value=\"{{someValueThatMightBeUndefined}}\">\r\n *\r\n * **Note:** A value of `undefined` ***is considered a valid value*** (and does not auto-apply this\r\n * attribute) since you may wish this to be your \"Not Available\" or \"None\" option.\r\n *\r\n * **Note:** Using the `value` attribute (as opposed to `ng-value`) always evaluates to a string, so\r\n * `value=\"null\"` will require the test `ng-if=\"myValue != 'null'\"` rather than `ng-if=\"!myValue\"`.\r\n *\r\n * @param {expression} ng-model The model!\r\n * @param {boolean=} multiple Whether it's multiple.\r\n * @param {expression=} md-on-close Expression to be evaluated when the select is closed.\r\n * @param {expression=} md-on-open Expression to be evaluated when opening the select.\r\n * Will hide the select options and show a spinner until the evaluated promise resolves.\r\n * @param {expression=} md-selected-text Expression to be evaluated that will return a string\r\n * to be displayed as a placeholder in the select input box when it is closed.\r\n * @param {string=} placeholder Placeholder hint text.\r\n * @param md-no-asterisk {boolean=} When set to true, an asterisk will not be appended to the\r\n * floating label. **Note:** This attribute is only evaluated once; it is not watched.\r\n * @param {string=} aria-label Optional label for accessibility. Only necessary if no placeholder or\r\n * explicit label is present.\r\n * @param {string=} md-container-class Class list to get applied to the `.md-select-menu-container`\r\n * element (for custom styling).\r\n *\r\n * @usage\r\n * With a placeholder (label and aria-label are added dynamically)\r\n * \r\n * \r\n * \r\n * {{ opt }}\r\n * \r\n * \r\n * \r\n *\r\n * With an explicit label\r\n * \r\n * \r\n * \r\n * \r\n * {{ opt }}\r\n * \r\n * \r\n * \r\n *\r\n * With a select-header\r\n *\r\n * When a developer needs to put more than just a text label in the\r\n * md-select-menu, they should use the md-select-header.\r\n * The user can put custom HTML inside of the header and style it to their liking.\r\n * One common use case of this would be a sticky search bar.\r\n *\r\n * When using the md-select-header the labels that would previously be added to the\r\n * OptGroupDirective are ignored.\r\n *\r\n * \r\n * \r\n * \r\n * \r\n * Neighborhoods - \r\n * \r\n * {{ opt }}\r\n * \r\n * \r\n * \r\n *\r\n * ## Selects and object equality\r\n * When using a `md-select` to pick from a list of objects, it is important to realize how javascript handles\r\n * equality. Consider the following example:\r\n * \r\n * angular.controller('MyCtrl', function($scope) {\r\n * $scope.users = [\r\n * { id: 1, name: 'Bob' },\r\n * { id: 2, name: 'Alice' },\r\n * { id: 3, name: 'Steve' }\r\n * ];\r\n * $scope.selectedUser = { id: 1, name: 'Bob' };\r\n * });\r\n * \r\n * \r\n *
    \r\n * \r\n * {{ user.name }}\r\n * \r\n *
    \r\n *
    \r\n *\r\n * At first one might expect that the select should be populated with \"Bob\" as the selected user. However,\r\n * this is not true. To determine whether something is selected,\r\n * `ngModelController` is looking at whether `$scope.selectedUser == (any user in $scope.users);`;\r\n *\r\n * Javascript's `==` operator does not check for deep equality (ie. that all properties\r\n * on the object are the same), but instead whether the objects are *the same object in memory*.\r\n * In this case, we have two instances of identical objects, but they exist in memory as unique\r\n * entities. Because of this, the select will have no value populated for a selected user.\r\n *\r\n * To get around this, `ngModelController` provides a `track by` option that allows us to specify a different\r\n * expression which will be used for the equality operator. As such, we can update our `html` to\r\n * make use of this by specifying the `ng-model-options=\"{trackBy: '$value.id'}\"` on the `md-select`\r\n * element. This converts our equality expression to be\r\n * `$scope.selectedUser.id == (any id in $scope.users.map(function(u) { return u.id; }));`\r\n * which results in Bob being selected as desired.\r\n *\r\n * Working HTML:\r\n * \r\n *
    \r\n * \r\n * {{ user.name }}\r\n * \r\n *
    \r\n *
    \r\n */\r\n function SelectDirective(\r\n $mdSelect,\r\n $mdUtil,\r\n $mdConstant,\r\n $mdTheming,\r\n $mdAria,\r\n $compile,\r\n $parse\r\n ) {\r\n var keyCodes = $mdConstant.KEY_CODE;\r\n var NAVIGATION_KEYS = [\r\n keyCodes.SPACE,\r\n keyCodes.ENTER,\r\n keyCodes.UP_ARROW,\r\n keyCodes.DOWN_ARROW\r\n ];\r\n\r\n return {\r\n restrict: \"E\",\r\n require: [\"^?mdInputContainer\", \"mdSelect\", \"ngModel\", \"?^form\"],\r\n compile: compile,\r\n controller: function() {} // empty placeholder controller to be initialized in link\r\n };\r\n\r\n function compile(element, attr) {\r\n // add the select value that will hold our placeholder or selected option value\r\n var valueEl = angular.element(\r\n \"\"\r\n );\r\n valueEl.append(\r\n ''\r\n );\r\n valueEl.addClass(\"md-select-value\");\r\n if (!valueEl[0].hasAttribute(\"id\")) {\r\n valueEl.attr(\"id\", \"select_value_label_\" + $mdUtil.nextUid());\r\n }\r\n\r\n // There's got to be an md-content inside. If there's not one, let's add it.\r\n if (!element.find(\"md-content\").length) {\r\n element.append(\r\n angular.element(\"\").append(element.contents())\r\n );\r\n }\r\n\r\n // Add progress spinner for md-options-loading\r\n if (attr.mdOnOpen) {\r\n // Show progress indicator while loading async\r\n // Use ng-hide for `display:none` so the indicator does not interfere with the options list\r\n element\r\n .find(\"md-content\")\r\n .prepend(\r\n angular.element(\r\n \"
    \" +\r\n ' ' +\r\n \"
    \"\r\n )\r\n );\r\n\r\n // Hide list [of item options] while loading async\r\n element.find(\"md-option\").attr(\"ng-show\", \"$$loadingAsyncDone\");\r\n }\r\n\r\n if (attr.name) {\r\n var autofillClone = angular.element(\r\n ',