{"version":3,"sources":["webpack:///./src/apps/open/views/docCenter/components/subMenu.vue?8396","webpack:///./src/apps/open/views/docCenter/components/subMenu.vue","webpack:///./src/apps/open/views/docCenter/components/subMenu.vue?b880","webpack:///./src/apps/open/views/docCenter/components/subMenu.vue?ffd8","webpack:///./src/apps/open/utils/scroll.ts","webpack:///./src/apps/open/views/docCenter/components/subMenu.vue?1a85"],"names":["e","curMenuKey","observer","isInitHash","this","location","hash","slice","isPrivate","keyIdx","lastIndexOf","menus","length","key","registerObserver","window","IntersectionObserver","initObserver","entries","isIntersecting","setCurMenuKey","target","id","threshold","forEach","menu","document","querySelector","observe","$store","getters","l","component","_vm","_h","$createElement","_c","_self","staticClass","_v","_l","class","domProps","_s","label","on","$event","selectSubMenu","staticRenderFns","scrollToTag","tagId","curTitleDom","topPostion","getBoundingClientRect","top","scroll","scrollY","pageYOffset"],"mappings":"mHAAA,I,4GCsBqB,EAArB,SAAAA,GADA,+C,0DAKEC,WAAqB,GACrB,EAAAC,SAAe,GACf,EAAAC,cAPF,EACA,qBAAAH,GAAA,kDAWI,GADAI,KAAKH,WAAaI,SAASC,KAAKC,MAAM,GAClCH,KAAKI,UAAW,CAClB,IAAIC,EAASL,KAAKH,WAAWS,YAAY,KACzCN,KAAKH,WAAaG,KAAKH,WAAWM,MAAME,EAAS,IAE9CL,KAAKH,YAAcG,KAAKO,OAASP,KAAKO,MAAMC,OAAS,IACxDR,KAAKH,WAAaG,KAAKO,MAAM,GAAGE,KAElCT,KAAKU,qBAlBT,gCAsBQC,OAAOC,sBACTZ,KAAKa,iBAvBX,qCA+Bc,WACVb,KAAKF,SAAW,IAAIc,sBAAqB,SAACE,GACpCA,EAAQ,GAAGC,iBACT,EAAKlB,aAAe,EAAKE,YAC3B,EAAKiB,cAAc,EAAKnB,YACxB,EAAKE,eAEL,EAAKiB,cAAcF,EAAQ,GAAGG,OAAOC,OAGxC,CACDC,UAAW,MA1CjB,yCA8CkB,WACdnB,KAAKO,MAAMa,SAAQ,SAAAC,GACjB,IAAIJ,EAASK,SAASC,cAAT,WAA2BF,EAAKZ,MAC7CQ,GAAU,EAAKnB,SAAS0B,QAAQP,QAjDtC,oCAqDiBR,GACbT,KAAKH,WAAaY,IAtDtB,oCAyDiBA,GACbT,KAAKgB,cAAcP,GACnB,YAAYT,KAAKH,cA3DrB,gCA4BI,OAAOG,KAAKyB,OAAOC,QAAQ,cA5B/B,GAAqC,KAEnC,KADC,e,4BAQDC,EAAA,GADC,YAAM,U,yBAWN,MAnBkB,ICtBqb,EDsBrb,EAAO,KAD3B,KACoB,G,wBEdjBC,EAAY,YACd,GHTW,WAAa,IAAIC,EAAI7B,KAAS8B,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,OAAO,CAACE,YAAY,kBAAkB,CAACL,EAAIM,GAAG,UAAUH,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,KAAK,CAACE,YAAY,YAAYL,EAAIO,GAAIP,EAAS,OAAE,SAASR,GAAM,OAAOW,EAAG,KAAK,CAACvB,IAAIY,EAAKZ,IAAI4B,MAAM,CAAC,gBAAiB,CAAC,OAAUR,EAAIhC,aAAewB,EAAKZ,MAAM6B,SAAS,CAAC,YAAcT,EAAIU,GAAGlB,EAAKmB,QAAQC,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOb,EAAIc,cAActB,EAAKZ,YAAW,SAChf,IGUpBmC,EAEA,KACA,WACA,MAIa,UAAAhB,E,sECnBT,SAAUiB,EAAaC,GAC3B,IAAMC,EAAczB,SAASC,cAAT,WAA2BuB,IAC/C,GAAIC,EAAa,CACf,IAAMC,EAAaD,EAAYE,wBAAwBC,IACvDvC,OAAOwC,OAAO,EAAGH,GAAcrC,OAAOyC,SAAWzC,OAAO0C,aAAe,MAJ3E,mC,kCCAA,uBAA0nB","file":"js/chunk-17ddb324.05007b2e.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sub-menu-wrapper\"},[_c('span',{staticClass:\"sub-menu-title\"},[_vm._v(\"本页目录\")]),_c('div',{staticClass:\"sub-menu-container\"},[_c('ul',{staticClass:\"sub-menu\"},_vm._l((_vm.menus),function(menu){return _c('li',{key:menu.key,class:['sub-menu-item', {'active': _vm.curMenuKey === menu.key}],domProps:{\"textContent\":_vm._s(menu.label)},on:{\"click\":function($event){return _vm.selectSubMenu(menu.key)}}})}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\r\nimport { DocMenu } from '@/apps/open/types/doc'\r\nimport { scrollToTag } from '@/apps/open/utils/scroll'\r\n\r\n@Component\r\nexport default class SubMenu extends Vue {\r\n @Prop()\r\n menus!: DocMenu[]\r\n\r\n curMenuKey: string = ''\r\n observer:any = {}\r\n isInitHash: boolean = false\r\n\r\n @Watch('menus')\r\n listenMenu () {\r\n this.curMenuKey = location.hash.slice(1)\r\n if (this.isPrivate) {\r\n let keyIdx = this.curMenuKey.lastIndexOf('#')\r\n this.curMenuKey = this.curMenuKey.slice(keyIdx + 1)\r\n }\r\n if (!this.curMenuKey && this.menus && this.menus.length > 0) {\r\n this.curMenuKey = this.menus[0].key\r\n }\r\n this.registerObserver()\r\n }\r\n\r\n mounted () {\r\n if (window.IntersectionObserver) {\r\n this.initObserver()\r\n }\r\n }\r\n\r\n get isPrivate () {\r\n return this.$store.getters['isPrivate']\r\n }\r\n\r\n initObserver () {\r\n this.observer = new IntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n if (this.curMenuKey && !this.isInitHash) {\r\n this.setCurMenuKey(this.curMenuKey)\r\n this.isInitHash = true\r\n } else {\r\n this.setCurMenuKey(entries[0].target.id)\r\n }\r\n }\r\n }, {\r\n threshold: 1.0\r\n })\r\n }\r\n\r\n registerObserver () {\r\n this.menus.forEach(menu => {\r\n let target = document.querySelector(`#${menu.key}`)\r\n target && this.observer.observe(target)\r\n })\r\n }\r\n\r\n setCurMenuKey (key: string) {\r\n this.curMenuKey = key\r\n }\r\n\r\n selectSubMenu (key: string) {\r\n this.setCurMenuKey(key)\r\n scrollToTag(this.curMenuKey)\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./subMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./subMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./subMenu.vue?vue&type=template&id=173324de&scoped=true&\"\nimport script from \"./subMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./subMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./subMenu.vue?vue&type=style&index=0&id=173324de&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"173324de\",\n null\n \n)\n\nexport default component.exports","export function scrollToTag (tagId: string) {\r\n const curTitleDom = document.querySelector(`#${tagId}`)\r\n if (curTitleDom) {\r\n const topPostion = curTitleDom.getBoundingClientRect().top\r\n window.scroll(0, topPostion + (window.scrollY || window.pageYOffset) - 150)\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./subMenu.vue?vue&type=style&index=0&id=173324de&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./subMenu.vue?vue&type=style&index=0&id=173324de&lang=scss&scoped=true&\""],"sourceRoot":""}