cbvirtua 1.0.116 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -5
- package/valid.txt +468 -0
- package/vue3-hash-calendar-main.zip +0 -0
- package/vv.txt +10442 -0
- package/1.zip +0 -0
- package/7.zip +0 -0
- package/888.zip +0 -0
- package/Checkbox Checked-1.png +0 -0
- package/_/345/217/267 (1).svg" +0 -1
- package/_/345/217/267.svg +0 -1
- package/a.png +0 -0
- package/babel-plugin-async-lock-master.zip +0 -0
- package/build-own-react-main.zip +0 -0
- package/check_box.svg +0 -1
- package/check_box_outline_blank.svg +0 -1
- package/checkbox_unchecked.svg +0 -1
- package/floating-vue-main.zip +0 -0
- package/font_2009600_gpzp7pxtnw.zip +0 -0
- package/font_2553510_ciljc7axaw7.woff +0 -0
- package/font_2553510_ciljc7axaw7.woff2 +0 -0
- package/leetcode-javascript-master.zip +0 -0
- package/loginDemo-master.zip +0 -0
- package/mi.txt +0 -374
- package/mitt-main.zip +0 -0
- package/mp-weixin-back-main.zip +0 -0
- package/pdfsss.txt +0 -900
- package/sms-check-code-master.zip +0 -0
- package/sss.txt +0 -2
- package/study-summarize-master.zip +0 -0
- package/tool.txt +0 -19
- package/v-dropdown-menu-master.zip +0 -0
- package/v-track-master/v-track-master/.browserslistrc +0 -3
- package/v-track-master/v-track-master/.eslintignore +0 -3
- package/v-track-master/v-track-master/.eslintrc.js +0 -15
- package/v-track-master/v-track-master/.gitattributes +0 -1
- package/v-track-master/v-track-master/.github/FUNDING.yml +0 -12
- package/v-track-master/v-track-master/.github/workflows/node.js.yml +0 -29
- package/v-track-master/v-track-master/.travis.yml +0 -22
- package/v-track-master/v-track-master/.yarnrc +0 -1
- package/v-track-master/v-track-master/LICENSE +0 -21
- package/v-track-master/v-track-master/README.md +0 -131
- package/v-track-master/v-track-master/babel.config.js +0 -25
- package/v-track-master/v-track-master/build/rollup.config.base.js +0 -14
- package/v-track-master/v-track-master/build/rollup.config.browser.js +0 -21
- package/v-track-master/v-track-master/build/rollup.config.es.js +0 -11
- package/v-track-master/v-track-master/docs/.babelrc +0 -5
- package/v-track-master/v-track-master/docs/App.vue +0 -61
- package/v-track-master/v-track-master/docs/assets/app.scss +0 -197
- package/v-track-master/v-track-master/docs/assets/index.scss +0 -10
- package/v-track-master/v-track-master/docs/assets/mixins.scss +0 -64
- package/v-track-master/v-track-master/docs/assets/normalize.scss +0 -349
- package/v-track-master/v-track-master/docs/components/button.vue +0 -15
- package/v-track-master/v-track-master/docs/components/code-snippet.vue +0 -72
- package/v-track-master/v-track-master/docs/dist/css/app.2e14d2d6.css +0 -4
- package/v-track-master/v-track-master/docs/dist/css/chunk-vendors.c687a9b2.css +0 -1
- package/v-track-master/v-track-master/docs/dist/favicon.ico +0 -0
- package/v-track-master/v-track-master/docs/dist/fonts/element-icons.535877f5.woff +0 -0
- package/v-track-master/v-track-master/docs/dist/fonts/element-icons.732389de.ttf +0 -0
- package/v-track-master/v-track-master/docs/dist/js/app.efe84ade.js +0 -2
- package/v-track-master/v-track-master/docs/dist/js/app.efe84ade.js.map +0 -1
- package/v-track-master/v-track-master/docs/dist/js/chunk-vendors.c94e27ba.js +0 -13
- package/v-track-master/v-track-master/docs/dist/js/chunk-vendors.c94e27ba.js.map +0 -1
- package/v-track-master/v-track-master/docs/index.html +0 -1
- package/v-track-master/v-track-master/docs/main.js +0 -78
- package/v-track-master/v-track-master/docs/pages/block-show.vue +0 -177
- package/v-track-master/v-track-master/docs/pages/custom-events.vue +0 -291
- package/v-track-master/v-track-master/docs/pages/home.vue +0 -269
- package/v-track-master/v-track-master/docs/pages/started.vue +0 -151
- package/v-track-master/v-track-master/docs/pages/track-view.vue +0 -234
- package/v-track-master/v-track-master/docs/tracks/action.js +0 -37
- package/v-track-master/v-track-master/docs/tracks/events.js +0 -140
- package/v-track-master/v-track-master/docs/tracks/index.js +0 -13
- package/v-track-master/v-track-master/docs/utils/date.js +0 -219
- package/v-track-master/v-track-master/docs/utils/dom.js +0 -26
- package/v-track-master/v-track-master/jest.config.js +0 -18
- package/v-track-master/v-track-master/package.json +0 -67
- package/v-track-master/v-track-master/postcss.config.js +0 -5
- package/v-track-master/v-track-master/public/favicon.ico +0 -0
- package/v-track-master/v-track-master/public/index.html +0 -18
- package/v-track-master/v-track-master/src/hooks/index.js +0 -217
- package/v-track-master/v-track-master/src/index.js +0 -79
- package/v-track-master/v-track-master/src/utils/debug.js +0 -13
- package/v-track-master/v-track-master/src/utils/dom.js +0 -73
- package/v-track-master/v-track-master/src/utils/helper.js +0 -122
- package/v-track-master/v-track-master/src/utils/vis-monitor.js +0 -183
- package/v-track-master/v-track-master/tests/helper.js +0 -37
- package/v-track-master/v-track-master/tests/unit/.eslintrc.js +0 -5
- package/v-track-master/v-track-master/tests/unit/track-click-async.spec.js +0 -52
- package/v-track-master/v-track-master/tests/unit/track-click-delay.spec.js +0 -46
- package/v-track-master/v-track-master/tests/unit/track-click-native.spec.js +0 -84
- package/v-track-master/v-track-master/tests/unit/track-click-param.spec.js +0 -55
- package/v-track-master/v-track-master/tests/unit/track-click.spec.js +0 -47
- package/v-track-master/v-track-master/tests/unit/track-custom-event-async.spec.js +0 -61
- package/v-track-master/v-track-master/tests/unit/track-custom-event-delay.spec.js +0 -59
- package/v-track-master/v-track-master/tests/unit/track-custom-event-param.spec.js +0 -68
- package/v-track-master/v-track-master/tests/unit/track-custom-event.spec.js +0 -55
- package/v-track-master/v-track-master/tests/unit/track-show-custom-scroll-once.spec.js +0 -62
- package/v-track-master/v-track-master/tests/unit/track-show-custom-scroll.spec.js +0 -62
- package/v-track-master/v-track-master/tests/unit/track-show-once.spec.js +0 -55
- package/v-track-master/v-track-master/tests/unit/track-show-param.spec.js +0 -51
- package/v-track-master/v-track-master/tests/unit/track-show.spec.js +0 -55
- package/v-track-master/v-track-master/tests/unit/track-view-vif.spec.js +0 -54
- package/v-track-master/v-track-master/tests/unit/track-view-watch-delay.spec.js +0 -63
- package/v-track-master/v-track-master/tests/unit/track-view-watch.spec.js +0 -61
- package/v-track-master/v-track-master/tests/unit/track-view.spec.js +0 -32
- package/v-track-master/v-track-master/vue.config.js +0 -45
- package/v-track-master/v-track-master/yarn.lock +0 -10186
- package/v-track-master.zip +0 -0
- package/vant-weapp-dev.zip +0 -0
- package/vue-autosize-input-master.zip +0 -0
- package/vue-awesome-dropdown-master.zip +0 -0
- package/vue-codemod-main.zip +0 -0
- package/vue-collapsed-main.zip +0 -0
- package/vue-input-code-master.zip +0 -0
- package/vue-jscodeshift-adapter-master.zip +0 -0
- package/vue-verify-master.zip +0 -0
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/.hbuilderx/launch.json +0 -11
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/App.vue +0 -17
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/README.md +0 -13
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/code.js +0 -408
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/css/icon.css +0 -342
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/css/style.scss +0 -119
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/search/index.vue +0 -66
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/components/xiaolu-tree/tree.vue +0 -70
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/main.js +0 -11
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/manifest.json +0 -78
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages/chooseUser/chooseUser.vue +0 -69
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages/chooseUser/data.js +0 -96
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages/index/index.vue +0 -122
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/pages.json +0 -25
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/changelog.md +0 -80
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/en.json +0 -7
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/index.js +0 -8
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json +0 -7
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json +0 -7
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/keypress.js +0 -45
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/popup.js +0 -26
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/uni-popup.uvue +0 -90
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup/uni-popup.vue +0 -496
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js +0 -45
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue +0 -313
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue +0 -143
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue +0 -187
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/package.json +0 -87
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-popup/readme.md +0 -17
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/changelog.md +0 -8
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/index.scss +0 -1
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/package.json +0 -82
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/readme.md +0 -4
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/index.scss +0 -7
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_border.scss +0 -3
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_color.scss +0 -66
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_radius.scss +0 -55
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_space.scss +0 -56
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_styles.scss +0 -167
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_text.scss +0 -24
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/setting/_variables.scss +0 -146
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/styles/tools/functions.scss +0 -19
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/theme.scss +0 -31
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-scss/variables.scss +0 -62
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/changelog.md +0 -22
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/components/uni-transition/createAnimation.js +0 -131
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/components/uni-transition/uni-transition.vue +0 -286
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/package.json +0 -84
- package/xiaolu-tree-plugin-main/xiaolu-tree-plugin-main/uni_modules/uni-transition/readme.md +0 -11
- package//346/224/266/347/274/251/344/270/212/347/256/255/345/244/264 (1).svg" +0 -1
- package//346/224/266/347/274/251/344/270/212/347/256/255/345/244/264.svg +0 -1
- package//346/224/266/347/274/251/344/270/213/347/256/255/345/244/264.svg +0 -1
- package//346/224/266/347/274/251/347/256/255/345/244/264.svg +0 -1
- package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243 (2).txt" +0 -90
- package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243 (3).txt" +0 -142
- package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243 (3).zip +0 -0
- package//346/226/260/345/273/272 /346/226/207/346/234/254/346/226/207/346/241/243.txt" +0 -59
- package//351/227/256/345/217/267.svg +0 -1
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="page-home page">
|
|
3
|
-
<section class="nav">
|
|
4
|
-
<router-link :to="{ name: 'STARTED' }">
|
|
5
|
-
快速开始
|
|
6
|
-
</router-link>
|
|
7
|
-
<router-link :to="{ name: 'HOME' }">
|
|
8
|
-
事件行为埋点
|
|
9
|
-
</router-link>
|
|
10
|
-
<router-link :to="{ name: 'CUSTOM_EVENTS' }">
|
|
11
|
-
自定义事件埋点
|
|
12
|
-
</router-link>
|
|
13
|
-
<router-link :to="{ name: 'TRACK_VIEW' }">
|
|
14
|
-
页面行为埋点
|
|
15
|
-
</router-link>
|
|
16
|
-
<router-link :to="{ name: 'BLOCK_SHOW' }">
|
|
17
|
-
区域展现埋点
|
|
18
|
-
</router-link>
|
|
19
|
-
<a href="https://github.com/l-hammer/v-track/issues">打开一个 issue</a>
|
|
20
|
-
</section>
|
|
21
|
-
|
|
22
|
-
<!----------------------- DEMO 1 ------------------------>
|
|
23
|
-
<section class="demo">
|
|
24
|
-
<el-alert
|
|
25
|
-
center
|
|
26
|
-
type="info"
|
|
27
|
-
title="这是一个点击事件行为的埋点"
|
|
28
|
-
:closable="false"
|
|
29
|
-
>
|
|
30
|
-
</el-alert>
|
|
31
|
-
<div class="section-content">
|
|
32
|
-
<div class="track-button" v-track:18015.click="handleClick">
|
|
33
|
-
click me
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
</section>
|
|
37
|
-
|
|
38
|
-
<section class="snippets">
|
|
39
|
-
<CodeSnippet class="snippet" lang="html" :code="trackClickSnippet" />
|
|
40
|
-
</section>
|
|
41
|
-
|
|
42
|
-
<!----------------------- DEMO 2 ------------------------>
|
|
43
|
-
<section class="demo">
|
|
44
|
-
<el-alert
|
|
45
|
-
center
|
|
46
|
-
type="info"
|
|
47
|
-
title="通过增加 .native 修饰符,我们可以监听组件原生click事件行为的埋点"
|
|
48
|
-
:closable="false"
|
|
49
|
-
>
|
|
50
|
-
</el-alert>
|
|
51
|
-
<div class="section-content">
|
|
52
|
-
<Button v-track:18015.click.native="handleNativeEvent"></Button>
|
|
53
|
-
</div>
|
|
54
|
-
</section>
|
|
55
|
-
|
|
56
|
-
<section class="snippets">
|
|
57
|
-
<CodeSnippet
|
|
58
|
-
class="snippet"
|
|
59
|
-
lang="html"
|
|
60
|
-
:code="trackNativeClickSnippet"
|
|
61
|
-
/>
|
|
62
|
-
</section>
|
|
63
|
-
|
|
64
|
-
<!----------------------- DEMO 3 ------------------------>
|
|
65
|
-
<section class="demo">
|
|
66
|
-
<el-alert
|
|
67
|
-
center
|
|
68
|
-
type="info"
|
|
69
|
-
title="这个一个带参数点击事件行为的埋点,默认最后一个参数为 event 事件对象"
|
|
70
|
-
:closable="false"
|
|
71
|
-
>
|
|
72
|
-
</el-alert>
|
|
73
|
-
<div class="section-content">
|
|
74
|
-
<div
|
|
75
|
-
class="track-button"
|
|
76
|
-
v-track:18016.click="{ handleClickWithParam, item }"
|
|
77
|
-
>
|
|
78
|
-
click me
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
</section>
|
|
82
|
-
|
|
83
|
-
<section class="snippets">
|
|
84
|
-
<CodeSnippet
|
|
85
|
-
class="snippet"
|
|
86
|
-
lang="html"
|
|
87
|
-
:code="trackClickWithParamSnippet"
|
|
88
|
-
/>
|
|
89
|
-
<CodeSnippet
|
|
90
|
-
class="snippet"
|
|
91
|
-
lang="js"
|
|
92
|
-
:code="jsTrackClickWithParamSnippet"
|
|
93
|
-
/>
|
|
94
|
-
</section>
|
|
95
|
-
|
|
96
|
-
<!----------------------- DEMO 4 ------------------------>
|
|
97
|
-
<section class="demo">
|
|
98
|
-
<el-alert
|
|
99
|
-
center
|
|
100
|
-
type="info"
|
|
101
|
-
title="这是一个发生在事件之后的埋点,默认先执行埋点再执行事件,如示例所示:index初始值为0,点击事件会将index加1,所以埋点获取到的index值应该为1,依次点击则累加"
|
|
102
|
-
:closable="false"
|
|
103
|
-
>
|
|
104
|
-
</el-alert>
|
|
105
|
-
<div class="section-content">
|
|
106
|
-
<div class="track-button" v-track:18017.click.delay="handleClickDelay">
|
|
107
|
-
click me
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
</section>
|
|
111
|
-
|
|
112
|
-
<section class="snippets">
|
|
113
|
-
<CodeSnippet class="snippet" lang="html" :code="trackClickDelaySnippet" />
|
|
114
|
-
<CodeSnippet class="snippet" lang="js" :code="jsTrackClickDelaySnippet" />
|
|
115
|
-
</section>
|
|
116
|
-
|
|
117
|
-
<!----------------------- DEMO 5 ------------------------>
|
|
118
|
-
<section class="demo">
|
|
119
|
-
<el-alert
|
|
120
|
-
center
|
|
121
|
-
type="info"
|
|
122
|
-
title="这是一个有异步行为的事件埋点,如示例所示:rest 初始值为 null,点击事件会 fetch 为 success,所以埋点获取到的 rest 值应该为 success"
|
|
123
|
-
:closable="false"
|
|
124
|
-
>
|
|
125
|
-
</el-alert
|
|
126
|
-
><el-alert
|
|
127
|
-
center
|
|
128
|
-
type="warning"
|
|
129
|
-
title="备注:①修饰符 async 是基于 Vue 实例提供的 vm.$watch 方法,所以只有在返回结果 rest 发生变化时才会触发埋点;②当有多个参数时,.async 会把最后一个参数当做监听对象"
|
|
130
|
-
:closable="false"
|
|
131
|
-
>
|
|
132
|
-
</el-alert>
|
|
133
|
-
<div class="section-content">
|
|
134
|
-
<div
|
|
135
|
-
class="track-button"
|
|
136
|
-
v-track:18018.click.async="{ handleClickAsync, rest }"
|
|
137
|
-
>
|
|
138
|
-
click me
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
</section>
|
|
142
|
-
|
|
143
|
-
<section class="snippets">
|
|
144
|
-
<CodeSnippet class="snippet" lang="html" :code="trackClickAsyncSnippet" />
|
|
145
|
-
<CodeSnippet class="snippet" lang="js" :code="jsTrackClickAsyncSnippet" />
|
|
146
|
-
</section>
|
|
147
|
-
</div>
|
|
148
|
-
</template>
|
|
149
|
-
|
|
150
|
-
<script>
|
|
151
|
-
import CodeSnippet from "../components/code-snippet";
|
|
152
|
-
import Button from "../components/button";
|
|
153
|
-
|
|
154
|
-
const trackClickSnippet = `
|
|
155
|
-
<div class="track-button" v-track:18015.click="handleClick">click me</div>
|
|
156
|
-
`;
|
|
157
|
-
const trackNativeClickSnippet = `
|
|
158
|
-
<Button v-track:18015.click.native="handleNativeEvent"></Button>
|
|
159
|
-
`;
|
|
160
|
-
const trackClickWithParamSnippet = `
|
|
161
|
-
<div class="track-button" v-track:18016.click="{ handleClickWithParam, item }">click me</div>
|
|
162
|
-
`;
|
|
163
|
-
const jsTrackClickWithParamSnippet = `
|
|
164
|
-
export default {
|
|
165
|
-
data: () => ({
|
|
166
|
-
item: {
|
|
167
|
-
id: Date.now().toString(36)
|
|
168
|
-
},
|
|
169
|
-
})
|
|
170
|
-
}
|
|
171
|
-
`;
|
|
172
|
-
const trackClickDelaySnippet = `
|
|
173
|
-
<div class="track-button" v-track:18017.click.delay="handleClickDelay">click me</div>
|
|
174
|
-
`;
|
|
175
|
-
const jsTrackClickDelaySnippet = `
|
|
176
|
-
export default {
|
|
177
|
-
data() {
|
|
178
|
-
return {
|
|
179
|
-
index: 0
|
|
180
|
-
};
|
|
181
|
-
},
|
|
182
|
-
methods: {
|
|
183
|
-
handleClickDelay() {
|
|
184
|
-
this.index++;
|
|
185
|
-
},
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
`;
|
|
189
|
-
const trackClickAsyncSnippet = `
|
|
190
|
-
<div class="track-button" v-track:18018.click.async="handleClickAsync">click me</div>
|
|
191
|
-
`;
|
|
192
|
-
const jsTrackClickAsyncSnippet = `
|
|
193
|
-
export default {
|
|
194
|
-
data() {
|
|
195
|
-
return {
|
|
196
|
-
rest: null
|
|
197
|
-
};
|
|
198
|
-
},
|
|
199
|
-
methods: {
|
|
200
|
-
async handleClickAsync() {
|
|
201
|
-
const response = await new Promise(resolve => {
|
|
202
|
-
setTimeout(() => {
|
|
203
|
-
resolve({ data: "success" });
|
|
204
|
-
}, 300);
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
this.rest = response.data;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
`;
|
|
212
|
-
|
|
213
|
-
export default {
|
|
214
|
-
name: "Home",
|
|
215
|
-
components: {
|
|
216
|
-
Button,
|
|
217
|
-
CodeSnippet
|
|
218
|
-
},
|
|
219
|
-
data() {
|
|
220
|
-
return {
|
|
221
|
-
trackClickSnippet,
|
|
222
|
-
trackNativeClickSnippet,
|
|
223
|
-
trackClickWithParamSnippet,
|
|
224
|
-
jsTrackClickWithParamSnippet,
|
|
225
|
-
trackClickDelaySnippet,
|
|
226
|
-
trackClickAsyncSnippet,
|
|
227
|
-
jsTrackClickDelaySnippet,
|
|
228
|
-
jsTrackClickAsyncSnippet,
|
|
229
|
-
item: {
|
|
230
|
-
id: Date.now().toString(36)
|
|
231
|
-
},
|
|
232
|
-
index: 0,
|
|
233
|
-
rest: null
|
|
234
|
-
};
|
|
235
|
-
},
|
|
236
|
-
methods: {
|
|
237
|
-
handleClick() {
|
|
238
|
-
this.$message.success("事件执行成功");
|
|
239
|
-
},
|
|
240
|
-
handleNativeEvent() {
|
|
241
|
-
this.$message.success("组件原生事件执行成功");
|
|
242
|
-
},
|
|
243
|
-
handleClickWithParam(item, { target }) {
|
|
244
|
-
this.$message.success(
|
|
245
|
-
`事件执行成功,参数为${JSON.stringify(item)}--${target}`
|
|
246
|
-
);
|
|
247
|
-
},
|
|
248
|
-
handleClickDelay() {
|
|
249
|
-
this.index++;
|
|
250
|
-
},
|
|
251
|
-
async handleClickAsync() {
|
|
252
|
-
const response = await new Promise(resolve => {
|
|
253
|
-
setTimeout(() => {
|
|
254
|
-
resolve({ data: "success" });
|
|
255
|
-
}, 300);
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
if (this.rest === response.data) {
|
|
259
|
-
this.$message.success(
|
|
260
|
-
"异步事件返回成功,但返回结果和上一次相等,埋点不会上报"
|
|
261
|
-
);
|
|
262
|
-
} else {
|
|
263
|
-
this.rest = response.data;
|
|
264
|
-
this.$message.success("异步事件返回成功");
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
};
|
|
269
|
-
</script>
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="page-started page">
|
|
3
|
-
<section class="nav">
|
|
4
|
-
<router-link :to="{ name: 'HOME' }">
|
|
5
|
-
返回
|
|
6
|
-
</router-link>
|
|
7
|
-
<router-link :to="{ name: 'HOME' }">
|
|
8
|
-
事件行为埋点
|
|
9
|
-
</router-link>
|
|
10
|
-
<router-link :to="{ name: 'CUSTOM_EVENTS' }">
|
|
11
|
-
自定义事件埋点
|
|
12
|
-
</router-link>
|
|
13
|
-
<router-link :to="{ name: 'TRACK_VIEW' }">
|
|
14
|
-
页面行为埋点
|
|
15
|
-
</router-link>
|
|
16
|
-
<router-link :to="{ name: 'BLOCK_SHOW' }">
|
|
17
|
-
区域展现埋点
|
|
18
|
-
</router-link>
|
|
19
|
-
<a href="https://github.com/l-hammer/v-track/issues">打开一个 issue</a>
|
|
20
|
-
</section>
|
|
21
|
-
|
|
22
|
-
<section class="snippets">
|
|
23
|
-
<div class="section-content small">
|
|
24
|
-
v-track通过
|
|
25
|
-
<a href="https://cn.vuejs.org/v2/guide/custom-directive.html"
|
|
26
|
-
>Vue 自定义指令</a
|
|
27
|
-
>的方式将埋点代码与业务代码完全解耦,完整示例可参考
|
|
28
|
-
<a href="https://github.com/l-hammer/v-track/tree/master">GitHub</a>
|
|
29
|
-
</div>
|
|
30
|
-
</section>
|
|
31
|
-
|
|
32
|
-
<section class="snippets">
|
|
33
|
-
<CodeSnippet class="snippet" :code="installSnippet" lang="shell" />
|
|
34
|
-
<div class="plus">+</div>
|
|
35
|
-
<CodeSnippet class="snippet" :code="mainSnippet" lang="js" />
|
|
36
|
-
<div class="plus">+</div>
|
|
37
|
-
<CodeSnippet class="snippet" :code="eventsSnippet" lang="js" />
|
|
38
|
-
<div class="plus">+</div>
|
|
39
|
-
<CodeSnippet class="snippet" :code="componentSnippet" lang="html" />
|
|
40
|
-
</section>
|
|
41
|
-
</div>
|
|
42
|
-
</template>
|
|
43
|
-
|
|
44
|
-
<script>
|
|
45
|
-
import CodeSnippet from "../components/code-snippet";
|
|
46
|
-
|
|
47
|
-
const installSnippet = `
|
|
48
|
-
# YARN
|
|
49
|
-
$ yarn add v-track
|
|
50
|
-
|
|
51
|
-
# NPM
|
|
52
|
-
$ npm install v-track --save
|
|
53
|
-
`;
|
|
54
|
-
const mainSnippet = `
|
|
55
|
-
import Vue from "vue";
|
|
56
|
-
import VTrack from "v-track";
|
|
57
|
-
import trackEvents from "./track-events";
|
|
58
|
-
|
|
59
|
-
Vue.use(VTrack, {
|
|
60
|
-
trackEvents, // 埋点事件对象
|
|
61
|
-
trackEnable: {
|
|
62
|
-
UVPV: true, // 是否开启UVPV统计,v0.8.3新增routeUpdate,即在当前路由参数发生改变时埋点,默认为false
|
|
63
|
-
TONP: true // 是否开启页面停留时长统计,默认为false
|
|
64
|
-
}
|
|
65
|
-
})
|
|
66
|
-
`;
|
|
67
|
-
const eventsSnippet = `
|
|
68
|
-
import trackAction from "./action"; // 自定义埋点上报的方法
|
|
69
|
-
|
|
70
|
-
export default {
|
|
71
|
-
/**
|
|
72
|
-
* @name UVPV 固定名称不支持修改
|
|
73
|
-
* @desc UV、PV埋点
|
|
74
|
-
* @param {Object} context 当前上下文
|
|
75
|
-
*/
|
|
76
|
-
UVPV(_) {
|
|
77
|
-
trackAction("1");
|
|
78
|
-
},
|
|
79
|
-
/**
|
|
80
|
-
* @name TONP 固定名称不支持修改
|
|
81
|
-
* @desc 页面停留时间埋点(Time on Page)
|
|
82
|
-
* @param {Object} context 当前上下文
|
|
83
|
-
* @param {Timestamp} et 进入页面时间
|
|
84
|
-
* @param {Timestamp} dt 离开页面时间
|
|
85
|
-
*/
|
|
86
|
-
TONP(_, { et, dt }) {
|
|
87
|
-
trackAction("2", {
|
|
88
|
-
stt: dt - et
|
|
89
|
-
});
|
|
90
|
-
},
|
|
91
|
-
/**
|
|
92
|
-
* @param {Object} context 当前上下文
|
|
93
|
-
* @param {Object} item 事件参数
|
|
94
|
-
* @param {Object} event 事件对象
|
|
95
|
-
*/
|
|
96
|
-
18015(
|
|
97
|
-
{
|
|
98
|
-
$route: { name }
|
|
99
|
-
},
|
|
100
|
-
{ id },
|
|
101
|
-
{ target }
|
|
102
|
-
) {
|
|
103
|
-
trackAction("18015", {
|
|
104
|
-
id,
|
|
105
|
-
source_page: name,
|
|
106
|
-
target
|
|
107
|
-
});
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
`;
|
|
111
|
-
const componentSnippet = `
|
|
112
|
-
<!-- 页面行为埋点(track-view为v-track全局注册的组件) -->
|
|
113
|
-
<track-view v-track:18015></track-view>
|
|
114
|
-
<track-view v-track:18015.watch="{ result }"></track-view>
|
|
115
|
-
<track-view v-track:18015.watch.delay="{ result }"></track-view>
|
|
116
|
-
<track-view v-if="result" v-track:18015></track-view>
|
|
117
|
-
|
|
118
|
-
<!-- 事件行为埋点(DOM) -->
|
|
119
|
-
<div v-track:18015.click="handleClick"></div>
|
|
120
|
-
<div v-track:18015.click="{ handleClick, item, index }"></div>
|
|
121
|
-
<div v-track:18015.click.async="{ handleSearch, rest }"></div>
|
|
122
|
-
<div v-track:18015.click.delay="handleClick"></div>
|
|
123
|
-
|
|
124
|
-
<!-- 事件行为埋点(组件) -->
|
|
125
|
-
<cmp v-track:18015.click="handleClick"></cmp>
|
|
126
|
-
<cmp v-track:18015.[自定义事件名]="handleSearch"></cmp>
|
|
127
|
-
<cmp v-track:18015.[自定义事件名].delay="handleSearch"></cmp>
|
|
128
|
-
<cmp v-track:18015.[自定义事件名].async="{ handleSearch, rest }"></cmp>
|
|
129
|
-
|
|
130
|
-
<!-- 区域展现埋点(block 可以是 DOM 或者组件) -->
|
|
131
|
-
<block v-track:18015.show></block>
|
|
132
|
-
<block v-track:18015.show.once></block>
|
|
133
|
-
<block v-track:18015.show.custom="{ ref: 'scroll' }"></block>
|
|
134
|
-
<block v-track:18015.show.custom.once="{ ref: 'scroll' }"></block>
|
|
135
|
-
`;
|
|
136
|
-
|
|
137
|
-
export default {
|
|
138
|
-
name: "Started",
|
|
139
|
-
components: {
|
|
140
|
-
CodeSnippet
|
|
141
|
-
},
|
|
142
|
-
data() {
|
|
143
|
-
return {
|
|
144
|
-
installSnippet,
|
|
145
|
-
mainSnippet,
|
|
146
|
-
eventsSnippet,
|
|
147
|
-
componentSnippet
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
</script>
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="page-home page">
|
|
3
|
-
<section class="nav">
|
|
4
|
-
<router-link :to="{ name: 'STARTED' }">
|
|
5
|
-
快速开始
|
|
6
|
-
</router-link>
|
|
7
|
-
<router-link :to="{ name: 'HOME' }">
|
|
8
|
-
事件行为埋点
|
|
9
|
-
</router-link>
|
|
10
|
-
<router-link :to="{ name: 'CUSTOM_EVENTS' }">
|
|
11
|
-
自定义事件埋点
|
|
12
|
-
</router-link>
|
|
13
|
-
<router-link :to="{ name: 'HOME' }">
|
|
14
|
-
返回
|
|
15
|
-
</router-link>
|
|
16
|
-
<router-link :to="{ name: 'BLOCK_SHOW' }">
|
|
17
|
-
区域展现埋点
|
|
18
|
-
</router-link>
|
|
19
|
-
<a href="https://github.com/l-hammer/v-track/issues">打开一个 issue</a>
|
|
20
|
-
</section>
|
|
21
|
-
|
|
22
|
-
<!----------------------- DEMO 1 ------------------------>
|
|
23
|
-
<section class="demo">
|
|
24
|
-
<el-alert
|
|
25
|
-
center
|
|
26
|
-
type="info"
|
|
27
|
-
title="这是一个页面初始化埋点"
|
|
28
|
-
:closable="false"
|
|
29
|
-
>
|
|
30
|
-
</el-alert>
|
|
31
|
-
<el-alert
|
|
32
|
-
center
|
|
33
|
-
type="warning"
|
|
34
|
-
title="备注:v-track指令可用于任何元素,此行为埋点建议绑定到页面的根元素或者v-track提供的track-view组件上"
|
|
35
|
-
:closable="false"
|
|
36
|
-
>
|
|
37
|
-
</el-alert>
|
|
38
|
-
<div v-track:18022 class="section-content"></div>
|
|
39
|
-
</section>
|
|
40
|
-
<section class="snippets">
|
|
41
|
-
<CodeSnippet
|
|
42
|
-
class="snippet"
|
|
43
|
-
lang="html"
|
|
44
|
-
:code="trackViewComponentSnippet"
|
|
45
|
-
/>
|
|
46
|
-
</section>
|
|
47
|
-
|
|
48
|
-
<!----------------------- DEMO 2 ------------------------>
|
|
49
|
-
<section class="demo">
|
|
50
|
-
<el-alert
|
|
51
|
-
center
|
|
52
|
-
type="info"
|
|
53
|
-
title="配合 v-if 指令控制埋点上报次数,即 show 为真时,会再次触发埋点"
|
|
54
|
-
:closable="false"
|
|
55
|
-
>
|
|
56
|
-
</el-alert>
|
|
57
|
-
<div class="section-content">
|
|
58
|
-
<track-view v-track:18023 v-if="show"></track-view>
|
|
59
|
-
<div class="track-button" @click="() => (show = !show)">
|
|
60
|
-
click me -> {{ show }}
|
|
61
|
-
</div>
|
|
62
|
-
</div>
|
|
63
|
-
</section>
|
|
64
|
-
<section class="snippets">
|
|
65
|
-
<CodeSnippet
|
|
66
|
-
class="snippet"
|
|
67
|
-
lang="html"
|
|
68
|
-
:code="trackViewComponentVIfSnippet"
|
|
69
|
-
/>
|
|
70
|
-
<CodeSnippet
|
|
71
|
-
class="snippet"
|
|
72
|
-
lang="js"
|
|
73
|
-
:code="jsTrackViewComponentVIfSnippet"
|
|
74
|
-
/>
|
|
75
|
-
</section>
|
|
76
|
-
|
|
77
|
-
<!----------------------- DEMO 3 ------------------------>
|
|
78
|
-
<section class="demo">
|
|
79
|
-
<el-alert
|
|
80
|
-
center
|
|
81
|
-
type="info"
|
|
82
|
-
title="这是一个监听页面行为的埋点,同事件行为埋点一样,只有当返回结果发生变化时才会上报埋点"
|
|
83
|
-
:closable="false"
|
|
84
|
-
>
|
|
85
|
-
</el-alert>
|
|
86
|
-
<div class="section-content">
|
|
87
|
-
<track-view v-track:18025.watch="{ rest1 }" />
|
|
88
|
-
<div class="track-button" @click="fetchRest(false)">
|
|
89
|
-
click me
|
|
90
|
-
</div>
|
|
91
|
-
</div>
|
|
92
|
-
</section>
|
|
93
|
-
<section class="snippets">
|
|
94
|
-
<CodeSnippet
|
|
95
|
-
class="snippet"
|
|
96
|
-
lang="html"
|
|
97
|
-
:code="trackViewComponentWatchSnippet"
|
|
98
|
-
/>
|
|
99
|
-
<CodeSnippet
|
|
100
|
-
class="snippet"
|
|
101
|
-
lang="js"
|
|
102
|
-
:code="jsTrackViewComponentWatchSnippet"
|
|
103
|
-
/>
|
|
104
|
-
</section>
|
|
105
|
-
|
|
106
|
-
<!----------------------- DEMO 4 ------------------------>
|
|
107
|
-
<section class="demo">
|
|
108
|
-
<el-alert
|
|
109
|
-
center
|
|
110
|
-
type="info"
|
|
111
|
-
title="这是一个监听页面行为并延时的埋点,不同于事件延时埋点,这里可通过delay设置具体的延长时间"
|
|
112
|
-
:closable="false"
|
|
113
|
-
>
|
|
114
|
-
</el-alert>
|
|
115
|
-
<div class="section-content">
|
|
116
|
-
<track-view v-track:18026.watch.delay="{ rest2, delay: 2000 }" />
|
|
117
|
-
<div class="track-button" @click="fetchRest(true)">
|
|
118
|
-
click me
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
</section>
|
|
122
|
-
<section class="snippets">
|
|
123
|
-
<CodeSnippet
|
|
124
|
-
class="snippet"
|
|
125
|
-
lang="html"
|
|
126
|
-
:code="trackViewComponentWatchDelaySnippet"
|
|
127
|
-
/>
|
|
128
|
-
<CodeSnippet
|
|
129
|
-
class="snippet"
|
|
130
|
-
lang="js"
|
|
131
|
-
:code="jsTrackViewComponentWatchDelaySnippet"
|
|
132
|
-
/>
|
|
133
|
-
</section>
|
|
134
|
-
</div>
|
|
135
|
-
</template>
|
|
136
|
-
|
|
137
|
-
<script>
|
|
138
|
-
import CodeSnippet from "../components/code-snippet";
|
|
139
|
-
|
|
140
|
-
const trackViewComponentSnippet = `
|
|
141
|
-
<track-view v-track:18022></track-view>
|
|
142
|
-
`;
|
|
143
|
-
const trackViewComponentVIfSnippet = `
|
|
144
|
-
<track-view v-track:18023 v-if="show"></track-view>
|
|
145
|
-
<div class="track-button" @click="show = !show">click me -> {{ show }}</div>
|
|
146
|
-
`;
|
|
147
|
-
const jsTrackViewComponentVIfSnippet = `
|
|
148
|
-
export default {
|
|
149
|
-
data: () => ({ show: false })
|
|
150
|
-
}
|
|
151
|
-
`;
|
|
152
|
-
const trackViewComponentWatchSnippet = `
|
|
153
|
-
<track-view v-track:18015.watch="{ rest }" />
|
|
154
|
-
<div class="track-button" @click="fetchRest">click me</div>
|
|
155
|
-
`;
|
|
156
|
-
const jsTrackViewComponentWatchSnippet = `
|
|
157
|
-
export default {
|
|
158
|
-
data: () => ({ rest: null }),
|
|
159
|
-
methods: {
|
|
160
|
-
async fetchRest() {
|
|
161
|
-
const response = await new Promise(resolve => {
|
|
162
|
-
setTimeout(() => {
|
|
163
|
-
resolve({ data: "success" });
|
|
164
|
-
}, 300);
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
this.rest = response.data;
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
}
|
|
171
|
-
`;
|
|
172
|
-
const trackViewComponentWatchDelaySnippet = `
|
|
173
|
-
<track-view v-track:18025.watch.delay="{ rest, delay: 2000 }" />
|
|
174
|
-
<div class="track-button" @click="fetchRest()">click me</div>
|
|
175
|
-
`;
|
|
176
|
-
const jsTrackViewComponentWatchDelaySnippet = `
|
|
177
|
-
export default {
|
|
178
|
-
data: () => ({ rest: null }),
|
|
179
|
-
methods: {
|
|
180
|
-
async fetchRest() {
|
|
181
|
-
const response = await new Promise(resolve => {
|
|
182
|
-
setTimeout(() => {
|
|
183
|
-
resolve({ data: "success" });
|
|
184
|
-
}, 300);
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
this.rest = response.data;
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
}
|
|
191
|
-
`;
|
|
192
|
-
|
|
193
|
-
export default {
|
|
194
|
-
name: "TrackViews",
|
|
195
|
-
components: {
|
|
196
|
-
CodeSnippet
|
|
197
|
-
},
|
|
198
|
-
data() {
|
|
199
|
-
return {
|
|
200
|
-
trackViewComponentSnippet,
|
|
201
|
-
trackViewComponentVIfSnippet,
|
|
202
|
-
jsTrackViewComponentVIfSnippet,
|
|
203
|
-
trackViewComponentWatchSnippet,
|
|
204
|
-
jsTrackViewComponentWatchSnippet,
|
|
205
|
-
trackViewComponentWatchDelaySnippet,
|
|
206
|
-
jsTrackViewComponentWatchDelaySnippet,
|
|
207
|
-
show: false,
|
|
208
|
-
rest1: null,
|
|
209
|
-
rest2: null
|
|
210
|
-
};
|
|
211
|
-
},
|
|
212
|
-
methods: {
|
|
213
|
-
async fetchRest(delay) {
|
|
214
|
-
const response = await new Promise(resolve => {
|
|
215
|
-
setTimeout(() => {
|
|
216
|
-
resolve({ data: "success" });
|
|
217
|
-
}, 300);
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
if (
|
|
221
|
-
(!delay && this.rest1 === response.data) ||
|
|
222
|
-
(delay && this.rest2 === response.data)
|
|
223
|
-
) {
|
|
224
|
-
this.$message.success(
|
|
225
|
-
"异步事件返回成功,但返回结果和上一次相等,埋点不会上报"
|
|
226
|
-
);
|
|
227
|
-
} else {
|
|
228
|
-
this.$message.success("异步事件返回成功");
|
|
229
|
-
!delay ? (this.rest1 = response.data) : (this.rest2 = response.data);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
};
|
|
234
|
-
</script>
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: 宋慧武
|
|
3
|
-
* @Date: 2019-04-14 16:44:42
|
|
4
|
-
* @Last Modified by: 宋慧武
|
|
5
|
-
* @Last Modified time: 2019-07-30 20:17:13
|
|
6
|
-
*/
|
|
7
|
-
import { Notification, Message } from "element-ui";
|
|
8
|
-
import { format } from "../utils/date";
|
|
9
|
-
import { createFragment } from "../utils/dom";
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @desc 模拟埋点Action
|
|
13
|
-
*/
|
|
14
|
-
export default function trackAction(evt, addtional = {}) {
|
|
15
|
-
const data = {
|
|
16
|
-
evt,
|
|
17
|
-
...addtional,
|
|
18
|
-
action_time: format(Date.now())
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
if (evt === "1") {
|
|
22
|
-
Message("统计UVPV埋点");
|
|
23
|
-
}
|
|
24
|
-
if (evt === "2") {
|
|
25
|
-
Message({
|
|
26
|
-
message: "统计页面停留时间埋点",
|
|
27
|
-
customClass: "message-offset"
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
Notification.success({
|
|
31
|
-
title: "上报数据如下:",
|
|
32
|
-
dangerouslyUseHTMLString: true,
|
|
33
|
-
message: createFragment(data),
|
|
34
|
-
customClass: "notification__large",
|
|
35
|
-
position: evt === "1" || evt === "2" ? "top-left" : "top-right"
|
|
36
|
-
});
|
|
37
|
-
}
|