@subiz/widget-v4 4.1.45 → 4.1.48

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 (103) hide show
  1. package/assets/less/message.less +6 -0
  2. package/compiled_src/chatbox/Header.js +1 -2
  3. package/compiled_src/chatbox/ImageAttachments.js +103 -13
  4. package/compiled_src/chatbox/PoweredBy.js +2 -2
  5. package/compiled_src/chatbox/main.js +2 -0
  6. package/compiled_src/store/store.js +18 -2
  7. package/dist/178.js +406 -0
  8. package/dist/18bb951fa49.178.js +1 -0
  9. package/dist/18bb951fa49.213.js +1 -0
  10. package/dist/18bb951fa49.335.js +1 -0
  11. package/dist/18bb951fa49.362.js +1 -0
  12. package/dist/18bb951fa49.605.js +1 -0
  13. package/dist/18bb951fa49.678.js +1 -0
  14. package/dist/18bb951fa49.782.js +1 -0
  15. package/dist/18bb951fa49.841.js +1 -0
  16. package/dist/18bb951fa49.app.js +1 -0
  17. package/dist/18bb951fa49.index.html +33 -0
  18. package/dist/18bb951fa49.library.html +33 -0
  19. package/dist/18bb951fa49.library.js +1 -0
  20. package/dist/18bb951fa49.preview.html +759 -0
  21. package/dist/18bb951fa49.preview.js +1 -0
  22. package/dist/18bb951fa49.screenshoot.js +1 -0
  23. package/dist/18bb951fa49.webview.js +1 -0
  24. package/dist/213.js +2796 -0
  25. package/dist/335.js +372 -0
  26. package/dist/362.js +107 -0
  27. package/dist/605.js +305 -0
  28. package/dist/678.js +107 -0
  29. package/dist/782.js +107 -0
  30. package/dist/841.js +6670 -0
  31. package/dist/HASH +1 -0
  32. package/dist/assets/img/Facebook.64607ec.png +0 -0
  33. package/dist/assets/img/Zalo.6845707.png +0 -0
  34. package/dist/assets/img/award1a.1a58e10.png +0 -0
  35. package/dist/assets/img/award3a.3b74423.png +0 -0
  36. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  37. package/dist/assets/img/award5.39eb7ae.png +0 -0
  38. package/dist/assets/img/bubble_default.7d5e4ab.svg +20 -0
  39. package/dist/assets/img/caret.998eb8f.svg +1 -0
  40. package/dist/assets/img/convos_empty.2353007.svg +72 -0
  41. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  42. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  43. package/dist/assets/img/done_gray.d7e8203.svg +4 -0
  44. package/dist/assets/img/done_green.b817fd4.svg +4 -0
  45. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  46. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  47. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  48. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  49. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  50. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  51. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  52. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  53. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  54. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  55. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  56. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  57. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  58. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  59. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  60. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  61. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  62. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  63. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  64. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  65. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  66. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  67. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  68. package/dist/assets/img/empty.29bed2d.svg +23 -0
  69. package/dist/assets/img/empty_1.0b98af0.svg +11 -0
  70. package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
  71. package/dist/assets/img/external-link.90577cc.svg +1 -0
  72. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  73. package/dist/assets/img/ghn.070f8e3.svg +17 -0
  74. package/dist/assets/img/ghtk.326eac1.svg +18 -0
  75. package/dist/assets/img/image_default.be0698b.png +0 -0
  76. package/dist/assets/img/info.ebce7ea.svg +1 -0
  77. package/dist/assets/img/loader.37000a7.svg +1 -0
  78. package/dist/assets/img/loading_static.a27f0ac.svg +10 -0
  79. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  80. package/dist/assets/img/main-service2.9b99549.png +0 -0
  81. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  82. package/dist/assets/img/package.8d37d0f.svg +5 -0
  83. package/dist/assets/img/package_fade.763c001.svg +1 -0
  84. package/dist/assets/img/rating--average.1ea492c.svg +12 -0
  85. package/dist/assets/img/rating--great.e3d712e.svg +16 -0
  86. package/dist/assets/img/rating--poor.2938a25.svg +12 -0
  87. package/dist/assets/img/search.f9705ff.svg +1 -0
  88. package/dist/assets/img/send.6db52a9.svg +3 -0
  89. package/dist/assets/img/shop.f7dc7d8.svg +1 -0
  90. package/dist/assets/img/shop_faded.df7845a.svg +1 -0
  91. package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
  92. package/dist/assets/img/x.26fdfa3.svg +5 -0
  93. package/dist/malicious-app.js +18 -0
  94. package/dist/screenshoot.html +7 -0
  95. package/dist/screenshoot.js +6455 -0
  96. package/malicious-app.js +8 -3
  97. package/package.json +5 -5
  98. package/src/chatbox/Header.js +1 -1
  99. package/src/chatbox/ImageAttachments.js +109 -15
  100. package/src/chatbox/PoweredBy.js +2 -2
  101. package/src/chatbox/main.js +2 -0
  102. package/src/plugin.js +1 -0
  103. package/src/store/store.js +15 -2
@@ -147,6 +147,12 @@
147
147
  white-space: pre-wrap;
148
148
  }
149
149
 
150
+ .message-user.message-user-images-container {
151
+ width: 85%;
152
+ display: flex;
153
+ justify-content: flex-end;
154
+ }
155
+
150
156
  .message-user.message-user-audio {
151
157
  flex: 1;
152
158
  }
@@ -80,8 +80,7 @@ class Header extends _common.Com {
80
80
  return (0, _preact.h)("div", null, (0, _preact.h)("a", {
81
81
  href: link.url,
82
82
  target: "_blank",
83
- title: link.url,
84
- rel: "noreferrer"
83
+ title: link.url
85
84
  }, (0, _preact.h)("i", {
86
85
  class: `social__links-logo social__links-logo--${link.type}`
87
86
  })));
@@ -8,9 +8,107 @@ var _index = _interopRequireDefault(require("../util/index.js"));
8
8
  var _common = require("../common.js");
9
9
  var _preact = require("preact");
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
13
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
14
  class ImageAttachment extends _common.Com {
12
15
  constructor(props) {
13
16
  super(props);
17
+ _defineProperty(this, "containerRef", (0, _preact.createRef)());
18
+ this.setState({
19
+ ready: false,
20
+ errorIndecies: []
21
+ });
22
+ }
23
+ componentDidMount() {
24
+ this.setImageFrameDimension();
25
+ }
26
+ setImageFrameDimension() {
27
+ const MAX_HEIGHT = 240;
28
+ const DEFAULT_MAX_WIDTH = 267;
29
+ let $container = this.containerRef.current;
30
+ this.frameWidth = $container ? $container.offsetWidth : DEFAULT_MAX_WIDTH;
31
+ this.frameHeight = MAX_HEIGHT;
32
+ this.setState({
33
+ ready: true
34
+ });
35
+ }
36
+ onErrorImage(index) {
37
+ let indecies = this.state.errorIndecies || [];
38
+ indecies.push(index);
39
+ indecies = [...indecies];
40
+ this.setState({
41
+ errorIndecies: indecies
42
+ });
43
+ }
44
+ calculateImageDimension(image) {
45
+ if (!image.width || !image.height) return {
46
+ width: this.frameWidth,
47
+ height: this.frameHeight
48
+ };
49
+ let ratio = image.width / image.height - this.frameWidth / this.frameHeight;
50
+ if (ratio >= 0) {
51
+ let width = this.frameWidth;
52
+ let height = image.height * this.frameWidth / image.width;
53
+ height = Math.round(height);
54
+ return {
55
+ width,
56
+ height
57
+ };
58
+ } else {
59
+ let height = this.frameHeight;
60
+ let width = image.width * this.frameHeight / image.height;
61
+ width = Math.round(width);
62
+ return {
63
+ width,
64
+ height
65
+ };
66
+ }
67
+ }
68
+ renderImage(image, index) {
69
+ if (!this.state.ready) {
70
+ return;
71
+ }
72
+ let byType = _index.default.get(this.props.ev, 'by.type');
73
+ if (!image.width || !image.height) {
74
+ return (0, _preact.h)("div", {
75
+ class: `image-attachment image-attachment--${byType}`
76
+ }, (0, _preact.h)("a", {
77
+ href: this.props.store.replaceFileUrl(image.thumbnail_url || image.url),
78
+ target: "_blank"
79
+ }, (0, _preact.h)("img", {
80
+ alt: true,
81
+ class: "image-attachment__img",
82
+ src: this.props.store.replaceFileUrl(image.thumbnail_url || image.url),
83
+ onload: e => this.props.onLoad && this.props.onLoad()
84
+ })));
85
+ }
86
+ let {
87
+ width,
88
+ height
89
+ } = this.calculateImageDimension(image);
90
+ let url = this.props.store.replaceFileUrl(image.thumbnail_url || image.url);
91
+ if (this.state.errorIndecies.includes(index)) {
92
+ url = require('../../assets/img/default.jpg');
93
+ }
94
+ return (0, _preact.h)("div", {
95
+ class: `image-attachment image-attachment--${byType}`
96
+ }, (0, _preact.h)("a", {
97
+ href: url,
98
+ target: "_blank"
99
+ }, (0, _preact.h)("img", {
100
+ alt: true,
101
+ ref: el => {
102
+ if (el) {
103
+ el.style.setProperty('width', `${width}px`, 'important');
104
+ el.style.setProperty('height', `${height}px`, 'important');
105
+ }
106
+ },
107
+ class: "image-attachment__img",
108
+ src: url,
109
+ onload: e => this.props.onLoad && this.props.onLoad(),
110
+ onerror: e => this.onErrorImage(index)
111
+ })));
14
112
  }
15
113
  render() {
16
114
  var attachments = _index.default.get(this.props.ev, 'data.message.attachments', []);
@@ -27,24 +125,16 @@ class ImageAttachment extends _common.Com {
27
125
  images.push(att);
28
126
  });
29
127
  if (images.length === 0) return null;
30
- var $images = _index.default.map(images, (image, index) => (0, _preact.h)("div", {
31
- class: `image-attachment image-attachment--${byType}`
32
- }, (0, _preact.h)("a", {
33
- href: this.props.store.replaceFileUrl(image.thumbnail_url || image.url),
34
- target: "_blank"
35
- }, (0, _preact.h)("img", {
36
- alt: true,
37
- class: "image-attachment__img",
38
- src: this.props.store.replaceFileUrl(image.thumbnail_url || image.url),
39
- onload: e => this.props.onLoad && this.props.onLoad()
40
- }))));
128
+ let $images = _index.default.map(images, (image, index) => this.renderImage(image, index));
41
129
  if (byType === 'agent') {
42
130
  return (0, _preact.h)("div", {
43
- class: "message-agent"
131
+ class: "message-agent",
132
+ ref: this.containerRef
44
133
  }, $images);
45
134
  } else {
46
135
  return (0, _preact.h)("div", {
47
- class: "message-user"
136
+ class: "message-user message-user-images-container",
137
+ ref: this.containerRef
48
138
  }, $images);
49
139
  }
50
140
  }
@@ -21,13 +21,13 @@ class PoweredBy extends _common.Com {
21
21
  href: link,
22
22
  class: "poweredby--text",
23
23
  target: "_blank",
24
- rel: "noreferrer"
24
+ title: "Subiz"
25
25
  }, (0, _preact.h)("img", {
26
26
  width: "14",
27
27
  height: "10",
28
28
  class: "poweredby--subiz-logo",
29
29
  src: logo,
30
- alt: "power by"
30
+ alt: "power by subiz"
31
31
  }), " Subiz"));
32
32
  }
33
33
  }
@@ -177,11 +177,13 @@ class Main extends _common.Com {
177
177
  exports.default = Main;
178
178
  function restoreViewport() {
179
179
  if (document.body && document.body.classList) document.body.classList.remove('sbz_no_scroll');
180
+ if (document.documentElement && document.documentElement.classList) document.documentElement.classList.remove('sbz_no_scroll');
180
181
  let metatag = document.getElementById('subiz-meta-viewport');
181
182
  if (metatag) metatag.remove();
182
183
  }
183
184
  function modifyViewport() {
184
185
  if (document.body && document.body.classList) document.body.classList.add('sbz_no_scroll');
186
+ if (document.documentElement && document.documentElement.classList) document.documentElement.classList.add('sbz_no_scroll');
185
187
  let metatag = document.createElement('meta');
186
188
  metatag.httpEquiv = 'X-UA-Compatible';
187
189
  metatag.name = 'viewport';
@@ -760,7 +760,14 @@ class Store {
760
760
  if (!att._file) return;
761
761
  files.push(att);
762
762
  if (ImageTypes.includes(att._file.type)) {
763
- att.url = await loadImage(att._file);
763
+ let {
764
+ width,
765
+ height,
766
+ url
767
+ } = await loadImage(att._file);
768
+ att.url = url;
769
+ att.width = width;
770
+ att.height = height;
764
771
  }
765
772
  });
766
773
  }
@@ -973,7 +980,16 @@ function loadImage(file) {
973
980
  return new Promise(rs => {
974
981
  var reader = new window.FileReader();
975
982
  reader.onload = e => {
976
- rs(e.target.result);
983
+ let src = e.target.result;
984
+ let img = new Image();
985
+ img.onload = () => {
986
+ rs({
987
+ url: src,
988
+ width: img.width,
989
+ height: img.height
990
+ });
991
+ };
992
+ img.src = src;
977
993
  };
978
994
  reader.readAsDataURL(file);
979
995
  });