vue-material/dist/components/mdMenu/index.js
2016-11-21 01:39:30 -02:00

1 line
No EOL
10 KiB
JavaScript

!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VueMaterial=e():t.VueMaterial=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return t[i].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="/",e(0)}({0:function(t,e,n){t.exports=n(17)},1:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function t(e,n){return!!e.$el&&(0!==e._uid&&(e.$el.classList.contains(n)?e:t(e.$parent,n)))};e.default=n,t.exports=e.default},2:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=8,i=function(t,e){return e.top<=n-parseInt(getComputedStyle(t).marginTop,10)},o=function(t,e){return e.top+t.offsetHeight+n>=window.innerHeight-parseInt(getComputedStyle(t).marginTop,10)},s=function(t,e){return e.left<=n-parseInt(getComputedStyle(t).marginLeft,10)},r=function(t,e){return e.left+t.offsetWidth+n>=window.innerWidth-parseInt(getComputedStyle(t).marginLeft,10)},u=function(t,e){var u=getComputedStyle(t);return i(t,e)&&(e.top=n-parseInt(u.marginTop,10)),s(t,e)&&(e.left=n-parseInt(u.marginLeft,10)),r(t,e)&&(e.left=window.innerWidth-n-t.offsetWidth-parseInt(u.marginLeft,10)),o(t,e)&&(e.top=window.innerHeight-n-t.offsetHeight-parseInt(u.marginTop,10)),e};e.default=u,t.exports=e.default},4:function(t,e){"use strict";function n(){var t=document.createElement("span"),e={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(var n in e)if(void 0!==t.style[n])return e[n]}Object.defineProperty(e,"__esModule",{value:!0}),e.default=n(),t.exports=e.default},17:function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function o(t){t.component("md-menu",t.extend(r.default)),t.component("md-menu-item",t.extend(d.default)),t.component("md-menu-content",t.extend(a.default)),t.material.styles.push(f.default)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=o;var s=n(138),r=i(s),u=n(140),d=i(u),l=n(139),a=i(l),h=n(103),f=i(h);t.exports=e.default},49:function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),s=i(o),r=n(2),u=i(r);e.default={props:{mdSize:{type:[Number,String],default:0},mdDirection:{type:String,default:"bottom right"},mdCloseOnSelect:{type:Boolean,default:!0}},data:function(){return{browserMargin:8,active:!1}},watch:{mdSize:function(t,e){t>=1&&t<=7&&(this.removeLastSizeMenuContentClass(e),this.addNewSizeMenuContentClass(t))},mdDirection:function(t,e){this.removeLastDirectionMenuContentClass(e),this.addNewDirectionMenuContentClass(t)}},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(t){this.menuContent.classList.remove("md-size-"+t)},removeLastDirectionMenuContentClass:function(t){this.menuContent.classList.remove("md-direction-"+t.replace(" ","-"))},addNewSizeMenuContentClass:function(t){this.menuContent.classList.add("md-size-"+t)},addNewDirectionMenuContentClass:function(t){this.menuContent.classList.add("md-direction-"+t.replace(" ","-"))},closeOnOffClick:function(t){this.$el.contains(t.target)||this.menuContent.contains(t.target)||this.close()},getBottomRightPos:function(){var t=this.menuTrigger.getBoundingClientRect(),e={top:t.top,left:t.left};return e=(0,u.default)(this.menuContent,e)},getBottomLeftPos:function(){var t=this.menuTrigger.getBoundingClientRect(),e={top:t.top,left:t.left-this.menuContent.offsetWidth+t.width};return e=(0,u.default)(this.menuContent,e)},getTopRightPos:function(){var t=this.menuTrigger.getBoundingClientRect(),e={top:t.top+t.height-this.menuContent.offsetHeight,left:t.left};return e=(0,u.default)(this.menuContent,e)},getTopLeftPos:function(){var t=this.menuTrigger.getBoundingClientRect(),e={top:t.top+t.height-this.menuContent.offsetHeight,left:t.left-this.menuContent.offsetWidth+t.width};return e=(0,u.default)(this.menuContent,e)},calculateMenuContentPos:function(){var t=void 0;switch(this.mdDirection){case"bottom left":t=this.getBottomLeftPos();break;case"top right":t=this.getTopRightPos();break;case"top left":t=this.getTopLeftPos();break;default:t=this.getBottomRightPos()}this.menuContent.style.top=t.top+"px",this.menuContent.style.left=t.left+"px"},recalculateOnResize:function(){window.requestAnimationFrame(this.calculateMenuContentPos)},open:function(){this.$root.$el.contains(this.menuContent)&&this.$root.$el.removeChild(this.menuContent),this.$root.$el.appendChild(this.menuContent),document.addEventListener("click",this.closeOnOffClick),window.addEventListener("resize",this.recalculateOnResize),this.calculateMenuContentPos(),getComputedStyle(this.menuContent).top,this.menuContent.classList.add("md-active"),this.menuContent.focus(),this.active=!0},close:function t(){var e=this,n=this.menuContent,t=function t(i){if(n&&i.target===n){var o=e.menuContent.querySelector(".md-ripple.md-active");n.removeEventListener(s.default,t),e.menuTrigger.focus(),e.active=!1,o&&o.classList.remove("md-active"),e.$root.$el.removeChild(n),document.removeEventListener("click",e.closeOnOffClick),window.removeEventListener("resize",e.recalculateOnResize)}};this.menuContent.addEventListener(s.default,t),this.menuContent.classList.remove("md-active")},toggle:function(){this.active?this.close():this.open()}},mounted:function(){this.menuTrigger=this.$el.querySelector("[md-menu-trigger]"),this.menuContent=this.$el.querySelector(".md-menu-content"),this.validateMenu(),this.addNewSizeMenuContentClass(this.mdSize),this.addNewDirectionMenuContentClass(this.mdDirection),this.menuContent.parentNode.removeChild(this.menuContent),this.menuTrigger.addEventListener("click",this.toggle)}},t.exports=e.default},50:function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={data:function(){return{oldHighlight:!1,highlighted:!1,itemsAmount:0}},methods:{close:function(){this.highlighted=!1,this.$parent.close()},highlightItem:function(t){this.oldHighlight=this.highlighted,"up"===t&&(1===this.highlighted?this.highlighted=this.itemsAmount:this.highlighted--),"down"===t&&(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")}},t.exports=e.default},51:function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),s=i(o);n(71),e.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(){this.disabled||(this.parentMenu.mdCloseOnSelect&&this.parentContent.close(),this.$emit("click"))}},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}},t.exports=e.default},71:function(t,e){Element.prototype.scrollIntoViewIfNeeded||(Element.prototype.scrollIntoViewIfNeeded=function(t){t=0===arguments.length||!!t;var e=this.parentNode,n=window.getComputedStyle(e,null),i=parseInt(n.getPropertyValue("border-top-width")),o=parseInt(n.getPropertyValue("border-left-width")),s=this.offsetTop-e.offsetTop<e.scrollTop,r=this.offsetTop-e.offsetTop+this.clientHeight-i>e.scrollTop+e.clientHeight,u=this.offsetLeft-e.offsetLeft<e.scrollLeft,d=this.offsetLeft-e.offsetLeft+this.clientWidth-o>e.scrollLeft+e.clientWidth,l=s&&!r;(s||r)&&t&&(e.scrollTop=this.offsetTop-e.offsetTop-e.clientHeight/2-i+this.clientHeight/2),(u||d)&&t&&(e.scrollLeft=this.offsetLeft-e.offsetLeft-e.clientWidth/2-o+this.clientWidth/2),(s||r||u||d)&&!t&&this.scrollIntoView(l)})},72:function(t,e){},103:function(t,e){t.exports=""},138:function(t,e,n){var i,o;n(72),i=n(49);var s=n(161);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,t.exports=i},139:function(t,e,n){var i,o;i=n(50);var s=n(183);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,t.exports=i},140:function(t,e,n){var i,o;i=n(51);var s=n(186);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,t.exports=i},161:function(t,e){t.exports={render:function(){var t=this;return t._h("div",{staticClass:"md-menu"},[t._t("default")])},staticRenderFns:[]}},183:function(t,e){t.exports={render:function(){var t=this;return t._h("div",{staticClass:"md-menu-content",attrs:{tabindex:"-1"},on:{keydown:[function(e){27===e.keyCode&&(e.preventDefault(),t.close(e))},function(e){9===e.keyCode&&(e.preventDefault(),t.close(e))},function(e){38===e.keyCode&&(e.preventDefault(),t.highlightItem("up"))},function(e){40===e.keyCode&&(e.preventDefault(),t.highlightItem("down"))},function(e){13===e.keyCode&&(e.preventDefault(),t.fireClick(e))},function(e){32===e.keyCode&&(e.preventDefault(),t.fireClick(e))}]}},[t._h("md-list",[t._t("default")])])},staticRenderFns:[]}},186:function(t,e){t.exports={render:function(){var t=this;return t._h("md-list-item",{staticClass:"md-menu-item",class:t.classes,attrs:{disabled:t.disabled},on:{click:t.close}},[t._t("default")])},staticRenderFns:[]}}})});