dialog.min.js 6.1 KB

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