{"version":3,"sources":["../../../../src/components/VMenu/mixins/menu-position.js"],"names":[],"mappings":";;;;;;;;;;;;;AAQA;kBACe;AACb,UAAM;AAAA,eAAO;AACX,+BAAmB;AADR,SAAP;AAAA,KADO;AAIb,aAAS;AACP,0BADO,gCACW;AAChB,gBAAM,MAAM,KAAK,KAAL,CAAW,OAAvB;AACA,gBAAM,aAAa,IAAI,aAAJ,CAAkB,uBAAlB,CAAnB;AACA,gBAAM,eAAe,IAAI,YAAJ,GAAmB,IAAI,YAA5C;AAEA,mBAAO,aACH,KAAK,GAAL,CAAS,YAAT,EAAuB,KAAK,GAAL,CAAS,CAAT,EAAY,WAAW,SAAX,GAAuB,IAAI,YAAJ,GAAmB,CAA1C,GAA8C,WAAW,YAAX,GAA0B,CAApF,CAAvB,CADG,GAEH,IAAI,SAFR;AAGD,SATM;AAUP,oBAVO,0BAUK;AACV,gBAAI,KAAK,UAAT,EAAqB,OAAO,CAAP;AAErB,mBAAO,SAAS,KAAK,UAAL,CAAgB,SAAhB,CAA0B,IAA1B,GAAiC,KAAK,aAAL,GAAqB,CAA/D,CAAP;AACD,SAdM;AAeP,mBAfO,yBAeI;AACT,gBAAM,MAAM,KAAK,KAAL,CAAW,OAAvB;AACA,gBAAM,aAAa,IAAI,aAAJ,CAAkB,uBAAlB,CAAnB;AAEA,gBAAI,CAAC,UAAL,EAAiB;AACf,qBAAK,aAAL,GAAqB,IAArB;AACD;AAED,gBAAI,KAAK,OAAL,IAAgB,CAAC,UAArB,EAAiC;AAC/B,uBAAO,KAAK,WAAZ;AACD;AAED,iBAAK,aAAL,GAAqB,MAAM,IAAN,CAAW,KAAK,KAAhB,EAAuB,OAAvB,CAA+B,UAA/B,CAArB;AAEA,gBAAM,0BAA0B,WAAW,SAAX,GAAuB,KAAK,kBAAL,EAAvD;AACA,gBAAM,qBAAqB,IAAI,aAAJ,CAAkB,eAAlB,EAAmC,SAA9D;AAEA,mBAAO,KAAK,WAAL,GAAmB,uBAAnB,GAA6C,kBAApD;AACD;AAjCM;AAJI,C","sourcesContent":["/**\n * Menu position\n *\n * @mixin\n *\n * Used for calculating an automatic position (used for VSelect)\n * Will position the VMenu content properly over the VSelect\n */\n/* @vue/component */\nexport default {\n  data: () => ({\n    calculatedTopAuto: 0\n  }),\n  methods: {\n    calcScrollPosition () {\n      const $el = this.$refs.content\n      const activeTile = $el.querySelector('.v-list__tile--active')\n      const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n      return activeTile\n        ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n        : $el.scrollTop\n    },\n    calcLeftAuto () {\n      if (this.isAttached) return 0\n\n      return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n    },\n    calcTopAuto () {\n      const $el = this.$refs.content\n      const activeTile = $el.querySelector('.v-list__tile--active')\n\n      if (!activeTile) {\n        this.selectedIndex = null\n      }\n\n      if (this.offsetY || !activeTile) {\n        return this.computedTop\n      }\n\n      this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n      const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n      const firstTileOffsetTop = $el.querySelector('.v-list__tile').offsetTop\n\n      return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop\n    }\n  }\n}\n"],"sourceRoot":""}