diff --git a/docs/App.vue b/docs/App.vue index 8f06e18..d959971 100644 --- a/docs/App.vue +++ b/docs/App.vue @@ -18,8 +18,9 @@ > - *{-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 diff --git a/docs/dist/css/app.1efa72a7.css b/docs/dist/css/app.1efa72a7.css new file mode 100644 index 0000000..27434ae --- /dev/null +++ b/docs/dist/css/app.1efa72a7.css @@ -0,0 +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 diff --git a/docs/dist/js/app.1670dce4.js b/docs/dist/js/app.1670dce4.js deleted file mode 100644 index 3782d11..0000000 --- a/docs/dist/js/app.1670dce4.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',I='\nclick me\n',U="\nexport default {\n data: () => ({\n item: {\n id: Date.now().toString(36)\n },\n })\n}\n",L='\nclick me\n',F="\nexport default {\n data() {\n return {\n index: 0\n };\n },\n methods: {\n handleClickDelay() {\n this.index++;\n },\n }\n}\n",K='\nclick me\n',G='\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 this.$message.success("异步事件返回成功");\n }, 300);\n });\n this.rest = response.data;\n }\n }\n}\n',z={name:"Home",components:{CodeSnippet:R},data:function(){return{trackClickSnippet:B,trackClickWithParamSnippet:I,jsTrackClickWithParamSnippet:U,trackClickDelaySnippet:L,trackClickAsyncSnippet:K,jsTrackClickDelaySnippet:F,jsTrackClickAsyncSnippet:G,item:{id:V()().toString(36)},index:0,rest:null}},methods:{handleClick:function(){this.$message.success("事件执行成功")},handleClickWithParam:function(t,e){var n=e.target;this.$message.success("事件执行成功,参数为".concat(j()(t),"--").concat(n))},handleClickDelay:function(){this.index++},handleClickAsync:function(){var t=Object(T["a"])(regeneratorRuntime.mark(function t(){var e,n=this;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new O.a(function(t){setTimeout(function(){t({data:"success"}),n.$message.success("异步事件返回成功")},300)});case 2:e=t.sent,this.rest=e.data;case 4:case"end":return t.stop()}},t,this)}));function e(){return t.apply(this,arguments)}return e}()}},q=z,Y=Object(y["a"])(q,b,S,!1,null,null,null),J=Y.exports,Q=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.eventsSnippet,lang:"js"}}),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.componentSnippet,lang:"html"}})],1)])},X=[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")])])])}],Z='\nimport trackAction from "./action";\n\nexport default {\n /**\n * @name UVPV 固定名称不支持修改\n * @desc UV、PV埋点\n */\n UVPV() {\n trackAction("1");\n },\n /**\n * @name TONP 固定名称不支持修改\n * @desc 页面停留时间埋点(Time on Page)\n * @param {String} stt 进入页面时长,单位为秒\n */\n TONP({ stt }) {\n trackAction("2", { stt });\n },\n /**\n * @desc 测试埋点\n * @param {*} { $route: { name } }\n * @param {*} { item: { id, level4Tag }, index }\n */\n 19058(\n {\n $route: { name }\n },\n {\n item: { id },\n index\n }\n ) {\n trackAction("19058", {\n knowledge_id: id, // 知识ID\n click_position: index + 1, // 点击位置\n source_page: name // 页面来源\n });\n }\n};\n',tt='\nimport Vue from "vue";\nimport VTrack from "v-track";\nimport trackEvents from "./tracks";\n\nVue.use(VTrack, {\n trackEvents, // 埋点事件对象\n trackEnable: {\n UVPV: false, // 是否开启UVPV统计,默认为false\n TONP: true // 是否开启页面停留时长统计,默认为false\n }\n})\n',et='\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',nt={name:"Started",components:{CodeSnippet:R},data:function(){return{mainSnippet:tt,eventsSnippet:Z,componentSnippet:et}}},at=nt,st=Object(y["a"])(at,Q,X,!1,null,null,null),rt=st.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:"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)])},ct=[],ot=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"track-button",on:{click:function(e){return t.$emit("custom-event",t.item,e)}}},[t._v("\n click me\n")])},lt=[],ut={computed:{item:function(){return{id:V()().toString(36)}}}},vt=ut,pt=Object(y["a"])(vt,ot,lt,!1,null,null,null),mt=pt.exports,dt='\n\x3c!-- button 组件 --\x3e\n\n click me\n\n',ht='\n\x3c!-- button 组件 --\x3e\n $emit(\'custom-event\', { id: Date.now().toString(36) }, e)">\n click me\n\n',ft='\n\n',kt='\n\n',gt='\n\n ...\n ...\n ...\n\n',yt='\nexport default {\n data() {\n return {\n activeName: "Feedback",\n };\n },\n methods: {\n handleChange(val) {\n this.activeName = val;\n }\n }\n}\n',Ct='\n\n',_t='\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 this.$message.success("异步事件返回成功");\n }, 300);\n });\n this.rest = response.data;\n }\n }\n}\n',wt={name:"CustomEvents",components:{Button:mt,CodeSnippet:R},data:function(){return{ButtonComponentSnippet:dt,ButtonComponentWithParamSnippet:ht,trackCustomEventSnippet:ft,trackCustomEventWithParamSnippet:kt,trackCustomEventDelaySnippet:gt,trackCustomEventAsyncSnippet:Ct,jsTrackCustomEventDelaySnippet:yt,jsTrackCustomEventAsyncSnippet:_t,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(j()(t),"--").concat(n))},handleChange:function(t){this.activeName=t},fetchRest:function(){var t=Object(T["a"])(regeneratorRuntime.mark(function t(){var e,n=this;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new O.a(function(t){setTimeout(function(){t({data:"success"}),n.$message.success("异步事件返回成功")},300)});case 2:e=t.sent,this.rest=e.data;case 4:case"end":return t.stop()}},t,this)}));function e(){return t.apply(this,arguments)}return e}()}},bt=wt,St=Object(y["a"])(bt,it,ct,!1,null,null,null),Et=St.exports,Ot=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)])},Tt=[],$t="\n\n",jt='\n\nclick me -> {{ show }}\n',xt="\nexport default {\n data: () => ({ show: false })\n}\n",Vt='\n\nclick me\n',Pt='\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 if (this.rest === response.data) {\n this.$message.success(\n "异步事件返回成功,但返回结果和上一次相等,埋点不会上报"\n );\n } else {\n this.$message.success("异步事件返回成功");\n this.rest = response.data;\n }\n }\n },\n}\n',Mt='\n\nclick 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 if (this.rest === response.data) {\n this.$message.success(\n "异步事件返回成功,但返回结果和上一次相等,埋点不会上报"\n );\n } else {\n this.$message.success("异步事件返回成功");\n this.rest = response.data;\n }\n }\n },\n}\n',Nt={name:"TrackViews",components:{CodeSnippet:R},data:function(){return{trackViewComponentSnippet:$t,trackViewComponentVIfSnippet:jt,jsTrackViewComponentVIfSnippet:xt,trackViewComponentWatchSnippet:Vt,jsTrackViewComponentWatchSnippet:Pt,trackViewComponentWatchDelaySnippet:Mt,jsTrackViewComponentWatchDelaySnippet:At,show:!1,rest1:null,rest2:null}},methods:{fetchRest:function(){var t=Object(T["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 O.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}()}},Wt=Nt,Dt=Object(y["a"])(Wt,Ot,Tt,!1,null,null,null),Ht=Dt.exports,Rt=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)])},Bt=[],It='\n我想被曝光无数次\n',Ut='\n我只想被曝光一次\n',Lt={name:"BlockShow",components:{CodeSnippet:R},data:function(){return{trackViewComponentSnippet:It,trackViewComponentOnceSnippet:Ut,show:!1,rest1:null,rest2:null}},methods:{fetchRest:function(){var t=Object(T["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 O.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}()}},Ft=Lt,Kt=Object(y["a"])(Ft,Rt,Bt,!1,null,null,null),Gt=Kt.exports;function zt(t){return zt="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},zt(t)}function qt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Yt(t,e){for(var n=0;n=0||(s[n]=t[n]);return s}function te(t,e){if(null==t)return{};var n,a,s=Zt(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 ee(t,e){return se(t)||ie(t,e)||oe()}function ne(t){return ae(t)||re(t)||ce()}function ae(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&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),!ye(e))throw new Error("not an element node");this.ele=e,this.ref=n,this.refWin=a,this.started=!1,this.listeners={},this.removeScrollLisener=null,this.init()}return Jt(t,[{key:"init",value:function(){var t=this;if(!this.started){var e=me(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===s&&this.$emit("fullyvisible")}},{key:"destroy",value:function(){le(this.removeScrollLisener)&&this.removeScrollLisener()}}]),t}(),Se=["async","delay","watch","show","once","custom"];function Ee(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 Oe(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 m=[],d=r[o].bind(null,v),h=function(e,n,a){return Ee.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:[Pe,function(t,e){t.month=e-1}],d:[Pe,function(t,e){t.day=e}],h:[Pe,function(t,e){t.hour=e}],m:[Pe,function(t,e){t.minute=e}],s:[Pe,function(t,e){t.second=e}]};Re.MM=Re.M,Re.dd=Re.d,Re.hh=Re.h,Re.H=Re.h,Re.HH=Re.h,Re.mm=Re.m,Re.ss=Re.s;var Be=n("a4bb"),Ie=n.n(Be),Ue=function(t){var e=Ie()(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 Le(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(Ve["a"])({evt:t},e,{action_time:He(V()())});"1"===t&&i()("统计UVPV埋点"),"2"===t&&i()({message:"统计页面停留时间埋点",customClass:"message-offset"}),s.a.success({title:"上报数据如下:",dangerouslyUseHTMLString:!0,message:Ue(n),customClass:"notification__large",position:"1"===t||"2"===t?"top-left":"top-right",offset:"2"===t?198:0})}var Fe={UVPV:function(){Le("1")},TONP:function(t){var e=t.stt;Le("2",{stt:e})},18015:function(t){var e=t.$route.name;Le("18015",{source_page:e})},18016:function(t,e,n){var a=t.$route.name,s=e.item.id,r=n.target;Le("18016",{id:s,source_page:a,target:r})},18017:function(t){var e=t.index,n=t.$route.name;Le("18017",{source_page:n,index:e})},18018:function(t){var e=t.rest,n=t.$route.name;Le("18018",{source_page:n,rest:e})},18019:function(t,e,n){var a=t.$route.name,s=e.id,r=n.target;Le("18019",{id:s,source_page:a,target:r})},18020:function(t){var e=t.activeName,n=t.$route.name;Le("18020",{source_page:n,active_name:e})},18021:function(t){var e=t.rest,n=t.$route.name;Le("18021",{source_page:n,rest:e})},18022:function(t){var e=t.$route.name;Le("18022",{source_page:e,description:"这是一个页面初始化埋点"})},18023:function(t){var e=t.$route.name;Le("18023",{source_page:e})},18025:function(t){var e=t.rest1,n=t.$route.name;Le("18025",{source_page:n,rest:e})},18026:function(t){var e=t.rest2,n=t.$route.name;Le("18026",{source_page:n,rest:e})},18027:function(t){var e=t.$route.name;Le("18027",{source_page:e,description:"我想被曝光无数次"})},18028:function(t){var e=t.$route.name;Le("18028",{source_page:e,description:"我只想被曝光一次"})}},Ke=Object(Ve["a"])({},Fe);h["default"].use(f["a"]),h["default"].use(d.a),h["default"].use(p.a),h["default"].use(u.a),h["default"].use(o.a),h["default"].use(xe,{trackEvents:Ke,trackEnable:{UVPV:!0,TONP:!0}}),h["default"].prototype.$message=i.a,h["default"].prototype.$notify=s.a;var Ge=new f["a"]({routes:[{path:"/",name:"HOME",component:J},{path:"/started",name:"STARTED",component:rt},{path:"/custom-events",name:"CUSTOM_EVENTS",component:Et},{path:"/track-view",name:"TRACK_VIEW",component:Ht},{path:"/block-show",name:"BLOCK_SHOW",component:Gt},{path:"*",redirect:"/"}]});new h["default"]({el:"#app",router:Ge,render:function(t){return t(w)}})}}); -//# sourceMappingURL=app.1670dce4.js.map \ No newline at end of file diff --git a/docs/dist/js/app.1670dce4.js.map b/docs/dist/js/app.1670dce4.js.map deleted file mode 100644 index 4b0174a..0000000 --- a/docs/dist/js/app.1670dce4.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?c5f3","webpack:///./docs/App.vue","webpack:///./docs/pages/home.vue?84f1","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/pages/home.vue","webpack:///./docs/pages/home.vue?abc2","webpack:///./docs/pages/home.vue","webpack:///./docs/pages/started.vue?11b5","webpack:///docs/pages/started.vue","webpack:///./docs/pages/started.vue?30ab","webpack:///./docs/pages/started.vue","webpack:///./docs/pages/custom-events.vue?c8bd","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/custom-events.vue","webpack:///./docs/pages/custom-events.vue?d644","webpack:///./docs/pages/custom-events.vue","webpack:///./docs/pages/track-view.vue?ccee","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?653b","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_7d04f75e_render","_vm","this","_h","$createElement","_c","_self","attrs","id","_m","_v","staticRenderFns","staticClass","href","alt","src","script","component","componentNormalizer","App","homevue_type_template_id_32ca99a8_render","to","center","type","title","closable","directives","rawName","expression","arg","modifiers","click","lang","code","trackClickSnippet","handleClickWithParam","item","trackClickWithParamSnippet","jsTrackClickWithParamSnippet","delay","trackClickDelaySnippet","jsTrackClickDelaySnippet","handleClickAsync","rest","async","trackClickAsyncSnippet","jsTrackClickAsyncSnippet","homevue_type_template_id_32ca99a8_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","homevue_type_script_lang_js_","components","CodeSnippet","now_default","toString","index","methods","handleClick","$message","success","_ref","target","concat","stringify_default","handleClickDelay","_handleClickAsync","asyncToGenerator","regeneratorRuntime","mark","_callee","response","_this","wrap","_context","prev","next","promise_default","resolve","setTimeout","sent","stop","arguments","pages_homevue_type_script_lang_js_","home_component","home","startedvue_type_template_id_a6d701a8_render","eventsSnippet","mainSnippet","componentSnippet","startedvue_type_template_id_a6d701a8_staticRenderFns","startedvue_type_script_lang_js_","pages_startedvue_type_script_lang_js_","started_component","started","custom_eventsvue_type_template_id_058c45b6_render","custom-event","ButtonComponentSnippet","trackCustomEventSnippet","ButtonComponentWithParamSnippet","trackCustomEventWithParamSnippet","change","accordion","model","callback","$$v","activeName","trackCustomEventDelaySnippet","jsTrackCustomEventDelaySnippet","fetchRest","trackCustomEventAsyncSnippet","jsTrackCustomEventAsyncSnippet","custom_eventsvue_type_template_id_058c45b6_staticRenderFns","buttonvue_type_template_id_60c8796f_render","on","e","$emit","buttonvue_type_template_id_60c8796f_staticRenderFns","buttonvue_type_script_lang_js_","components_buttonvue_type_script_lang_js_","button_component","components_button","custom_eventsvue_type_script_lang_js_","Button","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_70bbba72_render","trackViewComponentSnippet","_e","show","trackViewComponentVIfSnippet","jsTrackViewComponentVIfSnippet","rest1","watch","$event","trackViewComponentWatchSnippet","jsTrackViewComponentWatchSnippet","rest2","trackViewComponentWatchDelaySnippet","jsTrackViewComponentWatchDelaySnippet","track_viewvue_type_template_id_70bbba72_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_bf372d62_render","once","shadow","trackViewComponentOnceSnippet","block_showvue_type_template_id_bf372d62_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","_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","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","custom","$visMonitor","vm","$refs","$once","_zipArray","_zipArray2","_args","_fn","_exp2","tck_args","reduce","state","k","reverse","$listener","_args2","_keys","_fn2","_exp3","eventName","_zipArray3","_zipArray4","_events$id","_ref3","_len3","_key3","updated","_len4","_key4","unbind","destroy","VTrack","installed","curPage","Vue","trackEvents","_ref$trackEnable","trackEnable","self","UVPV","TONP","TRACK_TONP","entertime","stt","Date","now","directive","_hooks$bind","componentUpdated","_hooks$updated","_hooks$unbind","render","h","style","mixin","PAGE_ENTER_TIME","created","onbeforeunload","beforeRouteEnter","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","list","trs","map","join","trackAction","addtional","objectSpread","action_time","lib_message_default","message","customClass","lib_notification_default","dangerouslyUseHTMLString","position","offset","18015","$route","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.1670dce4.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('router-view'),_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/facebook/jest\"}},[_c('img',{attrs:{\"src\":\"https://img.shields.io/badge/tested_with-jest-99424f.svg\"}})]),_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 }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=7d04f75e&\"\nvar script = {}\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\":\"这个一个带参数点击事件行为的埋点,默认最后一个参数为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 {{ lang }}\n \n {{ n }}\n \n \n \n\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","\n \n \n \n 快速开始\n \n \n 事件行为埋点\n \n \n 自定义事件埋点\n \n \n 页面行为埋点\n \n \n 区域展现埋点\n \n 打开一个 issue\n \n\n \n \n \n \n \n click me\n \n \n \n\n \n \n \n\n \n \n \n \n \n click me\n \n \n \n\n \n \n \n \n\n \n \n \n \n \n click me\n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n click me\n \n \n \n\n \n \n \n \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!./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=32ca99a8&\"\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.eventsSnippet,\"lang\":\"js\"}}),_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.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 \n 返回\n \n \n 事件行为埋点\n \n \n 自定义事件埋点\n \n \n 页面行为埋点\n \n \n 区域展现埋点\n \n 打开一个 issue\n \n\n \n \n v-track通过\n Vue 自定义指令的方式将埋点代码与业务代码完全解耦,完整示例可参考\n GitHub\n \n \n\n \n \n +\n \n +\n \n \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!./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=a6d701a8&\"\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 }","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 $emit('custom-event', item, e)\">\n click me\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!./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 \n 快速开始\n \n \n 事件行为埋点\n \n \n 返回\n \n \n 页面行为埋点\n \n \n 区域展现埋点\n \n 打开一个 issue\n \n\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;\n \n 页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。\n \n \n 简化流程:设计简洁直观的操作流程;\n \n 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;\n \n \n 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。\n \n \n \n \n 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;\n \n \n 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \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!./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=058c45b6&\"\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 \n 快速开始\n \n \n 事件行为埋点\n \n \n 自定义事件埋点\n \n \n 返回\n \n \n 区域展现埋点\n \n 打开一个 issue\n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n (show = !show)\">\n click me -> {{ show }}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n click me\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n click me\n \n \n \n \n \n \n \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!./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=70bbba72&\"\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 \n 快速开始\n \n \n 事件行为埋点\n \n \n 自定义事件埋点\n \n \n 页面行为埋点\n \n \n 返回\n \n 打开一个 issue\n \n\n \n \n \n \n \n 我只想被曝光一次\n \n \n \n \n \n \n\n \n \n \n \n \n 我想被曝光无数次\n \n \n \n \n \n \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!./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=bf372d62&\"\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-04-20 18:06:43\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(value) {\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.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 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 if (perc === 1) this.$emit(\"fullyvisible\");\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 fn = function fn() {\n return events[id](context);\n };\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\", fn);\n el.$visMonitor = vm;\n }\n } else if (!componentInstance && modifiers.click) {\n /**\n * @desc DOM元素事件行为埋点(需区分是否带参数)\n * @var {Function} fn 获取第一个参数作为回调函数\n * @var {String} exp 获取最后一个参数并作为监听对象\n */\n switch (_typeof(value)) {\n case \"object\":\n {\n var _zipArray = zipArray(value),\n _zipArray2 = _slicedToArray(_zipArray, 2),\n _args = _zipArray2[0],\n keys = _zipArray2[1];\n\n var _fn = _args.shift();\n\n var _exp2 = _toConsumableArray(keys).pop();\n\n var tck_args = keys.slice(1).reduce(function (state, k) {\n return state[k] = value[k], state;\n }, {});\n checkFun(_fn);\n tck = events[id].bind(null, context, tck_args);\n queue = [tck, _fn.bind.apply(_fn, [null].concat(_toConsumableArray(_args)))];\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 _args2, _keys, _fn2, _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 _zipArray3 = zipArray(value);\n\n var _zipArray4 = _slicedToArray(_zipArray3, 2);\n\n _args2 = _zipArray4[0];\n _keys = _zipArray4[1];\n _fn2 = _args2.shift();\n _exp3 = _toConsumableArray(_keys).pop();\n checkFun(_fn2);\n }\n\n if (el[\"$on_\".concat(eventName)]) return;\n componentInstance.$on(eventName, function () {\n var _events$id, _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$id = events[id]).bind.apply(_events$id, [null, context].concat(data));\n queue = [tck, (_ref3 = _fn2 || 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 this.curPage = null; // 保存当前页name\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 var self = this;\n trackEnable = _objectSpread({\n UVPV: false,\n TONP: false\n }, trackEnable);\n\n var TRACK_TONP = function TRACK_TONP(entertime) {\n if (trackEnable.TONP) {\n trackEvents.TONP({\n stt: \"\".concat((Date.now() - entertime) / 1e3, \"s\")\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.PAGE_ENTER_TIME);\n };\n },\n // 统计UV、PV\n beforeRouteEnter: function beforeRouteEnter(to, _, next) {\n // 防止有些情况该守卫执行多次导致重复埋点的问题\n if (to.name === self.curPage) {\n next();\n } else {\n self.curPage = to.name;\n trackEnable.UVPV && trackEvents.UVPV();\n next();\n }\n },\n // 页面停留时间\n beforeRouteLeave: function beforeRouteLeave(_, __, next) {\n TRACK_TONP(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-04-16 11:28:36\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 offset: evt === \"2\" ? 198 : 0\n });\n}\n","/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 17:10:31\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-04-17 22:26:42\n */\nimport trackAction from \"./action\";\n\nexport default {\n /**\n * @name UVPV 固定名称不支持修改\n * @desc UV、PV埋点\n */\n UVPV() {\n trackAction(\"1\");\n },\n /**\n * @name TONP 固定名称不支持修改\n * @desc 页面停留时间埋点(Time on Page)\n * @param {String} stt 进入页面时长,单位为秒\n */\n TONP({ stt }) {\n trackAction(\"2\", { stt });\n },\n /**\n * @desc 测试埋点\n * @param {*} { $route: { name } }\n * @param {*} { item: { id, level4Tag }, index }\n */\n 18015({ $route: { name } }) {\n trackAction(\"18015\", {\n source_page: name // 页面来源\n });\n },\n 18016(\n {\n $route: { name }\n },\n {\n item: { id }\n },\n { target }\n ) {\n trackAction(\"18016\", {\n id, // 知识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, // 知识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: true,\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 },\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.e6a54753.js b/docs/dist/js/app.e6a54753.js new file mode 100644 index 0000000..44a8f28 --- /dev/null +++ b/docs/dist/js/app.e6a54753.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',I='\nclick me\n',U="\nexport default {\n data: () => ({\n item: {\n id: Date.now().toString(36)\n },\n })\n}\n",L='\nclick me\n',F="\nexport default {\n data() {\n return {\n index: 0\n };\n },\n methods: {\n handleClickDelay() {\n this.index++;\n },\n }\n}\n",K='\nclick me\n',G='\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 this.$message.success("异步事件返回成功");\n }, 300);\n });\n this.rest = response.data;\n }\n }\n}\n',q={name:"Home",components:{CodeSnippet:R},data:function(){return{trackClickSnippet:B,trackClickWithParamSnippet:I,jsTrackClickWithParamSnippet:U,trackClickDelaySnippet:L,trackClickAsyncSnippet:K,jsTrackClickDelaySnippet:F,jsTrackClickAsyncSnippet:G,item:{id:V()().toString(36)},index:0,rest:null}},methods:{handleClick:function(){this.$message.success("事件执行成功")},handleClickWithParam:function(t,e){var n=e.target;this.$message.success("事件执行成功,参数为".concat(j()(t),"--").concat(n))},handleClickDelay:function(){this.index++},handleClickAsync:function(){var t=Object(T["a"])(regeneratorRuntime.mark(function t(){var e,n=this;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new O.a(function(t){setTimeout(function(){t({data:"success"}),n.$message.success("异步事件返回成功")},300)});case 2:e=t.sent,this.rest=e.data;case 4:case"end":return t.stop()}},t,this)}));function e(){return t.apply(this,arguments)}return e}()}},z=q,Y=Object(y["a"])(z,b,S,!1,null,null,null),J=Y.exports,Q=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.eventsSnippet,lang:"js"}}),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.componentSnippet,lang:"html"}})],1)])},X=[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")])])])}],Z='\nimport trackAction from "./action";\n\nexport default {\n /**\n * @name UVPV 固定名称不支持修改\n * @desc UV、PV埋点\n */\n UVPV() {\n trackAction("1");\n },\n /**\n * @name TONP 固定名称不支持修改\n * @desc 页面停留时间埋点(Time on Page)\n * @param {String} stt 进入页面时长,单位为秒\n */\n TONP({ stt }) {\n trackAction("2", { stt });\n },\n /**\n * @desc 测试埋点\n * @param {*} { $route: { name } }\n * @param {*} { item: { id, level4Tag }, index }\n */\n 19058(\n {\n $route: { name }\n },\n {\n item: { id },\n index\n }\n ) {\n trackAction("19058", {\n knowledge_id: id, // 知识ID\n click_position: index + 1, // 点击位置\n source_page: name // 页面来源\n });\n }\n};\n',tt='\nimport Vue from "vue";\nimport VTrack from "v-track";\nimport trackEvents from "./tracks";\n\nVue.use(VTrack, {\n trackEvents, // 埋点事件对象\n trackEnable: {\n UVPV: false, // 是否开启UVPV统计,默认为false\n TONP: true // 是否开启页面停留时长统计,默认为false\n }\n})\n',et='\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',nt={name:"Started",components:{CodeSnippet:R},data:function(){return{mainSnippet:tt,eventsSnippet:Z,componentSnippet:et}}},at=nt,st=Object(y["a"])(at,Q,X,!1,null,null,null),rt=st.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:"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)])},ct=[],ot=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"track-button",on:{click:function(e){return t.$emit("custom-event",t.item,e)}}},[t._v("\n click me\n")])},lt=[],ut={computed:{item:function(){return{id:V()().toString(36)}}}},vt=ut,pt=Object(y["a"])(vt,ot,lt,!1,null,null,null),mt=pt.exports,dt='\n\x3c!-- button 组件 --\x3e\n\n click me\n\n',ht='\n\x3c!-- button 组件 --\x3e\n $emit(\'custom-event\', { id: Date.now().toString(36) }, e)">\n click me\n\n',ft='\n\n',kt='\n\n',gt='\n\n ...\n ...\n ...\n\n',yt='\nexport default {\n data() {\n return {\n activeName: "Feedback",\n };\n },\n methods: {\n handleChange(val) {\n this.activeName = val;\n }\n }\n}\n',Ct='\n\n',_t='\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 this.$message.success("异步事件返回成功");\n }, 300);\n });\n this.rest = response.data;\n }\n }\n}\n',wt={name:"CustomEvents",components:{Button:mt,CodeSnippet:R},data:function(){return{ButtonComponentSnippet:dt,ButtonComponentWithParamSnippet:ht,trackCustomEventSnippet:ft,trackCustomEventWithParamSnippet:kt,trackCustomEventDelaySnippet:gt,trackCustomEventAsyncSnippet:Ct,jsTrackCustomEventDelaySnippet:yt,jsTrackCustomEventAsyncSnippet:_t,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(j()(t),"--").concat(n))},handleChange:function(t){this.activeName=t},fetchRest:function(){var t=Object(T["a"])(regeneratorRuntime.mark(function t(){var e,n=this;return regeneratorRuntime.wrap(function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,new O.a(function(t){setTimeout(function(){t({data:"success"}),n.$message.success("异步事件返回成功")},300)});case 2:e=t.sent,this.rest=e.data;case 4:case"end":return t.stop()}},t,this)}));function e(){return t.apply(this,arguments)}return e}()}},bt=wt,St=Object(y["a"])(bt,it,ct,!1,null,null,null),Et=St.exports,Ot=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)])},Tt=[],$t="\n\n",jt='\n\nclick me -> {{ show }}\n',xt="\nexport default {\n data: () => ({ show: false })\n}\n",Vt='\n\nclick me\n',Pt='\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 if (this.rest === response.data) {\n this.$message.success(\n "异步事件返回成功,但返回结果和上一次相等,埋点不会上报"\n );\n } else {\n this.$message.success("异步事件返回成功");\n this.rest = response.data;\n }\n }\n },\n}\n',Mt='\n\nclick 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 if (this.rest === response.data) {\n this.$message.success(\n "异步事件返回成功,但返回结果和上一次相等,埋点不会上报"\n );\n } else {\n this.$message.success("异步事件返回成功");\n this.rest = response.data;\n }\n }\n },\n}\n',Nt={name:"TrackViews",components:{CodeSnippet:R},data:function(){return{trackViewComponentSnippet:$t,trackViewComponentVIfSnippet:jt,jsTrackViewComponentVIfSnippet:xt,trackViewComponentWatchSnippet:Vt,jsTrackViewComponentWatchSnippet:Pt,trackViewComponentWatchDelaySnippet:Mt,jsTrackViewComponentWatchDelaySnippet:At,show:!1,rest1:null,rest2:null}},methods:{fetchRest:function(){var t=Object(T["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 O.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}()}},Wt=Nt,Dt=Object(y["a"])(Wt,Ot,Tt,!1,null,null,null),Ht=Dt.exports,Rt=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)])},Bt=[],It='\n我想被曝光无数次\n',Ut='\n我只想被曝光一次\n',Lt={name:"BlockShow",components:{CodeSnippet:R},data:function(){return{trackViewComponentSnippet:It,trackViewComponentOnceSnippet:Ut,show:!1,rest1:null,rest2:null}},methods:{fetchRest:function(){var t=Object(T["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 O.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}()}},Ft=Lt,Kt=Object(y["a"])(Ft,Rt,Bt,!1,null,null,null),Gt=Kt.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 zt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Yt(t,e){for(var n=0;n=0||(s[n]=t[n]);return s}function te(t,e){if(null==t)return{};var n,a,s=Zt(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 ee(t,e){return se(t)||ie(t,e)||oe()}function ne(t){return ae(t)||re(t)||ce()}function ae(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1&&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(zt(this,t),!ye(e))throw new Error("not an element node");this.ele=e,this.ref=n,this.refWin=a,this.started=!1,this.listeners={},this.removeScrollLisener=null,this.init()}return Jt(t,[{key:"init",value:function(){var t=this;if(!this.started){var e=me(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===s&&this.$emit("fullyvisible")}},{key:"destroy",value:function(){le(this.removeScrollLisener)&&this.removeScrollLisener()}}]),t}(),Se=["async","delay","watch","show","once","custom"];function Ee(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 Oe(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 m=[],d=r[o].bind(null,v),h=function(e,n,a){return Ee.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:[Pe,function(t,e){t.month=e-1}],d:[Pe,function(t,e){t.day=e}],h:[Pe,function(t,e){t.hour=e}],m:[Pe,function(t,e){t.minute=e}],s:[Pe,function(t,e){t.second=e}]};Re.MM=Re.M,Re.dd=Re.d,Re.hh=Re.h,Re.H=Re.h,Re.HH=Re.h,Re.mm=Re.m,Re.ss=Re.s;var Be=n("a4bb"),Ie=n.n(Be),Ue=function(t){var e=Ie()(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 Le(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(Ve["a"])({evt:t},e,{action_time:He(V()())});"1"===t&&i()("统计UVPV埋点"),"2"===t&&i()({message:"统计页面停留时间埋点",customClass:"message-offset"}),s.a.success({title:"上报数据如下:",dangerouslyUseHTMLString:!0,message:Ue(n),customClass:"notification__large",position:"1"===t||"2"===t?"top-left":"top-right",offset:"2"===t?198:0})}var Fe={UVPV:function(){Le("1")},TONP:function(t){var e=t.stt;Le("2",{stt:e})},18015:function(t){var e=t.$route.name;Le("18015",{source_page:e})},18016:function(t,e,n){var a=t.$route.name,s=e.item.id,r=n.target;Le("18016",{id:s,source_page:a,target:r})},18017:function(t){var e=t.index,n=t.$route.name;Le("18017",{source_page:n,index:e})},18018:function(t){var e=t.rest,n=t.$route.name;Le("18018",{source_page:n,rest:e})},18019:function(t,e,n){var a=t.$route.name,s=e.id,r=n.target;Le("18019",{id:s,source_page:a,target:r})},18020:function(t){var e=t.activeName,n=t.$route.name;Le("18020",{source_page:n,active_name:e})},18021:function(t){var e=t.rest,n=t.$route.name;Le("18021",{source_page:n,rest:e})},18022:function(t){var e=t.$route.name;Le("18022",{source_page:e,description:"这是一个页面初始化埋点"})},18023:function(t){var e=t.$route.name;Le("18023",{source_page:e})},18025:function(t){var e=t.rest1,n=t.$route.name;Le("18025",{source_page:n,rest:e})},18026:function(t){var e=t.rest2,n=t.$route.name;Le("18026",{source_page:n,rest:e})},18027:function(t){var e=t.$route.name;Le("18027",{source_page:e,description:"我想被曝光无数次"})},18028:function(t){var e=t.$route.name;Le("18028",{source_page:e,description:"我只想被曝光一次"})}},Ke=Object(Ve["a"])({},Fe);h["default"].use(f["a"]),h["default"].use(d.a),h["default"].use(p.a),h["default"].use(u.a),h["default"].use(o.a),h["default"].use(xe,{trackEvents:Ke,trackEnable:{UVPV:!0,TONP:!0}}),h["default"].prototype.$message=i.a,h["default"].prototype.$notify=s.a;var Ge=new f["a"]({routes:[{path:"/",name:"HOME",component:J},{path:"/started",name:"STARTED",component:rt},{path:"/custom-events",name:"CUSTOM_EVENTS",component:Et},{path:"/track-view",name:"TRACK_VIEW",component:Ht},{path:"/block-show",name:"BLOCK_SHOW",component:Gt},{path:"*",redirect:"/"}]});new h["default"]({el:"#app",router:Ge,render:function(t){return t(w)}})}}); +//# sourceMappingURL=app.e6a54753.js.map \ No newline at end of file diff --git a/docs/dist/js/app.e6a54753.js.map b/docs/dist/js/app.e6a54753.js.map new file mode 100644 index 0000000..d0d7cdb --- /dev/null +++ b/docs/dist/js/app.e6a54753.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?77cc","webpack:///./docs/App.vue","webpack:///./docs/pages/home.vue?84f1","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/pages/home.vue","webpack:///./docs/pages/home.vue?abc2","webpack:///./docs/pages/home.vue","webpack:///./docs/pages/started.vue?11b5","webpack:///docs/pages/started.vue","webpack:///./docs/pages/started.vue?30ab","webpack:///./docs/pages/started.vue","webpack:///./docs/pages/custom-events.vue?c8bd","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/custom-events.vue","webpack:///./docs/pages/custom-events.vue?d644","webpack:///./docs/pages/custom-events.vue","webpack:///./docs/pages/track-view.vue?ccee","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?653b","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_cb4d8f3e_render","_vm","this","_h","$createElement","_c","_self","attrs","id","_m","_v","staticRenderFns","staticClass","href","alt","src","script","component","componentNormalizer","App","homevue_type_template_id_32ca99a8_render","to","center","type","title","closable","directives","rawName","expression","arg","modifiers","click","lang","code","trackClickSnippet","handleClickWithParam","item","trackClickWithParamSnippet","jsTrackClickWithParamSnippet","delay","trackClickDelaySnippet","jsTrackClickDelaySnippet","handleClickAsync","rest","async","trackClickAsyncSnippet","jsTrackClickAsyncSnippet","homevue_type_template_id_32ca99a8_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","homevue_type_script_lang_js_","components","CodeSnippet","now_default","toString","index","methods","handleClick","$message","success","_ref","target","concat","stringify_default","handleClickDelay","_handleClickAsync","asyncToGenerator","regeneratorRuntime","mark","_callee","response","_this","wrap","_context","prev","next","promise_default","resolve","setTimeout","sent","stop","arguments","pages_homevue_type_script_lang_js_","home_component","home","startedvue_type_template_id_a6d701a8_render","eventsSnippet","mainSnippet","componentSnippet","startedvue_type_template_id_a6d701a8_staticRenderFns","startedvue_type_script_lang_js_","pages_startedvue_type_script_lang_js_","started_component","started","custom_eventsvue_type_template_id_058c45b6_render","custom-event","ButtonComponentSnippet","trackCustomEventSnippet","ButtonComponentWithParamSnippet","trackCustomEventWithParamSnippet","change","accordion","model","callback","$$v","activeName","trackCustomEventDelaySnippet","jsTrackCustomEventDelaySnippet","fetchRest","trackCustomEventAsyncSnippet","jsTrackCustomEventAsyncSnippet","custom_eventsvue_type_template_id_058c45b6_staticRenderFns","buttonvue_type_template_id_60c8796f_render","on","e","$emit","buttonvue_type_template_id_60c8796f_staticRenderFns","buttonvue_type_script_lang_js_","components_buttonvue_type_script_lang_js_","button_component","components_button","custom_eventsvue_type_script_lang_js_","Button","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_70bbba72_render","trackViewComponentSnippet","_e","show","trackViewComponentVIfSnippet","jsTrackViewComponentVIfSnippet","rest1","watch","$event","trackViewComponentWatchSnippet","jsTrackViewComponentWatchSnippet","rest2","trackViewComponentWatchDelaySnippet","jsTrackViewComponentWatchDelaySnippet","track_viewvue_type_template_id_70bbba72_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_bf372d62_render","once","shadow","trackViewComponentOnceSnippet","block_showvue_type_template_id_bf372d62_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","_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","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","custom","$visMonitor","vm","$refs","$once","_zipArray","_zipArray2","_args","_fn","_exp2","tck_args","reduce","state","k","reverse","$listener","_args2","_keys","_fn2","_exp3","eventName","_zipArray3","_zipArray4","_events$id","_ref3","_len3","_key3","updated","_len4","_key4","unbind","destroy","VTrack","installed","curPage","Vue","trackEvents","_ref$trackEnable","trackEnable","self","UVPV","TONP","TRACK_TONP","entertime","stt","Date","now","directive","_hooks$bind","componentUpdated","_hooks$updated","_hooks$unbind","render","h","style","mixin","PAGE_ENTER_TIME","created","onbeforeunload","beforeRouteEnter","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","list","trs","map","join","trackAction","addtional","objectSpread","action_time","lib_message_default","message","customClass","lib_notification_default","dangerouslyUseHTMLString","position","offset","18015","$route","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.e6a54753.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('router-view'),_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 }","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=cb4d8f3e&\"\nvar script = {}\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\":\"这个一个带参数点击事件行为的埋点,默认最后一个参数为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 {{ lang }}\n \n {{ n }}\n \n \n \n\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","\n \n \n \n 快速开始\n \n \n 事件行为埋点\n \n \n 自定义事件埋点\n \n \n 页面行为埋点\n \n \n 区域展现埋点\n \n 打开一个 issue\n \n\n \n \n \n \n \n click me\n \n \n \n\n \n \n \n\n \n \n \n \n \n click me\n \n \n \n\n \n \n \n \n\n \n \n \n \n \n click me\n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n click me\n \n \n \n\n \n \n \n \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!./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=32ca99a8&\"\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.eventsSnippet,\"lang\":\"js\"}}),_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.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 \n 返回\n \n \n 事件行为埋点\n \n \n 自定义事件埋点\n \n \n 页面行为埋点\n \n \n 区域展现埋点\n \n 打开一个 issue\n \n\n \n \n v-track通过\n Vue 自定义指令的方式将埋点代码与业务代码完全解耦,完整示例可参考\n GitHub\n \n \n\n \n \n +\n \n +\n \n \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!./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=a6d701a8&\"\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 }","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 $emit('custom-event', item, e)\">\n click me\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!./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 \n 快速开始\n \n \n 事件行为埋点\n \n \n 返回\n \n \n 页面行为埋点\n \n \n 区域展现埋点\n \n 打开一个 issue\n \n\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;\n \n 页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。\n \n \n 简化流程:设计简洁直观的操作流程;\n \n 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;\n \n \n 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。\n \n \n \n \n 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;\n \n \n 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。\n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n\n \n \n \n \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!./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=058c45b6&\"\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 \n 快速开始\n \n \n 事件行为埋点\n \n \n 自定义事件埋点\n \n \n 返回\n \n \n 区域展现埋点\n \n 打开一个 issue\n \n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n (show = !show)\">\n click me -> {{ show }}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n click me\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n click me\n \n \n \n \n \n \n \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!./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=70bbba72&\"\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 \n 快速开始\n \n \n 事件行为埋点\n \n \n 自定义事件埋点\n \n \n 页面行为埋点\n \n \n 返回\n \n 打开一个 issue\n \n\n \n \n \n \n \n 我只想被曝光一次\n \n \n \n \n \n \n\n \n \n \n \n \n 我想被曝光无数次\n \n \n \n \n \n \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!./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=bf372d62&\"\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-04-20 18:06:43\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(value) {\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.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 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 if (perc === 1) this.$emit(\"fullyvisible\");\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 fn = function fn() {\n return events[id](context);\n };\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\", fn);\n el.$visMonitor = vm;\n }\n } else if (!componentInstance && modifiers.click) {\n /**\n * @desc DOM元素事件行为埋点(需区分是否带参数)\n * @var {Function} fn 获取第一个参数作为回调函数\n * @var {String} exp 获取最后一个参数并作为监听对象\n */\n switch (_typeof(value)) {\n case \"object\":\n {\n var _zipArray = zipArray(value),\n _zipArray2 = _slicedToArray(_zipArray, 2),\n _args = _zipArray2[0],\n keys = _zipArray2[1];\n\n var _fn = _args.shift();\n\n var _exp2 = _toConsumableArray(keys).pop();\n\n var tck_args = keys.slice(1).reduce(function (state, k) {\n return state[k] = value[k], state;\n }, {});\n checkFun(_fn);\n tck = events[id].bind(null, context, tck_args);\n queue = [tck, _fn.bind.apply(_fn, [null].concat(_toConsumableArray(_args)))];\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 _args2, _keys, _fn2, _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 _zipArray3 = zipArray(value);\n\n var _zipArray4 = _slicedToArray(_zipArray3, 2);\n\n _args2 = _zipArray4[0];\n _keys = _zipArray4[1];\n _fn2 = _args2.shift();\n _exp3 = _toConsumableArray(_keys).pop();\n checkFun(_fn2);\n }\n\n if (el[\"$on_\".concat(eventName)]) return;\n componentInstance.$on(eventName, function () {\n var _events$id, _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$id = events[id]).bind.apply(_events$id, [null, context].concat(data));\n queue = [tck, (_ref3 = _fn2 || 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 this.curPage = null; // 保存当前页name\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 var self = this;\n trackEnable = _objectSpread({\n UVPV: false,\n TONP: false\n }, trackEnable);\n\n var TRACK_TONP = function TRACK_TONP(entertime) {\n if (trackEnable.TONP) {\n trackEvents.TONP({\n stt: \"\".concat((Date.now() - entertime) / 1e3, \"s\")\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.PAGE_ENTER_TIME);\n };\n },\n // 统计UV、PV\n beforeRouteEnter: function beforeRouteEnter(to, _, next) {\n // 防止有些情况该守卫执行多次导致重复埋点的问题\n if (to.name === self.curPage) {\n next();\n } else {\n self.curPage = to.name;\n trackEnable.UVPV && trackEvents.UVPV();\n next();\n }\n },\n // 页面停留时间\n beforeRouteLeave: function beforeRouteLeave(_, __, next) {\n TRACK_TONP(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-04-16 11:28:36\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 offset: evt === \"2\" ? 198 : 0\n });\n}\n","/*\n * @Author: 宋慧武\n * @Date: 2019-04-14 17:10:31\n * @Last Modified by: 宋慧武\n * @Last Modified time: 2019-04-17 22:26:42\n */\nimport trackAction from \"./action\";\n\nexport default {\n /**\n * @name UVPV 固定名称不支持修改\n * @desc UV、PV埋点\n */\n UVPV() {\n trackAction(\"1\");\n },\n /**\n * @name TONP 固定名称不支持修改\n * @desc 页面停留时间埋点(Time on Page)\n * @param {String} stt 进入页面时长,单位为秒\n */\n TONP({ stt }) {\n trackAction(\"2\", { stt });\n },\n /**\n * @desc 测试埋点\n * @param {*} { $route: { name } }\n * @param {*} { item: { id, level4Tag }, index }\n */\n 18015({ $route: { name } }) {\n trackAction(\"18015\", {\n source_page: name // 页面来源\n });\n },\n 18016(\n {\n $route: { name }\n },\n {\n item: { id }\n },\n { target }\n ) {\n trackAction(\"18016\", {\n id, // 知识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, // 知识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: true,\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 },\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 1b63b13..186aea9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -v-trackWe're sorry but v-track doesn't work properly without JavaScript enabled. Please enable it to continue. \ No newline at end of file +v-trackWe're sorry but v-track doesn't work properly without JavaScript enabled. Please enable it to continue. \ No newline at end of file