1234567 |
- /*!
- * Angular Material Design
- * https://github.com/angular/material
- * @license MIT
- * v0.11.3-master-3fe7d76
- */
- function MdDialogDirective(e,n,t){return{restrict:"E",link:function(o,a,i){n(a),e(function(){function e(){a.toggleClass("md-content-overflow",i.scrollHeight>i.clientHeight)}var n,i=a[0].querySelector("md-dialog-content");i&&(n=i.getElementsByTagName("img"),e(),angular.element(n).on("load",e)),o.$on("$destroy",function(){t.destroy()})})}}}function MdDialogProvider(e){function n(e,n){return{template:['<md-dialog md-theme="{{ dialog.theme }}" aria-label="{{ dialog.ariaLabel }}" ng-class="dialog.css">',' <md-dialog-content class="md-dialog-content" role="document" tabIndex="-1">',' <h2 class="md-title">{{ dialog.title }}</h2>',' <div class="md-dialog-content-body" md-template="::dialog.mdContent"></div>'," </md-dialog-content>",' <div class="md-actions">',' <md-button ng-if="dialog.$type == \'confirm\'" ng-click="dialog.abort()" class="md-primary">'," {{ dialog.cancel }}"," </md-button>",' <md-button ng-click="dialog.hide()" class="md-primary" md-autofocus="dialog.$type!=\'confirm\'">'," {{ dialog.ok }}"," </md-button>"," </div>","</md-dialog>"].join("").replace(/\s\s+/g,""),controller:function(){this.hide=function(){e.hide(!0)},this.abort=function(){e.cancel()}},controllerAs:"dialog",bindToController:!0,theme:n.defaultTheme()}}function t(e,n,t,o,a,i,r,l){function d(e,n,o,a){function r(){function e(){var e=n[0].querySelector(".dialog-close");if(!e){var t=n[0].querySelectorAll(".md-actions button");e=t[t.length-1]}return angular.element(e)}if(o.focusOnOpen){var a=t.findFocusTarget(n)||e();a.focus()}}function l(){if(a){var e=/<\/[\w-]*>/gm,n=a.content||o.content||"",i=e.test(n);i||(n=t.supplant("<p>{0}</p>",[n])),a.mdContent=n}}return angular.element(i[0].body).addClass("md-dialog-is-showing"),l(),s(n,o),g(n.find("md-dialog"),o),m(e,n,o),h(n,o).then(function(){u(n,o),f(n,o),r()})}function c(e,n,t){function o(){return v(n,t)}function a(){angular.element(i[0].body).removeClass("md-dialog-is-showing"),n.remove(),t.$destroy||t.origin.focus()}return t.deactivateListeners(),t.unlockScreenReader(),t.hideBackdrop(t.$destroy),t.$destroy?a():o().then(a)}function s(e,n){n.origin=angular.extend({element:null,bounds:null,focus:angular.noop},n.origin||{});var t=angular.element((n.targetEvent||{}).target);if(t&&t.length&&(n.origin.element=t,n.origin.bounds=t[0].getBoundingClientRect(),n.origin.focus=function(){t.focus()}),angular.isString(n.parent)){var o=n.parent,a=i[0].querySelectorAll(o);n.parent=a.length?a[0]:null}n.parent=angular.element(n.parent||l)}function u(n,a){var i=angular.element(r),l=t.debounce(function(){p(n,a)},60),d=[],c=function(){var n="alert"==a.$type?e.hide:e.cancel;t.nextTick(n,!0)};if(a.escapeToClose){var s=a.parent,u=function(e){e.keyCode===o.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),c())};n.on("keydown",u),s.on("keydown",u),i.on("resize",l),d.push(function(){n.off("keydown",u),s.off("keydown",u),i.off("resize",l)})}if(a.clickOutsideToClose){var m,s=n,g=function(e){m=e.target},f=function(e){m===s[0]&&e.target===s[0]&&(e.stopPropagation(),e.preventDefault(),c())};s.on("mousedown",g),s.on("mouseup",f),d.push(function(){s.off("mousedown",g),s.off("mouseup",f)})}a.deactivateListeners=function(){d.forEach(function(e){e()}),a.deactivateListeners=null}}function m(e,n,o){o.disableParentScroll&&(o.restoreScroll=t.disableScrollAround(n,o.parent)),o.hasBackdrop&&(o.backdrop=t.createBackdrop(e,"md-dialog-backdrop md-opaque"),a.enter(o.backdrop,o.parent)),o.hideBackdrop=function(e){o.backdrop&&(e?o.backdrop.remove():a.leave(o.backdrop)),o.disableParentScroll&&(o.restoreScroll(),delete o.restoreScroll),o.hideBackdrop=null}}function g(e,o){var a="alert"===o.$type?"alertdialog":"dialog",i=e.find("md-dialog-content"),r=e.attr("id")||"dialog_"+t.nextUid();e.attr({role:a,tabIndex:"-1"}),0===i.length&&(i=e),i.attr("id",r),e.attr("aria-describedby",r),o.ariaLabel?n.expect(e,"aria-label",o.ariaLabel):n.expectAsync(e,"aria-label",function(){var e=i.text().split(/\s+/);return e.length>3&&(e=e.slice(0,3).concat("...")),e.join(" ")})}function f(e,n){function t(e){for(;e.parentNode;){if(e===document.body)return;for(var n=e.parentNode.children,a=0;a<n.length;a++)e===n[a]||b(n[a],["SCRIPT","STYLE"])||n[a].setAttribute("aria-hidden",o);t(e=e.parentNode)}}var o=!0;t(e[0]),n.unlockScreenReader=function(){o=!1,t(e[0]),n.unlockScreenReader=null}}function p(e,n){var o="fixed"==r.getComputedStyle(i[0].body).position,a=n.backdrop?r.getComputedStyle(n.backdrop[0]):null,l=a?Math.min(i[0].body.clientHeight,Math.ceil(Math.abs(parseInt(a.height,10)))):0;return e.css({top:(o?t.scrollTop(n.parent):0)+"px",height:l?l+"px":"100%"}),e}function h(e,n){n.parent.append(e),p(e,n);var o=e.find("md-dialog"),a=t.dom.animator,i=a.calculateZoomToOrigin,r={transitionInClass:"md-transition-in",transitionOutClass:"md-transition-out"},l=a.toTransformCss(i(o,n.origin)),d=a.toTransformCss("");return a.translate3d(o,l,d,r).then(function(e){return n.reverseAnimate=function(){return delete n.reverseAnimate,e(a.toTransformCss(i(o,n.origin)))},!0})}function v(e,n){return n.reverseAnimate()}function b(e,n){return-1!==n.indexOf(e.nodeName)?!0:void 0}return{hasBackdrop:!0,isolateScope:!0,onShow:d,onRemove:c,clickOutsideToClose:!1,escapeToClose:!0,targetEvent:null,focusOnOpen:!0,disableParentScroll:!0,transformTemplate:function(e){function n(e){return/<\/md-dialog>/g.test(e)?e:"<md-dialog>"+e+"</md-dialog>"}return'<div class="md-dialog-container">'+n(e)+"</div>"}}}return n.$inject=["$mdDialog","$mdTheming"],t.$inject=["$mdDialog","$mdAria","$mdUtil","$mdConstant","$animate","$document","$window","$rootElement"],e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","parent"],options:t}).addPreset("alert",{methods:["title","content","ariaLabel","ok","theme","css"],options:n}).addPreset("confirm",{methods:["title","content","ariaLabel","ok","cancel","theme","css"],options:n})}goog.provide("ng.material.components.dialog"),goog.require("ng.material.components.backdrop"),goog.require("ng.material.core"),angular.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",MdDialogDirective).provider("$mdDialog",MdDialogProvider),MdDialogDirective.$inject=["$$rAF","$mdTheming","$mdDialog"],MdDialogProvider.$inject=["$$interimElementProvider"],ng.material.components.dialog=angular.module("material.components.dialog");
|