@subiz/widget-v4 4.0.53 → 4.0.55

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.
Files changed (86) hide show
  1. package/compiled_src/notif/notif.js +6 -2
  2. package/compiled_src/util/campaign.js +6 -1
  3. package/dist/17d7ef81b7a.178.js +1 -0
  4. package/dist/17d7ef81b7a.213.js +1 -0
  5. package/dist/17d7ef81b7a.362.js +1 -0
  6. package/dist/17d7ef81b7a.441.js +1 -0
  7. package/dist/17d7ef81b7a.605.js +1 -0
  8. package/dist/17d7ef81b7a.619.js +1 -0
  9. package/dist/17d7ef81b7a.678.js +1 -0
  10. package/dist/17d7ef81b7a.74.js +1 -0
  11. package/dist/17d7ef81b7a.782.js +1 -0
  12. package/dist/17d7ef81b7a.app.js +1 -0
  13. package/dist/17d7ef81b7a.index.html +21 -0
  14. package/dist/17d7ef81b7a.library.html +21 -0
  15. package/dist/17d7ef81b7a.library.js +1 -0
  16. package/dist/17d7ef81b7a.preview.html +759 -0
  17. package/dist/17d7ef81b7a.preview.js +1 -0
  18. package/dist/17d7ef81b7a.screenshoot.js +1 -0
  19. package/dist/17d7ef84382.178.js +406 -0
  20. package/dist/17d7ef84382.213.js +3223 -0
  21. package/dist/17d7ef84382.362.js +107 -0
  22. package/dist/17d7ef84382.441.js +2706 -0
  23. package/dist/17d7ef84382.605.js +391 -0
  24. package/dist/17d7ef84382.619.js +777 -0
  25. package/dist/17d7ef84382.678.js +107 -0
  26. package/dist/17d7ef84382.74.js +4732 -0
  27. package/dist/17d7ef84382.782.js +107 -0
  28. package/dist/17d7ef84382.screenshoot.js +5719 -0
  29. package/dist/HASH +1 -1
  30. package/dist/assets/img/Facebook.64607ec.png +0 -0
  31. package/dist/assets/img/Zalo.6845707.png +0 -0
  32. package/dist/assets/img/award1a.1a58e10.png +0 -0
  33. package/dist/assets/img/award3a.3b74423.png +0 -0
  34. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  35. package/dist/assets/img/award5.39eb7ae.png +0 -0
  36. package/dist/assets/img/bubble_default.7d5e4ab.svg +20 -0
  37. package/dist/assets/img/convos_empty.2353007.svg +72 -0
  38. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  39. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  40. package/dist/assets/img/done_gray.d7e8203.svg +4 -0
  41. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  42. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  43. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  44. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  45. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  46. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  47. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  48. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  49. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  50. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  51. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  52. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  53. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  54. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  55. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  56. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  57. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  58. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  59. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  60. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  61. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  62. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  63. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  64. package/dist/assets/img/empty.29bed2d.svg +23 -0
  65. package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
  66. package/dist/assets/img/external-link.90577cc.svg +1 -0
  67. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  68. package/dist/assets/img/image_default.be0698b.png +0 -0
  69. package/dist/assets/img/loading_static.8f403ae.svg +10 -0
  70. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  71. package/dist/assets/img/main-service2.9b99549.png +0 -0
  72. package/dist/assets/img/rating--average.1ea492c.svg +12 -0
  73. package/dist/assets/img/rating--great.e3d712e.svg +16 -0
  74. package/dist/assets/img/rating--poor.2938a25.svg +12 -0
  75. package/dist/assets/img/send.6db52a9.svg +3 -0
  76. package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
  77. package/dist/screenshoot.html +7 -0
  78. package/package.json +8 -7
  79. package/screenshoot.html +15 -0
  80. package/screenshoot.js +28 -0
  81. package/src/notif/notif.js +36 -27
  82. package/src/util/campaign.js +14 -11
  83. package/take.js +36 -0
  84. package/webpack.dev.js +7 -0
  85. package/webpack.prod.js +12 -2
  86. package/webpack.screenshoot.js +28 -0
@@ -1,8 +1,8 @@
1
1
  var common = require('./common.js')
2
2
 
3
3
  // callback when user is about to leave site
4
- export function trackExitIntent (cb) {
5
- let handler = e => {
4
+ export function trackExitIntent(cb) {
5
+ let handler = (e) => {
6
6
  if (e.clientY > 10) return // not move to top
7
7
  if (cb) cb()
8
8
  document.removeEventListener('mouseout', handler)
@@ -11,8 +11,8 @@ export function trackExitIntent (cb) {
11
11
  }
12
12
 
13
13
  // callback after user has scrolled X% down on the current page
14
- export function trackScrollingPercentage (percent, cb) {
15
- let handleScroll = e => {
14
+ export function trackScrollingPercentage(percent, cb) {
15
+ let handleScroll = (e) => {
16
16
  let scrollTop = e.srcElement.scrollingElement ? e.srcElement.scrollingElement.scrollTop : e.srcElement.scrollTop
17
17
  let scrollHeight = e.srcElement.scrollingElement
18
18
  ? e.srcElement.scrollingElement.scrollHeight
@@ -28,14 +28,17 @@ export function trackScrollingPercentage (percent, cb) {
28
28
  }
29
29
 
30
30
  // callback when user clicks on a specific part of page
31
- export function trackAreaClicked (selector, cb) {
31
+ export function trackAreaClicked(selector, cb) {
32
32
  if (!selector) return
33
33
  selector = selector || ''
34
- common.map(selector.split('\n'), selector => {
34
+ common.map(selector.split('\n'), (selector) => {
35
35
  selector = common.trim(selector)
36
36
  if (!selector) return
37
- let doms = document.querySelectorAll(selector)
38
- common.map(doms, dom => {
37
+ let doms = []
38
+ try {
39
+ doms = document.querySelectorAll(selector)
40
+ } catch (e) {}
41
+ common.map(doms, (dom) => {
39
42
  if (!dom) return
40
43
  dom.addEventListener('click', cb, false)
41
44
  })
@@ -43,7 +46,7 @@ export function trackAreaClicked (selector, cb) {
43
46
  }
44
47
 
45
48
  // callback when user has stopped all activity (clicking, scrolling, ...)
46
- export function trackInactivity (seconds, cb) {
49
+ export function trackInactivity(seconds, cb) {
47
50
  let events = [
48
51
  'scroll',
49
52
  'keyup',
@@ -80,9 +83,9 @@ let timeOnPage = 0 // seconds
80
83
  setInterval(() => timeOnPage++, 1000)
81
84
 
82
85
  // when user has been on the page for at least X seconds
83
- export function trackTimeOnPage (seconds, cb) {
86
+ export function trackTimeOnPage(seconds, cb) {
84
87
  if (seconds < 1) {
85
- return setTimeout(function () {
88
+ return setTimeout(function() {
86
89
  cb(seconds)
87
90
  }, 100)
88
91
  }
package/take.js ADDED
@@ -0,0 +1,36 @@
1
+ const puppeteer = require('puppeteer')
2
+
3
+ async function take() {
4
+ const browser = await puppeteer.launch({args: ['--no-sandbox']})
5
+ const page = await browser.newPage()
6
+ let templateBase64 = Buffer.from(encodeURIComponent(process.argv[2])).toString('base64')
7
+
8
+ await page.setViewport({width: 940, height: 700})
9
+ await page.goto('file://' + __dirname + '/dist/screenshoot.html#' + templateBase64, {
10
+ waitUntil: 'networkidle2',
11
+ })
12
+ await timeout(3000)
13
+ let out = makeid(20) + '.jpg'
14
+ await page.screenshot({path: out})
15
+ console.log(out)
16
+ browser.close()
17
+ }
18
+
19
+ function timeout(ms) {
20
+ return new Promise((resolve) => setTimeout(resolve, ms))
21
+ }
22
+
23
+ function makeid(length) {
24
+ var result = []
25
+ var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
26
+ var charactersLength = characters.length
27
+ for (var i = 0; i < length; i++) {
28
+ result.push(characters.charAt(Math.floor(Math.random() * charactersLength)))
29
+ }
30
+ return result.join('')
31
+ }
32
+
33
+ take()
34
+
35
+ // try (remember to run 'npm run build' before running following command)
36
+ // node take.js '{"account_id":"acpxkgumifuoofoosble","id":"cpqzpnooosdhodmkjlixs","name":"Đặt hàng trước","type":"notification","created":1620813049308,"created_by":"agqmwfyuehpuzpehmv","updated":1620816899738,"updated_by":"agqmwfyuehpuzpehmv","triggers":[{"type":"after_pageview"}],"initiative_frequency":{"once_per_session":true},"notification":{"profile_tags":["nam thanh niên","nữ thanh niên"],"profiles":[{"avatar_url":"https://public-gcs.subiz-cdn.com/widget_assets/profile_images/VNM02.png","fullname":"Đoàn Hải Nam","country":"vn","gender":"Male","age":26,"tags":["nam thanh niên","vui tươi"],"email":"hainamxx@gmail.com","phone":"0823588xxx","address":"Hàng Da, Hoàn Kiếm, Hà Nội"},{"avatar_url":"https://public-gcs.subiz-cdn.com/widget_assets/profile_images/VNF03.png","fullname":"Nguyễn Hoàng Lan","country":"vn","gender":"Female","age":36,"tags":["nữ trung niên","lịch sự","vui tươi"],"email":"lannhoanggxx@gmail.com","phone":"0326789xxx","address":"Lũng Cú, Đồng Văn, Hà Giang"},{"avatar_url":"https://public-gcs.subiz-cdn.com/widget_assets/profile_images/VNM04.png","fullname":"Nguyễn Quý Tiến","country":"vn","gender":"Male","age":40,"tags":["nam trung niên","lịch sự"],"email":"tiendzxxx@gmail.com","phone":"056189xxxx","address":"Thụy Khuê, Tây Hồ, Hà Nội"},{"avatar_url":"https://public-gcs.subiz-cdn.com/widget_assets/profile_images/VNF05.png","fullname":"Phạm Hồng Thắm","country":"vn","gender":"Female","age":36,"tags":["nữ trung niên","lịch sự"],"email":"thampham1506xxx@gmail.com","phone":"033820xxxx","address":"Ngọc Đào, Hà Quang, Cao Bằng"},{"avatar_url":"https://public-gcs.subiz-cdn.com/widget_assets/profile_images/VNF06.png","fullname":"Ngô Thị Như Hòa","country":"vn","gender":"Female","age":29,"tags":["nữ thanh niên","lịch sự"],"email":"alice29xxx@gmail.com","phone":"058104xxxx","address":"Xuân Đỉnh, Bắc Từ Liêm, Hà Nội"}],"title_quill_delta":"{\"ops\":[{\"insert\":{\"dynamicField\":{\"id\":\"hesivydbbhoybwyk\",\"value\":\"Họ tên\",\"key\":\"user.fullname\"}}},{\"insert\":\" Ba \\n\"}]}","title_style":{"color":"rgba(255,255,255,1)"},"message_quill_deltas":["{\"ops\":[{\"insert\":\"Đặt trước Note 20 thành công\\n\"}]}"],"message_style":{"color":"rgba(216,207,207,1)"},"url":"https://subiz.com.vn","new_tab":true,"background_url":"https://public-gcs.subiz-cdn.com/widget_assets/notification_background/Frame%20129.png","subtext_style":{},"avatar_style":{"border_radius":"50%"},"position":"bottom-left","interval_sec":60000},"conversion_notification":{"all_agents":true},"template_title":"Đặt hàng trước","thumbnail_url":"https://file-subiz.com/fiqzpohaoyckhgxylulxcpqzpnooosdhodmkjlixs.jpg"}'
package/webpack.dev.js CHANGED
@@ -7,6 +7,7 @@ module.exports = {
7
7
  inject: './inject.js',
8
8
  preview: './preview.js',
9
9
  library: './library.js',
10
+ screenshoot: './screenshoot.js',
10
11
  },
11
12
  output: {publicPath: '/'},
12
13
  devServer: {port: 8082, host: '0.0.0.0', hot: false, liveReload: false},
@@ -16,6 +17,12 @@ module.exports = {
16
17
  new HtmlWebpackPlugin({filename: './preview.html', template: './preview.html', chunks: ['preview']}),
17
18
  new HtmlWebpackPlugin({filename: './inject.html', template: './inject.html', inject: 'body', chunks: ['inject']}),
18
19
  new HtmlWebpackPlugin({filename: './library.html', template: './index.html', inject: 'body', chunks: ['library']}),
20
+ new HtmlWebpackPlugin({
21
+ filename: './screenshoot.html',
22
+ template: './screenshoot.html',
23
+ inject: 'body',
24
+ chunks: ['screenshoot'],
25
+ }),
19
26
  ],
20
27
  module: {
21
28
  rules: [
package/webpack.prod.js CHANGED
@@ -2,11 +2,15 @@ var HtmlWebpackPlugin = require('html-webpack-plugin')
2
2
  let webpackconfig = require('./webpack.dev.js')
3
3
  var fs = require('fs')
4
4
 
5
-
6
5
  // webpackconfig.output.publicPath = 'https://public-gcs.subiz-cdn.com/widget-v4/public/'
7
6
  webpackconfig.output.publicPath = 'https://vcdn.subiz-cdn.com/widget-v4/public/'
8
7
 
9
- webpackconfig.entry = {app: './app.js', preview: './preview.js', library: './library.js'}
8
+ webpackconfig.entry = {
9
+ app: './app.js',
10
+ preview: './preview.js',
11
+ library: './library.js',
12
+ screenshoot: './screenshoot.js',
13
+ }
10
14
 
11
15
  const HASH = Date.now().toString(16)
12
16
  // create hash
@@ -29,6 +33,12 @@ webpackconfig.plugins = [
29
33
  inject: 'body',
30
34
  chunks: ['app'],
31
35
  }),
36
+ new HtmlWebpackPlugin({
37
+ filename: 'screenshoot.html',
38
+ template: './screenshoot.html',
39
+ inject: 'body',
40
+ chunks: ['screenshoot'],
41
+ }),
32
42
  new HtmlWebpackPlugin({
33
43
  filename: HASH + '.preview.html',
34
44
  template: './preview.html',
@@ -0,0 +1,28 @@
1
+ var HtmlWebpackPlugin = require('html-webpack-plugin')
2
+ let webpackconfig = require('./webpack.dev.js')
3
+ var fs = require('fs')
4
+
5
+ webpackconfig.output.publicPath = './'
6
+
7
+ webpackconfig.entry = {screenshoot: './screenshoot.js'}
8
+
9
+ const HASH = Date.now().toString(16)
10
+ // create hash
11
+ if (!fs.existsSync('dist')) fs.mkdirSync('dist')
12
+ fs.writeFileSync('dist/HASH', HASH)
13
+
14
+ webpackconfig.output.chunkFilename = HASH + '.[name].js'
15
+ webpackconfig.output.filename = HASH + '.[name].js'
16
+
17
+ webpackconfig.optimization.minimize = false
18
+ webpackconfig.mode = 'production'
19
+ webpackconfig.plugins = [
20
+ new HtmlWebpackPlugin({
21
+ filename: 'screenshoot.html',
22
+ template: './screenshoot.html',
23
+ inject: 'body',
24
+ chunks: ['screenshoot'],
25
+ }),
26
+ ]
27
+
28
+ module.exports = webpackconfig