From 9112d8ed1257ab1315896101eeff62b17bc55beb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=85=A7=E6=AD=A6?= Date: Sat, 20 Apr 2019 18:59:32 +0800 Subject: [PATCH] :memo:update docs --- docs/App.vue | 5 +- docs/assets/app.scss | 2 +- docs/assets/index.scss | 1 + docs/assets/normalize.scss | 349 +++++++++++++++++++++++++++++++ docs/dist/css/app.0d0499cf.css | 1 - docs/dist/css/app.1efa72a7.css | 4 + docs/dist/js/app.1670dce4.js | 2 - docs/dist/js/app.1670dce4.js.map | 1 - docs/dist/js/app.e6a54753.js | 2 + docs/dist/js/app.e6a54753.js.map | 1 + docs/index.html | 2 +- 11 files changed, 362 insertions(+), 8 deletions(-) create mode 100644 docs/assets/normalize.scss delete mode 100644 docs/dist/css/app.0d0499cf.css create mode 100644 docs/dist/css/app.1efa72a7.css delete mode 100644 docs/dist/js/app.1670dce4.js delete mode 100644 docs/dist/js/app.1670dce4.js.map create mode 100644 docs/dist/js/app.e6a54753.js create mode 100644 docs/dist/js/app.e6a54753.js.map 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='\n
click me
\n',U="\nexport default {\n data: () => ({\n item: {\n id: Date.now().toString(36)\n },\n })\n}\n",L='\n
click 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='\n
click 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
\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\n
click me -> {{ show }}
\n',xt="\nexport default {\n data: () => ({ show: false })\n}\n",Vt='\n\n
click 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\n
click me
\n',At='\nexport default {\n data: () => ({ rest: null }),\n methods: {\n async fetchRest() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n \n 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\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","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","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\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./button.vue?vue&type=template&id=60c8796f&\"\nimport script from \"./button.vue?vue&type=script&lang=js&\"\nexport * from \"./button.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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","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","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='\n
click me
\n',U="\nexport default {\n data: () => ({\n item: {\n id: Date.now().toString(36)\n },\n })\n}\n",L='\n
click 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='\n
click 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
\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\n
click me -> {{ show }}
\n',xt="\nexport default {\n data: () => ({ show: false })\n}\n",Vt='\n\n
click 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\n
click me
\n',At='\nexport default {\n data: () => ({ rest: null }),\n methods: {\n async fetchRest() {\n const response = await new Promise(resolve => {\n setTimeout(() => {\n resolve({ data: "success" });\n }, 300);\n });\n \n 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":"aACA,SAAAA,EAAAC,GAQA,IAPA,IAMAC,EAAAC,EANAC,EAAAH,EAAA,GACAI,EAAAJ,EAAA,GACAK,EAAAL,EAAA,GAIAM,EAAA,EAAAC,EAAA,GACQD,EAAAH,EAAAK,OAAoBF,IAC5BJ,EAAAC,EAAAG,GACAG,EAAAP,IACAK,EAAAG,KAAAD,EAAAP,GAAA,IAEAO,EAAAP,GAAA,EAEA,IAAAD,KAAAG,EACAO,OAAAC,UAAAC,eAAAC,KAAAV,EAAAH,KACAc,EAAAd,GAAAG,EAAAH,IAGAe,KAAAhB,GAEA,MAAAO,EAAAC,OACAD,EAAAU,OAAAV,GAOA,OAHAW,EAAAR,KAAAS,MAAAD,EAAAb,GAAA,IAGAe,IAEA,SAAAA,IAEA,IADA,IAAAC,EACAf,EAAA,EAAiBA,EAAAY,EAAAV,OAA4BF,IAAA,CAG7C,IAFA,IAAAgB,EAAAJ,EAAAZ,GACAiB,GAAA,EACAC,EAAA,EAAkBA,EAAAF,EAAAd,OAA2BgB,IAAA,CAC7C,IAAAC,EAAAH,EAAAE,GACA,IAAAf,EAAAgB,KAAAF,GAAA,GAEAA,IACAL,EAAAQ,OAAApB,IAAA,GACAe,EAAAM,IAAAC,EAAAN,EAAA,KAGA,OAAAD,EAIA,IAAAQ,EAAA,GAKApB,EAAA,CACAqB,IAAA,GAGAZ,EAAA,GAGA,SAAAS,EAAA1B,GAGA,GAAA4B,EAAA5B,GACA,OAAA4B,EAAA5B,GAAA8B,QAGA,IAAAC,EAAAH,EAAA5B,GAAA,CACAK,EAAAL,EACAgC,GAAA,EACAF,QAAA,IAUA,OANAhB,EAAAd,GAAAa,KAAAkB,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAnB,EAGAY,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACA1B,OAAA6B,eAAAT,EAAAM,EAAA,CAA0CI,YAAA,EAAAC,IAAAJ,KAK1CX,EAAAgB,EAAA,SAAAZ,GACA,qBAAAa,eAAAC,aACAlC,OAAA6B,eAAAT,EAAAa,OAAAC,YAAA,CAAwDC,MAAA,WAExDnC,OAAA6B,eAAAT,EAAA,cAAiDe,OAAA,KAQjDnB,EAAAoB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAAnB,EAAAmB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,kBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAvC,OAAAwC,OAAA,MAGA,GAFAxB,EAAAgB,EAAAO,GACAvC,OAAA6B,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAAnB,EAAAS,EAAAc,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAvB,EAAA2B,EAAA,SAAAtB,GACA,IAAAM,EAAAN,KAAAiB,WACA,WAA2B,OAAAjB,EAAA,YAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAgB,EAAAC,GAAsD,OAAA7C,OAAAC,UAAAC,eAAAC,KAAAyC,EAAAC,IAGtD7B,EAAA8B,EAAA,QAEA,IAAAC,EAAAC,OAAA,gBAAAA,OAAA,oBACAC,EAAAF,EAAAhD,KAAA2C,KAAAK,GACAA,EAAAhD,KAAAX,EACA2D,IAAAG,QACA,QAAAvD,EAAA,EAAgBA,EAAAoD,EAAAlD,OAAuBF,IAAAP,EAAA2D,EAAApD,IACvC,IAAAU,EAAA4C,EAIA1C,EAAAR,KAAA,0BAEAU,kECtJA,IAAA0C,EAAAnC,EAAA,QAAAoC,EAAApC,EAAA2B,EAAAQ,GAAkfC,EAAG,4DCArf,IAAAC,EAAArC,EAAA,QAAAsC,EAAAtC,EAAA2B,EAAAU,GAAghBC,EAAG,gUCA/gBC,EAAM,WAAgB,IAAAC,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,MAAA,CAAOC,GAAA,QAAY,CAAAP,EAAAQ,GAAA,GAAAR,EAAAS,GAAA,KAAAL,EAAA,eAAAJ,EAAAS,GAAA,KAAAT,EAAAQ,GAAA,QAC7HE,EAAA,YAAoC,IAAAV,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,UAAAA,EAAA,MAAAJ,EAAAS,GAAA,aAAAT,EAAAS,GAAA,KAAAL,EAAA,OAAuEO,YAAA,WAAsB,CAAAX,EAAAS,GAAA,gDAAAT,EAAAS,GAAA,KAAAL,EAAA,OAAAA,EAAA,KAAuFE,MAAA,CAAOM,KAAA,2CAAiD,CAAAR,EAAA,OAAYE,MAAA,CAAOO,IAAA,uBAAAC,IAAA,uGAAsId,EAAAS,GAAA,KAAAL,EAAA,KAAwBE,MAAA,CAAOM,KAAA,kDAAwD,CAAAR,EAAA,OAAYE,MAAA,CAAOQ,IAAA,2GAAAD,IAAA,iBAAoIb,EAAAS,GAAA,KAAAL,EAAA,KAAwBE,MAAA,CAAOM,KAAA,0CAAgD,CAAAR,EAAA,OAAYE,MAAA,CAAOQ,IAAA,qFAAuFd,EAAAS,GAAA,KAAAL,EAAA,KAAwBE,MAAA,CAAOM,KAAA,+DAAqE,CAAAR,EAAA,OAAYE,MAAA,CAAOQ,IAAA,kFAAoFd,EAAAS,GAAA,KAAAL,EAAA,KAAwBE,MAAA,CAAOM,KAAA,uCAAAC,IAAA,cAAiE,CAAAT,EAAA,OAAYE,MAAA,CAAOQ,IAAA,gDAAkDd,EAAAS,GAAA,KAAAL,EAAA,KAAwBE,MAAA,CAAOM,KAAA,wCAA8C,CAAAR,EAAA,OAAYE,MAAA,CAAOQ,IAAA,0FAA0Fd,EAAAS,GAAA,KAAAL,EAAA,OAA4BO,YAAA,eAA0B,CAAAX,EAAAS,GAAA,0CAAkD,WAAc,IAAAT,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,WAAqBO,YAAA,UAAqB,CAAAP,EAAA,OAAYO,YAAA,wBAAmC,CAAAX,EAAAS,GAAA,gFCAvsDM,EAAA,GAMAC,EAAgBxE,OAAAyE,EAAA,KAAAzE,CAChBuE,EACEhB,EACAW,GACF,EACA,KACA,KACA,MAIeQ,EAAAF,UClBXG,EAAM,WAAgB,IAAAnB,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBO,YAAA,kBAA6B,CAAAP,EAAA,WAAgBO,YAAA,OAAkB,CAAAP,EAAA,eAAoBE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,aAAoB,CAAA8B,EAAAS,GAAA,wBAAAT,EAAAS,GAAA,KAAAL,EAAA,eAA+DE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,UAAiB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAiEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,mBAA0B,CAAA8B,EAAAS,GAAA,2BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAkEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,gBAAuB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAiEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,gBAAuB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,KAAuDE,MAAA,CAAOM,KAAA,+CAAqD,CAAAZ,EAAAS,GAAA,oBAAAT,EAAAS,GAAA,KAAAL,EAAA,WAAuDO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,gBAAAC,UAAA,KAAoExB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAP,EAAA,OAAYqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,sBAAA/C,MAAAqB,EAAA,YAAA2B,WAAA,cAAAC,IAAA,QAAAC,UAAA,CAAmHC,OAAA,KAAcnB,YAAA,gBAA6B,CAAAX,EAAAS,GAAA,sCAAAT,EAAAS,GAAA,KAAAL,EAAA,WAAyEO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAiC,sBAA4C,GAAAjC,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,sCAAAC,UAAA,KAA0FxB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAP,EAAA,OAAYqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,sBAAA/C,MAAA,CAAmDuD,qBAAAlC,EAAAkC,qBAAAC,KAAAnC,EAAAmC,MAAiER,WAAA,iCAA4CC,IAAA,QAAAC,UAAA,CAAyBC,OAAA,KAAcnB,YAAA,gBAA6B,CAAAX,EAAAS,GAAA,sCAAAT,EAAAS,GAAA,KAAAL,EAAA,WAAyEO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAoC,8BAAqDpC,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,KAAAC,KAAAhC,EAAAqC,iCAAqD,GAAArC,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,wFAAAC,UAAA,KAA4IxB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAP,EAAA,OAAYqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,4BAAA/C,MAAAqB,EAAA,iBAAA2B,WAAA,mBAAAC,IAAA,QAAAC,UAAA,CAAmIC,OAAA,EAAAQ,OAAA,KAA2B3B,YAAA,gBAA6B,CAAAX,EAAAS,GAAA,sCAAAT,EAAAS,GAAA,KAAAL,EAAA,WAAyEO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAuC,0BAAiDvC,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,KAAAC,KAAAhC,EAAAwC,6BAAiD,GAAAxC,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,+EAAAC,UAAA,KAAmIpB,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,UAAAC,MAAA,oGAAAC,UAAA,KAA2JxB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAP,EAAA,OAAYqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,4BAAA/C,MAAA,CAAyD8D,iBAAAzC,EAAAyC,iBAAAC,KAAA1C,EAAA0C,MAAyDf,WAAA,6BAAwCC,IAAA,QAAAC,UAAA,CAAyBC,OAAA,EAAAa,OAAA,KAA2BhC,YAAA,gBAA6B,CAAAX,EAAAS,GAAA,sCAAAT,EAAAS,GAAA,KAAAL,EAAA,WAAyEO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAA4C,0BAAiD5C,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,KAAAC,KAAAhC,EAAA6C,6BAAiD,MACzzHC,EAAe,0FCDfC,aAAM,WAAgB,IAAA/C,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBO,YAAA,gBAA2B,CAAAP,EAAA,OAAYO,YAAA,YAAuB,CAAAX,EAAAS,GAAAT,EAAAgD,GAAAhD,EAAA+B,SAAA/B,EAAAS,GAAA,KAAAL,EAAA,OAAmDO,YAAA,gBAA2BX,EAAAiD,GAAAjD,EAAA,mBAAAb,GAAoC,OAAAiB,EAAA,OAAiBnB,IAAAE,EAAAwB,YAAA,eAAgC,CAAAX,EAAAS,GAAAT,EAAAgD,GAAA7D,QAAsB,GAAAa,EAAAS,GAAA,KAAAL,EAAA,OAA2BO,YAAA,SAAAuC,SAAA,CAA+BC,UAAAnD,EAAAgD,GAAAhD,EAAA9C,eACvZkG,EAAe,wBCWnBC,EAAA,CACAnF,KAAA,eACAoF,MAAA,CACAtB,KAAAuB,OACAxB,KAAAwB,QAEAC,SAAA,CACAtG,OADA,WAEA,IAAAuG,EAAAC,EAAAC,EAAAC,UAAA3D,KAAA8B,KAAA9B,KAAA+B,KAAA6B,QACA,OAAAJ,EAAA9E,OAEAmF,UALA,WAQA,IAFA,IAAAC,EAAA9D,KAAA/C,OACAb,EAAA,EACAF,EAAA,EAAAA,EAAA4H,EAAA1H,SAAAF,EACA,OAAA4H,EAAA5H,IACAE,IAGA,OAAAA,EAAA,KC/BsV2H,EAAA,ECQlVC,aAAYzH,OAAAyE,EAAA,KAAAzE,CACdwH,EACAjB,EACAK,GACF,EACA,KACA,KACA,OAIec,EAAAD,UC2GfhC,EAAA,iFAGAG,EAAA,oGAGAC,EAAA,0GASAE,EAAA,gGAGAC,EAAA,4JAcAI,EAAA,4FAGAC,EAAA,uXAqBAsB,EAAA,CACAjG,KAAA,OACAkG,WAAA,CACAC,YAAAH,GAEArI,KALA,WAMA,OACAoG,oBACAG,6BACAC,+BACAE,yBACAK,yBACAJ,2BACAK,2BACAV,KAAA,CACA5B,GAAA+D,MAAAC,SAAA,KAEAC,MAAA,EACA9B,KAAA,OAGA+B,QAAA,CACAC,YADA,WAEAzE,KAAA0E,SAAAC,QAAA,WAEA1C,qBAJA,SAIAC,EAJA0C,GAIA,IAAAC,EAAAD,EAAAC,OACA7E,KAAA0E,SAAAC,QAAA,aAAAG,OACAC,IAAA7C,GADA,MAAA4C,OACAD,KAGAG,iBATA,WAUAhF,KAAAuE,SAEA/B,iBAZA,eAAAyC,EAAA1I,OAAA2I,EAAA,KAAA3I,CAAA4I,mBAAAC,KAAA,SAAAC,IAAA,IAAAC,EAAAC,EAAAvF,KAAA,OAAAmF,mBAAAK,KAAA,SAAAC,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EAaA,IAAAC,EAAAlC,EAAA,SAAAmC,GACAC,WAAA,WACAD,EAAA,CAAAjK,KAAA,YACA2J,EAAAb,SAAAC,QAAA,aACA,OAjBA,OAaAW,EAbAG,EAAAM,KAmBA/F,KAAAyC,KAAA6C,EAAA1J,KAnBA,wBAAA6J,EAAAO,SAAAX,EAAArF,SAAA,SAAAwC,IAAA,OAAAyC,EAAAlI,MAAAiD,KAAAiG,WAAA,OAAAzD,EAAA,KC3M8U0D,EAAA,ECO1UC,EAAY5J,OAAAyE,EAAA,KAAAzE,CACd2J,EACAhF,EACA2B,GACF,EACA,KACA,KACA,MAIeuD,EAAAD,UClBXE,EAAM,WAAgB,IAAAtG,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBO,YAAA,qBAAgC,CAAAP,EAAA,WAAgBO,YAAA,OAAkB,CAAAP,EAAA,eAAoBE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,UAAiB,CAAA8B,EAAAS,GAAA,sBAAAT,EAAAS,GAAA,KAAAL,EAAA,eAA6DE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,UAAiB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAiEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,mBAA0B,CAAA8B,EAAAS,GAAA,2BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAkEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,gBAAuB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAiEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,gBAAuB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,KAAuDE,MAAA,CAAOM,KAAA,+CAAqD,CAAAZ,EAAAS,GAAA,oBAAAT,EAAAS,GAAA,KAAAT,EAAAQ,GAAA,GAAAR,EAAAS,GAAA,KAAAL,EAAA,WAA6EO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6B0B,KAAAhC,EAAAuG,cAAAxE,KAAA,QAAsC/B,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,QAAmB,CAAAX,EAAAS,GAAA,OAAAT,EAAAS,GAAA,KAAAL,EAAA,eAA8CO,YAAA,UAAAL,MAAA,CAA6B0B,KAAAhC,EAAAwG,YAAAzE,KAAA,QAAoC/B,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,QAAmB,CAAAX,EAAAS,GAAA,OAAAT,EAAAS,GAAA,KAAAL,EAAA,eAA8CO,YAAA,UAAAL,MAAA,CAA6B0B,KAAAhC,EAAAyG,iBAAA1E,KAAA,WAA2C,MACjtC2E,EAAe,YAAiB,IAAA1G,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,WAAqBO,YAAA,YAAuB,CAAAP,EAAA,OAAYO,YAAA,yBAAoC,CAAAX,EAAAS,GAAA,6BAAAL,EAAA,KAA8CE,MAAA,CAAOM,KAAA,wDAA8D,CAAAZ,EAAAS,GAAA,eAAAT,EAAAS,GAAA,qCAAAL,EAAA,KAA4EE,MAAA,CAAOM,KAAA,oDAA0D,CAAAZ,EAAAS,GAAA,kBC2C/b8F,EAAA,0sBAyCAC,GAAA,6PAaAC,GAAA,mhCA0BAE,GAAA,CACAzI,KAAA,UACAkG,WAAA,CACAC,YAAAH,GAEArI,KALA,WAMA,OACA2K,eACAD,gBACAE,uBCrIiVG,GAAA,GCO7UC,GAAYrK,OAAAyE,EAAA,KAAAzE,CACdoK,GACAN,EACAI,GACF,EACA,KACA,KACA,MAIeI,GAAAD,WClBXE,GAAM,WAAgB,IAAA/G,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBO,YAAA,kBAA6B,CAAAP,EAAA,WAAgBO,YAAA,OAAkB,CAAAP,EAAA,eAAoBE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,aAAoB,CAAA8B,EAAAS,GAAA,wBAAAT,EAAAS,GAAA,KAAAL,EAAA,eAA+DE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,UAAiB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAiEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,UAAiB,CAAA8B,EAAAS,GAAA,sBAAAT,EAAAS,GAAA,KAAAL,EAAA,eAA6DE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,gBAAuB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAiEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,gBAAuB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,KAAuDE,MAAA,CAAOM,KAAA,+CAAqD,CAAAZ,EAAAS,GAAA,oBAAAT,EAAAS,GAAA,KAAAL,EAAA,WAAuDO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,gBAAAC,UAAA,KAAoExB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAP,EAAA,UAAeqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,6BAAA/C,MAAAqB,EAAA,kBAAA2B,WAAA,oBAAAC,IAAA,QAAAC,UAAA,CAAsImF,gBAAA,QAAuB,OAAAhH,EAAAS,GAAA,KAAAL,EAAA,WAAoCO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAiH,0BAAiDjH,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAkH,4BAAkD,GAAAlH,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,mBAAAC,UAAA,KAAuExB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAP,EAAA,UAAeqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,6BAAA/C,MAAAqB,EAAA,2BAAA2B,WAAA,6BAAAC,IAAA,QAAAC,UAAA,CAAwJmF,gBAAA,QAAuB,OAAAhH,EAAAS,GAAA,KAAAL,EAAA,WAAoCO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAmH,mCAA0DnH,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAoH,qCAA2D,GAAApH,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,6GAAAC,UAAA,KAAiKxB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,oCAA+C,CAAAP,EAAA,eAAoBqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,6BAAA/C,MAAAqB,EAAA,aAAA2B,WAAA,eAAAC,IAAA,QAAAC,UAAA,CAA4HwF,QAAA,EAAA/E,OAAA,KAA4BhC,MAAA,CAASgH,UAAA,IAAeC,MAAA,CAAQ5I,MAAAqB,EAAA,WAAAwH,SAAA,SAAAC,GAAgDzH,EAAA0H,WAAAD,GAAmB9F,WAAA,eAA0B,CAAAvB,EAAA,oBAAyBE,MAAA,CAAOiB,MAAA,cAAArD,KAAA,aAAyC,CAAAkC,EAAA,OAAAJ,EAAAS,GAAA,gEAAAT,EAAAS,GAAA,KAAAL,EAAA,OAAAJ,EAAAS,GAAA,oCAAAT,EAAAS,GAAA,KAAAL,EAAA,oBAAuLE,MAAA,CAAOiB,MAAA,gBAAArD,KAAA,eAA6C,CAAAkC,EAAA,OAAAJ,EAAAS,GAAA,uBAAAT,EAAAS,GAAA,KAAAL,EAAA,OAAAJ,EAAAS,GAAA,+DAAAT,EAAAS,GAAA,KAAAL,EAAA,OAAAJ,EAAAS,GAAA,qEAAAT,EAAAS,GAAA,KAAAL,EAAA,oBAA2QE,MAAA,CAAOiB,MAAA,qBAAArD,KAAA,oBAAuD,CAAAkC,EAAA,OAAAJ,EAAAS,GAAA,oEAAAT,EAAAS,GAAA,KAAAL,EAAA,OAAAJ,EAAAS,GAAA,+EAAAT,EAAAS,GAAA,KAAAL,EAAA,WAA6NO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAA2H,gCAAuD3H,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,KAAAC,KAAAhC,EAAA4H,mCAAuD,GAAA5H,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,mFAAAC,UAAA,KAAuIpB,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,UAAAC,MAAA,uCAAAC,UAAA,KAA8FxB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAP,EAAA,UAAeqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,mCAAA/C,MAAA,CAAgEkJ,UAAA7H,EAAA6H,UAAAnF,KAAA1C,EAAA0C,MAA2Cf,WAAA,sBAAiCC,IAAA,QAAAC,UAAA,CAAyBmF,gBAAA,EAAArE,OAAA,QAAoC,OAAA3C,EAAAS,GAAA,KAAAL,EAAA,WAAoCO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAA8H,gCAAuD9H,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,KAAAC,KAAAhC,EAAA+H,mCAAuD,MACjlJC,GAAe,GCDfC,GAAM,WAAgB,IAAAjI,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBO,YAAA,eAAAuH,GAAA,CAA+BpG,MAAA,SAAAqG,GAAsB,OAAAnI,EAAAoI,MAAA,eAAApI,EAAAmC,KAAAgG,MAAmD,CAAAnI,EAAAS,GAAA,qBAC9M4H,GAAe,GCMnBC,GAAA,CACA9E,SAAA,CACArB,KAAA,kBACA5B,GAAA+D,MAAAC,SAAA,QCVgVgE,GAAA,GCO5UC,GAAYhM,OAAAyE,EAAA,KAAAzE,CACd+L,GACAN,GACAI,IACF,EACA,KACA,KACA,MAIeI,GAAAD,WCkJfvB,GAAA,gHAMAE,GAAA,yJAMAD,GAAA,uEAGAE,GAAA,gFAGAO,GAAA,sVAWAC,GAAA,kLAcAE,GAAA,+EAGAC,GAAA,gXAqBAW,GAAA,CACAxK,KAAA,eACAkG,WAAA,CACAuE,OAAAF,GACApE,YAAAH,GAEArI,KANA,WAOA,OACAoL,0BACAE,mCACAD,2BACAE,oCACAO,gCACAG,gCACAF,kCACAG,kCACA5F,KAAA,CACA5B,GAAAqI,KAAAC,SACAtE,SAAA,IACAuE,OAAA,IAEApB,WAAA,WACAhF,KAAA,OAGA+B,QAAA,CACAsE,kBADA,WAEA9I,KAAA0E,SAAAC,QAAA,cAEAoE,2BAJA,SAIA7G,EAJA0C,GAIA,IAAAC,EAAAD,EAAAC,OACA7E,KAAA0E,SAAAC,QAAA,gBAAAG,OACAC,IAAA7C,GADA,MAAA4C,OACAD,KAGAmE,aATA,SASAC,GACAjJ,KAAAyH,WAAAwB,GAEArB,UAZA,eAAAsB,EAAA3M,OAAA2I,EAAA,KAAA3I,CAAA4I,mBAAAC,KAAA,SAAAC,IAAA,IAAAC,EAAAC,EAAAvF,KAAA,OAAAmF,mBAAAK,KAAA,SAAAC,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EAaA,IAAAC,EAAAlC,EAAA,SAAAmC,GACAC,WAAA,WACAD,EAAA,CAAAjK,KAAA,YACA2J,EAAAb,SAAAC,QAAA,aACA,OAjBA,OAaAW,EAbAG,EAAAM,KAmBA/F,KAAAyC,KAAA6C,EAAA1J,KAnBA,wBAAA6J,EAAAO,SAAAX,EAAArF,SAAA,SAAA4H,IAAA,OAAAsB,EAAAnM,MAAAiD,KAAAiG,WAAA,OAAA2B,EAAA,KChQuVuB,GAAA,GCOnVC,GAAY7M,OAAAyE,EAAA,KAAAzE,CACd4M,GACArC,GACAiB,IACF,EACA,KACA,KACA,MAIesB,GAAAD,WClBXE,GAAM,WAAgB,IAAAvJ,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBO,YAAA,kBAA6B,CAAAP,EAAA,WAAgBO,YAAA,OAAkB,CAAAP,EAAA,eAAoBE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,aAAoB,CAAA8B,EAAAS,GAAA,wBAAAT,EAAAS,GAAA,KAAAL,EAAA,eAA+DE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,UAAiB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAiEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,mBAA0B,CAAA8B,EAAAS,GAAA,2BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAkEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,UAAiB,CAAA8B,EAAAS,GAAA,sBAAAT,EAAAS,GAAA,KAAAL,EAAA,eAA6DE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,gBAAuB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,KAAuDE,MAAA,CAAOM,KAAA,+CAAqD,CAAAZ,EAAAS,GAAA,oBAAAT,EAAAS,GAAA,KAAAL,EAAA,WAAuDO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,cAAAC,UAAA,KAAkExB,EAAAS,GAAA,KAAAL,EAAA,YAA6BE,MAAA,CAAOe,OAAA,GAAAC,KAAA,UAAAC,MAAA,gEAAAC,UAAA,KAAuHxB,EAAAS,GAAA,KAAAL,EAAA,OAAwBqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,gBAAAE,IAAA,UAAiDjB,YAAA,qBAAgC,GAAAX,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAwJ,8BAAoD,GAAAxJ,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,wCAAAC,UAAA,KAA4FxB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAX,EAAA,KAAAI,EAAA,cAA8BqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,gBAAAE,IAAA,YAAmD5B,EAAAyJ,KAAAzJ,EAAAS,GAAA,KAAAL,EAAA,OAAiCO,YAAA,eAAAuH,GAAA,CAA+BpG,MAAA,WAAqB,OAAA9B,EAAA0J,MAAA1J,EAAA0J,QAAmC,CAAA1J,EAAAS,GAAA,yBAAAT,EAAAgD,GAAAhD,EAAA0J,MAAA,sBAAA1J,EAAAS,GAAA,KAAAL,EAAA,WAAmGO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAA2J,gCAAuD3J,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,KAAAC,KAAAhC,EAAA4J,mCAAuD,GAAA5J,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,6CAAAC,UAAA,KAAiGxB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAP,EAAA,cAAmBqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,sBAAA/C,MAAA,CAAmDkL,MAAA7J,EAAA6J,OAAmBlI,WAAA,YAAuBC,IAAA,QAAAC,UAAA,CAAyBiI,OAAA,OAAgB9J,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,eAAAuH,GAAA,CAA+BpG,MAAA,SAAAiI,GAAyB,OAAA/J,EAAA6H,WAAA,MAA8B,CAAA7H,EAAAS,GAAA,wCAAAT,EAAAS,GAAA,KAAAL,EAAA,WAA2EO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAgK,kCAAyDhK,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,KAAAC,KAAAhC,EAAAiK,qCAAyD,GAAAjK,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,iDAAAC,UAAA,KAAqGxB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,mBAA8B,CAAAP,EAAA,cAAmBqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,4BAAA/C,MAAA,CAAyDuL,MAAAlK,EAAAkK,MAAA5H,MAAA,KAAgCX,WAAA,yBAAoCC,IAAA,QAAAC,UAAA,CAAyBiI,OAAA,EAAAxH,OAAA,OAA6BtC,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,eAAAuH,GAAA,CAA+BpG,MAAA,SAAAiI,GAAyB,OAAA/J,EAAA6H,WAAA,MAA6B,CAAA7H,EAAAS,GAAA,wCAAAT,EAAAS,GAAA,KAAAL,EAAA,WAA2EO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAmK,uCAA8DnK,EAAAS,GAAA,KAAAL,EAAA,eAAgCO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,KAAAC,KAAAhC,EAAAoK,0CAA8D,MACvtHC,GAAe,GCsInBb,GAAA,8CAGAG,GAAA,wIAIAC,GAAA,2DAKAI,GAAA,iHAIAC,GAAA,ofAuBAE,GAAA,sIAIAC,GAAA,ofAwBAE,GAAA,CACApM,KAAA,aACAkG,WAAA,CACAC,YAAAH,GAEArI,KALA,WAMA,OACA2N,6BACAG,gCACAC,kCACAI,kCACAC,oCACAE,uCACAC,yCACAV,MAAA,EACAG,MAAA,KACAK,MAAA,OAGAzF,QAAA,CACAoD,UADA,eAAAsB,EAAA3M,OAAA2I,EAAA,KAAA3I,CAAA4I,mBAAAC,KAAA,SAAAC,EACAhD,GADA,IAAAiD,EAAA,OAAAH,mBAAAK,KAAA,SAAAC,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EAEA,IAAAC,EAAAlC,EAAA,SAAAmC,GACAC,WAAA,WACAD,EAAA,CAAAjK,KAAA,aACA,OALA,OAEA0J,EAFAG,EAAAM,MASA1D,GAAArC,KAAA4J,QAAAtE,EAAA1J,MACAyG,GAAArC,KAAAiK,QAAA3E,EAAA1J,KAEAoE,KAAA0E,SAAAC,QACA,gCAGA3E,KAAA0E,SAAAC,QAAA,YACAtC,EAAArC,KAAAiK,MAAA3E,EAAA1J,KAAAoE,KAAA4J,MAAAtE,EAAA1J,MAjBA,wBAAA6J,EAAAO,SAAAX,EAAArF,SAAA,SAAA4H,EAAA0C,GAAA,OAAApB,EAAAnM,MAAAiD,KAAAiG,WAAA,OAAA2B,EAAA,KC7NoV2C,GAAA,GCOhVC,GAAYjO,OAAAyE,EAAA,KAAAzE,CACdgO,GACAjB,GACAc,IACF,EACA,KACA,KACA,MAIeK,GAAAD,WClBXE,GAAM,WAAgB,IAAA3K,EAAAC,KAAaC,EAAAF,EAAAG,eAA0BC,EAAAJ,EAAAK,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBO,YAAA,kBAA6B,CAAAP,EAAA,WAAgBO,YAAA,OAAkB,CAAAP,EAAA,eAAoBE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,aAAoB,CAAA8B,EAAAS,GAAA,wBAAAT,EAAAS,GAAA,KAAAL,EAAA,eAA+DE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,UAAiB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAiEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,mBAA0B,CAAA8B,EAAAS,GAAA,2BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAkEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,gBAAuB,CAAA8B,EAAAS,GAAA,0BAAAT,EAAAS,GAAA,KAAAL,EAAA,eAAiEE,MAAA,CAAOc,GAAA,CAAMlD,KAAA,UAAiB,CAAA8B,EAAAS,GAAA,sBAAAT,EAAAS,GAAA,KAAAL,EAAA,KAAmDE,MAAA,CAAOM,KAAA,+CAAqD,CAAAZ,EAAAS,GAAA,oBAAAT,EAAAS,GAAA,KAAAL,EAAA,WAAuDO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,oBAAAC,UAAA,KAAwExB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,yBAAoC,CAAAP,EAAA,WAAgBqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,0BAAAE,IAAA,QAAAC,UAAA,CAAsE6H,MAAA,EAAAkB,MAAA,KAAyBtK,MAAA,CAASuK,OAAA,WAAmB,CAAA7K,EAAAS,GAAA,wCAAAT,EAAAS,GAAA,KAAAL,EAAA,WAA2EO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAA8K,kCAAwD,GAAA9K,EAAAS,GAAA,KAAAL,EAAA,WAAgCO,YAAA,QAAmB,CAAAP,EAAA,YAAiBE,MAAA,CAAOe,OAAA,GAAAC,KAAA,OAAAC,MAAA,mBAAAC,UAAA,KAAuExB,EAAAS,GAAA,KAAAL,EAAA,OAAwBO,YAAA,yBAAoC,CAAAP,EAAA,WAAgBqB,WAAA,EAAavD,KAAA,QAAAwD,QAAA,qBAAAE,IAAA,QAAAC,UAAA,CAAiE6H,MAAA,KAAapJ,MAAA,CAASuK,OAAA,WAAmB,CAAA7K,EAAAS,GAAA,wCAAAT,EAAAS,GAAA,KAAAL,EAAA,WAA2EO,YAAA,YAAuB,CAAAP,EAAA,eAAoBO,YAAA,UAAAL,MAAA,CAA6ByB,KAAA,OAAAC,KAAAhC,EAAAwJ,8BAAoD,MACxzDuB,GAAe,GCqEnBC,GAAA,qEAGAF,GAAA,0EAIAG,GAAA,CACA/M,KAAA,YACAkG,WAAA,CACAC,YAAAH,GAEArI,KALA,WAMA,OACA2N,0BAAAwB,GACAF,iCACApB,MAAA,EACAG,MAAA,KACAK,MAAA,OAGAzF,QAAA,CACAoD,UADA,eAAAsB,EAAA3M,OAAA2I,EAAA,KAAA3I,CAAA4I,mBAAAC,KAAA,SAAAC,EACAhD,GADA,IAAAiD,EAAA,OAAAH,mBAAAK,KAAA,SAAAC,GAAA,eAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EAEA,IAAAC,EAAAlC,EAAA,SAAAmC,GACAC,WAAA,WACAD,EAAA,CAAAjK,KAAA,aACA,OALA,OAEA0J,EAFAG,EAAAM,MASA1D,GAAArC,KAAA4J,QAAAtE,EAAA1J,MACAyG,GAAArC,KAAAiK,QAAA3E,EAAA1J,KAEAoE,KAAA0E,SAAAC,QACA,gCAGA3E,KAAA0E,SAAAC,QAAA,YACAtC,EAAArC,KAAAiK,MAAA3E,EAAA1J,KAAAoE,KAAA4J,MAAAtE,EAAA1J,MAjBA,wBAAA6J,EAAAO,SAAAX,EAAArF,SAAA,SAAA4H,EAAA0C,GAAA,OAAApB,EAAAnM,MAAAiD,KAAAiG,WAAA,OAAA2B,EAAA,KC3FoVqD,GAAA,GCOhVC,GAAY3O,OAAAyE,EAAA,KAAAzE,CACd0O,GACAP,GACAI,IACF,EACA,KACA,KACA,MAIeK,GAAAD,WClBf,SAAAE,GAAAC,GAWA,OATAD,GADA,oBAAA5M,QAAA,kBAAAA,OAAA8M,SACA,SAAAD,GACA,cAAAA,GAGA,SAAAA,GACA,OAAAA,GAAA,oBAAA7M,QAAA6M,EAAAE,cAAA/M,QAAA6M,IAAA7M,OAAAhC,UAAA,gBAAA6O,GAIAD,GAAAC,GAGA,SAAAG,GAAAC,EAAAC,GACA,KAAAD,aAAAC,GACA,UAAAC,UAAA,qCAIA,SAAAC,GAAA/G,EAAAxB,GACA,QAAAnH,EAAA,EAAiBA,EAAAmH,EAAAjH,OAAkBF,IAAA,CACnC,IAAA2P,EAAAxI,EAAAnH,GACA2P,EAAAxN,WAAAwN,EAAAxN,aAAA,EACAwN,EAAAC,cAAA,EACA,UAAAD,MAAAE,UAAA,GACAxP,OAAA6B,eAAAyG,EAAAgH,EAAA7M,IAAA6M,IAIA,SAAAG,GAAAN,EAAAO,EAAAC,GAGA,OAFAD,GAAAL,GAAAF,EAAAlP,UAAAyP,GACAC,GAAAN,GAAAF,EAAAQ,GACAR,EAGA,SAAAS,GAAAd,EAAArM,EAAAN,GAYA,OAXAM,KAAAqM,EACA9O,OAAA6B,eAAAiN,EAAArM,EAAA,CACAN,QACAL,YAAA,EACAyN,cAAA,EACAC,UAAA,IAGAV,EAAArM,GAAAN,EAGA2M,EAGA,SAAAe,GAAAvH,GACA,QAAA3I,EAAA,EAAiBA,EAAA+J,UAAA7J,OAAsBF,IAAA,CACvC,IAAAmQ,EAAA,MAAApG,UAAA/J,GAAA+J,UAAA/J,GAAA,GACAoQ,EAAA/P,OAAAgQ,KAAAF,GAEA,oBAAA9P,OAAAiQ,wBACAF,IAAAxH,OAAAvI,OAAAiQ,sBAAAH,GAAAI,OAAA,SAAAC,GACA,OAAAnQ,OAAAoQ,yBAAAN,EAAAK,GAAArO,eAIAiO,EAAAM,QAAA,SAAA5N,GACAmN,GAAAtH,EAAA7F,EAAAqN,EAAArN,MAIA,OAAA6F,EAGA,SAAAgI,GAAAR,EAAAS,GACA,SAAAT,EAAA,SACA,IAEArN,EAAA9C,EAFA2I,EAAA,GACAkI,EAAAxQ,OAAAgQ,KAAAF,GAGA,IAAAnQ,EAAA,EAAaA,EAAA6Q,EAAA3Q,OAAuBF,IACpC8C,EAAA+N,EAAA7Q,GACA4Q,EAAAE,QAAAhO,IAAA,IACA6F,EAAA7F,GAAAqN,EAAArN,IAGA,OAAA6F,EAGA,SAAAoI,GAAAZ,EAAAS,GACA,SAAAT,EAAA,SAEA,IAEArN,EAAA9C,EAFA2I,EAAAgI,GAAAR,EAAAS,GAIA,GAAAvQ,OAAAiQ,sBAAA,CACA,IAAAU,EAAA3Q,OAAAiQ,sBAAAH,GAEA,IAAAnQ,EAAA,EAAeA,EAAAgR,EAAA9Q,OAA6BF,IAC5C8C,EAAAkO,EAAAhR,GACA4Q,EAAAE,QAAAhO,IAAA,GACAzC,OAAAC,UAAA2Q,qBAAAzQ,KAAA2P,EAAArN,KACA6F,EAAA7F,GAAAqN,EAAArN,IAIA,OAAA6F,EAGA,SAAAuI,GAAAC,EAAAnR,GACA,OAAAoR,GAAAD,IAAAE,GAAAF,EAAAnR,IAAAsR,KAGA,SAAAC,GAAAJ,GACA,OAAAK,GAAAL,IAAAM,GAAAN,IAAAO,KAGA,SAAAF,GAAAL,GACA,GAAAQ,MAAAC,QAAAT,GAAA,CACA,QAAAnR,EAAA,EAAA6R,EAAA,IAAAF,MAAAR,EAAAjR,QAAiDF,EAAAmR,EAAAjR,OAAgBF,IAAA6R,EAAA7R,GAAAmR,EAAAnR,GAEjE,OAAA6R,GAIA,SAAAT,GAAAD,GACA,GAAAQ,MAAAC,QAAAT,GAAA,OAAAA,EAGA,SAAAM,GAAAK,GACA,GAAAxP,OAAA8M,YAAA/O,OAAAyR,IAAA,uBAAAzR,OAAAC,UAAA8H,SAAA5H,KAAAsR,GAAA,OAAAH,MAAAI,KAAAD,GAGA,SAAAT,GAAAF,EAAAnR,GACA,IAAAgS,EAAA,GACAC,GAAA,EACAC,GAAA,EACA5E,OAAA6E,EAEA,IACA,QAAAtL,EAAAuL,EAAAjB,EAAA7O,OAAA8M,cAA6C6C,GAAApL,EAAAuL,EAAA3I,QAAA4I,MAA+BJ,GAAA,EAG5E,GAFAD,EAAA5R,KAAAyG,EAAArE,OAEAxC,GAAAgS,EAAA9R,SAAAF,EAAA,MAEG,MAAAsS,GACHJ,GAAA,EACA5E,EAAAgF,EACG,QACH,IACAL,GAAA,MAAAG,EAAA,WAAAA,EAAA,YACK,QACL,GAAAF,EAAA,MAAA5E,GAIA,OAAA0E,EAGA,SAAAN,KACA,UAAAjC,UAAA,mDAGA,SAAA6B,KACA,UAAA7B,UAAA,wDAgBA,IAAA8C,GAAA,SAAAC,GACA,0BAAAA,IAAA,GAQAC,GAAA,SAAAD,GACA,YAAAL,IAAAK,GAAA,OAAAA,GAQAE,GAAA,SAAAF,GACA,YAAAL,IAAAK,GAAA,OAAAA,GASA,SAAAG,GAAAnQ,GACA,OAAAnC,OAAAuS,OAAApQ,GAAAnC,OAAAgQ,KAAA7N,IAUA,SAAAqQ,GAAAC,GACA,IACAC,EADAC,EAAAjJ,UAAA7J,OAAA,QAAAiS,IAAApI,UAAA,GAAAA,UAAA,OAEA,kBAGA,IAFA,IAAAV,EAAAvF,KAEAmP,EAAAlJ,UAAA7J,OAAAgT,EAAA,IAAAvB,MAAAsB,GAAAE,EAAA,EAAuEA,EAAAF,EAAaE,IACpFD,EAAAC,GAAApJ,UAAAoJ,GAGAC,aAAAL,GACAA,EAAAnJ,WAAA,WACA,OAAAkJ,EAAAjS,MAAAwI,EAAA6J,IACKF,IAWL,SAAAK,GAAAC,EAAAC,GACA,IAAAlD,EAAAhQ,OAAAgQ,KAAAiD,GACA,OAAAjD,EAAAnQ,SAAAqT,EAAArT,QAAAqT,EAAAC,MAAA,SAAAhB,GACA,OAAAnC,EAAAoD,SAAAjB,KAWA,SAAAkB,GAAAJ,EAAAC,GACA,IAAAlD,EAAAhQ,OAAAgQ,KAAAiD,GACA,OAAAC,EAAAI,KAAA,SAAAnB,GACA,OAAAnC,EAAAoD,SAAAjB,KAUA,SAAAoB,GAAApM,EAAAqM,GACA,OAAArM,EAAA1E,MAAA+Q,EAAA/Q,KAAA0E,EAAAsM,MAAAD,EAAAC,KAAAtM,EAAAuM,YAAAF,EAAAE,WAAArB,GAAAlL,EAAA9H,QAAAgT,GAAAmB,EAAAnU,MASA,SAAAsU,GAAAC,EAAAC,GACA,IAAAN,GAAAK,EAAAC,GAAA,SACA,IAAAC,EAAAD,EAAAE,SACAC,EAAAJ,EAAAG,SAEA,GAAA3B,GAAAwB,EAAAK,OAAA5B,GAAAyB,IAAAzB,GAAA2B,GAAA,CACA,GAAAF,EAAAjU,SAAAmU,EAAAnU,OAAA,SAEA,QAAAF,EAAA,EAAmBA,EAAAqU,EAAAnU,OAAeF,IAAA,CAClC,IAAA6B,EAAAwS,EAAArU,GAEA,GAAA0S,GAAA7Q,IAAA6Q,GAAAyB,EAAAnU,IACA,OAAAgU,GAAAnS,EAAAsS,EAAAnU,UAIA,GAAAiU,EAAAK,OAAAJ,EAAAI,KAAA,SAEA,SASA,IAAAC,GAAA,SAAAzB,GACA,IAAAP,GAAAO,GACA,UAAA0B,MAAA,4CAiBAC,GAAA,SAAAC,GACA,OAAAA,GAAA,IAAAA,EAAAC,UASA,SAAAC,GAAAF,EAAAG,GACA,OAAAxR,OAAAyR,iBAAAJ,GAAAK,iBAAAF,GASA,SAAAG,GAAAC,EAAAC,GACA,SAAAD,KAAAE,OAAA,GAAAF,EAAAG,QAAA,KAIAH,EAAAI,OAAA,GAAAJ,EAAAK,MAAA,GAAAL,EAAAM,IAAAL,EAAAE,QAAAH,EAAAO,KAAAN,EAAAC,OASA,SAAAM,GAAAf,GACA,GAAAA,IAAArR,OAAAqS,SACA,SAGA,IAAAhB,MAAAiB,WACA,SAGA,IAAAC,EAAAlB,EAAAiB,WACAE,EAAAjB,GAAAF,EAAA,cACAoB,EAAAlB,GAAAF,EAAA,WAEA,iBAAAmB,GAAA,SAAAC,KAIAF,GAAAH,GAAAG,IAUA,IAAAG,GAEA,WACA,SAAAA,EAAArB,EAAAsB,GACA,IAAAC,EAAAlM,UAAA7J,OAAA,QAAAiS,IAAApI,UAAA,GAAAA,UAAA,GAAA1G,OAIA,GAFAiM,GAAAxL,KAAAiS,IAEAtB,GAAAC,GACA,UAAAF,MAAA,uBAGA1Q,KAAA4Q,MACA5Q,KAAAkS,MACAlS,KAAAoS,OAAAD,EACAnS,KAAA6G,SAAA,EACA7G,KAAAqS,UAAA,GACArS,KAAAsS,oBAAA,KACAtS,KAAAuS,OA4JA,OAzJAvG,GAAAiG,EAAA,EACAjT,IAAA,OACAN,MAAA,WACA,IAAA6G,EAAAvF,KAEA,IAAAA,KAAA6G,QAAA,CACA,IAAA2L,EAAAzD,GAAA/O,KAAAyS,iBAAAxT,KAAAe,OACAwS,IAEAxS,KAAAsS,oBAAA,SAAAE,GACA,OAAAjN,EAAA2M,IACA3M,EAAA2M,IAAAQ,IAAA,SAAAF,IAEAjN,EAAA6M,OAAAO,iBAAA,SAAAH,GAAA,GAEA,WACA,OAAAjN,EAAA6M,OAAAQ,oBAAA,SAAAJ,GAAA,KAPA,CAUSA,GAETxS,KAAA6G,SAAA,KAGG,CACH7H,IAAA,WACAN,MAAA,WACA,IAAAmU,EAAA7S,KAAAoS,OACA,OACAd,OAAAuB,EAAAC,YACAzB,MAAAwB,EAAAE,cAOG,CACH/T,IAAA,MACAN,MAAA,SAAAsU,EAAAC,GACA,IAAAC,EAAAlT,KAAAqS,UAAAW,KAAAhT,KAAAqS,UAAAW,GAAA,IAEA,OADAE,EAAA5W,KAAA2W,GACAjT,OAMG,CACHhB,IAAA,OACAN,MAAA,SAAAsU,EAAAC,GACA,GAAAA,EAAA,CACA,IACAvE,EADAwE,EAAAlT,KAAAqS,UAAAW,GAEA9W,EAAAgX,EAAA9W,OAEA,MAAAF,IAGA,GAFAwS,EAAAwE,EAAAhX,GAEAwS,IAAAuE,GAAAvE,EAAAuE,QAAA,CACAC,EAAA5V,OAAApB,EAAA,GACA,MAIA,OAAA8D,QAMG,CACHhB,IAAA,QACAN,MAAA,SAAAsU,EAAAC,GACA,IAAAE,EAAAnT,KAEAiI,EAAA,SAAAA,IACAkL,EAAAC,KAAAJ,EAAA/K,GAEA,QAAAkH,EAAAlJ,UAAA7J,OAAAgT,EAAA,IAAAvB,MAAAsB,GAAAE,EAAA,EAA2EA,EAAAF,EAAaE,IACxFD,EAAAC,GAAApJ,UAAAoJ,GAGA4D,EAAAlW,MAAAoW,EAAA/D,IAKA,OAFAnH,EAAAgL,MACAjT,KAAA0S,IAAAM,EAAA/K,GACAjI,OAMG,CACHhB,IAAA,QACAN,MAAA,SAAAsU,GAGA,IAFA,IAAAK,EAAArT,KAEAsT,EAAArN,UAAA7J,OAAAgT,EAAA,IAAAvB,MAAAyF,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAgGA,EAAAD,EAAeC,IAC/GnE,EAAAmE,EAAA,GAAAtN,UAAAsN,GAGA,IAAAL,EAAAlT,KAAAqS,UAAAW,IAAA,GAIA,OAHAE,EAAAtG,QAAA,SAAA4G,GACA,OAAAA,EAAAzW,MAAAsW,EAAAjE,KAEApP,OAMG,CACHhB,IAAA,mBACAN,MAAA,WACA,IAAAyS,EAAAnR,KAAA4Q,IAAA6C,wBACAC,EAAA1T,KAAAoR,WAEA,IAAAF,GAAAC,EAAAuC,KAAA/B,GAAA3R,KAAA4Q,KACA,SAGA,IAAA+C,EAAA,EACAC,EAAA,EACAC,EAAA,EAEA1C,EAAAM,KAAA,EACAkC,EAAAhL,KAAAmL,IAAA3C,EAAAG,OAAAoC,EAAApC,OAAAH,EAAAM,KACON,EAAAI,OAAA,IACPoC,EAAAhL,KAAAmL,IAAAJ,EAAApC,OAAAH,EAAAI,SAGAJ,EAAAO,MAAA,EACAkC,EAAAjL,KAAAmL,IAAA3C,EAAAE,MAAAqC,EAAArC,MAAAF,EAAAO,MACOP,EAAAK,MAAA,IACPoC,EAAAjL,KAAAmL,IAAAJ,EAAArC,MAAAF,EAAAK,QAGAqC,EAAAF,EAAAC,GAAAzC,EAAAG,OAAAH,EAAAE,OACA,IAAAwC,GAAA7T,KAAAmI,MAAA,kBAMG,CACHnJ,IAAA,UACAN,MAAA,WACA+P,GAAAzO,KAAAsS,sBAAAtS,KAAAsS,0BAIAL,EA5KA,GA+KA8B,GAAA,iDAWA,SAAAC,GAAAC,EAAAC,EAAAjB,EAAAkB,GACA,IAAA5O,EAAAvF,KAEAoU,EAAAnO,UAAA7J,OAAA,QAAAiS,IAAApI,UAAA,GAAAA,UAAA,MACAgO,EAAAI,SAAAF,EAAAG,OAAA,WACA,OAAAH,EAAAD,IACG,SAAAK,EAAAC,GACHD,IAAAC,IAAAJ,EAAAK,WAAAR,EAAAS,SAAAnP,EAAAV,UAAAoO,IACA1N,EAAAV,OAAA,OA0BA,SAAA5F,GAAAgV,EAAArP,EAAA+P,EAAAC,EAAAC,EAAAC,GACA,IAAA3B,EAAAnT,KAEAtB,EAAAkG,EAAAlG,MACA4B,EAAAsE,EAAAjD,IACAC,EAAAgD,EAAAhD,UACAH,EAAAmD,EAAAnD,QACAsT,EAAAJ,EAAAI,QACAC,EAAAL,EAAAK,kBACA,IAAAF,EAAAxU,GAAA,UAAAoQ,MAAA,iCACA,IAAAwC,EAAA,GACA+B,EAAAH,EAAAxU,GAAArB,KAAA,KAAA8V,GAEAG,EAAA,SAAAhB,EAAAjB,EAAAmB,GACA,OAAAJ,GAAAtX,KAAAyW,EAAAc,EAAAC,EAAAjB,EAAA8B,EAAAX,IAGAe,EAAA,WACA,QAAAhG,EAAAlJ,UAAA7J,OAAAgT,EAAA,IAAAvB,MAAAsB,GAAAE,EAAA,EAAuEA,EAAAF,EAAaE,IACpFD,EAAAC,GAAApJ,UAAAoJ,GAGA,OAAAE,GAAA7S,KAAA,KAAAkF,EAAAwN,IAGAgG,EAAA,WACA,QAAA9B,EAAArN,UAAA7J,OAAAgT,EAAA,IAAAvB,MAAAyF,GAAAC,EAAA,EAA0EA,EAAAD,EAAeC,IACzFnE,EAAAmE,GAAAtN,UAAAsN,GAGA,OAAA3D,GAAAlT,KAAA,KAAAkF,EAAAwN,IAGA,GAAA7S,OAAAgQ,KAAA3K,GAAAxF,OAGA,GAAA+Y,EAAA,UACA,IAAAjB,EAAA3X,OAAAgQ,KAAA7N,GAAA7B,QACAqY,EAAAhB,EAAAe,EAAA,CACAR,WAAA,SAGA,GAAAU,EAAA,SACAlB,EAAAoB,QAAA/F,aAAA2E,EAAAoB,QACApB,EAAAoB,OAAAvP,WAAA,WACAgP,EAAAxU,GAAAyU,IACSrW,QACF,GAAAyW,EAAA,kBACP,IAAA9S,EAAA3D,EAAA2D,MACA+M,EAAAnC,GAAAvO,EAAA,WAEA4W,EAAA7H,GAAAlR,OAAAgQ,KAAA6C,IAAAmG,MAEAN,EAAA,WACAhB,EAAAoB,QAAA/F,aAAA2E,EAAAoB,QACApB,EAAAoB,OAAAvP,WAAA,WACA,IAAA0P,EAAA7D,GAAAoD,EAAAU,KACAD,GAAAV,EAAAxU,GAAAyU,IACW1S,IAGX6S,EAAAI,EAAAL,EAAA,CACAR,WAAA,SAGA,GAAAW,EAAA,SACA,IAAApG,EAAA,WACA,OAAA8F,EAAAxU,GAAAyU,IAGApK,EAAAyK,EAAA,QACAM,EAAAN,EAAA,UAEA,IAAAnB,EAAA0B,YAAA,CACA,IAAAC,EAAA,IAAA3D,GAAAgC,EAAAyB,GAAAX,EAAAc,MAAAnX,EAAAwT,OACAvH,EAAAiL,EAAAE,MAAAF,EAAAlD,KAAAhW,KAAAkZ,EAAA,eAAA5G,GACAiF,EAAA0B,YAAAC,QAES,IAAAZ,GAAApT,EAAAC,MAAA,CAMT,OAAAuJ,GAAA1M,IACA,aAEA,IAAAqX,EAAAlH,GAAAnQ,GACAsX,EAAA5I,GAAA2I,EAAA,GACAE,EAAAD,EAAA,GACAzJ,EAAAyJ,EAAA,GAEAE,EAAAD,EAAApZ,QAEAsZ,EAAA1I,GAAAlB,GAAAgJ,MAEAa,EAAA7J,EAAA9M,MAAA,GAAA4W,OAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAC,GAAA7X,EAAA6X,GAAAD,GACiB,IACjB7F,GAAAyF,GACAjB,EAAAH,EAAAxU,GAAArB,KAAA,KAAA8V,EAAAqB,GACAlD,EAAA,CAAA+B,EAAAiB,EAAAjX,KAAAlC,MAAAmZ,EAAA,OAAApR,OAAA2I,GAAAwI,MACArU,EAAAS,OAAA6Q,EAAAsD,UACA5U,EAAAc,OAAAwS,EAAAiB,EAAAjD,EAAArW,SACA,MAGA,eACAqW,EAAA,CAAA+B,EAAAvW,GACAkD,EAAAS,OAAA6Q,EAAAsD,UACA,MAGAvC,EAAAwC,UAAA,SAAAvO,GACAiL,EAAAtO,OAAAqD,EAAArD,OACAqO,EAAAtG,QAAA,SAAA4G,GACA,OAAAA,EAAAtL,MAIA+L,EAAAtB,iBAAA,QAAAsB,EAAAwC,eACS,KAMTzB,KAAAS,MAAAxB,EAuCA,UAAAvD,MAAA,GAAA5L,OAAArD,EAAA,gCAtCA,IAAAiV,EAAAC,EAAAC,EAAAC,EAEAC,EAAAva,OAAAgQ,KAAA3K,GAAA6K,OAAA,SAAAzN,GACA,OAAA+U,GAAApE,SAAA3Q,KACWuW,MAEX,cAAAnK,GAAA1M,GAAA,CACA,IAAAqY,EAAAlI,GAAAnQ,GAEAsY,EAAA5J,GAAA2J,EAAA,GAEAL,EAAAM,EAAA,GACAL,EAAAK,EAAA,GACAJ,EAAAF,EAAA7Z,QACAga,EAAApJ,GAAAkJ,GAAApB,MACA9E,GAAAmG,GAGA,GAAA3C,EAAA,OAAAnP,OAAAgS,IAAA,OACA9B,EAAAtC,IAAAoE,EAAA,WACA,IAAAG,EAAAC,EAEA/D,EAAAtO,OAAAoP,EAEA,QAAAkD,EAAAlR,UAAA7J,OAAAR,EAAA,IAAAiS,MAAAsJ,GAAAC,EAAA,EAAkFA,EAAAD,EAAeC,IACjGxb,EAAAwb,GAAAnR,UAAAmR,GAGAnC,GAAAgC,EAAAnC,EAAAxU,IAAArB,KAAAlC,MAAAka,EAAA,MAAAlC,GAAAjQ,OAAAlJ,IACAsX,EAAA,CAAA+B,GAAAiC,EAAAN,GAAAlY,GAAAO,KAAAlC,MAAAma,EAAA,OAAApS,OAAAlJ,KACAgG,EAAAS,OAAA6Q,EAAAsD,UACA5U,EAAAc,OAAAwS,EAAA2B,EAAA3D,EAAArW,SACAqW,EAAAtG,QAAA,SAAA4G,GACA,OAAAA,MAEAS,EAAA,OAAAnP,OAAAgS,KAAA,SAjIAhC,EAAAxU,GAAAyU,EAAArW,GAgJA,SAAA2Y,GAAApD,GACA,GAAAA,EAAAwC,UAAA,CAEA,QAAAa,EAAArR,UAAA7J,OAAAgT,EAAA,IAAAvB,MAAAyJ,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAA4FA,EAAAD,EAAeC,IAC3GnI,EAAAmI,EAAA,GAAAtR,UAAAsR,GAGArH,GAAAd,EAAA,GAAAA,EAAA,MACAoI,GAAA9a,KAAAsD,KAAAiU,GACAhV,GAAAvC,KAAAK,MAAAkC,GAAA,CAAAe,KAAAiU,GAAAnP,OAAAsK,MAGA,SAAAoI,GAAAvD,GACAA,EAAAwC,WAAAxC,EAAArB,oBAAA,QAAAqB,EAAAwC,WACAxC,EAAAoB,QAAA/F,aAAA2E,EAAAoB,QACApB,EAAAI,UAAAJ,EAAAI,WACAJ,EAAA0B,aAAA1B,EAAA0B,YAAA8B,UAGA,IAAAC,GAEA,WACA,SAAAA,IACAlM,GAAAxL,KAAA0X,GAEA1X,KAAA2X,WAAA,EACA3X,KAAA4X,QAAA,KAoGA,OAhGA5L,GAAA0L,EAAA,OACA1Y,IAAA,UAEAN,MAAA,SAAAmZ,EAAAjT,GACA,IAAAW,EAAAvF,KAEA8X,EAAAlT,EAAAkT,YACAC,EAAAnT,EAAAoT,YACAA,OAAA,IAAAD,EAAA,GAAwDA,EACxDE,EAAAjY,KACAgY,EAAA5L,GAAA,CACA8L,MAAA,EACAC,MAAA,GACOH,GAEP,IAAAI,EAAA,SAAAC,GACAL,EAAAG,MACAL,EAAAK,KAAA,CACAG,IAAA,GAAAxT,QAAAyT,KAAAC,MAAAH,GAAA,YAKArY,KAAA2X,YACA3X,KAAA2X,WAAA,EAEAE,EAAAY,UAAA,SACAxZ,KAAA,WAGA,IAFA,IAAAyZ,EAEAvJ,EAAAlJ,UAAA7J,OAAAgT,EAAA,IAAAvB,MAAAsB,GAAAE,EAAA,EAA6EA,EAAAF,EAAaE,IAC1FD,EAAAC,GAAApJ,UAAAoJ,GAGA,OAAAqJ,EAAAzZ,IAAAvC,KAAAK,MAAA2b,EAAA,CAAAnT,GAAAT,OAAAsK,EAAA,CAAA0I,MAEAa,iBAAA,WAGA,IAFA,IAAAC,EAEAtF,EAAArN,UAAA7J,OAAAgT,EAAA,IAAAvB,MAAAyF,GAAAC,EAAA,EAAgFA,EAAAD,EAAeC,IAC/FnE,EAAAmE,GAAAtN,UAAAsN,GAGA,OAAAqF,EAAAvB,IAAA3a,KAAAK,MAAA6b,EAAA,CAAArT,GAAAT,OAAAsK,EAAA,CAAA0I,MAEAN,OAAA,WAGA,IAFA,IAAAqB,EAEA1B,EAAAlR,UAAA7J,OAAAgT,EAAA,IAAAvB,MAAAsJ,GAAAC,EAAA,EAAgFA,EAAAD,EAAeC,IAC/FhI,EAAAgI,GAAAnR,UAAAmR,GAGA,OAAAyB,EAAArB,IAAA9a,KAAAK,MAAA8b,EAAA,CAAAtT,GAAAT,OAAAsK,OAIAyI,EAAA9W,UAAA,aACA+X,OAAA,SAAAC,GACA,OAAAA,EAAA,QACAC,MAAA,qBAIAnB,EAAAoB,MAAA,CACArd,KAAA,WACA,OACAsd,gBAAAX,KAAAC,QAGAW,QAAA,WACA,IAAAhG,EAAAnT,KAEAT,OAAA6Z,eAAA,WACA,OAAAhB,EAAAjF,EAAA+F,mBAIAG,iBAAA,SAAAlY,EAAAyT,EAAAjP,GAEAxE,EAAAlD,OAAAga,EAAAL,QACAjS,KAEAsS,EAAAL,QAAAzW,EAAAlD,KACA+Z,EAAAE,MAAAJ,EAAAI,OACAvS,MAIA2T,iBAAA,SAAA1E,EAAAC,EAAAlP,GACAyS,EAAApY,KAAAkZ,iBACAvT,YAMA+R,EAzGA,GA4GAvL,GAAAuL,GAAA,eAEe,IAAA6B,GAAA,gBC94BTC,kCAAY,SACZC,GAAa,QACbC,GAAQ,8DACRC,GAAQ,CACZC,QAAS,sBACTC,KAAM,aACNC,SAAU,sBACVC,KAAM,WACNC,KAAM,OACNC,OAAQ,SACRC,OAAQ,oBAGJC,GAAM,SAAClR,EAAKmR,GAChBnR,EAAM3F,OAAO2F,GACbmR,EAAMA,GAAO,EACb,MAAOnR,EAAI7M,OAASge,EAClBnR,EAAG,IAAAnE,OAAOmE,GAEZ,OAAOA,GAGHoR,GAAc,CAClBC,KADkB,SACbC,GACH,OAAOJ,GAAII,EAAQC,cAAe,IAEpCC,GAJkB,SAIfF,GACD,OAAOjX,OAAOiX,EAAQC,eAAe3R,OAAO,IAE9C6R,EAPkB,SAOhBH,GACA,OAAOA,EAAQI,WAAa,GAE9BC,GAVkB,SAUfL,GACD,OAAOJ,GAAII,EAAQI,WAAa,IAElC3c,EAbkB,SAahBuc,GACA,OAAOA,EAAQM,WAEjBC,GAhBkB,SAgBfP,GACD,OAAOJ,GAAII,EAAQM,YAErB9B,EAnBkB,SAmBhBwB,GACA,OAAOA,EAAQQ,WAAa,IAAM,IAEpCC,GAtBkB,SAsBfT,GACD,OAAOJ,GAAII,EAAQQ,WAAa,IAAM,KAExCE,EAzBkB,SAyBhBV,GACA,OAAOA,EAAQQ,YAEjBG,GA5BkB,SA4BfX,GACD,OAAOJ,GAAII,EAAQQ,aAErBjd,EA/BkB,SA+BhByc,GACA,OAAOA,EAAQY,cAEjBC,GAlCkB,SAkCfb,GACD,OAAOJ,GAAII,EAAQY,eAErB3d,EArCkB,SAqChB+c,GACA,OAAOA,EAAQc,cAEjBC,GAxCkB,SAwCff,GACD,OAAOJ,GAAII,EAAQc,gBAUVE,GAAS,SAAChB,EAASiB,GAK9B,GAJuB,kBAAZjB,IACTA,EAAU,IAAIhC,KAAKgC,IAIyB,kBAA5Che,OAAOC,UAAU8H,SAAS5H,KAAK6d,IAC/BkB,MAAMlB,EAAQmB,WAEd,MAAM,IAAIhL,MAAM,+BAWlB,OATA8K,EAAO7B,GAAM6B,IAASA,GAAQ7B,GAAMC,QAGpC4B,EAAOA,EAAKG,QAAQjC,GAAO,SAAAkC,GACzB,OAAOA,KAAMvB,GACTA,GAAYuB,GAAIrB,GAChBqB,EAAGnc,MAAM,EAAGmc,EAAGxf,OAAS,KAGvBof,GAGHK,GAAa,CACjBvB,KAAM,CACJb,GACA,SAACzb,EAAG0Q,GACF1Q,EAAEgc,KAAOtL,IAGb+L,GAAI,CACFjB,GACA,SAACxb,EAAG0Q,GACF,IAAMoN,EAAK,IAAIvD,KACTwD,GAAQ,GAAAjX,OAAGgX,EAAGtB,eAAgB3R,OAAO,EAAG,GAC9C7K,EAAEgc,KAAF,GAAAlV,OAAY4J,EAAI,GAAKqN,EAAO,EAAIA,GAAhCjX,OAAuC4J,KAG3CgM,EAAG,CACDlB,GACA,SAACxb,EAAG0Q,GACF1Q,EAAEge,MAAQtN,EAAI,IAGlB1Q,EAAG,CACDwb,GACA,SAACxb,EAAG0Q,GACF1Q,EAAEie,IAAMvN,IAGZqK,EAAG,CACDS,GACA,SAACxb,EAAG0Q,GACF1Q,EAAEke,KAAOxN,IAGb5Q,EAAG,CACD0b,GACA,SAACxb,EAAG0Q,GACF1Q,EAAEme,OAASzN,IAGflR,EAAG,CACDgc,GACA,SAACxb,EAAG0Q,GACF1Q,EAAEoe,OAAS1N,KAIjBmN,GAAWjB,GAAKiB,GAAWnB,EAC3BmB,GAAWf,GAAKe,GAAW7d,EAC3B6d,GAAWb,GAAKa,GAAW9C,EAC3B8C,GAAWZ,EAAIY,GAAW9C,EAC1B8C,GAAWX,GAAKW,GAAW9C,EAC3B8C,GAAWT,GAAKS,GAAW/d,EAC3B+d,GAAWP,GAAKO,GAAWre,EASpB,4BClKM6e,GAAiB,SAAAzgB,GAC5B,IAAM0gB,EAAYC,KAAY3gB,GAAMya,OAClC,SAACmG,EAAMjG,GAAP,OAAciG,EAAKlgB,KAAK,CAAE0C,IAAKuX,EAAGtN,IAAKrN,EAAK2a,KAAOiG,GACnD,IAEIC,EAAMH,EACTI,IAAI,SAAA9X,GAAkB,IAAf5F,EAAe4F,EAAf5F,IAAKiK,EAAUrE,EAAVqE,IACX,sDAAAnE,OAEY9F,EAFZ,6BAAA8F,OAGYmE,EAHZ,qCAOD0T,KAAK,IAER,8JAAA7X,OAMM2X,EANN,yBCHa,SAASG,GAAY5J,GAAqB,IAAhB6J,EAAgB5W,UAAA7J,OAAA,QAAAiS,IAAApI,UAAA,GAAAA,UAAA,GAAJ,GAC7CrK,EAAOW,OAAAugB,GAAA,KAAAvgB,CAAA,CACXyW,OACG6J,EAFK,CAGRE,YAAaxB,GAAOlX,SAGV,MAAR2O,GACFgK,IAAQ,YAEE,MAARhK,GACFgK,IAAQ,CACNC,QAAS,aACTC,YAAa,mBAGjBC,EAAAzZ,EAAaiB,QAAQ,CACnBrD,MAAO,UACP8b,0BAA0B,EAC1BH,QAASZ,GAAezgB,GACxBshB,YAAa,sBACbG,SAAkB,MAARrK,GAAuB,MAARA,EAAc,WAAa,YACpDsK,OAAgB,MAARtK,EAAc,IAAM,IC3BjB,IAAA8B,GAAA,CAKboD,KALa,WAMX0E,GAAY,MAOdzE,KAba,SAAAvT,GAaC,IAAP0T,EAAO1T,EAAP0T,IACLsE,GAAY,IAAK,CAAEtE,SAOrBiF,MArBa,SAAA5I,GAqBe,IAAV1W,EAAU0W,EAApB6I,OAAUvf,KAChB2e,GAAY,QAAS,CACnBa,YAAaxf,KAGjByf,MA1Ba,SAAAxG,EAAAyG,EAAAC,GAkCX,IANY3f,EAMZiZ,EANEsG,OAAUvf,KAGFqC,EAGVqd,EAHEzb,KAAQ5B,GAERuE,EACF+Y,EADE/Y,OAEF+X,GAAY,QAAS,CACnBtc,KACAmd,YAAaxf,EACb4G,YAGJgZ,MAzCa,SAAAC,GAyCsB,IAA3BvZ,EAA2BuZ,EAA3BvZ,MAAiBtG,EAAU6f,EAApBN,OAAUvf,KACvB2e,GAAY,QAAS,CACnBa,YAAaxf,EACbsG,WAGJwZ,MA/Ca,SAAAC,GA+CqB,IAA1Bvb,EAA0Bub,EAA1Bvb,KAAgBxE,EAAU+f,EAApBR,OAAUvf,KACtB2e,GAAY,QAAS,CACnBa,YAAaxf,EACbwE,UAGJwb,MArDa,SAAAC,EAAAC,EAAAC,GA2DX,IAJYngB,EAIZigB,EAJEV,OAAUvf,KAEVqC,EAEF6d,EAFE7d,GACAuE,EACFuZ,EADEvZ,OAEF+X,GAAY,QAAS,CACnBtc,KACAmd,YAAaxf,EACb4G,YAGJwZ,MAlEa,SAAAC,GAkE2B,IAAhC7W,EAAgC6W,EAAhC7W,WAAsBxJ,EAAUqgB,EAApBd,OAAUvf,KAC5B2e,GAAY,QAAS,CACnBa,YAAaxf,EACbsgB,YAAa9W,KAGjB+W,MAxEa,SAAAC,GAwEqB,IAA1Bhc,EAA0Bgc,EAA1Bhc,KAAgBxE,EAAUwgB,EAApBjB,OAAUvf,KACtB2e,GAAY,QAAS,CACnBa,YAAaxf,EACbwE,UAGJic,MA9Ea,SAAAC,GA8Ee,IAAV1gB,EAAU0gB,EAApBnB,OAAUvf,KAChB2e,GAAY,QAAS,CACnBa,YAAaxf,EACb2gB,YAAa,iBAGjBC,MApFa,SAAAC,GAoFe,IAAV7gB,EAAU6gB,EAApBtB,OAAUvf,KAChB2e,GAAY,QAAS,CACnBa,YAAaxf,KAGjB8gB,MAzFa,SAAAC,GAyFsB,IAA3BpV,EAA2BoV,EAA3BpV,MAAiB3L,EAAU+gB,EAApBxB,OAAUvf,KACvB2e,GAAY,QAAS,CACnBa,YAAaxf,EACbwE,KAAMmH,KAGVqV,MA/Fa,SAAAC,GA+FsB,IAA3BjV,EAA2BiV,EAA3BjV,MAAiBhM,EAAUihB,EAApB1B,OAAUvf,KACvB2e,GAAY,QAAS,CACnBa,YAAaxf,EACbwE,KAAMwH,KAGVkV,MArGa,SAAAC,GAqGe,IAAVnhB,EAAUmhB,EAApB5B,OAAUvf,KAChB2e,GAAY,QAAS,CACnBa,YAAaxf,EACb2gB,YAAa,cAGjBS,MA3Ga,SAAAC,GA2Ge,IAAVrhB,EAAUqhB,EAApB9B,OAAUvf,KAChB2e,GAAY,QAAS,CACnBa,YAAaxf,EACb2gB,YAAa,eC5GJW,GAAAhjB,OAAAugB,GAAA,SACVhF,ICQLD,aAAI2H,IAAIC,QACR5H,aAAI2H,IAAJE,EAAAhc,GACAmU,aAAI2H,IAAJG,EAAAjc,GACAmU,aAAI2H,IAAJI,EAAAlc,GACAmU,aAAI2H,IAAJK,EAAAnc,GACAmU,aAAI2H,IAAIM,GAAU,CAChBhI,eACAE,YAAa,CACXE,MAAM,EACNC,MAAM,KAIVN,aAAIrb,UAAUkI,SAAdsY,EAAAtZ,EACAmU,aAAIrb,UAAUujB,QAAd5C,EAAAzZ,EAEA,IAAMsc,GAAS,IAAIP,OAAU,CAC3BQ,OAAQ,CACN,CACEC,KAAM,IACNjiB,KAAM,OACN8C,UAAWof,GAEb,CACED,KAAM,WACNjiB,KAAM,UACN8C,UAAWqf,IAEb,CACEF,KAAM,iBACNjiB,KAAM,gBACN8C,UAAWsf,IAEb,CACEH,KAAM,cACNjiB,KAAM,aACN8C,UAAWuf,IAEb,CACEJ,KAAM,cACNjiB,KAAM,aACN8C,UAAWwf,IAEb,CACEL,KAAM,IACNM,SAAU,QAMhB,IAAI3I,aAAI,CACN5D,GAAI,OACJ+L,UACAlH,OAAQ,SAAAC,GAAC,OAAIA,EAAE9X","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\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","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","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\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./button.vue?vue&type=template&id=60c8796f&\"\nimport script from \"./button.vue?vue&type=script&lang=js&\"\nexport * from \"./button.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./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","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","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-track
\ No newline at end of file +v-track
\ No newline at end of file