vue-material/dist/components/mdMenu/index.js
2016-12-16 15:53:52 -02:00

1 line
No EOL
12 KiB
JavaScript

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VueMaterial=t():e.VueMaterial=t()}(this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return e[i].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="/",t(0)}({0:function(e,t,n){e.exports=n(20)},1:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:{mdTheme:String},data:function(){return{closestThemedParent:!1}},methods:{getClosestThemedParent:function(e){return!(!e||!e.$el||0===e._uid)&&(e.mdTheme||e.mdName?e:this.getClosestThemedParent(e.$parent))}},computed:{themeClass:function(){if(this.mdTheme)return"md-theme-"+this.mdTheme;var e=this.closestThemedParent.mdTheme;return e||(e=this.closestThemedParent?this.closestThemedParent.mdName:this.$material.currentTheme),"md-theme-"+e}},mounted:function(){this.closestThemedParent=this.getClosestThemedParent(this.$parent),this.$material.currentTheme||this.$material.setCurrentTheme("default")}},e.exports=t.default},2:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function e(t,n){return!(!t||!t.$el)&&(0!==t._uid&&(t.$el.classList.contains(n)?t:e(t.$parent,n)))};t.default=n,e.exports=t.default},3:function(e,t){"use strict";function n(){var e=document.createElement("span"),t={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(var n in t)if(void 0!==e.style[n])return t[n]}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n(),e.exports=t.default},20:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function o(e){e.component("md-menu",e.extend(r.default)),e.component("md-menu-item",e.extend(u.default)),e.component("md-menu-content",e.extend(a.default)),e.material.styles.push(c.default)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var s=n(172),r=i(s),d=n(174),u=i(d),l=n(173),a=i(l),h=n(127),c=i(h);e.exports=t.default},37:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=8,i=function(e,t){return t.top<=n-parseInt(getComputedStyle(e).marginTop,10)},o=function(e,t){return t.top+e.offsetHeight+n>=window.innerHeight-parseInt(getComputedStyle(e).marginTop,10)},s=function(e,t){return t.left<=n-parseInt(getComputedStyle(e).marginLeft,10)},r=function(e,t){return t.left+e.offsetWidth+n>=window.innerWidth-parseInt(getComputedStyle(e).marginLeft,10)},d=function(e,t){var d=getComputedStyle(e);return i(e,t)&&(t.top=n-parseInt(d.marginTop,10)),s(e,t)&&(t.left=n-parseInt(d.marginLeft,10)),r(e,t)&&(t.left=window.innerWidth-n-e.offsetWidth-parseInt(d.marginLeft,10)),o(e,t)&&(t.top=window.innerHeight-n-e.offsetHeight-parseInt(d.marginTop,10)),t};t.default=d,e.exports=t.default},64:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),s=i(o),r=n(37),d=i(r);t.default={props:{mdSize:{type:[Number,String],default:0},mdDirection:{type:String,default:"bottom right"},mdAlignTrigger:{type:Boolean,default:!1},mdOffsetX:{type:[Number,String],default:0},mdOffsetY:{type:[Number,String],default:0},mdCloseOnSelect:{type:Boolean,default:!0}},data:function(){return{active:!1}},watch:{mdSize:function(e,t){e>=1&&e<=7&&(this.removeLastSizeMenuContentClass(t),this.addNewSizeMenuContentClass(e))},mdDirection:function(e,t){this.removeLastDirectionMenuContentClass(t),this.addNewDirectionMenuContentClass(e)},mdAlignTrigger:function(e){this.handleAlignTriggerClass(e)}},methods:{validateMenu:function(){if(!this.menuContent)throw this.$destroy(),new Error("You must have a md-menu-content inside your menu.");if(!this.menuTrigger)throw this.$destroy(),new Error("You must have an element with a md-menu-trigger attribute inside your menu.")},removeLastSizeMenuContentClass:function(e){this.menuContent.classList.remove("md-size-"+e)},removeLastDirectionMenuContentClass:function(e){this.menuContent.classList.remove("md-direction-"+e.replace(/ /g,"-"))},addNewSizeMenuContentClass:function(e){this.menuContent.classList.add("md-size-"+e)},addNewDirectionMenuContentClass:function(e){this.menuContent.classList.add("md-direction-"+e.replace(/ /g,"-"))},handleAlignTriggerClass:function(e){e&&this.menuContent.classList.add("md-align-trigger")},getPosition:function(e,t){var n=this.menuTrigger.getBoundingClientRect(),i="top"===e?n.top+n.height-this.menuContent.offsetHeight:n.top,o="left"===t?n.left-this.menuContent.offsetWidth+n.width:n.left;return i+=parseInt(this.mdOffsetY,10),o+=parseInt(this.mdOffsetX,10),this.mdAlignTrigger&&("top"===e?i-=n.height:i+=n.height),{top:i,left:o}},calculateMenuContentPos:function(){var e=void 0;e=this.mdDirection?this.getPosition.apply(this,this.mdDirection.trim().split(" ")):this.getPosition("bottom","right"),e=(0,d.default)(this.menuContent,e),this.menuContent.style.top=e.top+window.pageYOffset+"px",this.menuContent.style.left=e.left+window.pageXOffset+"px"},recalculateOnResize:function(){window.requestAnimationFrame(this.calculateMenuContentPos)},open:function(){this.rootElement.contains(this.menuContent)&&this.rootElement.removeChild(this.menuContent),this.rootElement.appendChild(this.menuContent),this.rootElement.appendChild(this.backdropElement),window.addEventListener("resize",this.recalculateOnResize),this.calculateMenuContentPos(),getComputedStyle(this.menuContent).top,this.menuContent.classList.add("md-active"),this.menuContent.focus(),this.active=!0,this.$emit("open")},close:function e(){var t=this,e=function e(n){if(t.menuContent&&n.target===t.menuContent){var i=t.menuContent.querySelector(".md-ripple.md-active");t.menuContent.removeEventListener(s.default,e),t.menuTrigger.focus(),t.active=!1,i&&i.classList.remove("md-active"),t.rootElement.removeChild(t.menuContent),t.rootElement.removeChild(t.backdropElement),window.removeEventListener("resize",t.recalculateOnResize)}};this.menuContent.addEventListener(s.default,e),this.menuContent.classList.remove("md-active"),this.$emit("close")},toggle:function(){this.active?this.close():this.open()}},mounted:function(){var e=this;this.$nextTick(function(){e.rootElement=e.$root.$el,e.menuTrigger=e.$el.querySelector("[md-menu-trigger]"),e.menuContent=e.$el.querySelector(".md-menu-content"),e.backdropElement=e.$refs.backdrop.$el,e.validateMenu(),e.handleAlignTriggerClass(e.mdAlignTrigger),e.addNewSizeMenuContentClass(e.mdSize),e.addNewDirectionMenuContentClass(e.mdDirection),e.$el.removeChild(e.$refs.backdrop.$el),e.menuContent.parentNode.removeChild(e.menuContent),e.menuTrigger.addEventListener("click",e.toggle)})},beforeDestroy:function(){this.rootElement.contains(this.menuContent)&&(this.rootElement.removeChild(this.menuContent),this.rootElement.removeChild(this.backdropElement)),this.menuTrigger.removeEventListener("click",this.toggle),window.removeEventListener("resize",this.recalculateOnResize)}},e.exports=t.default},65:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(1),s=i(o);t.default={data:function(){return{oldHighlight:!1,highlighted:!1,itemsAmount:0}},mixins:[s.default],methods:{close:function(){this.highlighted=!1,this.$parent.close()},highlightItem:function(e){this.oldHighlight=this.highlighted,"up"===e&&(1===this.highlighted?this.highlighted=this.itemsAmount:this.highlighted--),"down"===e&&(this.highlighted===this.itemsAmount?this.highlighted=1:this.highlighted++)},fireClick:function(){this.highlighted>0&&this.$children[0].$children[this.highlighted-1].$el.click()}},mounted:function(){if(!this.$parent.$el.classList.contains("md-menu"))throw this.$destroy(),new Error("You must wrap the md-menu-content in a md-menu")}},e.exports=t.default},66:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),s=i(o);n(90),t.default={props:{disabled:Boolean},data:function(){return{parentContent:{},index:0}},computed:{classes:function(){return{"md-highlighted":this.highlighted}},highlighted:function(){return this.index===this.parentContent.highlighted&&(this.disabled&&(this.parentContent.oldHighlight>this.parentContent.highlighted?this.parentContent.highlighted--:this.parentContent.highlighted++),1===this.index?this.parentContent.$el.scrollTop=0:this.index===this.parentContent.itemsAmount?this.parentContent.$el.scrollTop=this.parentContent.$el.scrollHeight:this.$el.scrollIntoViewIfNeeded(!1),!0)}},methods:{close:function(e){this.disabled||(this.parentMenu.mdCloseOnSelect&&this.parentContent.close(),this.$emit("click"),this.$emit("selected",e))}},mounted:function(){if(this.parentContent=(0,s.default)(this.$parent,"md-menu-content"),this.parentMenu=(0,s.default)(this.$parent,"md-menu"),!this.parentContent)throw this.$destroy(),new Error("You must wrap the md-menu-item in a md-menu-content");this.parentContent.itemsAmount++,this.index=this.parentContent.itemsAmount}},e.exports=t.default},90:function(e,t){Element.prototype.scrollIntoViewIfNeeded||(Element.prototype.scrollIntoViewIfNeeded=function(e){e=0===arguments.length||!!e;var t=this.parentNode,n=window.getComputedStyle(t,null),i=parseInt(n.getPropertyValue("border-top-width")),o=parseInt(n.getPropertyValue("border-left-width")),s=this.offsetTop-t.offsetTop<t.scrollTop,r=this.offsetTop-t.offsetTop+this.clientHeight-i>t.scrollTop+t.clientHeight,d=this.offsetLeft-t.offsetLeft<t.scrollLeft,u=this.offsetLeft-t.offsetLeft+this.clientWidth-o>t.scrollLeft+t.clientWidth,l=s&&!r;(s||r)&&e&&(t.scrollTop=this.offsetTop-t.offsetTop-t.clientHeight/2-i+this.clientHeight/2),(d||u)&&e&&(t.scrollLeft=this.offsetLeft-t.offsetLeft-t.clientWidth/2-o+this.clientWidth/2),(s||r||d||u)&&!e&&this.scrollIntoView(l)})},91:function(e,t){},127:function(e,t){e.exports=".THEME_NAME.md-menu-content{background-color:BACKGROUND-COLOR-A100;color:BACKGROUND-CONTRAST}.THEME_NAME.md-menu-content .md-menu-item:hover .md-button:not([disabled]),.THEME_NAME.md-menu-content .md-menu-item:focus .md-button:not([disabled]),.THEME_NAME.md-menu-content .md-menu-item.md-highlighted .md-button:not([disabled]){background-color:BACKGROUND-CONTRAST-0.12}.THEME_NAME.md-menu-content .md-menu-item[disabled]{color:BACKGROUND-CONTRAST-0.38}\n"},172:function(e,t,n){var i,o;n(91),i=n(64);var s=n(197);o=i=i||{},"object"!=typeof i.default&&"function"!=typeof i.default||(o=i=i.default),"function"==typeof o&&(o=o.options),o.render=s.render,o.staticRenderFns=s.staticRenderFns,e.exports=i},173:function(e,t,n){var i,o;i=n(65);var s=n(221);o=i=i||{},"object"!=typeof i.default&&"function"!=typeof i.default||(o=i=i.default),"function"==typeof o&&(o=o.options),o.render=s.render,o.staticRenderFns=s.staticRenderFns,e.exports=i},174:function(e,t,n){var i,o;i=n(66);var s=n(224);o=i=i||{},"object"!=typeof i.default&&"function"!=typeof i.default||(o=i=i.default),"function"==typeof o&&(o=o.options),o.render=s.render,o.staticRenderFns=s.staticRenderFns,e.exports=i},197:function(e,t){e.exports={render:function(){var e=this,t=(e.$createElement,e._c);return t("div",{staticClass:"md-menu"},[e._t("default"),e._v(" "),t("md-backdrop",{ref:"backdrop",staticClass:"md-menu-backdrop md-transparent md-active",on:{close:e.close}})],!0)},staticRenderFns:[]}},221:function(e,t){e.exports={render:function(){var e=this,t=(e.$createElement,e._c);return t("div",{staticClass:"md-menu-content",class:[e.themeClass],attrs:{tabindex:"-1"},on:{keydown:[function(t){e._k(t.keyCode,"esc",27)||(t.preventDefault(),e.close(t))},function(t){e._k(t.keyCode,"tab",9)||(t.preventDefault(),e.close(t))},function(t){e._k(t.keyCode,"up",38)||(t.preventDefault(),e.highlightItem("up"))},function(t){e._k(t.keyCode,"down",40)||(t.preventDefault(),e.highlightItem("down"))},function(t){e._k(t.keyCode,"enter",13)||(t.preventDefault(),e.fireClick(t))},function(t){e._k(t.keyCode,"space",32)||(t.preventDefault(),e.fireClick(t))}]}},[t("md-list",[e._t("default")],!0)])},staticRenderFns:[]}},224:function(e,t){e.exports={render:function(){var e=this,t=(e.$createElement,e._c);return t("md-list-item",{staticClass:"md-menu-item",class:e.classes,attrs:{disabled:e.disabled},on:{click:e.close}},[e._t("default")],!0)},staticRenderFns:[]}}})});