From 19c19412448f4ac17d2849ea1a61ee9df014d78c Mon Sep 17 00:00:00 2001 From: songhw Date: Thu, 4 Jun 2020 21:33:21 +0800 Subject: [PATCH] :docs:update docs --- docs/dist/css/{app.1efa72a7.css => app.2e14d2d6.css} | 2 +- .../{chunk-vendors.bf068a49.css => chunk-vendors.c687a9b2.css} | 0 docs/dist/js/app.3056726d.js | 2 ++ docs/dist/js/app.3056726d.js.map | 1 + docs/dist/js/app.583f6d73.js | 2 -- docs/dist/js/app.583f6d73.js.map | 1 - docs/index.html | 2 +- 7 files changed, 5 insertions(+), 5 deletions(-) rename docs/dist/css/{app.1efa72a7.css => app.2e14d2d6.css} (68%) rename docs/dist/css/{chunk-vendors.bf068a49.css => chunk-vendors.c687a9b2.css} (100%) create mode 100644 docs/dist/js/app.3056726d.js create mode 100644 docs/dist/js/app.3056726d.js.map delete mode 100644 docs/dist/js/app.583f6d73.js delete mode 100644 docs/dist/js/app.583f6d73.js.map diff --git a/docs/dist/css/app.1efa72a7.css b/docs/dist/css/app.2e14d2d6.css similarity index 68% rename from docs/dist/css/app.1efa72a7.css rename to docs/dist/css/app.2e14d2d6.css index 27434ae..0d6d1e1 100644 --- a/docs/dist/css/app.1efa72a7.css +++ b/docs/dist/css/app.2e14d2d6.css @@ -1,4 +1,4 @@ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}body{background:#fff;margin:0;font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}header{background:#40b883;padding:32px;padding-bottom:8px}header .description,header nav{text-align:center}header .description{color:#fff;margin-top:15px}section .section-content{margin:0 42px;padding:64px 0;-webkit-box-sizing:border-box;box-sizing:border-box}section .section-content.small{padding:32px 0}section .section-content.mini{padding:16px 0}section .section-content.large{padding:152px 0}section.nav{text-align:center;background:#40b883;padding:24px;padding-bottom:35px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}section.nav>*{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}section.nav a{display:inline-block;padding:8px 16px;color:#fff;background:#62c99b;border-radius:3px}section.nav a:hover{background:#88d6b4}section.nav a:not(:last-child){margin-right:8px}.collapse .section-content{padding:12px 0 64px 0}h1{color:#fff;text-align:center;margin:0 0 32px}a{color:#40b883;text-decoration:none;cursor:pointer}a:hover{color:#62c99b}.command{background:#339268;color:#fff;font-family:monospace;max-width:500px;margin:20px auto;border-radius:2px;padding:12px 24px;-webkit-box-sizing:border-box;box-sizing:border-box}.command,.plus{text-align:center}.plus{color:#40b883;font-size:32px;margin:12px}.demo,.snippets{max-width:1200px;margin:auto}.snippet+.snippet{margin-top:20px}.snippet:last-child{margin-bottom:39px}.snippets{border-radius:0 0 3px 3px}.demo,.snippets{background:#f9f9f9}.demo{margin-top:42px;border-radius:3px 3px 0 0;overflow:hidden}.demo .section-content{text-align:center;max-width:560px;margin:auto}.footer{font-size:14px;text-align:center;background:#e7f7f0}.track-button{width:229px;height:39px;background:#40b883;border-radius:5px;color:#fff;line-height:39px;margin:auto;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.track-button:hover{background:#50c28f}.track-button:active{background:#39a576}.v-track-table .header,.v-track-table .row{display:-webkit-box;display:-ms-flexbox;display:flex}.v-track-table .header span,.v-track-table .header strong,.v-track-table .row span,.v-track-table .row strong{-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:29px;border-bottom:1px solid #ebeef5}.v-track-table .row:hover{background:#fafafa;cursor:pointer}.notification__large{width:399px}.notification__large .el-notification__group{width:100%}.message-offset{top:88px}.section-content.collapse-wrapper{padding:20px;margin:20px auto;background:#fff;max-width:690px;text-align:left;-webkit-box-shadow:0 2px 4px rgba(232,237,250,.9);box-shadow:0 2px 4px rgba(232,237,250,.9)}.code-snippet{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background:#2e3440;border-radius:3px;font-family:Roboto Mono,monospace;font-size:10pt;overflow:auto;position:relative}.code-snippet>*{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.code-snippet .line-numbers,.code-snippet .render{color:#d8dee9;padding:20px;padding-right:0}.code-snippet .line-numbers{background:#2e3440;color:#bdbdbd;border-radius:2px 0 0 2px;line-height:18px}.code-snippet .render{white-space:pre;line-height:18px}.code-snippet .language{position:absolute;top:0;right:0;color:#bdbdbd;padding:4px 4px 6px 6px;border-radius:0 0 0 2px} \ No newline at end of file +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}body{background:#fff;margin:0;font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}header{background:#40b883;padding:32px;padding-bottom:8px}header .description,header nav{text-align:center}header .description{color:#fff;margin-top:15px}section .section-content{margin:0 42px;padding:64px 0;-webkit-box-sizing:border-box;box-sizing:border-box}section .section-content.small{padding:32px 0}section .section-content.mini{padding:16px 0}section .section-content.large{padding:152px 0}section.nav{text-align:center;background:#40b883;padding:24px;padding-bottom:35px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}section.nav>*{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}section.nav a{display:inline-block;padding:8px 16px;color:#fff;background:#62c99b;border-radius:3px}section.nav a:hover{background:#88d6b4}section.nav a:not(:last-child){margin-right:8px}.collapse .section-content{padding:12px 0 64px 0}h1{color:#fff;text-align:center;margin:0 0 32px}a{color:#40b883;text-decoration:none;cursor:pointer}a:hover{color:#62c99b}.command{background:#339268;color:#fff;font-family:monospace;max-width:500px;margin:20px auto;border-radius:2px;padding:12px 24px;-webkit-box-sizing:border-box;box-sizing:border-box}.command,.plus{text-align:center}.plus{color:#40b883;font-size:32px;margin:12px}.demo,.snippets{max-width:1200px;margin:auto}.snippet+.snippet{margin-top:20px}.snippet:last-child{margin-bottom:39px}.snippets{border-radius:0 0 3px 3px}.demo,.snippets{background:#f9f9f9}.demo{margin-top:42px;border-radius:3px 3px 0 0;overflow:hidden}.demo .section-content{text-align:center;max-width:560px;margin:auto}.demo.viewport{height:364px;overflow:auto}.demo.viewport .section-content.large{padding:375px 0}.footer{font-size:14px;text-align:center;background:#e7f7f0}.track-button{width:229px;height:39px;background:#40b883;border-radius:5px;color:#fff;line-height:39px;margin:auto;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.track-button:hover{background:#50c28f}.track-button:active{background:#39a576}.v-track-table .header,.v-track-table .row{display:-webkit-box;display:-ms-flexbox;display:flex}.v-track-table .header span,.v-track-table .header strong,.v-track-table .row span,.v-track-table .row strong{-webkit-box-flex:1;-ms-flex:1;flex:1;line-height:29px;border-bottom:1px solid #ebeef5}.v-track-table .row:hover{background:#fafafa;cursor:pointer}.notification__large{width:399px}.notification__large .el-notification__group{width:100%}.message-offset{top:88px}.section-content.collapse-wrapper{padding:20px;margin:20px auto;background:#fff;max-width:690px;text-align:left;-webkit-box-shadow:0 2px 4px rgba(232,237,250,.9);box-shadow:0 2px 4px rgba(232,237,250,.9)}.code-snippet{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;background:#2e3440;border-radius:3px;font-family:Roboto Mono,monospace;font-size:10pt;overflow:auto;position:relative}.code-snippet>*{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.code-snippet .line-numbers,.code-snippet .render{color:#d8dee9;padding:20px;padding-right:0}.code-snippet .line-numbers{background:#2e3440;color:#bdbdbd;border-radius:2px 0 0 2px;line-height:18px}.code-snippet .render{white-space:pre;line-height:18px}.code-snippet .language{position:absolute;top:0;right:0;color:#bdbdbd;padding:4px 4px 6px 6px;border-radius:0 0 0 2px} \ No newline at end of file diff --git a/docs/dist/css/chunk-vendors.bf068a49.css b/docs/dist/css/chunk-vendors.c687a9b2.css similarity index 100% rename from docs/dist/css/chunk-vendors.bf068a49.css rename to docs/dist/css/chunk-vendors.c687a9b2.css diff --git a/docs/dist/js/app.3056726d.js b/docs/dist/js/app.3056726d.js new file mode 100644 index 0000000..f972fe6 --- /dev/null +++ b/docs/dist/js/app.3056726d.js @@ -0,0 +1,2 @@ +(function(t){function e(e){for(var a,i,c=e[0],o=e[1],l=e[2],v=0,p=[];vclick me\n',z='\n\n',Y='\n
click me
\n',J="\nexport default {\n data: () => ({\n item: {\n id: Date.now().toString(36)\n },\n })\n}\n",Q='\n
click me
\n',X="\nexport default {\n data() {\n return {\n index: 0\n };\n },\n methods: {\n handleClickDelay() {\n this.index++;\n },\n }\n}\n",Z='\n
click me
\n',tt='\nexport default {\n data() {\n return {\n rest: null\n };\n },\n methods: {\n async handleClickAsync() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n\n this.rest = response.data;\n }\n }\n}\n',et={name:"Home",components:{Button:q,CodeSnippet:B},data:function(){return{trackClickSnippet:G,trackNativeClickSnippet:z,trackClickWithParamSnippet:Y,jsTrackClickWithParamSnippet:J,trackClickDelaySnippet:Q,trackClickAsyncSnippet:Z,jsTrackClickDelaySnippet:X,jsTrackClickAsyncSnippet:tt,item:{id:P()().toString(36)},index:0,rest:null}},methods:{handleClick:function(){this.$message.success("事件执行成功")},handleNativeEvent:function(){this.$message.success("组件原生事件执行成功")},handleClickWithParam:function(t,e){var n=e.target;this.$message.success("事件执行成功,参数为".concat(x()(t),"--").concat(n))},handleClickDelay:function(){this.index++},handleClickAsync:function(){var t=Object($["a"])(regeneratorRuntime.mark(function t(){var e;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new T.a(function(t){setTimeout(function(){t({data:"success"})},300)});case 2:e=t.sent,this.rest===e.data?this.$message.success("异步事件返回成功,但返回结果和上一次相等,埋点不会上报"):(this.rest=e.data,this.$message.success("异步事件返回成功"));case 4:case"end":return t.stop()}},t,this)}));function e(){return t.apply(this,arguments)}return e}()}},nt=et,at=Object(_["a"])(nt,S,E,!1,null,null,null),rt=at.exports,st=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"page-started page"},[n("section",{staticClass:"nav"},[n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 返回\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 事件行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"CUSTOM_EVENTS"}}},[t._v("\n 自定义事件埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"TRACK_VIEW"}}},[t._v("\n 页面行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"BLOCK_SHOW"}}},[t._v("\n 区域展现埋点\n ")]),t._v(" "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/issues"}},[t._v("打开一个 issue")])],1),t._v(" "),t._m(0),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{code:t.installSnippet,lang:"shell"}}),t._v(" "),n("div",{staticClass:"plus"},[t._v("+")]),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{code:t.mainSnippet,lang:"js"}}),t._v(" "),n("div",{staticClass:"plus"},[t._v("+")]),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{code:t.eventsSnippet,lang:"js"}}),t._v(" "),n("div",{staticClass:"plus"},[t._v("+")]),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{code:t.componentSnippet,lang:"html"}})],1)])},it=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"snippets"},[n("div",{staticClass:"section-content small"},[t._v("\n v-track通过\n "),n("a",{attrs:{href:"https://cn.vuejs.org/v2/guide/custom-directive.html"}},[t._v("Vue 自定义指令")]),t._v("的方式将埋点代码与业务代码完全解耦,完整示例可参考\n "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/tree/master"}},[t._v("GitHub")])])])}],ct="\n# YARN\n$ yarn add v-track\n\n# NPM\n$ npm install v-track --save\n",ot='\nimport Vue from "vue";\nimport VTrack from "v-track";\nimport trackEvents from "./track-events";\n\nVue.use(VTrack, {\n trackEvents, // 埋点事件对象\n trackEnable: {\n UVPV: true, // 是否开启UVPV统计,v0.8.3新增routeUpdate,即在当前路由参数发生改变时埋点,默认为false\n TONP: true // 是否开启页面停留时长统计,默认为false\n }\n})\n',lt='\nimport trackAction from "./action"; // 自定义埋点上报的方法\n\nexport default {\n /**\n * @name UVPV 固定名称不支持修改\n * @desc UV、PV埋点\n * @param {Object} context 当前上下文\n */\n UVPV(_) {\n trackAction("1");\n },\n /**\n * @name TONP 固定名称不支持修改\n * @desc 页面停留时间埋点(Time on Page)\n * @param {Object} context 当前上下文\n * @param {Timestamp} et 进入页面时间\n * @param {Timestamp} dt 离开页面时间\n */\n TONP(_, { et, dt }) {\n trackAction("2", {\n stt: dt - et\n });\n },\n /**\n * @param {Object} context 当前上下文\n * @param {Object} item 事件参数\n * @param {Object} event 事件对象\n */\n 18015(\n {\n $route: { name }\n },\n { id },\n { target }\n ) {\n trackAction("18015", {\n id,\n source_page: name,\n target\n });\n },\n};\n',ut='\n\x3c!-- 页面行为埋点(track-view为v-track全局注册的组件) --\x3e\n\n\n\n\n\n\x3c!-- 事件行为埋点(DOM) --\x3e\n
\n
\n
\n
\n\n\x3c!-- 事件行为埋点(组件) --\x3e\n\n\n\n\n\n\x3c!-- 区域展现埋点(block 可以是 DOM 或者组件) --\x3e\n\n\n\n\n',vt={name:"Started",components:{CodeSnippet:B},data:function(){return{installSnippet:ct,mainSnippet:ot,eventsSnippet:lt,componentSnippet:ut}}},pt=vt,dt=Object(_["a"])(pt,st,it,!1,null,null,null),mt=dt.exports,ht=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"page-home page"},[n("section",{staticClass:"nav"},[n("router-link",{attrs:{to:{name:"STARTED"}}},[t._v("\n 快速开始\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 事件行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 返回\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"TRACK_VIEW"}}},[t._v("\n 页面行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"BLOCK_SHOW"}}},[t._v("\n 区域展现埋点\n ")]),t._v(" "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/issues"}},[t._v("打开一个 issue")])],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个自定义事件行为埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("Button",{directives:[{name:"track",rawName:"v-track:18015.custom-event",value:t.handleCustomEvent,expression:"handleCustomEvent",arg:"18015",modifiers:{"custom-event":!0}}]})],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.ButtonComponentSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackCustomEventSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个有带参数的自定义事件埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("Button",{directives:[{name:"track",rawName:"v-track:18019.custom-event",value:t.handleCustomEventWithParam,expression:"handleCustomEventWithParam",arg:"18019",modifiers:{"custom-event":!0}}]})],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.ButtonComponentWithParamSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackCustomEventWithParamSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个发生在自定义事件之后的埋点,默认先执行埋点再执行自定义事件。如示例所示:activeName初始值为Feedback,自定义事件会更新该值,所以埋点获取到activeName的值应为当前激活面板的name",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content collapse-wrapper"},[n("el-collapse",{directives:[{name:"track",rawName:"v-track:18020.change.delay",value:t.handleChange,expression:"handleChange",arg:"18020",modifiers:{change:!0,delay:!0}}],attrs:{accordion:""},model:{value:t.activeName,callback:function(e){t.activeName=e},expression:"activeName"}},[n("el-collapse-item",{attrs:{title:"反馈 Feedback",name:"Feedback"}},[n("div",[t._v("\n 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;\n ")]),t._v(" "),n("div",[t._v("页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。")])]),t._v(" "),n("el-collapse-item",{attrs:{title:"效率 Efficiency",name:"Efficiency"}},[n("div",[t._v("简化流程:设计简洁直观的操作流程;")]),t._v(" "),n("div",[t._v("\n 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;\n ")]),t._v(" "),n("div",[t._v("\n 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。\n ")])]),t._v(" "),n("el-collapse-item",{attrs:{title:"可控 Controllability",name:"Controllability"}},[n("div",[t._v("\n 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;\n ")]),t._v(" "),n("div",[t._v("\n 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。\n ")])])],1)],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackCustomEventDelaySnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackCustomEventDelaySnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个有异步行为的自定义事件埋点。如示例所示:rest初始值为null,自定义事件会fetch为success,所以埋点获取到的rest值应该为success",closable:!1}}),n("el-alert",{attrs:{center:"",type:"warning",title:"备注:同普通DOM事件埋点一样,只有在 rest 发生变化时才会触发埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("Button",{directives:[{name:"track",rawName:"v-track:18021.custom-event.async",value:{fetchRest:t.fetchRest,rest:t.rest},expression:"{ fetchRest, rest }",arg:"18021",modifiers:{"custom-event":!0,async:!0}}]})],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackCustomEventAsyncSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackCustomEventAsyncSnippet}})],1)])},ft=[],kt='\n\x3c!-- button 组件 --\x3e\n
\n click me\n
\n',gt='\n\x3c!-- button 组件 --\x3e\n
\n click me\n
\n',yt='\n\n',Ct='\n\n',_t='\n\n ...\n ...\n ...\n\n',wt='\nexport default {\n data() {\n return {\n activeName: "Feedback",\n };\n },\n methods: {\n handleChange(val) {\n this.activeName = val;\n }\n }\n}\n',bt='\n\n',St='\nexport default {\n data() {\n return {\n rest: null\n };\n },\n methods: {\n async fetchRest() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n\n this.rest = response.data;\n }\n }\n}\n',Et={name:"CustomEvents",components:{Button:q,CodeSnippet:B},data:function(){return{ButtonComponentSnippet:kt,ButtonComponentWithParamSnippet:gt,trackCustomEventSnippet:yt,trackCustomEventWithParamSnippet:Ct,trackCustomEventDelaySnippet:_t,trackCustomEventAsyncSnippet:bt,jsTrackCustomEventDelaySnippet:wt,jsTrackCustomEventAsyncSnippet:St,item:{id:Math.random().toString(36).substr(2)},activeName:"Feedback",rest:null}},methods:{handleCustomEvent:function(){this.$message.success("自定义事件执行成功")},handleCustomEventWithParam:function(t,e){var n=e.target;this.$message.success("自定义事件执行成功,参数为".concat(x()(t),"--").concat(n))},handleChange:function(t){this.activeName=t},fetchRest:function(){var t=Object($["a"])(regeneratorRuntime.mark(function t(){var e;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new T.a(function(t){setTimeout(function(){t({data:"success"})},300)});case 2:e=t.sent,this.rest===e.data?this.$message.success("异步事件返回成功,但返回结果和上一次相等,埋点不会上报"):(this.rest=e.data,this.$message.success("异步事件返回成功"));case 4:case"end":return t.stop()}},t,this)}));function e(){return t.apply(this,arguments)}return e}()}},Ot=Et,Tt=Object(_["a"])(Ot,ht,ft,!1,null,null,null),$t=Tt.exports,jt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"page-home page"},[n("section",{staticClass:"nav"},[n("router-link",{attrs:{to:{name:"STARTED"}}},[t._v("\n 快速开始\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 事件行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"CUSTOM_EVENTS"}}},[t._v("\n 自定义事件埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 返回\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"BLOCK_SHOW"}}},[t._v("\n 区域展现埋点\n ")]),t._v(" "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/issues"}},[t._v("打开一个 issue")])],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个页面初始化埋点",closable:!1}}),t._v(" "),n("el-alert",{attrs:{center:"",type:"warning",title:"备注:v-track指令可用于任何元素,此行为埋点建议绑定到页面的根元素或者v-track提供的track-view组件上",closable:!1}}),t._v(" "),n("div",{directives:[{name:"track",rawName:"v-track:18022",arg:"18022"}],staticClass:"section-content"})],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"配合 v-if 指令控制埋点上报次数,即 show 为真时,会再次触发埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[t.show?n("track-view",{directives:[{name:"track",rawName:"v-track:18023",arg:"18023"}]}):t._e(),t._v(" "),n("div",{staticClass:"track-button",on:{click:function(){return t.show=!t.show}}},[t._v("\n click me -> "+t._s(t.show)+"\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentVIfSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackViewComponentVIfSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个监听页面行为的埋点,同事件行为埋点一样,只有当返回结果发生变化时才会上报埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("track-view",{directives:[{name:"track",rawName:"v-track:18025.watch",value:{rest1:t.rest1},expression:"{ rest1 }",arg:"18025",modifiers:{watch:!0}}]}),t._v(" "),n("div",{staticClass:"track-button",on:{click:function(e){return t.fetchRest(!1)}}},[t._v("\n click me\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentWatchSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackViewComponentWatchSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个监听页面行为并延时的埋点,不同于事件延时埋点,这里可通过delay设置具体的延长时间",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("track-view",{directives:[{name:"track",rawName:"v-track:18026.watch.delay",value:{rest2:t.rest2,delay:2e3},expression:"{ rest2, delay: 2000 }",arg:"18026",modifiers:{watch:!0,delay:!0}}]}),t._v(" "),n("div",{staticClass:"track-button",on:{click:function(e){return t.fetchRest(!0)}}},[t._v("\n click me\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentWatchDelaySnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackViewComponentWatchDelaySnippet}})],1)])},xt=[],Vt="\n\n",Pt='\n\n
click me -> {{ show }}
\n',Nt="\nexport default {\n data: () => ({ show: false })\n}\n",Mt='\n\n
click me
\n',At='\nexport default {\n data: () => ({ rest: null }),\n methods: {\n async fetchRest() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n \n this.rest = response.data;\n }\n },\n}\n',Wt='\n\n
click me
\n',Ht='\nexport default {\n data: () => ({ rest: null }),\n methods: {\n async fetchRest() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n \n this.rest = response.data;\n }\n },\n}\n',Rt={name:"TrackViews",components:{CodeSnippet:B},data:function(){return{trackViewComponentSnippet:Vt,trackViewComponentVIfSnippet:Pt,jsTrackViewComponentVIfSnippet:Nt,trackViewComponentWatchSnippet:Mt,jsTrackViewComponentWatchSnippet:At,trackViewComponentWatchDelaySnippet:Wt,jsTrackViewComponentWatchDelaySnippet:Ht,show:!1,rest1:null,rest2:null}},methods:{fetchRest:function(){var t=Object($["a"])(regeneratorRuntime.mark(function t(e){var n;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new T.a(function(t){setTimeout(function(){t({data:"success"})},300)});case 2:n=t.sent,!e&&this.rest1===n.data||e&&this.rest2===n.data?this.$message.success("异步事件返回成功,但返回结果和上一次相等,埋点不会上报"):(this.$message.success("异步事件返回成功"),e?this.rest2=n.data:this.rest1=n.data);case 4:case"end":return t.stop()}},t,this)}));function e(e){return t.apply(this,arguments)}return e}()}},Dt=Rt,Bt=Object(_["a"])(Dt,jt,xt,!1,null,null,null),Ut=Bt.exports,It=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"page-home page"},[n("section",{staticClass:"nav"},[n("router-link",{attrs:{to:{name:"STARTED"}}},[t._v("\n 快速开始\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 事件行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"CUSTOM_EVENTS"}}},[t._v("\n 自定义事件埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"TRACK_VIEW"}}},[t._v("\n 页面行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 返回\n ")]),t._v(" "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/issues"}},[t._v("打开一个 issue")])],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个只会上报一次的区域展现埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content large"},[n("el-card",{directives:[{name:"track",rawName:"v-track:18028.show.once",arg:"18028",modifiers:{show:!0,once:!0}}],attrs:{shadow:"always"}},[t._v("\n 我只想被曝光一次\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentOnceSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个会连续上报的区域展现埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content large"},[n("el-card",{directives:[{name:"track",rawName:"v-track:18027.show",arg:"18027",modifiers:{show:!0}}],attrs:{shadow:"always"}},[t._v("\n 我想被曝光无数次\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentSnippet}})],1),t._v(" "),n("section",{ref:"viewport",staticClass:"demo viewport"},[n("el-alert",{attrs:{center:"",type:"info",title:"某个区域内元素曝光埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content large"},[n("el-card",{directives:[{name:"track",rawName:"v-track:18029.show",value:{viewport:"viewport"},expression:"{ viewport: 'viewport' }",arg:"18029",modifiers:{show:!0}}],attrs:{shadow:"always"}},[t._v("\n 我也想被曝光无数次\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.viewportTrackViewComponentSnippet}})],1)])},Lt=[],Ft='\n我想被曝光无数次\n',Kt='\n我只想被曝光一次\n',qt='\n
\n 我也想被曝光无数次\n
\n',Gt={name:"BlockShow",components:{CodeSnippet:B},data:function(){return{trackViewComponentSnippet:Ft,trackViewComponentOnceSnippet:Kt,viewportTrackViewComponentSnippet:qt,show:!1,rest1:null,rest2:null}},methods:{fetchRest:function(){var t=Object($["a"])(regeneratorRuntime.mark(function t(e){var n;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new T.a(function(t){setTimeout(function(){t({data:"success"})},300)});case 2:n=t.sent,!e&&this.rest1===n.data||e&&this.rest2===n.data?this.$message.success("异步事件返回成功,但返回结果和上一次相等,埋点不会上报"):(this.$message.success("异步事件返回成功"),e?this.rest2=n.data:this.rest1=n.data);case 4:case"end":return t.stop()}},t,this)}));function e(e){return t.apply(this,arguments)}return e}()}},zt=Gt,Yt=Object(_["a"])(zt,It,Lt,!1,null,null,null),Jt=Yt.exports;function Qt(t){return Qt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qt(t)}function Xt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Zt(t,e){for(var n=0;n=0||(r[n]=t[n]);return r}function re(t,e){if(null==t)return{};var n,a,r=ae(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function se(t,e){return oe(t)||ue(t,e)||pe()}function ie(t){return ce(t)||le(t)||ve()}function ce(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0&&void 0!==arguments[0]?arguments[0]:{};return[Object.values(t),Object.keys(t)]}function ke(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200;return function(){for(var a=this,r=arguments.length,s=new Array(r),i=0;i0&&t.right>0&&t.tope.right||t.top>e.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:window;if(Xt(this,t),!be(e))throw new Error("not an element node");this.ele=e,this.ref=n,this.refWin=a,this.started=!1,this.prevPerc=null,this.listeners={},this.removeScrollLisener=null,this.init()}return te(t,[{key:"init",value:function(){var t=this;if(!this.started){var e=ke(this.visibilitychange.bind(this));e(),this.removeScrollLisener=function(e){return t.ref?t.ref.$on("scroll",e):(t.refWin.addEventListener("scroll",e,!0),function(){return t.refWin.removeEventListener("scroll",e,!0)})}(e),this.started=!0}}},{key:"viewport",value:function(){var t=this.refWin,e=be(t)?t.getBoundingClientRect():t;return{top:be(t)?e.top:0,right:e.right||e.innerWidth,bottom:e.bottom||e.innerHeight,left:e.left||0,height:t.innerHeight||t.offsetHeight,width:t.innerWidth||t.offsetWidth}}},{key:"$on",value:function(t,e){var n=this.listeners[t]||(this.listeners[t]=[]);return n.push(e),this}},{key:"$off",value:function(t,e){if(e){var n,a=this.listeners[t],r=a.length;while(r--)if(n=a[r],n===e||n.cbk===e){a.splice(r,1);break}return this}}},{key:"$once",value:function(t,e){var n=this,a=function a(){n.$off(t,a);for(var r=arguments.length,s=new Array(r),i=0;i1?n-1:0),r=1;r=e.top&&t.bottom>e.bottom?e.bottom-t.top:t.top=e.left&&t.right>e.right?e.right-t.left:t.left4&&void 0!==arguments[4]?arguments[4]:{};t.$unwatch=a.$watch(function(){return a[e]},function(e,a){e!==a&&(s.immediate||t.contains(r.target))&&n(),r.target=null})}function xe(t,e,n,a,r,s){var i=this,c=e.value,o=e.arg,l=e.modifiers,u=e.rawName,v=n.context,p=n.componentInstance;if(!s[o])throw new Error("tracking event does not exist");var d=[],m=s[o].bind(null,v),h=function(e,n,a){return je.call(i,t,e,n,v,a)},f=function(){for(var t=arguments.length,e=new Array(t),n=0;n1?e-1:0),a=1;a68?a-1:a).concat(e)}],M:[We,function(t,e){t.month=e-1}],d:[We,function(t,e){t.day=e}],h:[We,function(t,e){t.hour=e}],m:[We,function(t,e){t.minute=e}],s:[We,function(t,e){t.second=e}]};Le.MM=Le.M,Le.dd=Le.d,Le.hh=Le.h,Le.H=Le.h,Le.HH=Le.h,Le.mm=Le.m,Le.ss=Le.s;var Fe=n("a4bb"),Ke=n.n(Fe),qe=function(t){var e=Ke()(t).reduce(function(e,n){return e.push({key:n,val:t[n]}),e},[]),n=e.map(function(t){var e=t.key,n=t.val;return'\n
\n '.concat(e,"\n ").concat(n,"\n
\n ")}).join("");return'\n
\n
\n key\n value\n
\n '.concat(n,"\n
\n ")};function Ge(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(Ae["a"])({evt:t},e,{action_time:Ie(P()())});"1"===t&&i()("统计UVPV埋点"),"2"===t&&i()({message:"统计页面停留时间埋点",customClass:"message-offset"}),r.a.success({title:"上报数据如下:",dangerouslyUseHTMLString:!0,message:qe(n),customClass:"notification__large",position:"1"===t||"2"===t?"top-left":"top-right"})}var ze={UVPV:function(){Ge("1")},TONP:function(t,e){var n=e.et,a=e.dt;Ge("2",{stt:"".concat((a-n)/1e3,"s")})},18015:function(t){var e=t.$route.name;Ge("18015",{source_page:e})},18016:function(t,e,n){var a=t.$route.name,r=e.id,s=n.target;Ge("18016",{id:r,source_page:a,target:s})},18017:function(t){var e=t.index,n=t.$route.name;Ge("18017",{source_page:n,index:e})},18018:function(t){var e=t.rest,n=t.$route.name;Ge("18018",{source_page:n,rest:e})},18019:function(t,e,n){var a=t.$route.name,r=e.id,s=n.target;Ge("18019",{id:r,source_page:a,target:s})},18020:function(t){var e=t.activeName,n=t.$route.name;Ge("18020",{source_page:n,active_name:e})},18021:function(t){var e=t.rest,n=t.$route.name;Ge("18021",{source_page:n,rest:e})},18022:function(t){var e=t.$route.name;Ge("18022",{source_page:e,description:"这是一个页面初始化埋点"})},18023:function(t){var e=t.$route.name;Ge("18023",{source_page:e})},18025:function(t){var e=t.rest1,n=t.$route.name;Ge("18025",{source_page:n,rest:e})},18026:function(t){var e=t.rest2,n=t.$route.name;Ge("18026",{source_page:n,rest:e})},18027:function(t){var e=t.$route.name;Ge("18027",{source_page:e,description:"我想被曝光无数次"})},18028:function(t){var e=t.$route.name;Ge("18028",{source_page:e,description:"我只想被曝光一次"})},18029:function(t){var e=t.$route.name;Ge("18029",{source_page:e,description:"我也想被曝光无数次"})}},Ye=Object(Ae["a"])({},ze);h["default"].use(f["a"]),h["default"].use(m.a),h["default"].use(p.a),h["default"].use(u.a),h["default"].use(o.a),h["default"].use(Me,{trackEvents:Ye,trackEnable:{UVPV:"routeUpdate",TONP:!0}}),h["default"].prototype.$message=i.a,h["default"].prototype.$notify=r.a;var Je=new f["a"]({routes:[{path:"/",name:"HOME",component:rt},{path:"/started",name:"STARTED",component:mt},{path:"/custom-events",name:"CUSTOM_EVENTS",component:$t},{path:"/track-view",name:"TRACK_VIEW",component:Ut,meta:{keepAlive:!0}},{path:"/block-show",name:"BLOCK_SHOW",component:Jt},{path:"*",redirect:"/"}]});new h["default"]({el:"#app",router:Je,render:function(t){return t(b)}})}}); +//# sourceMappingURL=app.3056726d.js.map \ No newline at end of file diff --git a/docs/dist/js/app.3056726d.js.map b/docs/dist/js/app.3056726d.js.map new file mode 100644 index 0000000..833c0b9 --- /dev/null +++ b/docs/dist/js/app.3056726d.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./docs/App.vue?5ff7","webpack:///./docs/components/code-snippet.vue?2fbf","webpack:///./docs/App.vue?c519","webpack:///docs/App.vue","webpack:///./docs/App.vue?56fd","webpack:///./docs/App.vue","webpack:///./docs/pages/home.vue?1b60","webpack:///./docs/components/code-snippet.vue?beb6","webpack:///docs/components/code-snippet.vue","webpack:///./docs/components/code-snippet.vue?f86d","webpack:///./docs/components/code-snippet.vue","webpack:///./docs/components/button.vue?04f7","webpack:///docs/components/button.vue","webpack:///./docs/components/button.vue?e1d6","webpack:///./docs/components/button.vue","webpack:///docs/pages/home.vue","webpack:///./docs/pages/home.vue?abc2","webpack:///./docs/pages/home.vue","webpack:///./docs/pages/started.vue?2713","webpack:///docs/pages/started.vue","webpack:///./docs/pages/started.vue?30ab","webpack:///./docs/pages/started.vue","webpack:///./docs/pages/custom-events.vue?3e0c","webpack:///docs/pages/custom-events.vue","webpack:///./docs/pages/custom-events.vue?d644","webpack:///./docs/pages/custom-events.vue","webpack:///./docs/pages/track-view.vue?7ca7","webpack:///docs/pages/track-view.vue","webpack:///./docs/pages/track-view.vue?a27d","webpack:///./docs/pages/track-view.vue","webpack:///./docs/pages/block-show.vue?43b1","webpack:///docs/pages/block-show.vue","webpack:///./docs/pages/block-show.vue?91b9","webpack:///./docs/pages/block-show.vue","webpack:///./dist/v-track.esm.js","webpack:///./docs/utils/date.js","webpack:///./docs/utils/dom.js","webpack:///./docs/tracks/action.js","webpack:///./docs/tracks/events.js","webpack:///./docs/tracks/index.js","webpack:///./docs/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","app","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_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_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__","_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_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default","_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_code_snippet_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__","_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_code_snippet_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default","Appvue_type_template_id_0791aaec_render","_vm","this","_h","$createElement","_c","_self","attrs","id","_m","_v","$route","meta","_e","keepAlive","staticRenderFns","staticClass","href","alt","src","Appvue_type_script_lang_js_","docs_Appvue_type_script_lang_js_","component","componentNormalizer","App","homevue_type_template_id_ab4b4114_render","to","center","type","title","closable","directives","rawName","expression","arg","modifiers","click","lang","code","trackClickSnippet","native","trackNativeClickSnippet","handleClickWithParam","item","trackClickWithParamSnippet","jsTrackClickWithParamSnippet","delay","trackClickDelaySnippet","jsTrackClickDelaySnippet","handleClickAsync","rest","async","trackClickAsyncSnippet","jsTrackClickAsyncSnippet","homevue_type_template_id_ab4b4114_staticRenderFns","code_snippetvue_type_template_id_4db4304e_render","_s","_l","domProps","innerHTML","code_snippetvue_type_template_id_4db4304e_staticRenderFns","code_snippetvue_type_script_lang_js_","props","String","computed","highlighted","lib_default","a","highlight","trim","lineCount","str","components_code_snippetvue_type_script_lang_js_","code_snippet_component","code_snippet","buttonvue_type_template_id_60c8796f_render","on","e","$emit","buttonvue_type_template_id_60c8796f_staticRenderFns","buttonvue_type_script_lang_js_","now_default","toString","components_buttonvue_type_script_lang_js_","button_component","components_button","homevue_type_script_lang_js_","components","Button","CodeSnippet","index","methods","handleClick","$message","success","handleNativeEvent","_ref","target","concat","stringify_default","handleClickDelay","_handleClickAsync","asyncToGenerator","regeneratorRuntime","mark","_callee","response","wrap","_context","prev","next","promise_default","resolve","setTimeout","sent","stop","arguments","pages_homevue_type_script_lang_js_","home_component","home","startedvue_type_template_id_3c1ba4f4_render","installSnippet","mainSnippet","eventsSnippet","componentSnippet","startedvue_type_template_id_3c1ba4f4_staticRenderFns","startedvue_type_script_lang_js_","pages_startedvue_type_script_lang_js_","started_component","started","custom_eventsvue_type_template_id_3314ed1c_render","custom-event","ButtonComponentSnippet","trackCustomEventSnippet","ButtonComponentWithParamSnippet","trackCustomEventWithParamSnippet","change","accordion","model","callback","$$v","activeName","trackCustomEventDelaySnippet","jsTrackCustomEventDelaySnippet","fetchRest","trackCustomEventAsyncSnippet","jsTrackCustomEventAsyncSnippet","custom_eventsvue_type_template_id_3314ed1c_staticRenderFns","custom_eventsvue_type_script_lang_js_","Math","random","substr","handleCustomEvent","handleCustomEventWithParam","handleChange","val","_fetchRest","pages_custom_eventsvue_type_script_lang_js_","custom_events_component","custom_events","track_viewvue_type_template_id_0b4ba76a_render","trackViewComponentSnippet","show","trackViewComponentVIfSnippet","jsTrackViewComponentVIfSnippet","rest1","watch","$event","trackViewComponentWatchSnippet","jsTrackViewComponentWatchSnippet","rest2","trackViewComponentWatchDelaySnippet","jsTrackViewComponentWatchDelaySnippet","track_viewvue_type_template_id_0b4ba76a_staticRenderFns","track_viewvue_type_script_lang_js_","_x","pages_track_viewvue_type_script_lang_js_","track_view_component","track_view","block_showvue_type_template_id_da10c128_render","once","shadow","trackViewComponentOnceSnippet","ref","viewport","viewportTrackViewComponentSnippet","block_showvue_type_template_id_da10c128_staticRenderFns","block_showvue_type_script_lang_js_trackViewComponentSnippet","block_showvue_type_script_lang_js_","pages_block_showvue_type_script_lang_js_","block_show_component","block_show","_typeof","obj","iterator","constructor","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","configurable","writable","_createClass","protoProps","staticProps","_defineProperty","_objectSpread","source","ownKeys","keys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","forEach","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","arr2","iter","from","_arr","_n","_d","undefined","_i","done","err","isFun","v","isUndef","isDef","zipArray","values","debounce","fn","timeoutId","ms","_this","_len","args","_key","clearTimeout","_exactMatch","mdfs","vals","every","includes","_partialMatch","some","sameVnode","b","tag","isComment","exactlySameVnode","vnode","oldVnode","oldCh","children","ch","text","checkFun","Error","isElement","ele","nodeType","getStylePropValue","prop","getComputedStyle","getPropertyValue","isInViewport","rect","width","height","bottom","right","top","innerHeight","left","innerWidth","isVisible","document","parentNode","parent","visibility","display","VisMonitor","refwin","refWin","prevPerc","listeners","removeScrollLisener","init","listener","visibilitychange","$on","addEventListener","removeEventListener","win","getBoundingClientRect","offsetHeight","offsetWidth","evt","cbk","queue","_this2","$off","_this3","_len2","_key2","sub","view","vh","vw","perc","MODIFIERS","_watcher","el","exp","ctt","ops","$unwatch","$watch","nv","ov","immediate","contains","_ref2","_","__","events","context","componentInstance","tck","watcher","exactMatch","partialMatch","$timer","_exp","pop","visible","$el","_events$id","_zipArray","_zipArray2","_args","_tck","custom","$visMonitor","vm","$refs","$once","_events$id2","_zipArray3","_zipArray4","_args2","_exp2","reverse","$listener","_args3","_keys","_fn","_exp3","eventName","_zipArray5","_zipArray6","_events$id3","_ref3","_len3","_key3","updated","_len4","_key4","unbind","destroy","VTrack","installed","Vue","trackEvents","_ref$trackEnable","trackEnable","UVPV","TONP","TRACK_TONP","ctx","et","dt","Date","now","directive","_hooks$bind","componentUpdated","_hooks$updated","_hooks$unbind","render","h","style","mixin","PAGE_ENTER_TIME","created","onbeforeunload","beforeRouteEnter","beforeRouteUpdate","beforeRouteLeave","v_track_esm","twoDigits","fourDigits","token","masks","default","date","datetime","time","year","enDate","cnDate","pad","len","formatFlags","yyyy","dateObj","getFullYear","yy","M","getMonth","MM","getDate","dd","getHours","hh","H","HH","getMinutes","mm","getSeconds","ss","format","mask","isNaN","getTime","replace","$0","parseFlags","da","cent","month","day","hour","minute","second","createFragment","tableData","keys_default","reduce","list","k","trs","map","join","trackAction","addtional","objectSpread","action_time","lib_message_default","message","customClass","lib_notification_default","dangerouslyUseHTMLString","position","stt","18015","source_page","18016","_ref4","_ref5","18017","_ref6","18018","_ref7","18019","_ref8","_ref9","_ref10","18020","_ref11","active_name","18021","_ref12","18022","_ref13","description","18023","_ref14","18025","_ref15","18026","_ref16","18027","_ref17","18028","_ref18","18029","_ref19","tracks","use","VueRouter","lib_alert_default","lib_card_default","lib_collapse_default","lib_collapse_item_default","VueTrack","$notify","router","routes","path","Home","Started","CustomEvents","TrackView","BlockShow","redirect"],"mappings":"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","file":"js/app.3056726d.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"dist/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"fc11\",\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\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!./App.vue?vue&type=style&index=0&lang=scss&\"; 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!./App.vue?vue&type=style&index=0&lang=scss&\"","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!./code-snippet.vue?vue&type=style&index=0&lang=scss&\"; 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!./code-snippet.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_vm._m(0),_vm._v(\" \"),_c('keep-alive',[(_vm.$route.meta.keepAlive)?_c('router-view'):_vm._e()],1),_vm._v(\" \"),(!_vm.$route.meta.keepAlive)?_c('router-view'):_vm._e(),_vm._v(\" \"),_vm._m(1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',[_c('h1',[_vm._v(\"v-track\")]),_vm._v(\" \"),_c('div',{staticClass:\"command\"},[_vm._v(\"yarn add v-track or npm add v-track --save\")]),_vm._v(\" \"),_c('nav',[_c('a',{attrs:{\"href\":\"https://travis-ci.org/l-hammer/v-track\"}},[_c('img',{attrs:{\"alt\":\"Travis (.org) branch\",\"src\":\"https://img.shields.io/travis/l-hammer/v-track/master.svg?logoColor=%23666666&style=flat-square\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://unpkg.com/v-track/dist/v-track.min.js\"}},[_c('img',{attrs:{\"src\":\"http://img.badgesize.io/https://unpkg.com/v-track/dist/v-track.min.js?compression=gzip&style=flat-square\",\"alt\":\"Gzip Size\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://www.npmjs.com/package/v-track\"}},[_c('img',{attrs:{\"src\":\"https://img.shields.io/npm/v/v-track.svg?colorB=brightgreen&style=flat-square\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/tree/master/tests/unit\"}},[_c('img',{attrs:{\"src\":\"https://img.shields.io/badge/tested_with-jest-99424f.svg?style=flat-square\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"javascript:void(0);\",\"alt\":\"hit count\"}},[_c('img',{attrs:{\"src\":\"http://hits.dwyl.io/l-hammer/v-track.svg\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"javascript:void(0);\",\"alt\":\"downloads\"}},[_c('img',{attrs:{\"src\":\"https://img.shields.io/npm/dt/v-track.svg?style=flat-square\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track\"}},[_c('img',{attrs:{\"src\":\"https://img.shields.io/github/stars/l-hammer/v-track.svg?style=social&label=Star\"}})])]),_vm._v(\" \"),_c('div',{staticClass:\"description\"},[_vm._v(\"\\n 🕹一个基于Vue指令实现的埋点插件~\\n \")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"footer\"},[_c('div',{staticClass:\"section-content mini\"},[_vm._v(\"\\n Copyright © 2019-present LHammer\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=0791aaec&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-home page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'STARTED' }}},[_vm._v(\"\\n 快速开始\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'CUSTOM_EVENTS' }}},[_vm._v(\"\\n 自定义事件埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'TRACK_VIEW' }}},[_vm._v(\"\\n 页面行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'BLOCK_SHOW' }}},[_vm._v(\"\\n 区域展现埋点\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个点击事件行为的埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('div',{directives:[{name:\"track\",rawName:\"v-track:18015.click\",value:(_vm.handleClick),expression:\"handleClick\",arg:\"18015\",modifiers:{\"click\":true}}],staticClass:\"track-button\"},[_vm._v(\"\\n click me\\n \")])])],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackClickSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"通过增加 .native 修饰符,我们可以监听组件原生click事件行为的埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('Button',{directives:[{name:\"track\",rawName:\"v-track:18015.click.native\",value:(_vm.handleNativeEvent),expression:\"handleNativeEvent\",arg:\"18015\",modifiers:{\"click\":true,\"native\":true}}]})],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackNativeClickSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这个一个带参数点击事件行为的埋点,默认最后一个参数为 event 事件对象\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('div',{directives:[{name:\"track\",rawName:\"v-track:18016.click\",value:({ handleClickWithParam: _vm.handleClickWithParam, item: _vm.item }),expression:\"{ handleClickWithParam, item }\",arg:\"18016\",modifiers:{\"click\":true}}],staticClass:\"track-button\"},[_vm._v(\"\\n click me\\n \")])])],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackClickWithParamSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackClickWithParamSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个发生在事件之后的埋点,默认先执行埋点再执行事件,如示例所示:index初始值为0,点击事件会将index加1,所以埋点获取到的index值应该为1,依次点击则累加\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('div',{directives:[{name:\"track\",rawName:\"v-track:18017.click.delay\",value:(_vm.handleClickDelay),expression:\"handleClickDelay\",arg:\"18017\",modifiers:{\"click\":true,\"delay\":true}}],staticClass:\"track-button\"},[_vm._v(\"\\n click me\\n \")])])],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackClickDelaySnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackClickDelaySnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个有异步行为的事件埋点,如示例所示:rest 初始值为 null,点击事件会 fetch 为 success,所以埋点获取到的 rest 值应该为 success\",\"closable\":false}}),_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"warning\",\"title\":\"备注:①修饰符 async 是基于 Vue 实例提供的 vm.$watch 方法,所以只有在返回结果 rest 发生变化时才会触发埋点;②当有多个参数时,.async 会把最后一个参数当做监听对象\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('div',{directives:[{name:\"track\",rawName:\"v-track:18018.click.async\",value:({ handleClickAsync: _vm.handleClickAsync, rest: _vm.rest }),expression:\"{ handleClickAsync, rest }\",arg:\"18018\",modifiers:{\"click\":true,\"async\":true}}],staticClass:\"track-button\"},[_vm._v(\"\\n click me\\n \")])])],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackClickAsyncSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackClickAsyncSnippet}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"code-snippet\"},[_c('div',{staticClass:\"language\"},[_vm._v(_vm._s(_vm.lang))]),_vm._v(\" \"),_c('div',{staticClass:\"line-numbers\"},_vm._l((_vm.lineCount),function(n){return _c('div',{key:n,staticClass:\"line-number\"},[_vm._v(_vm._s(n))])}),0),_vm._v(\" \"),_c('div',{staticClass:\"render\",domProps:{\"innerHTML\":_vm._s(_vm.result)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./code-snippet.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./code-snippet.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./code-snippet.vue?vue&type=template&id=4db4304e&\"\nimport script from \"./code-snippet.vue?vue&type=script&lang=js&\"\nexport * from \"./code-snippet.vue?vue&type=script&lang=js&\"\nimport style0 from \"./code-snippet.vue?vue&type=style&index=0&lang=scss&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"track-button\",on:{\"click\":function (e) { return _vm.$emit('custom-event', _vm.item, e); }}},[_vm._v(\"\\n click me\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./button.vue?vue&type=template&id=60c8796f&\"\nimport script from \"./button.vue?vue&type=script&lang=js&\"\nexport * from \"./button.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./home.vue?vue&type=template&id=ab4b4114&\"\nimport script from \"./home.vue?vue&type=script&lang=js&\"\nexport * from \"./home.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-started page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 返回\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'CUSTOM_EVENTS' }}},[_vm._v(\"\\n 自定义事件埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'TRACK_VIEW' }}},[_vm._v(\"\\n 页面行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'BLOCK_SHOW' }}},[_vm._v(\"\\n 区域展现埋点\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"code\":_vm.installSnippet,\"lang\":\"shell\"}}),_vm._v(\" \"),_c('div',{staticClass:\"plus\"},[_vm._v(\"+\")]),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"code\":_vm.mainSnippet,\"lang\":\"js\"}}),_vm._v(\" \"),_c('div',{staticClass:\"plus\"},[_vm._v(\"+\")]),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"code\":_vm.eventsSnippet,\"lang\":\"js\"}}),_vm._v(\" \"),_c('div',{staticClass:\"plus\"},[_vm._v(\"+\")]),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"code\":_vm.componentSnippet,\"lang\":\"html\"}})],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"snippets\"},[_c('div',{staticClass:\"section-content small\"},[_vm._v(\"\\n v-track通过\\n \"),_c('a',{attrs:{\"href\":\"https://cn.vuejs.org/v2/guide/custom-directive.html\"}},[_vm._v(\"Vue 自定义指令\")]),_vm._v(\"的方式将埋点代码与业务代码完全解耦,完整示例可参考\\n \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/tree/master\"}},[_vm._v(\"GitHub\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./started.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./started.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./started.vue?vue&type=template&id=3c1ba4f4&\"\nimport script from \"./started.vue?vue&type=script&lang=js&\"\nexport * from \"./started.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-home page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'STARTED' }}},[_vm._v(\"\\n 快速开始\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 返回\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'TRACK_VIEW' }}},[_vm._v(\"\\n 页面行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'BLOCK_SHOW' }}},[_vm._v(\"\\n 区域展现埋点\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个自定义事件行为埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('Button',{directives:[{name:\"track\",rawName:\"v-track:18015.custom-event\",value:(_vm.handleCustomEvent),expression:\"handleCustomEvent\",arg:\"18015\",modifiers:{\"custom-event\":true}}]})],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.ButtonComponentSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackCustomEventSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个有带参数的自定义事件埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('Button',{directives:[{name:\"track\",rawName:\"v-track:18019.custom-event\",value:(_vm.handleCustomEventWithParam),expression:\"handleCustomEventWithParam\",arg:\"18019\",modifiers:{\"custom-event\":true}}]})],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.ButtonComponentWithParamSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackCustomEventWithParamSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个发生在自定义事件之后的埋点,默认先执行埋点再执行自定义事件。如示例所示:activeName初始值为Feedback,自定义事件会更新该值,所以埋点获取到activeName的值应为当前激活面板的name\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content collapse-wrapper\"},[_c('el-collapse',{directives:[{name:\"track\",rawName:\"v-track:18020.change.delay\",value:(_vm.handleChange),expression:\"handleChange\",arg:\"18020\",modifiers:{\"change\":true,\"delay\":true}}],attrs:{\"accordion\":\"\"},model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-collapse-item',{attrs:{\"title\":\"反馈 Feedback\",\"name\":\"Feedback\"}},[_c('div',[_vm._v(\"\\n 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;\\n \")]),_vm._v(\" \"),_c('div',[_vm._v(\"页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。\")])]),_vm._v(\" \"),_c('el-collapse-item',{attrs:{\"title\":\"效率 Efficiency\",\"name\":\"Efficiency\"}},[_c('div',[_vm._v(\"简化流程:设计简洁直观的操作流程;\")]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;\\n \")]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。\\n \")])]),_vm._v(\" \"),_c('el-collapse-item',{attrs:{\"title\":\"可控 Controllability\",\"name\":\"Controllability\"}},[_c('div',[_vm._v(\"\\n 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;\\n \")]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。\\n \")])])],1)],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackCustomEventDelaySnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackCustomEventDelaySnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个有异步行为的自定义事件埋点。如示例所示:rest初始值为null,自定义事件会fetch为success,所以埋点获取到的rest值应该为success\",\"closable\":false}}),_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"warning\",\"title\":\"备注:同普通DOM事件埋点一样,只有在 rest 发生变化时才会触发埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('Button',{directives:[{name:\"track\",rawName:\"v-track:18021.custom-event.async\",value:({ fetchRest: _vm.fetchRest, rest: _vm.rest }),expression:\"{ fetchRest, rest }\",arg:\"18021\",modifiers:{\"custom-event\":true,\"async\":true}}]})],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackCustomEventAsyncSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackCustomEventAsyncSnippet}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom-events.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom-events.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./custom-events.vue?vue&type=template&id=3314ed1c&\"\nimport script from \"./custom-events.vue?vue&type=script&lang=js&\"\nexport * from \"./custom-events.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-home page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'STARTED' }}},[_vm._v(\"\\n 快速开始\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'CUSTOM_EVENTS' }}},[_vm._v(\"\\n 自定义事件埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 返回\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'BLOCK_SHOW' }}},[_vm._v(\"\\n 区域展现埋点\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个页面初始化埋点\",\"closable\":false}}),_vm._v(\" \"),_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"warning\",\"title\":\"备注:v-track指令可用于任何元素,此行为埋点建议绑定到页面的根元素或者v-track提供的track-view组件上\",\"closable\":false}}),_vm._v(\" \"),_c('div',{directives:[{name:\"track\",rawName:\"v-track:18022\",arg:\"18022\"}],staticClass:\"section-content\"})],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"配合 v-if 指令控制埋点上报次数,即 show 为真时,会再次触发埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[(_vm.show)?_c('track-view',{directives:[{name:\"track\",rawName:\"v-track:18023\",arg:\"18023\"}]}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"track-button\",on:{\"click\":function () { return (_vm.show = !_vm.show); }}},[_vm._v(\"\\n click me -> \"+_vm._s(_vm.show)+\"\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentVIfSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackViewComponentVIfSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个监听页面行为的埋点,同事件行为埋点一样,只有当返回结果发生变化时才会上报埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('track-view',{directives:[{name:\"track\",rawName:\"v-track:18025.watch\",value:({ rest1: _vm.rest1 }),expression:\"{ rest1 }\",arg:\"18025\",modifiers:{\"watch\":true}}]}),_vm._v(\" \"),_c('div',{staticClass:\"track-button\",on:{\"click\":function($event){return _vm.fetchRest(false)}}},[_vm._v(\"\\n click me\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentWatchSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackViewComponentWatchSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个监听页面行为并延时的埋点,不同于事件延时埋点,这里可通过delay设置具体的延长时间\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('track-view',{directives:[{name:\"track\",rawName:\"v-track:18026.watch.delay\",value:({ rest2: _vm.rest2, delay: 2000 }),expression:\"{ rest2, delay: 2000 }\",arg:\"18026\",modifiers:{\"watch\":true,\"delay\":true}}]}),_vm._v(\" \"),_c('div',{staticClass:\"track-button\",on:{\"click\":function($event){return _vm.fetchRest(true)}}},[_vm._v(\"\\n click me\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentWatchDelaySnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackViewComponentWatchDelaySnippet}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./track-view.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./track-view.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./track-view.vue?vue&type=template&id=0b4ba76a&\"\nimport script from \"./track-view.vue?vue&type=script&lang=js&\"\nexport * from \"./track-view.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-home page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'STARTED' }}},[_vm._v(\"\\n 快速开始\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'CUSTOM_EVENTS' }}},[_vm._v(\"\\n 自定义事件埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'TRACK_VIEW' }}},[_vm._v(\"\\n 页面行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 返回\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个只会上报一次的区域展现埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content large\"},[_c('el-card',{directives:[{name:\"track\",rawName:\"v-track:18028.show.once\",arg:\"18028\",modifiers:{\"show\":true,\"once\":true}}],attrs:{\"shadow\":\"always\"}},[_vm._v(\"\\n 我只想被曝光一次\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentOnceSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个会连续上报的区域展现埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content large\"},[_c('el-card',{directives:[{name:\"track\",rawName:\"v-track:18027.show\",arg:\"18027\",modifiers:{\"show\":true}}],attrs:{\"shadow\":\"always\"}},[_vm._v(\"\\n 我想被曝光无数次\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentSnippet}})],1),_vm._v(\" \"),_c('section',{ref:\"viewport\",staticClass:\"demo viewport\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"某个区域内元素曝光埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content large\"},[_c('el-card',{directives:[{name:\"track\",rawName:\"v-track:18029.show\",value:({ viewport: 'viewport' }),expression:\"{ viewport: 'viewport' }\",arg:\"18029\",modifiers:{\"show\":true}}],attrs:{\"shadow\":\"always\"}},[_vm._v(\"\\n 我也想被曝光无数次\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.viewportTrackViewComponentSnippet}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./block-show.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./block-show.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./block-show.vue?vue&type=template&id=da10c128&\"\nimport script from \"./block-show.vue?vue&type=script&lang=js&\"\nexport * from \"./block-show.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\n/*\n * @Author: 宋慧武\n * @Date: 2019-04-08 11:13:34\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-08-05 15:31:00\n */\n\n/**\n * @desc 判断给定变量是否为一个函数\n *\n * @param {*} v\n * @return {Boolean}\n */\nvar isFun = function isFun(v) {\n return typeof v === \"function\" || false;\n};\n/**\n * @desc 判断给定变量是否是未定义\n *\n * @param {*} v\n */\n\nvar isUndef = function isUndef(v) {\n return v === undefined || v === null;\n};\n/**\n * @desc 判断给定变量是否是定义\n *\n * @param {*} v\n */\n\nvar isDef = function isDef(v) {\n return v !== undefined && v !== null;\n};\n/**\n * @desc 获取对象的键值\n *\n * @param {Object} value\n * @returns {Array} [keys, values]\n */\n\nfunction zipArray() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return [Object.values(value), Object.keys(value)];\n}\n/**\n * @desc 防抖函数,至少间隔200毫秒执行一次\n *\n * @param {Function} fn callback\n * @param {Number} [ms=200] 默认200毫秒\n * @returns {Function}\n */\n\nfunction debounce(fn) {\n var ms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;\n var timeoutId;\n return function () {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () {\n return fn.apply(_this, args);\n }, ms);\n };\n}\n/**\n * @desc 判断给定变量是否完全匹配目标数组\n *\n * @param {String[]} mdfs 目标数组\n * @param {String} vals\n * @returns {Boolean}\n */\n\nfunction _exactMatch(mdfs, vals) {\n var keys = Object.keys(mdfs);\n return keys.length === vals.length && vals.every(function (v) {\n return keys.includes(v);\n });\n}\n/**\n * @desc 判断给定变量是否匹配目标数组的一部分\n *\n * @param {String[]} mdfs 目标字符串数组\n * @param {String} vals\n * @returns {Boolean}\n */\n\nfunction _partialMatch(mdfs, vals) {\n var keys = Object.keys(mdfs);\n return vals.some(function (v) {\n return keys.includes(v);\n });\n}\n/**\n * @desc 判断两个节点是否为同一个vnode节点\n *\n * @param {VNode} a 虚拟节点\n * @param {VNode} b 虚拟节点\n */\n\nfunction sameVnode(a, b) {\n return a.key === b.key && a.tag === b.tag && a.isComment === b.isComment && isDef(a.data) === isDef(b.data);\n}\n/**\n * @desc 判断两个vnode节点是否全等\n *\n * @param {VNode} a 虚拟节点\n * @param {VNode} b 虚拟节点\n */\n\nfunction exactlySameVnode(vnode, oldVnode) {\n if (!sameVnode(vnode, oldVnode)) return false;\n var oldCh = oldVnode.children;\n var ch = vnode.children; // vnode为非文本节点,且新旧节点的子节点都存在但不相同\n\n if (isUndef(vnode.text) && isDef(oldCh) && isDef(ch)) {\n if (oldCh.length !== ch.length) return false;\n\n for (var i = 0; i < ch.length; i++) {\n var c = ch[i];\n\n if (isDef(c) && isDef(oldCh[i])) {\n return exactlySameVnode(c, oldCh[i]);\n }\n }\n } // vnode为文本节点,新旧节点内容不相同\n else if (vnode.text !== oldVnode.text) return false;\n\n return true;\n}\n\n/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 15:55:15\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-04-20 18:06:31\n */\nvar checkFun = function checkFun(fn) {\n if (!isFun(fn)) {\n throw new Error(\"The first parameter should be Function.\");\n }\n};\n\n/*\n * @Author: 宋慧武\n * @Date: 2019-04-08 11:13:34\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2020-06-04 17:08:44\n */\n\n/**\n * @desc 是否为元素几点\n *\n * @param {DOMElement} ele 一个 DOM 元素\n * @return {Boolean}\n */\nvar isElement = function isElement(ele) {\n return ele && ele.nodeType === 1;\n};\n/**\n * @desc 获取 DOM CSS 属性的值\n *\n * @param {DOMElement} ele A DOM 元素\n * @returns {String}\n */\n\nfunction getStylePropValue(ele, prop) {\n return window.getComputedStyle(ele).getPropertyValue(prop);\n}\n/**\n * @desc 元素是否在可视区域可见\n *\n * @param {Object} rect 元素大小及相对可视区域的位置信息\n * @returns {Boolean} true => 可见 false => 不可见\n */\n\nfunction isInViewport(rect, viewport) {\n if (!rect || rect.width <= 0 || rect.height <= 0) {\n return false;\n }\n\n return rect.bottom > 0 && rect.right > 0 && rect.top < window.innerHeight && rect.left < window.innerWidth && !(rect.left > viewport.right || rect.top > viewport.bottom || rect.right < viewport.left || rect.bottom < viewport.top);\n}\n/**\n * @desc 元素是否隐藏\n *\n * @param {DOMElement} ele A DOM 元素\n * @returns {Boolean} true => 未隐藏可见 false => 隐藏不可见\n */\n\nfunction isVisible(ele) {\n if (ele === window.document) {\n return true;\n }\n\n if (!ele || !ele.parentNode) {\n return false;\n }\n\n var parent = ele.parentNode;\n var visibility = getStylePropValue(ele, \"visibility\");\n var display = getStylePropValue(ele, \"display\");\n\n if (visibility === \"hidden\" || display === \"none\") {\n return false;\n }\n\n return parent ? isVisible(parent) : true;\n}\n\n/**\n * @class\n * @name VisMonitor\n *\n * @desc 目标元素控制器\n */\n\nvar VisMonitor =\n/*#__PURE__*/\nfunction () {\n function VisMonitor(ele, ref) {\n var refwin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window;\n\n _classCallCheck(this, VisMonitor);\n\n if (!isElement(ele)) {\n throw new Error(\"not an element node\");\n }\n\n this.ele = ele;\n this.ref = ref;\n this.refWin = refwin;\n this.started = false;\n this.prevPerc = null; // 保存前一次曝光百分比\n\n this.listeners = {};\n this.removeScrollLisener = null;\n this.init();\n }\n\n _createClass(VisMonitor, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n if (!this.started) {\n var listener = debounce(this.visibilitychange.bind(this));\n listener();\n\n this.removeScrollLisener = function (listener) {\n if (_this.ref) {\n return _this.ref.$on(\"scroll\", listener);\n } else {\n _this.refWin.addEventListener(\"scroll\", listener, true);\n\n return function () {\n return _this.refWin.removeEventListener(\"scroll\", listener, true);\n };\n }\n }(listener);\n\n this.started = true;\n }\n }\n }, {\n key: \"viewport\",\n value: function viewport() {\n var win = this.refWin;\n var rect = isElement(win) ? win.getBoundingClientRect() : win;\n return {\n top: isElement(win) ? rect.top : 0,\n right: rect.right || rect.innerWidth,\n bottom: rect.bottom || rect.innerHeight,\n left: rect.left || 0,\n height: win.innerHeight || win.offsetHeight,\n width: win.innerWidth || win.offsetWidth\n };\n }\n /**\n * 监听自定义事件\n */\n\n }, {\n key: \"$on\",\n value: function $on(evt, cbk) {\n var queue = this.listeners[evt] || (this.listeners[evt] = []);\n queue.push(cbk);\n return this;\n }\n /**\n * 移除监听自定义事件\n */\n\n }, {\n key: \"$off\",\n value: function $off(evt, cbk) {\n if (!cbk) return;\n var queue = this.listeners[evt];\n var v;\n var i = queue.length;\n\n while (i--) {\n v = queue[i];\n\n if (v === cbk || v.cbk === cbk) {\n queue.splice(i, 1);\n break;\n }\n }\n\n return this;\n }\n /**\n * 监听自定义事件,但只触发一次\n */\n\n }, {\n key: \"$once\",\n value: function $once(evt, cbk) {\n var _this2 = this;\n\n var on = function on() {\n _this2.$off(evt, on);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cbk.apply(_this2, args);\n };\n\n on.cbk = cbk;\n this.$on(evt, on);\n return this;\n }\n /**\n * 触发当前实例的监听回调\n */\n\n }, {\n key: \"$emit\",\n value: function $emit(evt) {\n var _this3 = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var queue = this.listeners[evt] || [];\n queue.forEach(function (sub) {\n return sub.apply(_this3, args);\n });\n return this;\n }\n /**\n * 计算元素可见比例,如果比例为100%,则触发 fullyvisible 事件\n */\n\n }, {\n key: \"visibilitychange\",\n value: function visibilitychange() {\n var rect = this.ele.getBoundingClientRect();\n var view = this.viewport();\n\n if (!isInViewport(rect, view) || !isVisible(this.ele)) {\n this.prevPerc = 0;\n return 0;\n }\n\n var vh = 0;\n var vw = 0;\n var perc = 0;\n\n if (rect.top >= view.top && rect.bottom > view.bottom) {\n vh = view.bottom - rect.top;\n } else if (rect.top < view.top && rect.bottom <= view.bottom) {\n vh = rect.bottom - view.top;\n } else {\n vh = rect.height;\n }\n\n if (rect.left >= view.left && rect.right > view.right) {\n vw = view.right - rect.left;\n } else if (rect.left < view.left && rect.right <= view.right) {\n vw = rect.right - view.left;\n } else {\n vw = rect.width;\n }\n\n perc = vh * vw / (rect.height * rect.width);\n\n if (this.prevPerc !== 1 && perc === 1) {\n this.$emit(\"fullyvisible\");\n this.prevPerc = perc;\n }\n }\n /**\n * 销毁当前实例的事件\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n isFun(this.removeScrollLisener) && this.removeScrollLisener();\n }\n }]);\n\n return VisMonitor;\n}();\n\nvar MODIFIERS = [\"async\", \"delay\", \"watch\", \"show\", \"once\", \"custom\"]; // 修饰符\n\n/*******************************************************************************\n * @desc 监听数据发生改变时触发埋点,需处理两种情况:\n * ① 初始化时开始监听 v-track:xxxxx.watch=\"{ common_exp }\"\n * ops.immediate 表示初始化时立即开始监听\n *\n * ② 点击事件之后开始监听 v-track:18016.click.async=\"{ refreshHotSpot, exposureId }\"\n * el.contains(this.target) 避免多个“地方”同时监听同一个值出现多次上报的问题\n *******************************************************************************/\n\nfunction _watcher(el, exp, cbk, ctt) {\n var _this = this;\n\n var ops = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n el.$unwatch = ctt.$watch(function () {\n return ctt[exp];\n }, function (nv, ov) {\n nv !== ov && (ops.immediate || el.contains(_this.target)) && cbk();\n _this.target = null; // 释放当前操作的watcher\n });\n}\n/*************************************************************************\n * @desc 自定义指令 v-track\n *\n * @param {*} el 指令所绑定的元素\n * @param {String} arg 埋点对应event ID\n * @param {Boolean} modifiers.click true: 事件行为埋点; false: 页面级埋点\n * @param {Boolean} modifiers.watch 异步埋点\n * @param {Boolean} modifiers.async 点击事件异步埋点\n * @param {Boolean} modifiers.delay 埋点是否延迟执行,默认先执行埋点再执行cbk\n *\n * @property {Function} tck 对应埋点方法\n *\n * @example v-track:18015\n * @example v-track:18015.watch\n * @example v-track:18015.watch.delay\n * @example v-track:18015.click\n * @example v-track:18015.click.async\n * @example v-track:18015.click.delay\n * @example v-track:18015.[自定义事件名].delay\n * @example v-track:18015.[自定义事件名].async\n *************************************************************************/\n\n\nfunction bind(el, _ref, _ref2, _, __, events) {\n var _this2 = this;\n\n var value = _ref.value,\n id = _ref.arg,\n modifiers = _ref.modifiers,\n rawName = _ref.rawName;\n var context = _ref2.context,\n componentInstance = _ref2.componentInstance;\n if (!events[id]) throw new Error(\"tracking event does not exist\");\n var queue = [];\n var tck = events[id].bind(null, context);\n\n var watcher = function watcher(exp, cbk, ops) {\n return _watcher.call(_this2, el, exp, cbk, context, ops);\n };\n\n var exactMatch = function exactMatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _exactMatch.call(null, modifiers, args);\n };\n\n var partialMatch = function partialMatch() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _partialMatch.call(null, modifiers, args);\n };\n\n if (!Object.keys(modifiers).length) {\n events[id](context, value);\n } // 异步埋点\n else if (exactMatch(\"watch\")) {\n var exp = Object.keys(value).shift();\n watcher(exp, tck, {\n immediate: true\n });\n } // 指定延长时间埋点\n else if (exactMatch(\"delay\")) {\n el.$timer && clearTimeout(el.$timer);\n el.$timer = setTimeout(function () {\n events[id](context);\n }, value);\n } else if (exactMatch(\"watch\", \"delay\")) {\n var delay = value.delay,\n args = _objectWithoutProperties(value, [\"delay\"]);\n\n var _exp = _toConsumableArray(Object.keys(args)).pop();\n\n tck = function tck() {\n el.$timer && clearTimeout(el.$timer);\n el.$timer = setTimeout(function () {\n var visible = isVisible(context.$el);\n visible && events[id](context);\n }, delay);\n };\n\n watcher(_exp, tck, {\n immediate: true\n });\n } // 区域曝光埋点\n else if (partialMatch(\"show\")) {\n var _events$id;\n\n var _zipArray = zipArray(value),\n _zipArray2 = _slicedToArray(_zipArray, 1),\n _args = _zipArray2[0];\n\n var _tck = (_events$id = events[id]).bind.apply(_events$id, [null, context].concat(_toConsumableArray(_args)));\n\n var once = partialMatch(\"once\");\n var custom = partialMatch(\"custom\");\n\n if (!el.$visMonitor) {\n setTimeout(function () {\n var vm = new VisMonitor(el, custom && context.$refs[value.ref], value && context.$refs[value.viewport]);\n (once ? vm.$once : vm.$on).call(vm, \"fullyvisible\", _tck);\n el.$visMonitor = vm;\n }, 0);\n }\n } else if (!componentInstance && modifiers.click || componentInstance && partialMatch(\"native\")) {\n /**\n * @desc DOM元素事件行为埋点(需区分是否带参数)\n * @var {Function} fn 获取第一个参数作为回调函数\n * @var {String} exp 获取最后一个参数并作为监听对象\n */\n switch (_typeof(value)) {\n case \"object\":\n {\n var _events$id2;\n\n var _zipArray3 = zipArray(value),\n _zipArray4 = _slicedToArray(_zipArray3, 2),\n _args2 = _zipArray4[0],\n keys = _zipArray4[1];\n\n var fn = _args2.shift();\n\n var _exp2 = _toConsumableArray(keys).pop();\n\n checkFun(fn);\n tck = (_events$id2 = events[id]).bind.apply(_events$id2, [null, context].concat(_toConsumableArray(_args2)));\n queue = [tck, fn.bind.apply(fn, [null].concat(_toConsumableArray(_args2)))];\n modifiers.delay && queue.reverse();\n modifiers.async && watcher(_exp2, queue.shift());\n break;\n }\n\n case \"function\":\n queue = [tck, value];\n modifiers.delay && queue.reverse();\n break;\n }\n\n el.$listener = function (e) {\n _this2.target = e.target;\n queue.forEach(function (sub) {\n return sub(e);\n });\n };\n\n el.addEventListener(\"click\", el.$listener);\n } else if (\n /**\n * @desc 组件自定义事件行为埋点(需区分是否带参数)\n * @var {Function} fn 获取第一个参数作为回调函数\n * @var {String} exp 获取最后一个参数并作为监听对象\n */\n componentInstance && componentInstance.$el === el) {\n var _args3, _keys, _fn, _exp3;\n\n var eventName = Object.keys(modifiers).filter(function (key) {\n return !MODIFIERS.includes(key);\n }).pop();\n\n if (_typeof(value) === \"object\") {\n var _zipArray5 = zipArray(value);\n\n var _zipArray6 = _slicedToArray(_zipArray5, 2);\n\n _args3 = _zipArray6[0];\n _keys = _zipArray6[1];\n _fn = _args3.shift();\n _exp3 = _toConsumableArray(_keys).pop();\n checkFun(_fn);\n }\n\n if (el[\"$on_\".concat(eventName)]) return;\n componentInstance.$on(eventName, function () {\n var _events$id3, _ref3;\n\n _this2.target = el;\n\n for (var _len3 = arguments.length, data = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n data[_key3] = arguments[_key3];\n }\n\n tck = (_events$id3 = events[id]).bind.apply(_events$id3, [null, context].concat(data));\n queue = [tck, (_ref3 = _fn || value).bind.apply(_ref3, [null].concat(data))];\n modifiers.delay && queue.reverse();\n modifiers.async && watcher(_exp3, queue.shift());\n queue.forEach(function (sub) {\n return sub();\n });\n el[\"$on_\".concat(eventName)] = true; // 避免重复监听\n });\n } else {\n throw new Error(\"\".concat(rawName, \" directive is not supported\"));\n }\n}\n/**\n * @desc 由于 DOM 更新采用 diff 算法更新,如果新旧节点相同,则 el 会全等,导致 bind 绑定无法更\n * 新,出现事件绑定诡异的问题,但由于 DOM update 执行频率很高,会导致性能问题,所以这里加\n * 了一层exactlySameVnode过滤,即只有在新旧节点发生变化时才会重新绑定,否则相反\n *\n * @param {*} el 同bind\n * @param {...any} args 同bind\n */\n\nfunction updated(el) {\n if (!el.$listener) return;\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n if (!exactlySameVnode(args[1], args[2])) {\n unbind.call(this, el);\n bind.call.apply(bind, [this, el].concat(args));\n }\n}\nfunction unbind(el) {\n el.$listener && el.removeEventListener(\"click\", el.$listener);\n el.$timer && clearTimeout(el.$timer);\n el.$unwatch && el.$unwatch();\n el.$visMonitor && el.$visMonitor.destroy();\n}\n\nvar VTrack =\n/*#__PURE__*/\nfunction () {\n function VTrack() {\n _classCallCheck(this, VTrack);\n\n this.installed = false;\n } // 保存当前点击的元素\n\n\n _createClass(VTrack, null, [{\n key: \"install\",\n // Vue.use 将执行此方法\n value: function install(Vue, _ref) {\n var _this = this;\n\n var trackEvents = _ref.trackEvents,\n _ref$trackEnable = _ref.trackEnable,\n trackEnable = _ref$trackEnable === void 0 ? {} : _ref$trackEnable;\n trackEnable = _objectSpread({\n UVPV: false,\n TONP: false\n }, trackEnable);\n\n var TRACK_TONP = function TRACK_TONP(ctx, et) {\n if (trackEnable.TONP) {\n trackEvents.TONP(ctx, {\n et: et,\n dt: Date.now()\n });\n }\n };\n\n if (this.installed) return;\n this.installed = true; // 注册v-track全局指令\n\n Vue.directive(\"track\", {\n bind: function bind$1() {\n var _hooks$bind;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_hooks$bind = bind).call.apply(_hooks$bind, [_this].concat(args, [trackEvents]));\n },\n componentUpdated: function componentUpdated() {\n var _hooks$updated;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return (_hooks$updated = updated).call.apply(_hooks$updated, [_this].concat(args, [trackEvents]));\n },\n unbind: function unbind$1() {\n var _hooks$unbind;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return (_hooks$unbind = unbind).call.apply(_hooks$unbind, [_this].concat(args));\n }\n }); // 注册全局组件\n\n Vue.component(\"TrackView\", {\n render: function render(h) {\n return h(\"span\", {\n style: \"display: none\"\n });\n }\n });\n Vue.mixin({\n data: function data() {\n return {\n PAGE_ENTER_TIME: Date.now()\n };\n },\n created: function created() {\n var _this2 = this;\n\n window.onbeforeunload = function () {\n return TRACK_TONP(_this2, _this2.PAGE_ENTER_TIME);\n };\n },\n // 统计UV、PV\n beforeRouteEnter: function beforeRouteEnter(_, __, next) {\n next(function (vm) {\n trackEnable.UVPV && trackEvents.UVPV(vm);\n });\n },\n beforeRouteUpdate: function beforeRouteUpdate(_, __, next) {\n var _this3 = this;\n\n // 确保导航升级完成\n this.$watch(\"$route\", function () {\n if (trackEnable.UVPV && trackEnable.UVPV === \"routeUpdate\") {\n trackEvents.UVPV(_this3);\n }\n });\n next();\n },\n // 页面停留时间\n beforeRouteLeave: function beforeRouteLeave(_, __, next) {\n TRACK_TONP(this, this.PAGE_ENTER_TIME);\n next();\n }\n });\n }\n }]);\n\n return VTrack;\n}();\n\n_defineProperty(VTrack, \"target\", null);\n\nexport default VTrack;\n","/**\n * @author LHammer\n * @desc date parse or format date\n * @see https://github.com/l-hammer/YDTemplate/blob/master/src/utils/es6/date.js\n */\nconst twoDigits = /\\d\\d?/;\nconst fourDigits = /\\d{4}/;\nconst token = /d{1,2}|M{1,2}|yy(?:yy)?|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\nconst masks = {\n default: \"yyyy-MM-dd HH:mm:ss\",\n date: \"yyyy-MM-dd\",\n datetime: \"yyyy-MM-dd HH:mm:ss\",\n time: \"HH:mm:ss\",\n year: \"yyyy\",\n enDate: \"M/d/yy\",\n cnDate: \"yyyy 年 MM 月 dd 日\"\n};\n\nconst pad = (val, len) => {\n val = String(val);\n len = len || 2;\n while (val.length < len) {\n val = `0${val}`;\n }\n return val;\n};\n\nconst formatFlags = {\n yyyy(dateObj) {\n return pad(dateObj.getFullYear(), 4);\n },\n yy(dateObj) {\n return String(dateObj.getFullYear()).substr(2);\n },\n M(dateObj) {\n return dateObj.getMonth() + 1;\n },\n MM(dateObj) {\n return pad(dateObj.getMonth() + 1);\n },\n d(dateObj) {\n return dateObj.getDate();\n },\n dd(dateObj) {\n return pad(dateObj.getDate());\n },\n h(dateObj) {\n return dateObj.getHours() % 12 || 12;\n },\n hh(dateObj) {\n return pad(dateObj.getHours() % 12 || 12);\n },\n H(dateObj) {\n return dateObj.getHours();\n },\n HH(dateObj) {\n return pad(dateObj.getHours());\n },\n m(dateObj) {\n return dateObj.getMinutes();\n },\n mm(dateObj) {\n return pad(dateObj.getMinutes());\n },\n s(dateObj) {\n return dateObj.getSeconds();\n },\n ss(dateObj) {\n return pad(dateObj.getSeconds());\n }\n};\n\n/**\n * Format a date\n * @method format\n * @param {Date|number} dateObj new Date(2018, 2, 9)\n * @param {String} mask Format of the date e.g. 'yyyy-MM-dd HH:mm:ss' or 'cnDate'\n */\nexport const format = (dateObj, mask) => {\n if (typeof dateObj === \"number\") {\n dateObj = new Date(dateObj);\n }\n\n if (\n Object.prototype.toString.call(dateObj) !== \"[object Date]\" ||\n isNaN(dateObj.getTime())\n ) {\n throw new Error(\"Invalid Date in date.format\");\n }\n mask = masks[mask] || mask || masks.default;\n\n // return 不可省略\n mask = mask.replace(token, $0 => {\n return $0 in formatFlags\n ? formatFlags[$0](dateObj)\n : $0.slice(1, $0.length - 1);\n });\n\n return mask;\n};\n\nconst parseFlags = {\n yyyy: [\n fourDigits,\n (d, v) => {\n d.year = v;\n }\n ],\n yy: [\n twoDigits,\n (d, v) => {\n const da = new Date();\n const cent = +`${da.getFullYear()}`.substr(0, 2);\n d.year = `${v > 68 ? cent - 1 : cent}${v}`;\n }\n ],\n M: [\n twoDigits,\n (d, v) => {\n d.month = v - 1;\n }\n ],\n d: [\n twoDigits,\n (d, v) => {\n d.day = v;\n }\n ],\n h: [\n twoDigits,\n (d, v) => {\n d.hour = v;\n }\n ],\n m: [\n twoDigits,\n (d, v) => {\n d.minute = v;\n }\n ],\n s: [\n twoDigits,\n (d, v) => {\n d.second = v;\n }\n ]\n};\nparseFlags.MM = parseFlags.M;\nparseFlags.dd = parseFlags.d;\nparseFlags.hh = parseFlags.h;\nparseFlags.H = parseFlags.h;\nparseFlags.HH = parseFlags.h;\nparseFlags.mm = parseFlags.m;\nparseFlags.ss = parseFlags.s;\n\n/**\n * Format a date\n * @method parse\n * @param {String} dateStr Date String e.g. '2018-02-09 09:29:29' or '2018 年 02 月 09 日'\n * @param {String} mask Parse of the format date e.g. 'yyyy-MM-dd HH:mm:ss' or 'cnDate'\n * @param {Date}\n */\nexport const parse = (dateStr, mask) => {\n let isVaild = true;\n const dateInfo = {};\n const today = new Date();\n\n if (typeof dateStr !== \"string\") {\n throw new Error(\"Invalid format in fecha.parse\");\n }\n\n mask = masks[mask] || mask || masks.default;\n /**\n * @function replace @see https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace;\n * @param {String} $0 匹配的子串\n */\n mask.replace(token, function($0) {\n if (parseFlags[$0]) {\n const flag = parseFlags[$0];\n /**\n * 搜索匹配到子串(e.g. yyyy)对应flag(fourDigits)的位置\n * @function search 未匹配到时返回-1,即按位取反为0时表示没有对应的flag\n */\n const index = dateStr.search(flag[0]);\n if (!~index) {\n isVaild = false;\n } else {\n /**\n * 为避免重复返回,将已经返回的值result从dateStr中删除\n */\n dateStr.replace(flag[0], function(result) {\n flag[1](dateInfo, result);\n dateStr = dateStr.substr(index + result.length);\n return result;\n });\n }\n }\n return parseFlags[$0] ? \"\" : $0.slice(1, $0.length - 1);\n });\n\n if (!isVaild) {\n return false;\n }\n\n const date = new Date(\n dateInfo.year || today.getFullYear(),\n dateInfo.month || 0,\n dateInfo.day || 1,\n dateInfo.hour || 0,\n dateInfo.minute || 0,\n dateInfo.second || 0\n );\n return date;\n};\n\nexport default {\n format,\n parse\n};\n","export const createFragment = data => {\n const tableData = Object.keys(data).reduce(\n (list, k) => (list.push({ key: k, val: data[k] }), list),\n []\n );\n const trs = tableData\n .map(({ key, val }) => {\n return `\n
\n ${key}\n ${val}\n
\n `;\n })\n .join(\"\");\n\n return `\n
\n
\n key\n value\n
\n ${trs}\n
\n `;\n};\n","/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 16:44:42\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-07-30 20:17:13\n */\nimport { Notification, Message } from \"element-ui\";\nimport { format } from \"../utils/date\";\nimport { createFragment } from \"../utils/dom\";\n\n/**\n * @desc 模拟埋点Action\n */\nexport default function trackAction(evt, addtional = {}) {\n const data = {\n evt,\n ...addtional,\n action_time: format(Date.now())\n };\n\n if (evt === \"1\") {\n Message(\"统计UVPV埋点\");\n }\n if (evt === \"2\") {\n Message({\n message: \"统计页面停留时间埋点\",\n customClass: \"message-offset\"\n });\n }\n Notification.success({\n title: \"上报数据如下:\",\n dangerouslyUseHTMLString: true,\n message: createFragment(data),\n customClass: \"notification__large\",\n position: evt === \"1\" || evt === \"2\" ? \"top-left\" : \"top-right\"\n });\n}\n","/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 17:10:31\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2020-06-04 20:20:23\n */\nimport trackAction from \"./action\";\n\nexport default {\n /**\n * @name UVPV 固定名称不支持修改\n * @desc UV、PV埋点\n * @param {Object} context 当前上下文\n */\n UVPV() {\n trackAction(\"1\");\n },\n /**\n * @name TONP 固定名称不支持修改\n * @desc 页面停留时间埋点(Time on Page)\n * @param {Object} context 当前上下文\n * @param {Timestamp} et 进入页面时间\n * @param {Timestamp} dt 离开页面时间\n */\n TONP(_, { et, dt }) {\n trackAction(\"2\", {\n stt: `${(dt - et) / 1e3}s`\n });\n },\n /**\n * @desc 测试埋点\n */\n 18015({ $route: { name } }) {\n trackAction(\"18015\", {\n source_page: name // 页面来源\n });\n },\n /**\n * @param {Object} context 当前上下文\n * @param {Object} item 事件参数\n * @param {Object} event 事件对象\n */\n 18016(\n {\n $route: { name }\n },\n { id },\n { target }\n ) {\n trackAction(\"18016\", {\n id,\n source_page: name,\n target\n });\n },\n 18017({ index, $route: { name } }) {\n trackAction(\"18017\", {\n source_page: name,\n index\n });\n },\n 18018({ rest, $route: { name } }) {\n trackAction(\"18018\", {\n source_page: name,\n rest\n });\n },\n 18019(\n {\n $route: { name }\n },\n { id },\n { target }\n ) {\n trackAction(\"18019\", {\n id,\n source_page: name,\n target\n });\n },\n 18020({ activeName, $route: { name } }) {\n trackAction(\"18020\", {\n source_page: name,\n active_name: activeName\n });\n },\n 18021({ rest, $route: { name } }) {\n trackAction(\"18021\", {\n source_page: name,\n rest\n });\n },\n 18022({ $route: { name } }) {\n trackAction(\"18022\", {\n source_page: name,\n description: \"这是一个页面初始化埋点\"\n });\n },\n 18023({ $route: { name } }) {\n trackAction(\"18023\", {\n source_page: name\n });\n },\n 18025({ rest1, $route: { name } }) {\n trackAction(\"18025\", {\n source_page: name,\n rest: rest1\n });\n },\n 18026({ rest2, $route: { name } }) {\n trackAction(\"18026\", {\n source_page: name,\n rest: rest2\n });\n },\n 18027({ $route: { name } }) {\n trackAction(\"18027\", {\n source_page: name,\n description: \"我想被曝光无数次\"\n });\n },\n 18028({ $route: { name } }) {\n trackAction(\"18028\", {\n source_page: name,\n description: \"我只想被曝光一次\"\n });\n },\n 18029({ $route: { name } }) {\n trackAction(\"18029\", {\n source_page: name,\n description: \"我也想被曝光无数次\"\n });\n }\n};\n","/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 17:01:49\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-04-14 17:12:29\n */\nimport trackEvents from \"./events\";\n\nexport { default as trackAction } from \"./action\";\n\nexport default {\n ...trackEvents\n};\n","import Vue from \"vue\";\nimport VueRouter from \"vue-router\";\nimport {\n Alert,\n Card,\n Collapse,\n CollapseItem,\n Message,\n Notification\n} from \"element-ui\";\nimport App from \"./App.vue\";\nimport Home from \"./pages/home.vue\";\nimport Started from \"./pages/started.vue\";\nimport CustomEvents from \"./pages/custom-events.vue\";\nimport TrackView from \"./pages/track-view.vue\";\nimport BlockShow from \"./pages/block-show.vue\";\nimport VueTrack from \"../\";\nimport trackEvents from \"./tracks\";\n\nVue.use(VueRouter);\nVue.use(Alert);\nVue.use(Card);\nVue.use(Collapse);\nVue.use(CollapseItem);\nVue.use(VueTrack, {\n trackEvents,\n trackEnable: {\n UVPV: \"routeUpdate\",\n TONP: true\n }\n});\n\nVue.prototype.$message = Message;\nVue.prototype.$notify = Notification;\n\nconst router = new VueRouter({\n routes: [\n {\n path: \"/\",\n name: \"HOME\",\n component: Home\n },\n {\n path: \"/started\",\n name: \"STARTED\",\n component: Started\n },\n {\n path: \"/custom-events\",\n name: \"CUSTOM_EVENTS\",\n component: CustomEvents\n },\n {\n path: \"/track-view\",\n name: \"TRACK_VIEW\",\n component: TrackView,\n meta: {\n keepAlive: true\n }\n },\n {\n path: \"/block-show\",\n name: \"BLOCK_SHOW\",\n component: BlockShow\n },\n {\n path: \"*\",\n redirect: \"/\"\n }\n ]\n});\n\n/* eslint-disable no-new */\nnew Vue({\n el: \"#app\",\n router,\n render: h => h(App)\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/dist/js/app.583f6d73.js b/docs/dist/js/app.583f6d73.js deleted file mode 100644 index ffed835..0000000 --- a/docs/dist/js/app.583f6d73.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(t){function e(e){for(var a,i,c=e[0],o=e[1],l=e[2],v=0,p=[];vclick me\n',z='\n\n',Y='\n
click me
\n',J="\nexport default {\n data: () => ({\n item: {\n id: Date.now().toString(36)\n },\n })\n}\n",Q='\n
click me
\n',X="\nexport default {\n data() {\n return {\n index: 0\n };\n },\n methods: {\n handleClickDelay() {\n this.index++;\n },\n }\n}\n",Z='\n
click me
\n',tt='\nexport default {\n data() {\n return {\n rest: null\n };\n },\n methods: {\n async handleClickAsync() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n\n this.rest = response.data;\n }\n }\n}\n',et={name:"Home",components:{Button:G,CodeSnippet:B},data:function(){return{trackClickSnippet:q,trackNativeClickSnippet:z,trackClickWithParamSnippet:Y,jsTrackClickWithParamSnippet:J,trackClickDelaySnippet:Q,trackClickAsyncSnippet:Z,jsTrackClickDelaySnippet:X,jsTrackClickAsyncSnippet:tt,item:{id:P()().toString(36)},index:0,rest:null}},methods:{handleClick:function(){this.$message.success("事件执行成功")},handleNativeEvent:function(){this.$message.success("组件原生事件执行成功")},handleClickWithParam:function(t,e){var n=e.target;this.$message.success("事件执行成功,参数为".concat(x()(t),"--").concat(n))},handleClickDelay:function(){this.index++},handleClickAsync:function(){var t=Object($["a"])(regeneratorRuntime.mark(function t(){var e;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new T.a(function(t){setTimeout(function(){t({data:"success"})},300)});case 2:e=t.sent,this.rest===e.data?this.$message.success("异步事件返回成功,但返回结果和上一次相等,埋点不会上报"):(this.rest=e.data,this.$message.success("异步事件返回成功"));case 4:case"end":return t.stop()}},t,this)}));function e(){return t.apply(this,arguments)}return e}()}},nt=et,at=Object(_["a"])(nt,S,E,!1,null,null,null),st=at.exports,rt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"page-started page"},[n("section",{staticClass:"nav"},[n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 返回\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 事件行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"CUSTOM_EVENTS"}}},[t._v("\n 自定义事件埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"TRACK_VIEW"}}},[t._v("\n 页面行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"BLOCK_SHOW"}}},[t._v("\n 区域展现埋点\n ")]),t._v(" "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/issues"}},[t._v("打开一个 issue")])],1),t._v(" "),t._m(0),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{code:t.installSnippet,lang:"shell"}}),t._v(" "),n("div",{staticClass:"plus"},[t._v("+")]),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{code:t.mainSnippet,lang:"js"}}),t._v(" "),n("div",{staticClass:"plus"},[t._v("+")]),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{code:t.eventsSnippet,lang:"js"}}),t._v(" "),n("div",{staticClass:"plus"},[t._v("+")]),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{code:t.componentSnippet,lang:"html"}})],1)])},it=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"snippets"},[n("div",{staticClass:"section-content small"},[t._v("\n v-track通过\n "),n("a",{attrs:{href:"https://cn.vuejs.org/v2/guide/custom-directive.html"}},[t._v("Vue 自定义指令")]),t._v("的方式将埋点代码与业务代码完全解耦,完整示例可参考\n "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/tree/master"}},[t._v("GitHub")])])])}],ct="\n# YARN\n$ yarn add v-track\n\n# NPM\n$ npm install v-track --save\n",ot='\nimport Vue from "vue";\nimport VTrack from "v-track";\nimport trackEvents from "./track-events";\n\nVue.use(VTrack, {\n trackEvents, // 埋点事件对象\n trackEnable: {\n UVPV: true, // 是否开启UVPV统计,v0.8.3新增routeUpdate,即在当前路由参数发生改变时埋点,默认为false\n TONP: true // 是否开启页面停留时长统计,默认为false\n }\n})\n',lt='\nimport trackAction from "./action"; // 自定义埋点上报的方法\n\nexport default {\n /**\n * @name UVPV 固定名称不支持修改\n * @desc UV、PV埋点\n * @param {Object} context 当前上下文\n */\n UVPV(_) {\n trackAction("1");\n },\n /**\n * @name TONP 固定名称不支持修改\n * @desc 页面停留时间埋点(Time on Page)\n * @param {Object} context 当前上下文\n * @param {Timestamp} et 进入页面时间\n * @param {Timestamp} dt 离开页面时间\n */\n TONP(_, { et, dt }) {\n trackAction("2", {\n stt: dt - et\n });\n },\n /**\n * @param {Object} context 当前上下文\n * @param {Object} item 事件参数\n * @param {Object} event 事件对象\n */\n 18015(\n {\n $route: { name }\n },\n { id },\n { target }\n ) {\n trackAction("18015", {\n id,\n source_page: name,\n target\n });\n },\n};\n',ut='\n\x3c!-- 页面行为埋点(track-view为v-track全局注册的组件) --\x3e\n\n\n\n\n\n\x3c!-- 事件行为埋点(DOM) --\x3e\n
\n
\n
\n
\n\n\x3c!-- 事件行为埋点(组件) --\x3e\n\n\n\n\n\n\x3c!-- 区域展现埋点(block 可以是 DOM 或者组件) --\x3e\n\n\n\n\n',vt={name:"Started",components:{CodeSnippet:B},data:function(){return{installSnippet:ct,mainSnippet:ot,eventsSnippet:lt,componentSnippet:ut}}},pt=vt,dt=Object(_["a"])(pt,rt,it,!1,null,null,null),mt=dt.exports,ht=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"page-home page"},[n("section",{staticClass:"nav"},[n("router-link",{attrs:{to:{name:"STARTED"}}},[t._v("\n 快速开始\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 事件行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 返回\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"TRACK_VIEW"}}},[t._v("\n 页面行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"BLOCK_SHOW"}}},[t._v("\n 区域展现埋点\n ")]),t._v(" "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/issues"}},[t._v("打开一个 issue")])],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个自定义事件行为埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("Button",{directives:[{name:"track",rawName:"v-track:18015.custom-event",value:t.handleCustomEvent,expression:"handleCustomEvent",arg:"18015",modifiers:{"custom-event":!0}}]})],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.ButtonComponentSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackCustomEventSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个有带参数的自定义事件埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("Button",{directives:[{name:"track",rawName:"v-track:18019.custom-event",value:t.handleCustomEventWithParam,expression:"handleCustomEventWithParam",arg:"18019",modifiers:{"custom-event":!0}}]})],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.ButtonComponentWithParamSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackCustomEventWithParamSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个发生在自定义事件之后的埋点,默认先执行埋点再执行自定义事件。如示例所示:activeName初始值为Feedback,自定义事件会更新该值,所以埋点获取到activeName的值应为当前激活面板的name",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content collapse-wrapper"},[n("el-collapse",{directives:[{name:"track",rawName:"v-track:18020.change.delay",value:t.handleChange,expression:"handleChange",arg:"18020",modifiers:{change:!0,delay:!0}}],attrs:{accordion:""},model:{value:t.activeName,callback:function(e){t.activeName=e},expression:"activeName"}},[n("el-collapse-item",{attrs:{title:"反馈 Feedback",name:"Feedback"}},[n("div",[t._v("\n 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;\n ")]),t._v(" "),n("div",[t._v("页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。")])]),t._v(" "),n("el-collapse-item",{attrs:{title:"效率 Efficiency",name:"Efficiency"}},[n("div",[t._v("简化流程:设计简洁直观的操作流程;")]),t._v(" "),n("div",[t._v("\n 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;\n ")]),t._v(" "),n("div",[t._v("\n 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。\n ")])]),t._v(" "),n("el-collapse-item",{attrs:{title:"可控 Controllability",name:"Controllability"}},[n("div",[t._v("\n 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;\n ")]),t._v(" "),n("div",[t._v("\n 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。\n ")])])],1)],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackCustomEventDelaySnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackCustomEventDelaySnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个有异步行为的自定义事件埋点。如示例所示:rest初始值为null,自定义事件会fetch为success,所以埋点获取到的rest值应该为success",closable:!1}}),n("el-alert",{attrs:{center:"",type:"warning",title:"备注:同普通DOM事件埋点一样,只有在 rest 发生变化时才会触发埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("Button",{directives:[{name:"track",rawName:"v-track:18021.custom-event.async",value:{fetchRest:t.fetchRest,rest:t.rest},expression:"{ fetchRest, rest }",arg:"18021",modifiers:{"custom-event":!0,async:!0}}]})],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackCustomEventAsyncSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackCustomEventAsyncSnippet}})],1)])},ft=[],kt='\n\x3c!-- button 组件 --\x3e\n
\n click me\n
\n',yt='\n\x3c!-- button 组件 --\x3e\n
\n click me\n
\n',gt='\n\n',Ct='\n\n',_t='\n\n ...\n ...\n ...\n\n',wt='\nexport default {\n data() {\n return {\n activeName: "Feedback",\n };\n },\n methods: {\n handleChange(val) {\n this.activeName = val;\n }\n }\n}\n',bt='\n\n',St='\nexport default {\n data() {\n return {\n rest: null\n };\n },\n methods: {\n async fetchRest() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n\n this.rest = response.data;\n }\n }\n}\n',Et={name:"CustomEvents",components:{Button:G,CodeSnippet:B},data:function(){return{ButtonComponentSnippet:kt,ButtonComponentWithParamSnippet:yt,trackCustomEventSnippet:gt,trackCustomEventWithParamSnippet:Ct,trackCustomEventDelaySnippet:_t,trackCustomEventAsyncSnippet:bt,jsTrackCustomEventDelaySnippet:wt,jsTrackCustomEventAsyncSnippet:St,item:{id:Math.random().toString(36).substr(2)},activeName:"Feedback",rest:null}},methods:{handleCustomEvent:function(){this.$message.success("自定义事件执行成功")},handleCustomEventWithParam:function(t,e){var n=e.target;this.$message.success("自定义事件执行成功,参数为".concat(x()(t),"--").concat(n))},handleChange:function(t){this.activeName=t},fetchRest:function(){var t=Object($["a"])(regeneratorRuntime.mark(function t(){var e;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new T.a(function(t){setTimeout(function(){t({data:"success"})},300)});case 2:e=t.sent,this.rest===e.data?this.$message.success("异步事件返回成功,但返回结果和上一次相等,埋点不会上报"):(this.rest=e.data,this.$message.success("异步事件返回成功"));case 4:case"end":return t.stop()}},t,this)}));function e(){return t.apply(this,arguments)}return e}()}},Ot=Et,Tt=Object(_["a"])(Ot,ht,ft,!1,null,null,null),$t=Tt.exports,jt=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"page-home page"},[n("section",{staticClass:"nav"},[n("router-link",{attrs:{to:{name:"STARTED"}}},[t._v("\n 快速开始\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 事件行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"CUSTOM_EVENTS"}}},[t._v("\n 自定义事件埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 返回\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"BLOCK_SHOW"}}},[t._v("\n 区域展现埋点\n ")]),t._v(" "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/issues"}},[t._v("打开一个 issue")])],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个页面初始化埋点",closable:!1}}),t._v(" "),n("el-alert",{attrs:{center:"",type:"warning",title:"备注:v-track指令可用于任何元素,此行为埋点建议绑定到页面的根元素或者v-track提供的track-view组件上",closable:!1}}),t._v(" "),n("div",{directives:[{name:"track",rawName:"v-track:18022",arg:"18022"}],staticClass:"section-content"})],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"配合 v-if 指令控制埋点上报次数,即 show 为真时,会再次触发埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[t.show?n("track-view",{directives:[{name:"track",rawName:"v-track:18023",arg:"18023"}]}):t._e(),t._v(" "),n("div",{staticClass:"track-button",on:{click:function(){return t.show=!t.show}}},[t._v("\n click me -> "+t._s(t.show)+"\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentVIfSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackViewComponentVIfSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个监听页面行为的埋点,同事件行为埋点一样,只有当返回结果发生变化时才会上报埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("track-view",{directives:[{name:"track",rawName:"v-track:18025.watch",value:{rest1:t.rest1},expression:"{ rest1 }",arg:"18025",modifiers:{watch:!0}}]}),t._v(" "),n("div",{staticClass:"track-button",on:{click:function(e){return t.fetchRest(!1)}}},[t._v("\n click me\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentWatchSnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackViewComponentWatchSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个监听页面行为并延时的埋点,不同于事件延时埋点,这里可通过delay设置具体的延长时间",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content"},[n("track-view",{directives:[{name:"track",rawName:"v-track:18026.watch.delay",value:{rest2:t.rest2,delay:2e3},expression:"{ rest2, delay: 2000 }",arg:"18026",modifiers:{watch:!0,delay:!0}}]}),t._v(" "),n("div",{staticClass:"track-button",on:{click:function(e){return t.fetchRest(!0)}}},[t._v("\n click me\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentWatchDelaySnippet}}),t._v(" "),n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"js",code:t.jsTrackViewComponentWatchDelaySnippet}})],1)])},xt=[],Vt="\n\n",Pt='\n\n
click me -> {{ show }}
\n',Mt="\nexport default {\n data: () => ({ show: false })\n}\n",Nt='\n\n
click me
\n',At='\nexport default {\n data: () => ({ rest: null }),\n methods: {\n async fetchRest() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n \n this.rest = response.data;\n }\n },\n}\n',Rt='\n\n
click me
\n',Wt='\nexport default {\n data: () => ({ rest: null }),\n methods: {\n async fetchRest() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n \n this.rest = response.data;\n }\n },\n}\n',Dt={name:"TrackViews",components:{CodeSnippet:B},data:function(){return{trackViewComponentSnippet:Vt,trackViewComponentVIfSnippet:Pt,jsTrackViewComponentVIfSnippet:Mt,trackViewComponentWatchSnippet:Nt,jsTrackViewComponentWatchSnippet:At,trackViewComponentWatchDelaySnippet:Rt,jsTrackViewComponentWatchDelaySnippet:Wt,show:!1,rest1:null,rest2:null}},methods:{fetchRest:function(){var t=Object($["a"])(regeneratorRuntime.mark(function t(e){var n;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new T.a(function(t){setTimeout(function(){t({data:"success"})},300)});case 2:n=t.sent,!e&&this.rest1===n.data||e&&this.rest2===n.data?this.$message.success("异步事件返回成功,但返回结果和上一次相等,埋点不会上报"):(this.$message.success("异步事件返回成功"),e?this.rest2=n.data:this.rest1=n.data);case 4:case"end":return t.stop()}},t,this)}));function e(e){return t.apply(this,arguments)}return e}()}},Ht=Dt,Bt=Object(_["a"])(Ht,jt,xt,!1,null,null,null),Ut=Bt.exports,It=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"page-home page"},[n("section",{staticClass:"nav"},[n("router-link",{attrs:{to:{name:"STARTED"}}},[t._v("\n 快速开始\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 事件行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"CUSTOM_EVENTS"}}},[t._v("\n 自定义事件埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"TRACK_VIEW"}}},[t._v("\n 页面行为埋点\n ")]),t._v(" "),n("router-link",{attrs:{to:{name:"HOME"}}},[t._v("\n 返回\n ")]),t._v(" "),n("a",{attrs:{href:"https://github.com/l-hammer/v-track/issues"}},[t._v("打开一个 issue")])],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个只会上报一次的区域展现埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content large"},[n("el-card",{directives:[{name:"track",rawName:"v-track:18028.show.once",arg:"18028",modifiers:{show:!0,once:!0}}],attrs:{shadow:"always"}},[t._v("\n 我只想被曝光一次\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentOnceSnippet}})],1),t._v(" "),n("section",{staticClass:"demo"},[n("el-alert",{attrs:{center:"",type:"info",title:"这是一个会连续上报的区域展现埋点",closable:!1}}),t._v(" "),n("div",{staticClass:"section-content large"},[n("el-card",{directives:[{name:"track",rawName:"v-track:18027.show",arg:"18027",modifiers:{show:!0}}],attrs:{shadow:"always"}},[t._v("\n 我想被曝光无数次\n ")])],1)],1),t._v(" "),n("section",{staticClass:"snippets"},[n("CodeSnippet",{staticClass:"snippet",attrs:{lang:"html",code:t.trackViewComponentSnippet}})],1)])},Lt=[],Ft='\n我想被曝光无数次\n',Kt='\n我只想被曝光一次\n',Gt={name:"BlockShow",components:{CodeSnippet:B},data:function(){return{trackViewComponentSnippet:Ft,trackViewComponentOnceSnippet:Kt,show:!1,rest1:null,rest2:null}},methods:{fetchRest:function(){var t=Object($["a"])(regeneratorRuntime.mark(function t(e){var n;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new T.a(function(t){setTimeout(function(){t({data:"success"})},300)});case 2:n=t.sent,!e&&this.rest1===n.data||e&&this.rest2===n.data?this.$message.success("异步事件返回成功,但返回结果和上一次相等,埋点不会上报"):(this.$message.success("异步事件返回成功"),e?this.rest2=n.data:this.rest1=n.data);case 4:case"end":return t.stop()}},t,this)}));function e(e){return t.apply(this,arguments)}return e}()}},qt=Gt,zt=Object(_["a"])(qt,It,Lt,!1,null,null,null),Yt=zt.exports;function Jt(t){return Jt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jt(t)}function Qt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Xt(t,e){for(var n=0;n=0||(s[n]=t[n]);return s}function ae(t,e){if(null==t)return{};var n,a,s=ne(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(s[n]=t[n])}return s}function se(t,e){return ce(t)||le(t,e)||ve()}function re(t){return ie(t)||oe(t)||ue()}function ie(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0&&void 0!==arguments[0]?arguments[0]:{};return[Object.values(t),Object.keys(t)]}function fe(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200;return function(){for(var a=this,s=arguments.length,r=new Array(s),i=0;i0&&t.right>0&&t.top2&&void 0!==arguments[2]?arguments[2]:window;if(Qt(this,t),!we(e))throw new Error("not an element node");this.ele=e,this.ref=n,this.refWin=a,this.started=!1,this.prevPerc=null,this.listeners={},this.removeScrollLisener=null,this.init()}return Zt(t,[{key:"init",value:function(){var t=this;if(!this.started){var e=fe(this.visibilitychange.bind(this));e(),this.removeScrollLisener=function(e){return t.ref?t.ref.$on("scroll",e):(t.refWin.addEventListener("scroll",e,!1),function(){return t.refWin.removeEventListener("scroll",e,!1)})}(e),this.started=!0}}},{key:"viewport",value:function(){var t=this.refWin;return{height:t.innerHeight,width:t.innerWidth}}},{key:"$on",value:function(t,e){var n=this.listeners[t]||(this.listeners[t]=[]);return n.push(e),this}},{key:"$off",value:function(t,e){if(e){var n,a=this.listeners[t],s=a.length;while(s--)if(n=a[s],n===e||n.cbk===e){a.splice(s,1);break}return this}}},{key:"$once",value:function(t,e){var n=this,a=function a(){n.$off(t,a);for(var s=arguments.length,r=new Array(s),i=0;i1?n-1:0),s=1;s=0?n=Math.min(t.height,e.height-t.top):t.bottom>0&&(n=Math.min(e.height,t.bottom)),t.left>=0?a=Math.min(t.width,e.width-t.left):t.right>0&&(a=Math.min(e.width,t.right)),s=n*a/(t.height*t.width),1!==this.prevPerc&&1===s&&(this.$emit("fullyvisible"),this.prevPerc=s)}},{key:"destroy",value:function(){pe(this.removeScrollLisener)&&this.removeScrollLisener()}}]),t}(),Te=["async","delay","watch","show","once","custom"];function $e(t,e,n,a){var s=this,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};t.$unwatch=a.$watch(function(){return a[e]},function(e,a){e!==a&&(r.immediate||t.contains(s.target))&&n(),s.target=null})}function je(t,e,n,a,s,r){var i=this,c=e.value,o=e.arg,l=e.modifiers,u=e.rawName,v=n.context,p=n.componentInstance;if(!r[o])throw new Error("tracking event does not exist");var d=[],m=r[o].bind(null,v),h=function(e,n,a){return $e.call(i,t,e,n,v,a)},f=function(){for(var t=arguments.length,e=new Array(t),n=0;n1?e-1:0),a=1;a68?a-1:a).concat(e)}],M:[Ae,function(t,e){t.month=e-1}],d:[Ae,function(t,e){t.day=e}],h:[Ae,function(t,e){t.hour=e}],m:[Ae,function(t,e){t.minute=e}],s:[Ae,function(t,e){t.second=e}]};Ie.MM=Ie.M,Ie.dd=Ie.d,Ie.hh=Ie.h,Ie.H=Ie.h,Ie.HH=Ie.h,Ie.mm=Ie.m,Ie.ss=Ie.s;var Le=n("a4bb"),Fe=n.n(Le),Ke=function(t){var e=Fe()(t).reduce(function(e,n){return e.push({key:n,val:t[n]}),e},[]),n=e.map(function(t){var e=t.key,n=t.val;return'\n
\n '.concat(e,"\n ").concat(n,"\n
\n ")}).join("");return'\n
\n
\n key\n value\n
\n '.concat(n,"\n
\n ")};function Ge(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(Ne["a"])({evt:t},e,{action_time:Ue(P()())});"1"===t&&i()("统计UVPV埋点"),"2"===t&&i()({message:"统计页面停留时间埋点",customClass:"message-offset"}),s.a.success({title:"上报数据如下:",dangerouslyUseHTMLString:!0,message:Ke(n),customClass:"notification__large",position:"1"===t||"2"===t?"top-left":"top-right"})}var qe={UVPV:function(){Ge("1")},TONP:function(t,e){var n=e.et,a=e.dt;Ge("2",{stt:"".concat((a-n)/1e3,"s")})},18015:function(t){var e=t.$route.name;Ge("18015",{source_page:e})},18016:function(t,e,n){var a=t.$route.name,s=e.id,r=n.target;Ge("18016",{id:s,source_page:a,target:r})},18017:function(t){var e=t.index,n=t.$route.name;Ge("18017",{source_page:n,index:e})},18018:function(t){var e=t.rest,n=t.$route.name;Ge("18018",{source_page:n,rest:e})},18019:function(t,e,n){var a=t.$route.name,s=e.id,r=n.target;Ge("18019",{id:s,source_page:a,target:r})},18020:function(t){var e=t.activeName,n=t.$route.name;Ge("18020",{source_page:n,active_name:e})},18021:function(t){var e=t.rest,n=t.$route.name;Ge("18021",{source_page:n,rest:e})},18022:function(t){var e=t.$route.name;Ge("18022",{source_page:e,description:"这是一个页面初始化埋点"})},18023:function(t){var e=t.$route.name;Ge("18023",{source_page:e})},18025:function(t){var e=t.rest1,n=t.$route.name;Ge("18025",{source_page:n,rest:e})},18026:function(t){var e=t.rest2,n=t.$route.name;Ge("18026",{source_page:n,rest:e})},18027:function(t){var e=t.$route.name;Ge("18027",{source_page:e,description:"我想被曝光无数次"})},18028:function(t){var e=t.$route.name;Ge("18028",{source_page:e,description:"我只想被曝光一次"})}},ze=Object(Ne["a"])({},qe);h["default"].use(f["a"]),h["default"].use(m.a),h["default"].use(p.a),h["default"].use(u.a),h["default"].use(o.a),h["default"].use(Me,{trackEvents:ze,trackEnable:{UVPV:"routeUpdate",TONP:!0}}),h["default"].prototype.$message=i.a,h["default"].prototype.$notify=s.a;var Ye=new f["a"]({routes:[{path:"/",name:"HOME",component:st},{path:"/started",name:"STARTED",component:mt},{path:"/custom-events",name:"CUSTOM_EVENTS",component:$t},{path:"/track-view",name:"TRACK_VIEW",component:Ut,meta:{keepAlive:!0}},{path:"/block-show",name:"BLOCK_SHOW",component:Yt},{path:"*",redirect:"/"}]});new h["default"]({el:"#app",router:Ye,render:function(t){return t(b)}})}}); -//# sourceMappingURL=app.583f6d73.js.map \ No newline at end of file diff --git a/docs/dist/js/app.583f6d73.js.map b/docs/dist/js/app.583f6d73.js.map deleted file mode 100644 index 6eb1095..0000000 --- a/docs/dist/js/app.583f6d73.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./docs/App.vue?5ff7","webpack:///./docs/components/code-snippet.vue?2fbf","webpack:///./docs/App.vue?24fb","webpack:///docs/App.vue","webpack:///./docs/App.vue?56fd","webpack:///./docs/App.vue","webpack:///./docs/pages/home.vue?8db1","webpack:///./docs/components/code-snippet.vue?5c29","webpack:///docs/components/code-snippet.vue","webpack:///./docs/components/code-snippet.vue?f86d","webpack:///./docs/components/code-snippet.vue","webpack:///./docs/components/button.vue?1c4f","webpack:///docs/components/button.vue","webpack:///./docs/components/button.vue?e1d6","webpack:///./docs/components/button.vue","webpack:///docs/pages/home.vue","webpack:///./docs/pages/home.vue?abc2","webpack:///./docs/pages/home.vue","webpack:///./docs/pages/started.vue?0df5","webpack:///docs/pages/started.vue","webpack:///./docs/pages/started.vue?30ab","webpack:///./docs/pages/started.vue","webpack:///./docs/pages/custom-events.vue?7f6f","webpack:///docs/pages/custom-events.vue","webpack:///./docs/pages/custom-events.vue?d644","webpack:///./docs/pages/custom-events.vue","webpack:///./docs/pages/track-view.vue?21d5","webpack:///docs/pages/track-view.vue","webpack:///./docs/pages/track-view.vue?a27d","webpack:///./docs/pages/track-view.vue","webpack:///./docs/pages/block-show.vue?278d","webpack:///docs/pages/block-show.vue","webpack:///./docs/pages/block-show.vue?91b9","webpack:///./docs/pages/block-show.vue","webpack:///./dist/v-track.esm.js","webpack:///./docs/utils/date.js","webpack:///./docs/utils/dom.js","webpack:///./docs/tracks/action.js","webpack:///./docs/tracks/events.js","webpack:///./docs/tracks/index.js","webpack:///./docs/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","app","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_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_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__","_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_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default","_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_code_snippet_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__","_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_code_snippet_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default","Appvue_type_template_id_1e5880c8_render","_vm","this","_h","$createElement","_c","_self","attrs","id","_m","_v","$route","meta","_e","keepAlive","staticRenderFns","staticClass","href","alt","src","Appvue_type_script_lang_js_","docs_Appvue_type_script_lang_js_","component","componentNormalizer","App","homevue_type_template_id_ab4b4114_render","to","center","type","title","closable","directives","rawName","expression","arg","modifiers","click","lang","code","trackClickSnippet","native","trackNativeClickSnippet","handleClickWithParam","item","trackClickWithParamSnippet","jsTrackClickWithParamSnippet","delay","trackClickDelaySnippet","jsTrackClickDelaySnippet","handleClickAsync","rest","async","trackClickAsyncSnippet","jsTrackClickAsyncSnippet","homevue_type_template_id_ab4b4114_staticRenderFns","code_snippetvue_type_template_id_4db4304e_render","_s","_l","domProps","innerHTML","code_snippetvue_type_template_id_4db4304e_staticRenderFns","code_snippetvue_type_script_lang_js_","props","String","computed","highlighted","lib_default","a","highlight","trim","lineCount","str","components_code_snippetvue_type_script_lang_js_","code_snippet_component","code_snippet","buttonvue_type_template_id_60c8796f_render","on","e","$emit","buttonvue_type_template_id_60c8796f_staticRenderFns","buttonvue_type_script_lang_js_","now_default","toString","components_buttonvue_type_script_lang_js_","button_component","components_button","homevue_type_script_lang_js_","components","Button","CodeSnippet","index","methods","handleClick","$message","success","handleNativeEvent","_ref","target","concat","stringify_default","handleClickDelay","_handleClickAsync","asyncToGenerator","regeneratorRuntime","mark","_callee","response","wrap","_context","prev","next","promise_default","resolve","setTimeout","sent","stop","arguments","pages_homevue_type_script_lang_js_","home_component","home","startedvue_type_template_id_3c1ba4f4_render","installSnippet","mainSnippet","eventsSnippet","componentSnippet","startedvue_type_template_id_3c1ba4f4_staticRenderFns","startedvue_type_script_lang_js_","pages_startedvue_type_script_lang_js_","started_component","started","custom_eventsvue_type_template_id_3314ed1c_render","custom-event","ButtonComponentSnippet","trackCustomEventSnippet","ButtonComponentWithParamSnippet","trackCustomEventWithParamSnippet","change","accordion","model","callback","$$v","activeName","trackCustomEventDelaySnippet","jsTrackCustomEventDelaySnippet","fetchRest","trackCustomEventAsyncSnippet","jsTrackCustomEventAsyncSnippet","custom_eventsvue_type_template_id_3314ed1c_staticRenderFns","custom_eventsvue_type_script_lang_js_","Math","random","substr","handleCustomEvent","handleCustomEventWithParam","handleChange","val","_fetchRest","pages_custom_eventsvue_type_script_lang_js_","custom_events_component","custom_events","track_viewvue_type_template_id_0b4ba76a_render","trackViewComponentSnippet","show","trackViewComponentVIfSnippet","jsTrackViewComponentVIfSnippet","rest1","watch","$event","trackViewComponentWatchSnippet","jsTrackViewComponentWatchSnippet","rest2","trackViewComponentWatchDelaySnippet","jsTrackViewComponentWatchDelaySnippet","track_viewvue_type_template_id_0b4ba76a_staticRenderFns","track_viewvue_type_script_lang_js_","_x","pages_track_viewvue_type_script_lang_js_","track_view_component","track_view","block_showvue_type_template_id_3934af0c_render","once","shadow","trackViewComponentOnceSnippet","block_showvue_type_template_id_3934af0c_staticRenderFns","block_showvue_type_script_lang_js_trackViewComponentSnippet","block_showvue_type_script_lang_js_","pages_block_showvue_type_script_lang_js_","block_show_component","block_show","_typeof","obj","iterator","constructor","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","configurable","writable","_createClass","protoProps","staticProps","_defineProperty","_objectSpread","source","ownKeys","keys","getOwnPropertySymbols","filter","sym","getOwnPropertyDescriptor","forEach","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","arr2","iter","from","_arr","_n","_d","undefined","_i","done","err","isFun","v","isUndef","isDef","zipArray","values","debounce","fn","timeoutId","ms","_this","_len","args","_key","clearTimeout","_exactMatch","mdfs","vals","every","includes","_partialMatch","some","sameVnode","b","tag","isComment","exactlySameVnode","vnode","oldVnode","oldCh","children","ch","text","checkFun","Error","isElement","ele","nodeType","getStylePropValue","prop","getComputedStyle","getPropertyValue","isInViewport","rect","viewport","width","height","bottom","right","top","left","isVisible","document","parentNode","parent","visibility","display","VisMonitor","ref","refwin","refWin","prevPerc","listeners","removeScrollLisener","init","listener","visibilitychange","$on","addEventListener","removeEventListener","win","innerHeight","innerWidth","evt","cbk","queue","_this2","$off","_this3","_len2","_key2","sub","getBoundingClientRect","view","vh","vw","perc","min","MODIFIERS","_watcher","el","exp","ctt","ops","$unwatch","$watch","nv","ov","immediate","contains","_ref2","_","__","events","context","componentInstance","tck","watcher","exactMatch","partialMatch","$timer","_exp","pop","visible","$el","_events$id","_zipArray","_zipArray2","_args","_tck","custom","$visMonitor","vm","$refs","$once","_events$id2","_zipArray3","_zipArray4","_args2","_exp2","reverse","$listener","_args3","_keys","_fn","_exp3","eventName","_zipArray5","_zipArray6","_events$id3","_ref3","_len3","_key3","updated","_len4","_key4","unbind","destroy","VTrack","installed","Vue","trackEvents","_ref$trackEnable","trackEnable","UVPV","TONP","TRACK_TONP","ctx","et","dt","Date","now","directive","_hooks$bind","componentUpdated","_hooks$updated","_hooks$unbind","render","h","style","mixin","PAGE_ENTER_TIME","created","onbeforeunload","beforeRouteEnter","beforeRouteUpdate","beforeRouteLeave","v_track_esm","twoDigits","fourDigits","token","masks","default","date","datetime","time","year","enDate","cnDate","pad","len","formatFlags","yyyy","dateObj","getFullYear","yy","M","getMonth","MM","getDate","dd","getHours","hh","H","HH","getMinutes","mm","getSeconds","ss","format","mask","isNaN","getTime","replace","$0","parseFlags","da","cent","month","day","hour","minute","second","createFragment","tableData","keys_default","reduce","list","k","trs","map","join","trackAction","addtional","objectSpread","action_time","lib_message_default","message","customClass","lib_notification_default","dangerouslyUseHTMLString","position","stt","18015","source_page","18016","_ref4","_ref5","18017","_ref6","18018","_ref7","18019","_ref8","_ref9","_ref10","18020","_ref11","active_name","18021","_ref12","18022","_ref13","description","18023","_ref14","18025","_ref15","18026","_ref16","18027","_ref17","18028","_ref18","tracks","use","VueRouter","lib_alert_default","lib_card_default","lib_collapse_default","lib_collapse_item_default","VueTrack","$notify","router","routes","path","Home","Started","CustomEvents","TrackView","BlockShow","redirect"],"mappings":"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","file":"js/app.583f6d73.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"dist/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"fc11\",\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\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!./App.vue?vue&type=style&index=0&lang=scss&\"; 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!./App.vue?vue&type=style&index=0&lang=scss&\"","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!./code-snippet.vue?vue&type=style&index=0&lang=scss&\"; 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!./code-snippet.vue?vue&type=style&index=0&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_vm._m(0),_vm._v(\" \"),_c('keep-alive',[(_vm.$route.meta.keepAlive)?_c('router-view'):_vm._e()],1),_vm._v(\" \"),(!_vm.$route.meta.keepAlive)?_c('router-view'):_vm._e(),_vm._v(\" \"),_vm._m(1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',[_c('h1',[_vm._v(\"v-track\")]),_vm._v(\" \"),_c('div',{staticClass:\"command\"},[_vm._v(\"yarn add v-track or npm add v-track --save\")]),_vm._v(\" \"),_c('nav',[_c('a',{attrs:{\"href\":\"https://travis-ci.org/l-hammer/v-track\"}},[_c('img',{attrs:{\"alt\":\"Travis (.org) branch\",\"src\":\"https://img.shields.io/travis/l-hammer/v-track/master.svg?logoColor=%23666666&style=flat-square\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://unpkg.com/v-track/dist/v-track.min.js\"}},[_c('img',{attrs:{\"src\":\"http://img.badgesize.io/https://unpkg.com/v-track/dist/v-track.min.js?compression=gzip&style=flat-square\",\"alt\":\"Gzip Size\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://www.npmjs.com/package/v-track\"}},[_c('img',{attrs:{\"src\":\"https://img.shields.io/npm/v/v-track.svg?colorB=brightgreen&style=flat-square\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/tree/master/tests/unit\"}},[_c('img',{attrs:{\"src\":\"https://img.shields.io/badge/tested_with-jest-99424f.svg?style=flat-square\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"http://hits.dwyl.io/l-hammer/v-track\",\"alt\":\"hit count\"}},[_c('img',{attrs:{\"src\":\"http://hits.dwyl.io/l-hammer/v-track.svg\"}})]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track\"}},[_c('img',{attrs:{\"src\":\"https://img.shields.io/github/stars/l-hammer/v-track.svg?style=social&label=Star\"}})])]),_vm._v(\" \"),_c('div',{staticClass:\"description\"},[_vm._v(\"\\n 🕹一个基于Vue指令实现的埋点插件~\\n \")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"footer\"},[_c('div',{staticClass:\"section-content mini\"},[_vm._v(\"\\n Copyright © 2019-present LHammer\\n \")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1e5880c8&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-home page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'STARTED' }}},[_vm._v(\"\\n 快速开始\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'CUSTOM_EVENTS' }}},[_vm._v(\"\\n 自定义事件埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'TRACK_VIEW' }}},[_vm._v(\"\\n 页面行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'BLOCK_SHOW' }}},[_vm._v(\"\\n 区域展现埋点\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个点击事件行为的埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('div',{directives:[{name:\"track\",rawName:\"v-track:18015.click\",value:(_vm.handleClick),expression:\"handleClick\",arg:\"18015\",modifiers:{\"click\":true}}],staticClass:\"track-button\"},[_vm._v(\"\\n click me\\n \")])])],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackClickSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"通过增加 .native 修饰符,我们可以监听组件原生click事件行为的埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('Button',{directives:[{name:\"track\",rawName:\"v-track:18015.click.native\",value:(_vm.handleNativeEvent),expression:\"handleNativeEvent\",arg:\"18015\",modifiers:{\"click\":true,\"native\":true}}]})],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackNativeClickSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这个一个带参数点击事件行为的埋点,默认最后一个参数为 event 事件对象\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('div',{directives:[{name:\"track\",rawName:\"v-track:18016.click\",value:({ handleClickWithParam: _vm.handleClickWithParam, item: _vm.item }),expression:\"{ handleClickWithParam, item }\",arg:\"18016\",modifiers:{\"click\":true}}],staticClass:\"track-button\"},[_vm._v(\"\\n click me\\n \")])])],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackClickWithParamSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackClickWithParamSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个发生在事件之后的埋点,默认先执行埋点再执行事件,如示例所示:index初始值为0,点击事件会将index加1,所以埋点获取到的index值应该为1,依次点击则累加\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('div',{directives:[{name:\"track\",rawName:\"v-track:18017.click.delay\",value:(_vm.handleClickDelay),expression:\"handleClickDelay\",arg:\"18017\",modifiers:{\"click\":true,\"delay\":true}}],staticClass:\"track-button\"},[_vm._v(\"\\n click me\\n \")])])],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackClickDelaySnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackClickDelaySnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个有异步行为的事件埋点,如示例所示:rest 初始值为 null,点击事件会 fetch 为 success,所以埋点获取到的 rest 值应该为 success\",\"closable\":false}}),_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"warning\",\"title\":\"备注:①修饰符 async 是基于 Vue 实例提供的 vm.$watch 方法,所以只有在返回结果 rest 发生变化时才会触发埋点;②当有多个参数时,.async 会把最后一个参数当做监听对象\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('div',{directives:[{name:\"track\",rawName:\"v-track:18018.click.async\",value:({ handleClickAsync: _vm.handleClickAsync, rest: _vm.rest }),expression:\"{ handleClickAsync, rest }\",arg:\"18018\",modifiers:{\"click\":true,\"async\":true}}],staticClass:\"track-button\"},[_vm._v(\"\\n click me\\n \")])])],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackClickAsyncSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackClickAsyncSnippet}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"code-snippet\"},[_c('div',{staticClass:\"language\"},[_vm._v(_vm._s(_vm.lang))]),_vm._v(\" \"),_c('div',{staticClass:\"line-numbers\"},_vm._l((_vm.lineCount),function(n){return _c('div',{key:n,staticClass:\"line-number\"},[_vm._v(_vm._s(n))])}),0),_vm._v(\" \"),_c('div',{staticClass:\"render\",domProps:{\"innerHTML\":_vm._s(_vm.result)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./code-snippet.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./code-snippet.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./code-snippet.vue?vue&type=template&id=4db4304e&\"\nimport script from \"./code-snippet.vue?vue&type=script&lang=js&\"\nexport * from \"./code-snippet.vue?vue&type=script&lang=js&\"\nimport style0 from \"./code-snippet.vue?vue&type=style&index=0&lang=scss&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"track-button\",on:{\"click\":function (e) { return _vm.$emit('custom-event', _vm.item, e); }}},[_vm._v(\"\\n click me\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./button.vue?vue&type=template&id=60c8796f&\"\nimport script from \"./button.vue?vue&type=script&lang=js&\"\nexport * from \"./button.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./home.vue?vue&type=template&id=ab4b4114&\"\nimport script from \"./home.vue?vue&type=script&lang=js&\"\nexport * from \"./home.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-started page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 返回\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'CUSTOM_EVENTS' }}},[_vm._v(\"\\n 自定义事件埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'TRACK_VIEW' }}},[_vm._v(\"\\n 页面行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'BLOCK_SHOW' }}},[_vm._v(\"\\n 区域展现埋点\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"code\":_vm.installSnippet,\"lang\":\"shell\"}}),_vm._v(\" \"),_c('div',{staticClass:\"plus\"},[_vm._v(\"+\")]),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"code\":_vm.mainSnippet,\"lang\":\"js\"}}),_vm._v(\" \"),_c('div',{staticClass:\"plus\"},[_vm._v(\"+\")]),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"code\":_vm.eventsSnippet,\"lang\":\"js\"}}),_vm._v(\" \"),_c('div',{staticClass:\"plus\"},[_vm._v(\"+\")]),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"code\":_vm.componentSnippet,\"lang\":\"html\"}})],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"snippets\"},[_c('div',{staticClass:\"section-content small\"},[_vm._v(\"\\n v-track通过\\n \"),_c('a',{attrs:{\"href\":\"https://cn.vuejs.org/v2/guide/custom-directive.html\"}},[_vm._v(\"Vue 自定义指令\")]),_vm._v(\"的方式将埋点代码与业务代码完全解耦,完整示例可参考\\n \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/tree/master\"}},[_vm._v(\"GitHub\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./started.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./started.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./started.vue?vue&type=template&id=3c1ba4f4&\"\nimport script from \"./started.vue?vue&type=script&lang=js&\"\nexport * from \"./started.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-home page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'STARTED' }}},[_vm._v(\"\\n 快速开始\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 返回\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'TRACK_VIEW' }}},[_vm._v(\"\\n 页面行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'BLOCK_SHOW' }}},[_vm._v(\"\\n 区域展现埋点\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个自定义事件行为埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('Button',{directives:[{name:\"track\",rawName:\"v-track:18015.custom-event\",value:(_vm.handleCustomEvent),expression:\"handleCustomEvent\",arg:\"18015\",modifiers:{\"custom-event\":true}}]})],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.ButtonComponentSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackCustomEventSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个有带参数的自定义事件埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('Button',{directives:[{name:\"track\",rawName:\"v-track:18019.custom-event\",value:(_vm.handleCustomEventWithParam),expression:\"handleCustomEventWithParam\",arg:\"18019\",modifiers:{\"custom-event\":true}}]})],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.ButtonComponentWithParamSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackCustomEventWithParamSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个发生在自定义事件之后的埋点,默认先执行埋点再执行自定义事件。如示例所示:activeName初始值为Feedback,自定义事件会更新该值,所以埋点获取到activeName的值应为当前激活面板的name\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content collapse-wrapper\"},[_c('el-collapse',{directives:[{name:\"track\",rawName:\"v-track:18020.change.delay\",value:(_vm.handleChange),expression:\"handleChange\",arg:\"18020\",modifiers:{\"change\":true,\"delay\":true}}],attrs:{\"accordion\":\"\"},model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-collapse-item',{attrs:{\"title\":\"反馈 Feedback\",\"name\":\"Feedback\"}},[_c('div',[_vm._v(\"\\n 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;\\n \")]),_vm._v(\" \"),_c('div',[_vm._v(\"页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。\")])]),_vm._v(\" \"),_c('el-collapse-item',{attrs:{\"title\":\"效率 Efficiency\",\"name\":\"Efficiency\"}},[_c('div',[_vm._v(\"简化流程:设计简洁直观的操作流程;\")]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;\\n \")]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。\\n \")])]),_vm._v(\" \"),_c('el-collapse-item',{attrs:{\"title\":\"可控 Controllability\",\"name\":\"Controllability\"}},[_c('div',[_vm._v(\"\\n 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;\\n \")]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。\\n \")])])],1)],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackCustomEventDelaySnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackCustomEventDelaySnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个有异步行为的自定义事件埋点。如示例所示:rest初始值为null,自定义事件会fetch为success,所以埋点获取到的rest值应该为success\",\"closable\":false}}),_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"warning\",\"title\":\"备注:同普通DOM事件埋点一样,只有在 rest 发生变化时才会触发埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('Button',{directives:[{name:\"track\",rawName:\"v-track:18021.custom-event.async\",value:({ fetchRest: _vm.fetchRest, rest: _vm.rest }),expression:\"{ fetchRest, rest }\",arg:\"18021\",modifiers:{\"custom-event\":true,\"async\":true}}]})],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackCustomEventAsyncSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackCustomEventAsyncSnippet}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom-events.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom-events.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./custom-events.vue?vue&type=template&id=3314ed1c&\"\nimport script from \"./custom-events.vue?vue&type=script&lang=js&\"\nexport * from \"./custom-events.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-home page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'STARTED' }}},[_vm._v(\"\\n 快速开始\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'CUSTOM_EVENTS' }}},[_vm._v(\"\\n 自定义事件埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 返回\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'BLOCK_SHOW' }}},[_vm._v(\"\\n 区域展现埋点\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个页面初始化埋点\",\"closable\":false}}),_vm._v(\" \"),_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"warning\",\"title\":\"备注:v-track指令可用于任何元素,此行为埋点建议绑定到页面的根元素或者v-track提供的track-view组件上\",\"closable\":false}}),_vm._v(\" \"),_c('div',{directives:[{name:\"track\",rawName:\"v-track:18022\",arg:\"18022\"}],staticClass:\"section-content\"})],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"配合 v-if 指令控制埋点上报次数,即 show 为真时,会再次触发埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[(_vm.show)?_c('track-view',{directives:[{name:\"track\",rawName:\"v-track:18023\",arg:\"18023\"}]}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"track-button\",on:{\"click\":function () { return (_vm.show = !_vm.show); }}},[_vm._v(\"\\n click me -> \"+_vm._s(_vm.show)+\"\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentVIfSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackViewComponentVIfSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个监听页面行为的埋点,同事件行为埋点一样,只有当返回结果发生变化时才会上报埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('track-view',{directives:[{name:\"track\",rawName:\"v-track:18025.watch\",value:({ rest1: _vm.rest1 }),expression:\"{ rest1 }\",arg:\"18025\",modifiers:{\"watch\":true}}]}),_vm._v(\" \"),_c('div',{staticClass:\"track-button\",on:{\"click\":function($event){return _vm.fetchRest(false)}}},[_vm._v(\"\\n click me\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentWatchSnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackViewComponentWatchSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个监听页面行为并延时的埋点,不同于事件延时埋点,这里可通过delay设置具体的延长时间\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content\"},[_c('track-view',{directives:[{name:\"track\",rawName:\"v-track:18026.watch.delay\",value:({ rest2: _vm.rest2, delay: 2000 }),expression:\"{ rest2, delay: 2000 }\",arg:\"18026\",modifiers:{\"watch\":true,\"delay\":true}}]}),_vm._v(\" \"),_c('div',{staticClass:\"track-button\",on:{\"click\":function($event){return _vm.fetchRest(true)}}},[_vm._v(\"\\n click me\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentWatchDelaySnippet}}),_vm._v(\" \"),_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"js\",\"code\":_vm.jsTrackViewComponentWatchDelaySnippet}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./track-view.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./track-view.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./track-view.vue?vue&type=template&id=0b4ba76a&\"\nimport script from \"./track-view.vue?vue&type=script&lang=js&\"\nexport * from \"./track-view.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page-home page\"},[_c('section',{staticClass:\"nav\"},[_c('router-link',{attrs:{\"to\":{ name: 'STARTED' }}},[_vm._v(\"\\n 快速开始\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 事件行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'CUSTOM_EVENTS' }}},[_vm._v(\"\\n 自定义事件埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'TRACK_VIEW' }}},[_vm._v(\"\\n 页面行为埋点\\n \")]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":{ name: 'HOME' }}},[_vm._v(\"\\n 返回\\n \")]),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"https://github.com/l-hammer/v-track/issues\"}},[_vm._v(\"打开一个 issue\")])],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个只会上报一次的区域展现埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content large\"},[_c('el-card',{directives:[{name:\"track\",rawName:\"v-track:18028.show.once\",arg:\"18028\",modifiers:{\"show\":true,\"once\":true}}],attrs:{\"shadow\":\"always\"}},[_vm._v(\"\\n 我只想被曝光一次\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentOnceSnippet}})],1),_vm._v(\" \"),_c('section',{staticClass:\"demo\"},[_c('el-alert',{attrs:{\"center\":\"\",\"type\":\"info\",\"title\":\"这是一个会连续上报的区域展现埋点\",\"closable\":false}}),_vm._v(\" \"),_c('div',{staticClass:\"section-content large\"},[_c('el-card',{directives:[{name:\"track\",rawName:\"v-track:18027.show\",arg:\"18027\",modifiers:{\"show\":true}}],attrs:{\"shadow\":\"always\"}},[_vm._v(\"\\n 我想被曝光无数次\\n \")])],1)],1),_vm._v(\" \"),_c('section',{staticClass:\"snippets\"},[_c('CodeSnippet',{staticClass:\"snippet\",attrs:{\"lang\":\"html\",\"code\":_vm.trackViewComponentSnippet}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./block-show.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./block-show.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./block-show.vue?vue&type=template&id=3934af0c&\"\nimport script from \"./block-show.vue?vue&type=script&lang=js&\"\nexport * from \"./block-show.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\n/*\n * @Author: 宋慧武\n * @Date: 2019-04-08 11:13:34\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-08-05 15:31:00\n */\n\n/**\n * @desc 判断给定变量是否为一个函数\n *\n * @param {*} v\n * @return {Boolean}\n */\nvar isFun = function isFun(v) {\n return typeof v === \"function\" || false;\n};\n/**\n * @desc 判断给定变量是否是未定义\n *\n * @param {*} v\n */\n\nvar isUndef = function isUndef(v) {\n return v === undefined || v === null;\n};\n/**\n * @desc 判断给定变量是否是定义\n *\n * @param {*} v\n */\n\nvar isDef = function isDef(v) {\n return v !== undefined && v !== null;\n};\n/**\n * @desc 获取对象的键值\n *\n * @param {Object} value\n * @returns {Array} [keys, values]\n */\n\nfunction zipArray() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return [Object.values(value), Object.keys(value)];\n}\n/**\n * @desc 防抖函数,至少间隔200毫秒执行一次\n *\n * @param {Function} fn callback\n * @param {Number} [ms=200] 默认200毫秒\n * @returns {Function}\n */\n\nfunction debounce(fn) {\n var ms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 200;\n var timeoutId;\n return function () {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () {\n return fn.apply(_this, args);\n }, ms);\n };\n}\n/**\n * @desc 判断给定变量是否完全匹配目标数组\n *\n * @param {String[]} mdfs 目标数组\n * @param {String} vals\n * @returns {Boolean}\n */\n\nfunction _exactMatch(mdfs, vals) {\n var keys = Object.keys(mdfs);\n return keys.length === vals.length && vals.every(function (v) {\n return keys.includes(v);\n });\n}\n/**\n * @desc 判断给定变量是否匹配目标数组的一部分\n *\n * @param {String[]} mdfs 目标字符串数组\n * @param {String} vals\n * @returns {Boolean}\n */\n\nfunction _partialMatch(mdfs, vals) {\n var keys = Object.keys(mdfs);\n return vals.some(function (v) {\n return keys.includes(v);\n });\n}\n/**\n * @desc 判断两个节点是否为同一个vnode节点\n *\n * @param {VNode} a 虚拟节点\n * @param {VNode} b 虚拟节点\n */\n\nfunction sameVnode(a, b) {\n return a.key === b.key && a.tag === b.tag && a.isComment === b.isComment && isDef(a.data) === isDef(b.data);\n}\n/**\n * @desc 判断两个vnode节点是否全等\n *\n * @param {VNode} a 虚拟节点\n * @param {VNode} b 虚拟节点\n */\n\nfunction exactlySameVnode(vnode, oldVnode) {\n if (!sameVnode(vnode, oldVnode)) return false;\n var oldCh = oldVnode.children;\n var ch = vnode.children; // vnode为非文本节点,且新旧节点的子节点都存在但不相同\n\n if (isUndef(vnode.text) && isDef(oldCh) && isDef(ch)) {\n if (oldCh.length !== ch.length) return false;\n\n for (var i = 0; i < ch.length; i++) {\n var c = ch[i];\n\n if (isDef(c) && isDef(oldCh[i])) {\n return exactlySameVnode(c, oldCh[i]);\n }\n }\n } // vnode为文本节点,新旧节点内容不相同\n else if (vnode.text !== oldVnode.text) return false;\n\n return true;\n}\n\n/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 15:55:15\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-04-20 18:06:31\n */\nvar checkFun = function checkFun(fn) {\n if (!isFun(fn)) {\n throw new Error(\"The first parameter should be Function.\");\n }\n};\n\n/*\n * @Author: 宋慧武\n * @Date: 2019-04-08 11:13:34\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-04-08 11:59:30\n */\n\n/**\n * @desc 是否为元素几点\n *\n * @param {DOMElement} ele 一个 DOM 元素\n * @return {Boolean}\n */\nvar isElement = function isElement(ele) {\n return ele && ele.nodeType === 1;\n};\n/**\n * @desc 获取 DOM CSS 属性的值\n *\n * @param {DOMElement} ele A DOM 元素\n * @returns {String}\n */\n\nfunction getStylePropValue(ele, prop) {\n return window.getComputedStyle(ele).getPropertyValue(prop);\n}\n/**\n * @desc 元素是否在可视区域可见\n *\n * @param {Object} rect 元素大小及相对可视区域的位置信息\n * @returns {Boolean} true => 可见 false => 不可见\n */\n\nfunction isInViewport(rect, viewport) {\n if (!rect || rect.width <= 0 || rect.height <= 0) {\n return false;\n }\n\n return rect.bottom > 0 && rect.right > 0 && rect.top < viewport.height && rect.left < viewport.width;\n}\n/**\n * @desc 元素是否隐藏\n *\n * @param {DOMElement} ele A DOM 元素\n * @returns {Boolean} true => 未隐藏可见 false => 隐藏不可见\n */\n\nfunction isVisible(ele) {\n if (ele === window.document) {\n return true;\n }\n\n if (!ele || !ele.parentNode) {\n return false;\n }\n\n var parent = ele.parentNode;\n var visibility = getStylePropValue(ele, \"visibility\");\n var display = getStylePropValue(ele, \"display\");\n\n if (visibility === \"hidden\" || display === \"none\") {\n return false;\n }\n\n return parent ? isVisible(parent) : true;\n}\n\n/**\n * @class\n * @name VisMonitor\n *\n * @desc 目标元素控制器\n */\n\nvar VisMonitor =\n/*#__PURE__*/\nfunction () {\n function VisMonitor(ele, ref) {\n var refwin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window;\n\n _classCallCheck(this, VisMonitor);\n\n if (!isElement(ele)) {\n throw new Error(\"not an element node\");\n }\n\n this.ele = ele;\n this.ref = ref;\n this.refWin = refwin;\n this.started = false;\n this.prevPerc = null; // 保存前一次曝光百分比\n\n this.listeners = {};\n this.removeScrollLisener = null;\n this.init();\n }\n\n _createClass(VisMonitor, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n if (!this.started) {\n var listener = debounce(this.visibilitychange.bind(this));\n listener();\n\n this.removeScrollLisener = function (listener) {\n if (_this.ref) {\n return _this.ref.$on(\"scroll\", listener);\n } else {\n _this.refWin.addEventListener(\"scroll\", listener, false);\n\n return function () {\n return _this.refWin.removeEventListener(\"scroll\", listener, false);\n };\n }\n }(listener);\n\n this.started = true;\n }\n }\n }, {\n key: \"viewport\",\n value: function viewport() {\n var win = this.refWin;\n return {\n height: win.innerHeight,\n width: win.innerWidth\n };\n }\n /**\n * 监听自定义事件\n */\n\n }, {\n key: \"$on\",\n value: function $on(evt, cbk) {\n var queue = this.listeners[evt] || (this.listeners[evt] = []);\n queue.push(cbk);\n return this;\n }\n /**\n * 移除监听自定义事件\n */\n\n }, {\n key: \"$off\",\n value: function $off(evt, cbk) {\n if (!cbk) return;\n var queue = this.listeners[evt];\n var v;\n var i = queue.length;\n\n while (i--) {\n v = queue[i];\n\n if (v === cbk || v.cbk === cbk) {\n queue.splice(i, 1);\n break;\n }\n }\n\n return this;\n }\n /**\n * 监听自定义事件,但只触发一次\n */\n\n }, {\n key: \"$once\",\n value: function $once(evt, cbk) {\n var _this2 = this;\n\n var on = function on() {\n _this2.$off(evt, on);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cbk.apply(_this2, args);\n };\n\n on.cbk = cbk;\n this.$on(evt, on);\n return this;\n }\n /**\n * 触发当前实例的监听回调\n */\n\n }, {\n key: \"$emit\",\n value: function $emit(evt) {\n var _this3 = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n var queue = this.listeners[evt] || [];\n queue.forEach(function (sub) {\n return sub.apply(_this3, args);\n });\n return this;\n }\n /**\n * 计算元素可见比例,如果比例为100%,则触发 fullyvisible 事件\n */\n\n }, {\n key: \"visibilitychange\",\n value: function visibilitychange() {\n var rect = this.ele.getBoundingClientRect();\n var view = this.viewport();\n\n if (!isInViewport(rect, view) || !isVisible(this.ele)) {\n this.prevPerc = 0;\n return 0;\n }\n\n var vh = 0;\n var vw = 0;\n var perc = 0;\n\n if (rect.top >= 0) {\n vh = Math.min(rect.height, view.height - rect.top);\n } else if (rect.bottom > 0) {\n vh = Math.min(view.height, rect.bottom);\n }\n\n if (rect.left >= 0) {\n vw = Math.min(rect.width, view.width - rect.left);\n } else if (rect.right > 0) {\n vw = Math.min(view.width, rect.right);\n }\n\n perc = vh * vw / (rect.height * rect.width);\n\n if (this.prevPerc !== 1 && perc === 1) {\n this.$emit(\"fullyvisible\");\n this.prevPerc = perc;\n }\n }\n /**\n * 销毁当前实例的事件\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n isFun(this.removeScrollLisener) && this.removeScrollLisener();\n }\n }]);\n\n return VisMonitor;\n}();\n\nvar MODIFIERS = [\"async\", \"delay\", \"watch\", \"show\", \"once\", \"custom\"]; // 修饰符\n\n/*******************************************************************************\n * @desc 监听数据发生改变时触发埋点,需处理两种情况:\n * ① 初始化时开始监听 v-track:xxxxx.watch=\"{ common_exp }\"\n * ops.immediate 表示初始化时立即开始监听\n *\n * ② 点击事件之后开始监听 v-track:18016.click.async=\"{ refreshHotSpot, exposureId }\"\n * el.contains(this.target) 避免多个“地方”同时监听同一个值出现多次上报的问题\n *******************************************************************************/\n\nfunction _watcher(el, exp, cbk, ctt) {\n var _this = this;\n\n var ops = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n el.$unwatch = ctt.$watch(function () {\n return ctt[exp];\n }, function (nv, ov) {\n nv !== ov && (ops.immediate || el.contains(_this.target)) && cbk();\n _this.target = null; // 释放当前操作的watcher\n });\n}\n/*************************************************************************\n * @desc 自定义指令 v-track\n *\n * @param {*} el 指令所绑定的元素\n * @param {String} arg 埋点对应event ID\n * @param {Boolean} modifiers.click true: 事件行为埋点; false: 页面级埋点\n * @param {Boolean} modifiers.watch 异步埋点\n * @param {Boolean} modifiers.async 点击事件异步埋点\n * @param {Boolean} modifiers.delay 埋点是否延迟执行,默认先执行埋点再执行cbk\n *\n * @property {Function} tck 对应埋点方法\n *\n * @example v-track:18015\n * @example v-track:18015.watch\n * @example v-track:18015.watch.delay\n * @example v-track:18015.click\n * @example v-track:18015.click.async\n * @example v-track:18015.click.delay\n * @example v-track:18015.[自定义事件名].delay\n * @example v-track:18015.[自定义事件名].async\n *************************************************************************/\n\n\nfunction bind(el, _ref, _ref2, _, __, events) {\n var _this2 = this;\n\n var value = _ref.value,\n id = _ref.arg,\n modifiers = _ref.modifiers,\n rawName = _ref.rawName;\n var context = _ref2.context,\n componentInstance = _ref2.componentInstance;\n if (!events[id]) throw new Error(\"tracking event does not exist\");\n var queue = [];\n var tck = events[id].bind(null, context);\n\n var watcher = function watcher(exp, cbk, ops) {\n return _watcher.call(_this2, el, exp, cbk, context, ops);\n };\n\n var exactMatch = function exactMatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _exactMatch.call(null, modifiers, args);\n };\n\n var partialMatch = function partialMatch() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _partialMatch.call(null, modifiers, args);\n };\n\n if (!Object.keys(modifiers).length) {\n events[id](context, value);\n } // 异步埋点\n else if (exactMatch(\"watch\")) {\n var exp = Object.keys(value).shift();\n watcher(exp, tck, {\n immediate: true\n });\n } // 指定延长时间埋点\n else if (exactMatch(\"delay\")) {\n el.$timer && clearTimeout(el.$timer);\n el.$timer = setTimeout(function () {\n events[id](context);\n }, value);\n } else if (exactMatch(\"watch\", \"delay\")) {\n var delay = value.delay,\n args = _objectWithoutProperties(value, [\"delay\"]);\n\n var _exp = _toConsumableArray(Object.keys(args)).pop();\n\n tck = function tck() {\n el.$timer && clearTimeout(el.$timer);\n el.$timer = setTimeout(function () {\n var visible = isVisible(context.$el);\n visible && events[id](context);\n }, delay);\n };\n\n watcher(_exp, tck, {\n immediate: true\n });\n } // 区域曝光埋点\n else if (partialMatch(\"show\")) {\n var _events$id;\n\n var _zipArray = zipArray(value),\n _zipArray2 = _slicedToArray(_zipArray, 1),\n _args = _zipArray2[0];\n\n var _tck = (_events$id = events[id]).bind.apply(_events$id, [null, context].concat(_toConsumableArray(_args)));\n\n var once = partialMatch(\"once\");\n var custom = partialMatch(\"custom\");\n\n if (!el.$visMonitor) {\n var vm = new VisMonitor(el, custom && context.$refs[value.ref]);\n (once ? vm.$once : vm.$on).call(vm, \"fullyvisible\", _tck);\n el.$visMonitor = vm;\n }\n } else if (!componentInstance && modifiers.click || componentInstance && partialMatch(\"native\")) {\n /**\n * @desc DOM元素事件行为埋点(需区分是否带参数)\n * @var {Function} fn 获取第一个参数作为回调函数\n * @var {String} exp 获取最后一个参数并作为监听对象\n */\n switch (_typeof(value)) {\n case \"object\":\n {\n var _events$id2;\n\n var _zipArray3 = zipArray(value),\n _zipArray4 = _slicedToArray(_zipArray3, 2),\n _args2 = _zipArray4[0],\n keys = _zipArray4[1];\n\n var fn = _args2.shift();\n\n var _exp2 = _toConsumableArray(keys).pop();\n\n checkFun(fn);\n tck = (_events$id2 = events[id]).bind.apply(_events$id2, [null, context].concat(_toConsumableArray(_args2)));\n queue = [tck, fn.bind.apply(fn, [null].concat(_toConsumableArray(_args2)))];\n modifiers.delay && queue.reverse();\n modifiers.async && watcher(_exp2, queue.shift());\n break;\n }\n\n case \"function\":\n queue = [tck, value];\n modifiers.delay && queue.reverse();\n break;\n }\n\n el.$listener = function (e) {\n _this2.target = e.target;\n queue.forEach(function (sub) {\n return sub(e);\n });\n };\n\n el.addEventListener(\"click\", el.$listener);\n } else if (\n /**\n * @desc 组件自定义事件行为埋点(需区分是否带参数)\n * @var {Function} fn 获取第一个参数作为回调函数\n * @var {String} exp 获取最后一个参数并作为监听对象\n */\n componentInstance && componentInstance.$el === el) {\n var _args3, _keys, _fn, _exp3;\n\n var eventName = Object.keys(modifiers).filter(function (key) {\n return !MODIFIERS.includes(key);\n }).pop();\n\n if (_typeof(value) === \"object\") {\n var _zipArray5 = zipArray(value);\n\n var _zipArray6 = _slicedToArray(_zipArray5, 2);\n\n _args3 = _zipArray6[0];\n _keys = _zipArray6[1];\n _fn = _args3.shift();\n _exp3 = _toConsumableArray(_keys).pop();\n checkFun(_fn);\n }\n\n if (el[\"$on_\".concat(eventName)]) return;\n componentInstance.$on(eventName, function () {\n var _events$id3, _ref3;\n\n _this2.target = el;\n\n for (var _len3 = arguments.length, data = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n data[_key3] = arguments[_key3];\n }\n\n tck = (_events$id3 = events[id]).bind.apply(_events$id3, [null, context].concat(data));\n queue = [tck, (_ref3 = _fn || value).bind.apply(_ref3, [null].concat(data))];\n modifiers.delay && queue.reverse();\n modifiers.async && watcher(_exp3, queue.shift());\n queue.forEach(function (sub) {\n return sub();\n });\n el[\"$on_\".concat(eventName)] = true; // 避免重复监听\n });\n } else {\n throw new Error(\"\".concat(rawName, \" directive is not supported\"));\n }\n}\n/**\n * @desc 由于 DOM 更新采用 diff 算法更新,如果新旧节点相同,则 el 会全等,导致 bind 绑定无法更\n * 新,出现事件绑定诡异的问题,但由于 DOM update 执行频率很高,会导致性能问题,所以这里加\n * 了一层exactlySameVnode过滤,即只有在新旧节点发生变化时才会重新绑定,否则相反\n *\n * @param {*} el 同bind\n * @param {...any} args 同bind\n */\n\nfunction updated(el) {\n if (!el.$listener) return;\n\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n if (!exactlySameVnode(args[1], args[2])) {\n unbind.call(this, el);\n bind.call.apply(bind, [this, el].concat(args));\n }\n}\nfunction unbind(el) {\n el.$listener && el.removeEventListener(\"click\", el.$listener);\n el.$timer && clearTimeout(el.$timer);\n el.$unwatch && el.$unwatch();\n el.$visMonitor && el.$visMonitor.destroy();\n}\n\nvar VTrack =\n/*#__PURE__*/\nfunction () {\n function VTrack() {\n _classCallCheck(this, VTrack);\n\n this.installed = false;\n } // 保存当前点击的元素\n\n\n _createClass(VTrack, null, [{\n key: \"install\",\n // Vue.use 将执行此方法\n value: function install(Vue, _ref) {\n var _this = this;\n\n var trackEvents = _ref.trackEvents,\n _ref$trackEnable = _ref.trackEnable,\n trackEnable = _ref$trackEnable === void 0 ? {} : _ref$trackEnable;\n trackEnable = _objectSpread({\n UVPV: false,\n TONP: false\n }, trackEnable);\n\n var TRACK_TONP = function TRACK_TONP(ctx, et) {\n if (trackEnable.TONP) {\n trackEvents.TONP(ctx, {\n et: et,\n dt: Date.now()\n });\n }\n };\n\n if (this.installed) return;\n this.installed = true; // 注册v-track全局指令\n\n Vue.directive(\"track\", {\n bind: function bind$1() {\n var _hooks$bind;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (_hooks$bind = bind).call.apply(_hooks$bind, [_this].concat(args, [trackEvents]));\n },\n componentUpdated: function componentUpdated() {\n var _hooks$updated;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return (_hooks$updated = updated).call.apply(_hooks$updated, [_this].concat(args, [trackEvents]));\n },\n unbind: function unbind$1() {\n var _hooks$unbind;\n\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return (_hooks$unbind = unbind).call.apply(_hooks$unbind, [_this].concat(args));\n }\n }); // 注册全局组件\n\n Vue.component(\"TrackView\", {\n render: function render(h) {\n return h(\"span\", {\n style: \"display: none\"\n });\n }\n });\n Vue.mixin({\n data: function data() {\n return {\n PAGE_ENTER_TIME: Date.now()\n };\n },\n created: function created() {\n var _this2 = this;\n\n window.onbeforeunload = function () {\n return TRACK_TONP(_this2, _this2.PAGE_ENTER_TIME);\n };\n },\n // 统计UV、PV\n beforeRouteEnter: function beforeRouteEnter(_, __, next) {\n next(function (vm) {\n trackEnable.UVPV && trackEvents.UVPV(vm);\n });\n },\n beforeRouteUpdate: function beforeRouteUpdate(_, __, next) {\n if (trackEnable.UVPV && trackEnable.UVPV === \"routeUpdate\") {\n trackEvents.UVPV(this);\n }\n\n next();\n },\n // 页面停留时间\n beforeRouteLeave: function beforeRouteLeave(_, __, next) {\n TRACK_TONP(this, this.PAGE_ENTER_TIME);\n next();\n }\n });\n }\n }]);\n\n return VTrack;\n}();\n\n_defineProperty(VTrack, \"target\", null);\n\nexport default VTrack;\n","/**\n * @author LHammer\n * @desc date parse or format date\n * @see https://github.com/l-hammer/YDTemplate/blob/master/src/utils/es6/date.js\n */\nconst twoDigits = /\\d\\d?/;\nconst fourDigits = /\\d{4}/;\nconst token = /d{1,2}|M{1,2}|yy(?:yy)?|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\nconst masks = {\n default: \"yyyy-MM-dd HH:mm:ss\",\n date: \"yyyy-MM-dd\",\n datetime: \"yyyy-MM-dd HH:mm:ss\",\n time: \"HH:mm:ss\",\n year: \"yyyy\",\n enDate: \"M/d/yy\",\n cnDate: \"yyyy 年 MM 月 dd 日\"\n};\n\nconst pad = (val, len) => {\n val = String(val);\n len = len || 2;\n while (val.length < len) {\n val = `0${val}`;\n }\n return val;\n};\n\nconst formatFlags = {\n yyyy(dateObj) {\n return pad(dateObj.getFullYear(), 4);\n },\n yy(dateObj) {\n return String(dateObj.getFullYear()).substr(2);\n },\n M(dateObj) {\n return dateObj.getMonth() + 1;\n },\n MM(dateObj) {\n return pad(dateObj.getMonth() + 1);\n },\n d(dateObj) {\n return dateObj.getDate();\n },\n dd(dateObj) {\n return pad(dateObj.getDate());\n },\n h(dateObj) {\n return dateObj.getHours() % 12 || 12;\n },\n hh(dateObj) {\n return pad(dateObj.getHours() % 12 || 12);\n },\n H(dateObj) {\n return dateObj.getHours();\n },\n HH(dateObj) {\n return pad(dateObj.getHours());\n },\n m(dateObj) {\n return dateObj.getMinutes();\n },\n mm(dateObj) {\n return pad(dateObj.getMinutes());\n },\n s(dateObj) {\n return dateObj.getSeconds();\n },\n ss(dateObj) {\n return pad(dateObj.getSeconds());\n }\n};\n\n/**\n * Format a date\n * @method format\n * @param {Date|number} dateObj new Date(2018, 2, 9)\n * @param {String} mask Format of the date e.g. 'yyyy-MM-dd HH:mm:ss' or 'cnDate'\n */\nexport const format = (dateObj, mask) => {\n if (typeof dateObj === \"number\") {\n dateObj = new Date(dateObj);\n }\n\n if (\n Object.prototype.toString.call(dateObj) !== \"[object Date]\" ||\n isNaN(dateObj.getTime())\n ) {\n throw new Error(\"Invalid Date in date.format\");\n }\n mask = masks[mask] || mask || masks.default;\n\n // return 不可省略\n mask = mask.replace(token, $0 => {\n return $0 in formatFlags\n ? formatFlags[$0](dateObj)\n : $0.slice(1, $0.length - 1);\n });\n\n return mask;\n};\n\nconst parseFlags = {\n yyyy: [\n fourDigits,\n (d, v) => {\n d.year = v;\n }\n ],\n yy: [\n twoDigits,\n (d, v) => {\n const da = new Date();\n const cent = +`${da.getFullYear()}`.substr(0, 2);\n d.year = `${v > 68 ? cent - 1 : cent}${v}`;\n }\n ],\n M: [\n twoDigits,\n (d, v) => {\n d.month = v - 1;\n }\n ],\n d: [\n twoDigits,\n (d, v) => {\n d.day = v;\n }\n ],\n h: [\n twoDigits,\n (d, v) => {\n d.hour = v;\n }\n ],\n m: [\n twoDigits,\n (d, v) => {\n d.minute = v;\n }\n ],\n s: [\n twoDigits,\n (d, v) => {\n d.second = v;\n }\n ]\n};\nparseFlags.MM = parseFlags.M;\nparseFlags.dd = parseFlags.d;\nparseFlags.hh = parseFlags.h;\nparseFlags.H = parseFlags.h;\nparseFlags.HH = parseFlags.h;\nparseFlags.mm = parseFlags.m;\nparseFlags.ss = parseFlags.s;\n\n/**\n * Format a date\n * @method parse\n * @param {String} dateStr Date String e.g. '2018-02-09 09:29:29' or '2018 年 02 月 09 日'\n * @param {String} mask Parse of the format date e.g. 'yyyy-MM-dd HH:mm:ss' or 'cnDate'\n * @param {Date}\n */\nexport const parse = (dateStr, mask) => {\n let isVaild = true;\n const dateInfo = {};\n const today = new Date();\n\n if (typeof dateStr !== \"string\") {\n throw new Error(\"Invalid format in fecha.parse\");\n }\n\n mask = masks[mask] || mask || masks.default;\n /**\n * @function replace @see https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace;\n * @param {String} $0 匹配的子串\n */\n mask.replace(token, function($0) {\n if (parseFlags[$0]) {\n const flag = parseFlags[$0];\n /**\n * 搜索匹配到子串(e.g. yyyy)对应flag(fourDigits)的位置\n * @function search 未匹配到时返回-1,即按位取反为0时表示没有对应的flag\n */\n const index = dateStr.search(flag[0]);\n if (!~index) {\n isVaild = false;\n } else {\n /**\n * 为避免重复返回,将已经返回的值result从dateStr中删除\n */\n dateStr.replace(flag[0], function(result) {\n flag[1](dateInfo, result);\n dateStr = dateStr.substr(index + result.length);\n return result;\n });\n }\n }\n return parseFlags[$0] ? \"\" : $0.slice(1, $0.length - 1);\n });\n\n if (!isVaild) {\n return false;\n }\n\n const date = new Date(\n dateInfo.year || today.getFullYear(),\n dateInfo.month || 0,\n dateInfo.day || 1,\n dateInfo.hour || 0,\n dateInfo.minute || 0,\n dateInfo.second || 0\n );\n return date;\n};\n\nexport default {\n format,\n parse\n};\n","export const createFragment = data => {\n const tableData = Object.keys(data).reduce(\n (list, k) => (list.push({ key: k, val: data[k] }), list),\n []\n );\n const trs = tableData\n .map(({ key, val }) => {\n return `\n
\n ${key}\n ${val}\n
\n `;\n })\n .join(\"\");\n\n return `\n
\n
\n key\n value\n
\n ${trs}\n
\n `;\n};\n","/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 16:44:42\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-07-30 20:17:13\n */\nimport { Notification, Message } from \"element-ui\";\nimport { format } from \"../utils/date\";\nimport { createFragment } from \"../utils/dom\";\n\n/**\n * @desc 模拟埋点Action\n */\nexport default function trackAction(evt, addtional = {}) {\n const data = {\n evt,\n ...addtional,\n action_time: format(Date.now())\n };\n\n if (evt === \"1\") {\n Message(\"统计UVPV埋点\");\n }\n if (evt === \"2\") {\n Message({\n message: \"统计页面停留时间埋点\",\n customClass: \"message-offset\"\n });\n }\n Notification.success({\n title: \"上报数据如下:\",\n dangerouslyUseHTMLString: true,\n message: createFragment(data),\n customClass: \"notification__large\",\n position: evt === \"1\" || evt === \"2\" ? \"top-left\" : \"top-right\"\n });\n}\n","/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 17:10:31\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-07-26 11:32:10\n */\nimport trackAction from \"./action\";\n\nexport default {\n /**\n * @name UVPV 固定名称不支持修改\n * @desc UV、PV埋点\n * @param {Object} context 当前上下文\n */\n UVPV() {\n trackAction(\"1\");\n },\n /**\n * @name TONP 固定名称不支持修改\n * @desc 页面停留时间埋点(Time on Page)\n * @param {Object} context 当前上下文\n * @param {Timestamp} et 进入页面时间\n * @param {Timestamp} dt 离开页面时间\n */\n TONP(_, { et, dt }) {\n trackAction(\"2\", {\n stt: `${(dt - et) / 1e3}s`\n });\n },\n /**\n * @desc 测试埋点\n */\n 18015({ $route: { name } }) {\n trackAction(\"18015\", {\n source_page: name // 页面来源\n });\n },\n /**\n * @param {Object} context 当前上下文\n * @param {Object} item 事件参数\n * @param {Object} event 事件对象\n */\n 18016(\n {\n $route: { name }\n },\n { id },\n { target }\n ) {\n trackAction(\"18016\", {\n id,\n source_page: name,\n target\n });\n },\n 18017({ index, $route: { name } }) {\n trackAction(\"18017\", {\n source_page: name,\n index\n });\n },\n 18018({ rest, $route: { name } }) {\n trackAction(\"18018\", {\n source_page: name,\n rest\n });\n },\n 18019(\n {\n $route: { name }\n },\n { id },\n { target }\n ) {\n trackAction(\"18019\", {\n id,\n source_page: name,\n target\n });\n },\n 18020({ activeName, $route: { name } }) {\n trackAction(\"18020\", {\n source_page: name,\n active_name: activeName\n });\n },\n 18021({ rest, $route: { name } }) {\n trackAction(\"18021\", {\n source_page: name,\n rest\n });\n },\n 18022({ $route: { name } }) {\n trackAction(\"18022\", {\n source_page: name,\n description: \"这是一个页面初始化埋点\"\n });\n },\n 18023({ $route: { name } }) {\n trackAction(\"18023\", {\n source_page: name\n });\n },\n 18025({ rest1, $route: { name } }) {\n trackAction(\"18025\", {\n source_page: name,\n rest: rest1\n });\n },\n 18026({ rest2, $route: { name } }) {\n trackAction(\"18026\", {\n source_page: name,\n rest: rest2\n });\n },\n 18027({ $route: { name } }) {\n trackAction(\"18027\", {\n source_page: name,\n description: \"我想被曝光无数次\"\n });\n },\n 18028({ $route: { name } }) {\n trackAction(\"18028\", {\n source_page: name,\n description: \"我只想被曝光一次\"\n });\n }\n};\n","/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 17:01:49\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-04-14 17:12:29\n */\nimport trackEvents from \"./events\";\n\nexport { default as trackAction } from \"./action\";\n\nexport default {\n ...trackEvents\n};\n","import Vue from \"vue\";\nimport VueRouter from \"vue-router\";\nimport {\n Alert,\n Card,\n Collapse,\n CollapseItem,\n Message,\n Notification\n} from \"element-ui\";\nimport App from \"./App.vue\";\nimport Home from \"./pages/home.vue\";\nimport Started from \"./pages/started.vue\";\nimport CustomEvents from \"./pages/custom-events.vue\";\nimport TrackView from \"./pages/track-view.vue\";\nimport BlockShow from \"./pages/block-show.vue\";\nimport VueTrack from \"../\";\nimport trackEvents from \"./tracks\";\n\nVue.use(VueRouter);\nVue.use(Alert);\nVue.use(Card);\nVue.use(Collapse);\nVue.use(CollapseItem);\nVue.use(VueTrack, {\n trackEvents,\n trackEnable: {\n UVPV: \"routeUpdate\",\n TONP: true\n }\n});\n\nVue.prototype.$message = Message;\nVue.prototype.$notify = Notification;\n\nconst router = new VueRouter({\n routes: [\n {\n path: \"/\",\n name: \"HOME\",\n component: Home\n },\n {\n path: \"/started\",\n name: \"STARTED\",\n component: Started\n },\n {\n path: \"/custom-events\",\n name: \"CUSTOM_EVENTS\",\n component: CustomEvents\n },\n {\n path: \"/track-view\",\n name: \"TRACK_VIEW\",\n component: TrackView,\n meta: {\n keepAlive: true\n }\n },\n {\n path: \"/block-show\",\n name: \"BLOCK_SHOW\",\n component: BlockShow\n },\n {\n path: \"*\",\n redirect: \"/\"\n }\n ]\n});\n\n/* eslint-disable no-new */\nnew Vue({\n el: \"#app\",\n router,\n render: h => h(App)\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 90176a0..abdcce9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -v-track
\ No newline at end of file +v-track
\ No newline at end of file