@subiz/widget-v4 4.0.92 → 4.0.93
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/compiled_src/bot.js +0 -11
- package/compiled_src/call/call.js +0 -61
- package/compiled_src/call/css.js +0 -2
- package/compiled_src/chatbox/AgentsAvatar.js +0 -16
- package/compiled_src/chatbox/AudioAttachments.js +0 -14
- package/compiled_src/chatbox/ButtonAttachments.js +1 -14
- package/compiled_src/chatbox/Buttons.js +0 -13
- package/compiled_src/chatbox/ChatButton.js +1 -78
- package/compiled_src/chatbox/DropdownSelect.js +3 -44
- package/compiled_src/chatbox/Emoji.js +0 -7
- package/compiled_src/chatbox/Event.js +0 -59
- package/compiled_src/chatbox/Events.js +4 -44
- package/compiled_src/chatbox/FileAttachments.js +0 -14
- package/compiled_src/chatbox/FormAttachment.js +1 -52
- package/compiled_src/chatbox/FormAttachments.js +0 -14
- package/compiled_src/chatbox/FormSubmitAttachments.js +0 -11
- package/compiled_src/chatbox/GenericTemplateAttachments.js +1 -20
- package/compiled_src/chatbox/Header.js +1 -46
- package/compiled_src/chatbox/ImageAttachments.js +0 -16
- package/compiled_src/chatbox/InfoMessage.js +0 -13
- package/compiled_src/chatbox/ListField.js +0 -16
- package/compiled_src/chatbox/MessageInput.js +1 -47
- package/compiled_src/chatbox/Order.js +0 -35
- package/compiled_src/chatbox/OrderAttachments.js +1 -23
- package/compiled_src/chatbox/PoweredBy.js +0 -7
- package/compiled_src/chatbox/ProductAttachments.js +0 -19
- package/compiled_src/chatbox/QuickReplies.js +0 -18
- package/compiled_src/chatbox/Rating.js +0 -37
- package/compiled_src/chatbox/ShadowDomRoot.js +0 -9
- package/compiled_src/chatbox/TextMessage.js +0 -64
- package/compiled_src/chatbox/Typing.js +0 -15
- package/compiled_src/chatbox/VideoAttachments.js +0 -14
- package/compiled_src/chatbox/Widget.js +6 -167
- package/compiled_src/chatbox/css.js +0 -2
- package/compiled_src/chatbox/dragscroll.js +1 -5
- package/compiled_src/chatbox/main.js +1 -40
- package/compiled_src/chatbox/releaseAnimation.js +0 -11
- package/compiled_src/chatbox/spinner.js +0 -10
- package/compiled_src/chatbox/time.js +0 -22
- package/compiled_src/chatbox/touchscroll.js +0 -7
- package/compiled_src/common.js +0 -22
- package/compiled_src/contact/contact.js +2 -52
- package/compiled_src/contact/css.js +0 -2
- package/compiled_src/lib.js +19 -46
- package/compiled_src/notif/css.js +0 -2
- package/compiled_src/notif/notif.js +0 -63
- package/compiled_src/order/address_picker.js +4 -38
- package/compiled_src/order/icon.js +0 -16
- package/compiled_src/order/index.js +1 -34
- package/compiled_src/order/order.js +2 -156
- package/compiled_src/plugin.js +1 -77
- package/compiled_src/popup/countdown.js +2 -33
- package/compiled_src/popup/css.js +0 -2
- package/compiled_src/popup/popup.js +2 -165
- package/compiled_src/popup/tick.core.commonjs.js +72 -222
- package/compiled_src/popup/tick.view.flip.commonjs.js +23 -31
- package/compiled_src/store/api.js +99 -65
- package/compiled_src/store/api_fake.js +3 -39
- package/compiled_src/store/realtime_fake.js +0 -6
- package/compiled_src/store/store.js +42 -248
- package/compiled_src/util/campaign.js +0 -13
- package/compiled_src/util/common.js +15 -185
- package/compiled_src/util/common.test.js +0 -4
- package/compiled_src/util/extractor.js +1 -21
- package/compiled_src/util/extractor.test.js +0 -3
- package/compiled_src/util/gate.js +0 -7
- package/compiled_src/util/gate.test.js +1 -2
- package/compiled_src/util/index.js +1 -7
- package/compiled_src/util/mutex.js +31 -0
- package/compiled_src/util/op.js +1 -14
- package/compiled_src/util/pubsub.js +0 -6
- package/compiled_src/util/pubsub.test.js +0 -2
- package/package.json +11 -11
- package/src/lib.js +24 -2
- package/src/store/api.js +110 -21
- package/src/store/api_fake.js +5 -6
- package/src/store/store.js +31 -5
- package/src/util/index.js +1 -0
- package/src/util/mutex.js +27 -0
- package/dist/132.js +0 -7092
- package/dist/178.js +0 -406
- package/dist/18364d15f37.132.js +0 -1
- package/dist/18364d15f37.178.js +0 -1
- package/dist/18364d15f37.213.js +0 -1
- package/dist/18364d15f37.335.js +0 -1
- package/dist/18364d15f37.362.js +0 -1
- package/dist/18364d15f37.441.js +0 -1
- package/dist/18364d15f37.605.js +0 -1
- package/dist/18364d15f37.678.js +0 -1
- package/dist/18364d15f37.782.js +0 -1
- package/dist/18364d15f37.app.js +0 -1
- package/dist/18364d15f37.index.html +0 -26
- package/dist/18364d15f37.library.html +0 -26
- package/dist/18364d15f37.library.js +0 -1
- package/dist/18364d15f37.preview.html +0 -759
- package/dist/18364d15f37.preview.js +0 -1
- package/dist/18364d15f37.screenshoot.js +0 -1
- package/dist/213.js +0 -3215
- package/dist/335.js +0 -411
- package/dist/362.js +0 -107
- package/dist/441.js +0 -2834
- package/dist/605.js +0 -328
- package/dist/678.js +0 -107
- package/dist/782.js +0 -107
- package/dist/HASH +0 -1
- package/dist/assets/img/Facebook.64607ec.png +0 -0
- package/dist/assets/img/Zalo.6845707.png +0 -0
- package/dist/assets/img/award1a.1a58e10.png +0 -0
- package/dist/assets/img/award3a.3b74423.png +0 -0
- package/dist/assets/img/award4a.ed6ccd4.png +0 -0
- package/dist/assets/img/award5.39eb7ae.png +0 -0
- package/dist/assets/img/bubble_default.7d5e4ab.svg +0 -20
- package/dist/assets/img/caret.998eb8f.svg +0 -1
- package/dist/assets/img/convos_empty.2353007.svg +0 -72
- package/dist/assets/img/default.06e6ee0.jpg +0 -0
- package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
- package/dist/assets/img/done_gray.d7e8203.svg +0 -4
- package/dist/assets/img/done_green.b817fd4.svg +0 -4
- package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
- package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
- package/dist/assets/img/empty.29bed2d.svg +0 -23
- package/dist/assets/img/empty_1.0b98af0.svg +0 -11
- package/dist/assets/img/examplte_logo.f86535f.svg +0 -1
- package/dist/assets/img/external-link.90577cc.svg +0 -1
- package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
- package/dist/assets/img/ghn.070f8e3.svg +0 -17
- package/dist/assets/img/ghtk.326eac1.svg +0 -18
- package/dist/assets/img/image_default.be0698b.png +0 -0
- package/dist/assets/img/info.ebce7ea.svg +0 -1
- package/dist/assets/img/loader.37000a7.svg +0 -1
- package/dist/assets/img/loading_static.8f403ae.svg +0 -10
- package/dist/assets/img/main-service1.d536cc2.png +0 -0
- package/dist/assets/img/main-service2.9b99549.png +0 -0
- package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
- package/dist/assets/img/package.8d37d0f.svg +0 -5
- package/dist/assets/img/package_fade.763c001.svg +0 -1
- package/dist/assets/img/rating--average.1ea492c.svg +0 -12
- package/dist/assets/img/rating--great.e3d712e.svg +0 -16
- package/dist/assets/img/rating--poor.2938a25.svg +0 -12
- package/dist/assets/img/search.f9705ff.svg +0 -1
- package/dist/assets/img/send.6db52a9.svg +0 -3
- package/dist/assets/img/shop.f7dc7d8.svg +0 -1
- package/dist/assets/img/shop_faded.df7845a.svg +0 -1
- package/dist/assets/img/subiz-mono.877e9f5.svg +0 -3
- package/dist/assets/img/x.26fdfa3.svg +0 -5
- package/dist/malicious-app.js +0 -13
- package/dist/screenshoot.html +0 -7
- package/dist/screenshoot.js +0 -5953
|
@@ -4,29 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = _interopRequireDefault(require("../util/index.js"));
|
|
9
|
-
|
|
10
8
|
var _common = require("../common.js");
|
|
11
|
-
|
|
12
9
|
var _preact = require("preact");
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
class ProductAttachments extends _common.Com {
|
|
17
12
|
render() {
|
|
18
13
|
let byType = _index.default.get(this.props.ev, 'by.type');
|
|
19
|
-
|
|
20
14
|
if (byType === 'user') return null;
|
|
21
|
-
|
|
22
15
|
let attachments = _index.default.get(this.props.ev, 'data.message.attachments', []);
|
|
23
|
-
|
|
24
16
|
let products = _index.default.filter(attachments, att => _index.default.get(att, 'type') === 'product' || _index.default.get(att, 'type') === 'product_preview');
|
|
25
|
-
|
|
26
17
|
products = products.filter(product => product.product && product.product.name);
|
|
27
18
|
if (products.length === 0) return null;
|
|
28
19
|
let acc = this.props.store.matchAccount();
|
|
29
|
-
|
|
30
20
|
let $products = _index.default.map(products, (att, index) => {
|
|
31
21
|
let product = att.product;
|
|
32
22
|
let $detailbtns = [];
|
|
@@ -41,7 +31,6 @@ class ProductAttachments extends _common.Com {
|
|
|
41
31
|
class: "product_attachment__btn_external_link"
|
|
42
32
|
})));
|
|
43
33
|
console.log('P', product);
|
|
44
|
-
|
|
45
34
|
if (_index.default.size(product.buttons) > 0) {
|
|
46
35
|
$detailbtns = $detailbtns.concat(_index.default.map(product.buttons, (button, index) => {
|
|
47
36
|
if (button.type === 'call_button') {
|
|
@@ -52,7 +41,6 @@ class ProductAttachments extends _common.Com {
|
|
|
52
41
|
title: button.title
|
|
53
42
|
}, this.props.t.i18n(button.i18n_title) || button.title);
|
|
54
43
|
}
|
|
55
|
-
|
|
56
44
|
if (button.type === 'url_button') {
|
|
57
45
|
return (0, _preact.h)("a", {
|
|
58
46
|
class: "product_attachment__btn",
|
|
@@ -65,7 +53,6 @@ class ProductAttachments extends _common.Com {
|
|
|
65
53
|
class: "product_attachment__btn_external_link"
|
|
66
54
|
}));
|
|
67
55
|
}
|
|
68
|
-
|
|
69
56
|
if (button.type === 'postback_button') {
|
|
70
57
|
return (0, _preact.h)("a", {
|
|
71
58
|
class: "product_attachment__btn",
|
|
@@ -75,7 +62,6 @@ class ProductAttachments extends _common.Com {
|
|
|
75
62
|
}
|
|
76
63
|
}));
|
|
77
64
|
}
|
|
78
|
-
|
|
79
65
|
let $title = (0, _preact.h)("a", {
|
|
80
66
|
href: url,
|
|
81
67
|
class: "product_attachment__title",
|
|
@@ -87,13 +73,11 @@ class ProductAttachments extends _common.Com {
|
|
|
87
73
|
class: "product_attachment__subtitle"
|
|
88
74
|
}, desc);
|
|
89
75
|
let $price = null;
|
|
90
|
-
|
|
91
76
|
if (product.price) {
|
|
92
77
|
$price = (0, _preact.h)("div", {
|
|
93
78
|
class: "product_attachment__price"
|
|
94
79
|
}, product.currency || _index.default.get(acc, 'currency', ''), " ", _index.default.formatCurrency(product.price));
|
|
95
80
|
}
|
|
96
|
-
|
|
97
81
|
return (0, _preact.h)("div", {
|
|
98
82
|
class: 'product_attachment product_attachment__' + byType
|
|
99
83
|
}, (0, _preact.h)("div", null, (0, _preact.h)("a", {
|
|
@@ -106,10 +90,7 @@ class ProductAttachments extends _common.Com {
|
|
|
106
90
|
class: "product_attachment__btns"
|
|
107
91
|
}, $detailbtns));
|
|
108
92
|
});
|
|
109
|
-
|
|
110
93
|
return $products;
|
|
111
94
|
}
|
|
112
|
-
|
|
113
95
|
}
|
|
114
|
-
|
|
115
96
|
exports.default = ProductAttachments;
|
|
@@ -4,66 +4,48 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = _interopRequireDefault(require("../util/index.js"));
|
|
9
|
-
|
|
10
8
|
var _common = require("../common.js");
|
|
11
|
-
|
|
12
9
|
var _preact = require("preact");
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
class QuickReplies extends _common.Com {
|
|
17
12
|
constructor(props) {
|
|
18
13
|
super(props);
|
|
19
14
|
}
|
|
20
|
-
|
|
21
15
|
render() {
|
|
22
16
|
if (_index.default.get(this.props.ev, 'by.type') === 'user') return null;
|
|
23
17
|
let quickreplies = [];
|
|
24
|
-
|
|
25
18
|
_index.default.map(_index.default.get(this.props.ev, 'data.message.attachments', []), att => {
|
|
26
19
|
if (!att) return;
|
|
27
|
-
|
|
28
20
|
if (att.type === 'quick_replies') {
|
|
29
21
|
quickreplies = _index.default.get(att, 'quick_replies', []);
|
|
30
22
|
}
|
|
31
23
|
});
|
|
32
|
-
|
|
33
24
|
quickreplies = _index.default.filter(quickreplies, r => r.title);
|
|
34
25
|
if (quickreplies.length === 0) return null;
|
|
35
|
-
|
|
36
26
|
let cid = _index.default.convoOfEv(this.props.ev);
|
|
37
|
-
|
|
38
27
|
let convo = this.props.store.matchConvo(cid);
|
|
39
28
|
if (_index.default.get(convo, 'state') === 'ended') return null;
|
|
40
29
|
|
|
41
30
|
let events = _index.default.map(this.props.store.listEvents(cid));
|
|
42
|
-
|
|
43
31
|
events = _index.default.orderBy(events, 'created', 'asc').filter(ev => ev.type === 'message_sent');
|
|
44
32
|
let evindex = 0;
|
|
45
|
-
|
|
46
33
|
for (var i = 0; i < events.length; i++) {
|
|
47
34
|
if (events[i].id === this.props.ev.id) {
|
|
48
35
|
evindex = i;
|
|
49
36
|
break;
|
|
50
37
|
}
|
|
51
38
|
}
|
|
52
|
-
|
|
53
39
|
for (var i = evindex + 1; i < events.length; i++) {
|
|
54
40
|
if (_index.default.get(events[i], 'by.type') === 'user') return null;
|
|
55
41
|
}
|
|
56
|
-
|
|
57
42
|
let $replies = _index.default.map(quickreplies, r => (0, _preact.h)("div", {
|
|
58
43
|
class: "message_quick_reply",
|
|
59
44
|
onClick: e => this.props.onSelect(r)
|
|
60
45
|
}, r.title));
|
|
61
|
-
|
|
62
46
|
return (0, _preact.h)("div", {
|
|
63
47
|
class: "message_quick_replies"
|
|
64
48
|
}, $replies);
|
|
65
49
|
}
|
|
66
|
-
|
|
67
50
|
}
|
|
68
|
-
|
|
69
51
|
exports.default = QuickReplies;
|
|
@@ -4,56 +4,40 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = _interopRequireDefault(require("../util/index.js"));
|
|
9
|
-
|
|
10
8
|
var _releaseAnimation = _interopRequireDefault(require("./releaseAnimation.js"));
|
|
11
|
-
|
|
12
9
|
var _common = require("../common.js");
|
|
13
|
-
|
|
14
10
|
var _preact = require("preact");
|
|
15
|
-
|
|
16
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
12
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
-
|
|
20
13
|
const POPUP_MAX_HEIGHT = 400;
|
|
21
14
|
const POPUP_HARD_MAX_HEIGHT = 500;
|
|
22
15
|
const POPUP_MIN_HEIGHT = 0;
|
|
23
|
-
|
|
24
16
|
class Rating extends _common.Com {
|
|
25
17
|
constructor(props) {
|
|
26
18
|
super(props);
|
|
27
|
-
|
|
28
19
|
_defineProperty(this, "state", {
|
|
29
20
|
hide: true,
|
|
30
21
|
ratingHeight: 0,
|
|
31
22
|
overlayOpacity: 0.3,
|
|
32
23
|
comment: ''
|
|
33
24
|
});
|
|
34
|
-
|
|
35
25
|
this.refComment = (0, _preact.createRef)();
|
|
36
26
|
this.refRating = (0, _preact.createRef)();
|
|
37
27
|
this.refHandle = (0, _preact.createRef)();
|
|
38
28
|
}
|
|
39
|
-
|
|
40
29
|
componentDidMount() {
|
|
41
30
|
this.props.store.onUpdate(this, () => {
|
|
42
31
|
if (this.shoudDisplay()) this.open();
|
|
43
32
|
});
|
|
44
33
|
this.props.store.onConvoEvent(this, ev => {
|
|
45
34
|
var cid = _index.default.convoOfEv(ev);
|
|
46
|
-
|
|
47
35
|
if (cid !== this.props.cid) return;
|
|
48
36
|
if (this.shoudDisplay()) this.open();
|
|
49
37
|
});
|
|
50
|
-
|
|
51
38
|
this.mouseUp = e => this.onMouseUp(e);
|
|
52
|
-
|
|
53
39
|
this.mouseMove = e => this.onMouseMove(e);
|
|
54
|
-
|
|
55
40
|
this.mouseDown = e => this.onMouseDown(e);
|
|
56
|
-
|
|
57
41
|
var $ratingHandle = this.refHandle.current;
|
|
58
42
|
$ratingHandle.addEventListener('mousedown', this.mouseDown, {
|
|
59
43
|
passive: true
|
|
@@ -81,7 +65,6 @@ class Rating extends _common.Com {
|
|
|
81
65
|
this.close();
|
|
82
66
|
if (this.shoudDisplay() || this.props.forceView === 'rating') this.open();
|
|
83
67
|
}
|
|
84
|
-
|
|
85
68
|
componentWillUnmount() {
|
|
86
69
|
var $ratingHandle = this.refHandle.current;
|
|
87
70
|
$ratingHandle.removeEventListener('mousedown', this.mouseDown, 0);
|
|
@@ -91,7 +74,6 @@ class Rating extends _common.Com {
|
|
|
91
74
|
window.removeEventListener('mousemove', this.mouseMove, 0);
|
|
92
75
|
window.removeEventListener('touchmove', this.mouseMove, 0);
|
|
93
76
|
}
|
|
94
|
-
|
|
95
77
|
render() {
|
|
96
78
|
let cls = this.state.hide ? 'd-none' : '';
|
|
97
79
|
return (0, _preact.h)("div", {
|
|
@@ -152,29 +134,24 @@ class Rating extends _common.Com {
|
|
|
152
134
|
onClick: e => this.onCloseRating(e)
|
|
153
135
|
}, this.props.t('no_thanks')))));
|
|
154
136
|
}
|
|
155
|
-
|
|
156
137
|
shoudDisplay() {
|
|
157
138
|
if (!this.props.cid) return false;
|
|
158
139
|
var requested;
|
|
159
140
|
var rated;
|
|
160
141
|
var ended;
|
|
161
142
|
let user = this.props.store.matchUser();
|
|
162
|
-
|
|
163
143
|
_index.default.map(this.props.store.listEvents(this.props.cid), ev => {
|
|
164
144
|
if (_index.default.get(ev, 'type') === 'conversation_state_updated' && _index.default.get(ev, 'data.conversation.state') === 'ended') {
|
|
165
145
|
ended = ev;
|
|
166
146
|
}
|
|
167
|
-
|
|
168
147
|
if (_index.default.get(ev, 'type') === 'conversation_rating_requested') requested = ev;
|
|
169
148
|
if (_index.default.get(ev, 'type') === 'conversation_rated' && _index.default.get(ev, 'by.id') === user.id) rated = ev;
|
|
170
149
|
});
|
|
171
|
-
|
|
172
150
|
if (rated) return false;
|
|
173
151
|
let accountSetting = this.props.plugin.chatbox;
|
|
174
152
|
var auto = accountSetting.auto_request_rating && ended;
|
|
175
153
|
return requested || auto;
|
|
176
154
|
}
|
|
177
|
-
|
|
178
155
|
onCloseRating() {
|
|
179
156
|
this.props.onRate && this.props.onRate({
|
|
180
157
|
no_rating: true,
|
|
@@ -182,7 +159,6 @@ class Rating extends _common.Com {
|
|
|
182
159
|
});
|
|
183
160
|
this.close();
|
|
184
161
|
}
|
|
185
|
-
|
|
186
162
|
onRatingPoor() {
|
|
187
163
|
this.props.onRate && this.props.onRate({
|
|
188
164
|
rating: 1,
|
|
@@ -190,7 +166,6 @@ class Rating extends _common.Com {
|
|
|
190
166
|
});
|
|
191
167
|
this.close();
|
|
192
168
|
}
|
|
193
|
-
|
|
194
169
|
onRatingAverage() {
|
|
195
170
|
this.props.onRate && this.props.onRate({
|
|
196
171
|
rating: 3,
|
|
@@ -198,7 +173,6 @@ class Rating extends _common.Com {
|
|
|
198
173
|
});
|
|
199
174
|
this.close();
|
|
200
175
|
}
|
|
201
|
-
|
|
202
176
|
onRatingGreat() {
|
|
203
177
|
this.props.onRate && this.props.onRate({
|
|
204
178
|
rating: 5,
|
|
@@ -206,7 +180,6 @@ class Rating extends _common.Com {
|
|
|
206
180
|
});
|
|
207
181
|
this.close();
|
|
208
182
|
}
|
|
209
|
-
|
|
210
183
|
open() {
|
|
211
184
|
if (!this.state.hide) return;
|
|
212
185
|
this.setState({
|
|
@@ -226,7 +199,6 @@ class Rating extends _common.Com {
|
|
|
226
199
|
});
|
|
227
200
|
});
|
|
228
201
|
}
|
|
229
|
-
|
|
230
202
|
close() {
|
|
231
203
|
if (this.state.hide) return;
|
|
232
204
|
if (!this.refRating.current) return;
|
|
@@ -237,7 +209,6 @@ class Rating extends _common.Com {
|
|
|
237
209
|
ratingHeight: h,
|
|
238
210
|
overlayOpacity: Math.min(1, (h - POPUP_MIN_HEIGHT) / (POPUP_HARD_MAX_HEIGHT - POPUP_MIN_HEIGHT))
|
|
239
211
|
});
|
|
240
|
-
|
|
241
212
|
if (h < POPUP_MIN_HEIGHT + 10) {
|
|
242
213
|
if (!this.state.hide) {
|
|
243
214
|
this.setState({
|
|
@@ -247,7 +218,6 @@ class Rating extends _common.Com {
|
|
|
247
218
|
}
|
|
248
219
|
});
|
|
249
220
|
}
|
|
250
|
-
|
|
251
221
|
onMouseDown(e) {
|
|
252
222
|
this.mousePushed = true;
|
|
253
223
|
this.animation.stop();
|
|
@@ -255,7 +225,6 @@ class Rating extends _common.Com {
|
|
|
255
225
|
if (e.touches && e.touches[0]) e = e.touches[0];
|
|
256
226
|
this.mousePushedDy = e.pageY - window.pageYOffset - this.refRating.current.getBoundingClientRect().y;
|
|
257
227
|
}
|
|
258
|
-
|
|
259
228
|
onMouseUp(e) {
|
|
260
229
|
if (!this.mousePushed) return;
|
|
261
230
|
if (e.touches && e.touches[0]) e = e.touches[0];
|
|
@@ -267,7 +236,6 @@ class Rating extends _common.Com {
|
|
|
267
236
|
ratingHeight: h,
|
|
268
237
|
overlayOpacity: Math.min(1, (h - POPUP_MIN_HEIGHT) / (POPUP_HARD_MAX_HEIGHT - POPUP_MIN_HEIGHT))
|
|
269
238
|
});
|
|
270
|
-
|
|
271
239
|
if (h < POPUP_MIN_HEIGHT + 10) {
|
|
272
240
|
if (!this.state.hide) {
|
|
273
241
|
this.setState({
|
|
@@ -280,7 +248,6 @@ class Rating extends _common.Com {
|
|
|
280
248
|
}
|
|
281
249
|
});
|
|
282
250
|
}
|
|
283
|
-
|
|
284
251
|
onMouseMove(e) {
|
|
285
252
|
if (!this.mousePushed) return;
|
|
286
253
|
if (e.touches && e.touches[0]) e = e.touches[0];
|
|
@@ -290,18 +257,14 @@ class Rating extends _common.Com {
|
|
|
290
257
|
my = my - this.mousePushedDy;
|
|
291
258
|
var K = 10000;
|
|
292
259
|
var height = this.refRating.current.getBoundingClientRect().bottom - my;
|
|
293
|
-
|
|
294
260
|
if (height > POPUP_MAX_HEIGHT) {
|
|
295
261
|
var beta = K / (POPUP_HARD_MAX_HEIGHT - POPUP_MAX_HEIGHT) - POPUP_MAX_HEIGHT;
|
|
296
262
|
height = POPUP_HARD_MAX_HEIGHT - K / (height + beta);
|
|
297
263
|
}
|
|
298
|
-
|
|
299
264
|
this.setState({
|
|
300
265
|
ratingHeight: height,
|
|
301
266
|
overlayOpacity: Math.min(1, (height - POPUP_MIN_HEIGHT) / (POPUP_HARD_MAX_HEIGHT - POPUP_MIN_HEIGHT))
|
|
302
267
|
});
|
|
303
268
|
}
|
|
304
|
-
|
|
305
269
|
}
|
|
306
|
-
|
|
307
270
|
exports.default = Rating;
|
|
@@ -4,24 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _common = require("../common.js");
|
|
9
|
-
|
|
10
8
|
var _preact = require("preact");
|
|
11
|
-
|
|
12
9
|
class ShadowDomRoot extends _common.Com {
|
|
13
10
|
constructor(props) {
|
|
14
11
|
super(props);
|
|
15
12
|
this.ref = (0, _preact.createRef)();
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
componentDidMount() {
|
|
19
15
|
this.shadowRoot = this.ref.current.attachShadow({
|
|
20
16
|
mode: 'open'
|
|
21
17
|
});
|
|
22
18
|
this.update(this.props.html);
|
|
23
19
|
}
|
|
24
|
-
|
|
25
20
|
update(html) {
|
|
26
21
|
this.shadowRoot.innerHTML = `<style type="text/css">
|
|
27
22
|
body { font-family: 'Roboto', sans-serif!important; font-size: 14px!important; line-height: 20px; overflow-y: hidden; margin:0 }
|
|
@@ -35,17 +30,13 @@ p { margin-bottom: 0; margin-top: 0;}
|
|
|
35
30
|
</style>
|
|
36
31
|
<div>${html}</div>`;
|
|
37
32
|
let links = this.shadowRoot.querySelectorAll('a');
|
|
38
|
-
|
|
39
33
|
for (var i = 0; i < links.length; i++) links[i].target = '_blank';
|
|
40
34
|
}
|
|
41
|
-
|
|
42
35
|
render() {
|
|
43
36
|
return (0, _preact.h)("div", {
|
|
44
37
|
ref: this.ref,
|
|
45
38
|
style: "white-space: normal !important"
|
|
46
39
|
});
|
|
47
40
|
}
|
|
48
|
-
|
|
49
41
|
}
|
|
50
|
-
|
|
51
42
|
exports.default = ShadowDomRoot;
|
|
@@ -4,79 +4,54 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = _interopRequireDefault(require("../util/index.js"));
|
|
9
|
-
|
|
10
8
|
var _common = require("../common.js");
|
|
11
|
-
|
|
12
9
|
var _preact = require("preact");
|
|
13
|
-
|
|
14
10
|
var _Emoji = _interopRequireDefault(require("./Emoji.js"));
|
|
15
|
-
|
|
16
11
|
var _ShadowDomRoot = _interopRequireDefault(require("./ShadowDomRoot.js"));
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
-
|
|
22
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
-
|
|
24
15
|
let mustrerender = [];
|
|
25
|
-
|
|
26
16
|
let marked = (obj, text) => {
|
|
27
17
|
mustrerender.push(obj);
|
|
28
18
|
return '';
|
|
29
19
|
};
|
|
30
|
-
|
|
31
20
|
const loadMarked = () => Promise.resolve().then(() => _interopRequireWildcard(require('marked')));
|
|
32
|
-
|
|
33
21
|
(async () => {
|
|
34
22
|
let markedf = (await loadMarked()).marked;
|
|
35
|
-
|
|
36
23
|
marked = (obj, text) => markedf(text);
|
|
37
|
-
|
|
38
24
|
_index.default.map(mustrerender, obj => obj.forceUpdate());
|
|
39
|
-
|
|
40
25
|
mustrerender = [];
|
|
41
26
|
})();
|
|
42
|
-
|
|
43
27
|
class TextMessage extends _common.Com {
|
|
44
28
|
render() {
|
|
45
29
|
var format = _index.default.get(this.props.ev, 'data.message.format', 'plaintext');
|
|
46
|
-
|
|
47
30
|
if (format === 'markdown') return this.renderMarkdown();
|
|
48
31
|
if (format === 'delta') return this.renderDelta();
|
|
49
32
|
return this.renderPlainText();
|
|
50
33
|
}
|
|
51
|
-
|
|
52
34
|
renderPlainText() {
|
|
53
35
|
var text = _index.default.get(this.props.ev, 'data.message.text');
|
|
54
|
-
|
|
55
36
|
text = _index.default.trim(text);
|
|
56
37
|
if (_index.default.size(text) === 0) return null;
|
|
57
|
-
|
|
58
38
|
let byType = _index.default.get(this.props.ev, 'by.type');
|
|
59
|
-
|
|
60
39
|
var tags = _index.default.extractText(text).map(tag => {
|
|
61
40
|
if (tag.type === 'emoji') return (0, _preact.h)(_Emoji.default, {
|
|
62
41
|
emojiCode: tag.text,
|
|
63
42
|
byType: byType
|
|
64
43
|
});
|
|
65
|
-
|
|
66
44
|
if (tag.type === 'link') {
|
|
67
45
|
let url = tag.text || '';
|
|
68
|
-
|
|
69
46
|
if (!url.startsWith('//') && !url.startsWith('https://') && !url.startsWith('http://') && !url.startsWith('data:')) {
|
|
70
47
|
url = '//' + url;
|
|
71
48
|
}
|
|
72
|
-
|
|
73
49
|
return (0, _preact.h)("a", {
|
|
74
50
|
href: url,
|
|
75
51
|
target: "_blank",
|
|
76
52
|
onClick: e => this.props.onLink(e, url)
|
|
77
53
|
}, tag.text);
|
|
78
54
|
}
|
|
79
|
-
|
|
80
55
|
if (tag.type === 'phone') return (0, _preact.h)("a", {
|
|
81
56
|
href: 'tel:' + tag.text
|
|
82
57
|
}, tag.text);
|
|
@@ -85,58 +60,45 @@ class TextMessage extends _common.Com {
|
|
|
85
60
|
}, tag.text);
|
|
86
61
|
return tag.text;
|
|
87
62
|
});
|
|
88
|
-
|
|
89
63
|
if (_index.default.size(tags) === 0) return null;
|
|
90
|
-
|
|
91
64
|
if (byType === 'agent') {
|
|
92
65
|
return (0, _preact.h)("div", {
|
|
93
66
|
class: "message-agent message-text--agent"
|
|
94
67
|
}, tags);
|
|
95
68
|
}
|
|
96
|
-
|
|
97
69
|
return (0, _preact.h)("div", {
|
|
98
70
|
class: "message-user message-text--user"
|
|
99
71
|
}, tags);
|
|
100
72
|
}
|
|
101
|
-
|
|
102
73
|
renderDelta() {
|
|
103
74
|
let deltas = _index.default.get(this.props.ev, 'data.message.quill_delta') || _index.default.get(this.props.ev, 'data.message.text');
|
|
104
|
-
|
|
105
75
|
let quilldeltas = _index.default.parseJSON(deltas) || {};
|
|
106
76
|
quilldeltas = trimQuillDelta(quilldeltas);
|
|
107
77
|
if (!quilldeltas || _index.default.size(quilldeltas.ops) === 0) return null;
|
|
108
|
-
|
|
109
78
|
let $deltas = _index.default.map(quilldeltas.ops, delta => {
|
|
110
79
|
let html = '';
|
|
111
80
|
let insert = delta.insert;
|
|
112
81
|
let attributes = delta.attributes;
|
|
113
|
-
|
|
114
82
|
if (insert.dynamicField) {
|
|
115
83
|
return _index.default.get(insert, 'dynamicField.text', '');
|
|
116
84
|
}
|
|
117
|
-
|
|
118
85
|
if (insert.mention) {
|
|
119
86
|
if (insert.mention.id == '*' || insert.mention.id == 'all') {
|
|
120
87
|
return (0, _preact.h)("span", {
|
|
121
88
|
class: "mention"
|
|
122
89
|
}, "@", this.$t('all'));
|
|
123
90
|
}
|
|
124
|
-
|
|
125
91
|
let ag = store.matchAgent(insert.mention.id);
|
|
126
|
-
|
|
127
92
|
let name = _index.default.getAgentDisplayName(ag, insert.mention.fullname);
|
|
128
|
-
|
|
129
93
|
return (0, _preact.h)("span", {
|
|
130
94
|
class: "mention",
|
|
131
95
|
"data-agent-id": ag.id,
|
|
132
96
|
"data-agent-fullname": name
|
|
133
97
|
}, "@", name);
|
|
134
98
|
}
|
|
135
|
-
|
|
136
99
|
if (insert.emoji) return (0, _preact.h)(_Emoji.default, {
|
|
137
100
|
emojiCode: `:${insert.emoji}:`
|
|
138
101
|
});
|
|
139
|
-
|
|
140
102
|
if (typeof insert === 'string') {
|
|
141
103
|
let $tags = _index.default.extractText(insert).map((tag, i) => {
|
|
142
104
|
if (tag.type === 'link') {
|
|
@@ -145,10 +107,8 @@ class TextMessage extends _common.Com {
|
|
|
145
107
|
target: "_blank"
|
|
146
108
|
}, tag.text);
|
|
147
109
|
}
|
|
148
|
-
|
|
149
110
|
return tag.text;
|
|
150
111
|
});
|
|
151
|
-
|
|
152
112
|
if (attributes) {
|
|
153
113
|
if (attributes.italic && attributes.bold) return (0, _preact.h)("span", {
|
|
154
114
|
style: "font-weight: bold !important; font-style: italic !important"
|
|
@@ -160,38 +120,28 @@ class TextMessage extends _common.Com {
|
|
|
160
120
|
style: "font-weight: bold !important"
|
|
161
121
|
}, $tags);
|
|
162
122
|
}
|
|
163
|
-
|
|
164
123
|
return (0, _preact.h)("span", null, $tags);
|
|
165
124
|
}
|
|
166
|
-
|
|
167
125
|
return null;
|
|
168
126
|
});
|
|
169
|
-
|
|
170
127
|
let byType = _index.default.get(this.ev, 'by.type');
|
|
171
|
-
|
|
172
128
|
if (byType !== 'user') byType = 'agent';
|
|
173
129
|
if (_index.default.size($deltas) === 0) return null;
|
|
174
|
-
|
|
175
130
|
if (byType === 'agent') {
|
|
176
131
|
return (0, _preact.h)("div", {
|
|
177
132
|
class: "message-agent message-text--agent"
|
|
178
133
|
}, $deltas);
|
|
179
134
|
}
|
|
180
|
-
|
|
181
135
|
return (0, _preact.h)("div", {
|
|
182
136
|
class: "message-user message-text--user"
|
|
183
137
|
}, $deltas);
|
|
184
138
|
}
|
|
185
|
-
|
|
186
139
|
renderMarkdown(text) {
|
|
187
140
|
if (!text) text = _index.default.get(this.props.ev, 'data.message.text');
|
|
188
141
|
if (_index.default.size(text) === 0) return null;
|
|
189
|
-
|
|
190
142
|
let byType = _index.default.get(this.props.ev, 'by.type');
|
|
191
|
-
|
|
192
143
|
text = _index.default.trim(text);
|
|
193
144
|
if (_index.default.size(text) === 0) return null;
|
|
194
|
-
|
|
195
145
|
if (byType === 'agent') {
|
|
196
146
|
return (0, _preact.h)("div", {
|
|
197
147
|
class: "markdown-message message-agent message-text--agent"
|
|
@@ -199,7 +149,6 @@ class TextMessage extends _common.Com {
|
|
|
199
149
|
html: marked(this, text)
|
|
200
150
|
}));
|
|
201
151
|
}
|
|
202
|
-
|
|
203
152
|
return (0, _preact.h)("div", {
|
|
204
153
|
class: "d-flex flex-column align-items-end"
|
|
205
154
|
}, (0, _preact.h)("div", {
|
|
@@ -208,37 +157,27 @@ class TextMessage extends _common.Com {
|
|
|
208
157
|
html: marked(this, text)
|
|
209
158
|
})));
|
|
210
159
|
}
|
|
211
|
-
|
|
212
160
|
}
|
|
213
|
-
|
|
214
161
|
exports.default = TextMessage;
|
|
215
|
-
|
|
216
162
|
function deltaToMarkdown(deltas) {
|
|
217
163
|
let output = '';
|
|
218
|
-
|
|
219
164
|
_index.default.each(deltas, (delta, idx) => {
|
|
220
165
|
let text = '';
|
|
221
166
|
let insert = delta.insert;
|
|
222
167
|
let attributes = delta.attributes;
|
|
223
168
|
if (insert.emoji) text = emojiCodes[insert.emoji] || '';
|
|
224
|
-
|
|
225
169
|
if (attributes) {
|
|
226
170
|
if (attributes.italic && attributes.bold) text = `*__${insert}__*`;else if (attributes.italic) text = `*${insert}*`;else if (attributes.bold) text = `**${insert}**`;else text = insert;
|
|
227
171
|
}
|
|
228
|
-
|
|
229
172
|
if (insert.dynamicField) text = `${_index.default.get(insert, 'dynamicField.text', '')}`;
|
|
230
|
-
|
|
231
173
|
if (!insert.emoji && !attributes && !insert.dynamicField) {
|
|
232
174
|
text = insert || '';
|
|
233
175
|
text = text.replace(/\n/g, '<br/>');
|
|
234
176
|
}
|
|
235
|
-
|
|
236
177
|
output += text;
|
|
237
178
|
});
|
|
238
|
-
|
|
239
179
|
return output;
|
|
240
180
|
}
|
|
241
|
-
|
|
242
181
|
const emojiCodes = {
|
|
243
182
|
like: '👍',
|
|
244
183
|
unlike: '👎',
|
|
@@ -256,14 +195,12 @@ const emojiCodes = {
|
|
|
256
195
|
surprised: '😮',
|
|
257
196
|
wink: '😉'
|
|
258
197
|
};
|
|
259
|
-
|
|
260
198
|
function trimQuillDelta(delta) {
|
|
261
199
|
if (!delta) return delta;
|
|
262
200
|
if (!delta.ops || !delta.ops.length) return delta;
|
|
263
201
|
let last = delta.ops[delta.ops.length - 1];
|
|
264
202
|
if (typeof last.insert != 'string') return delta;
|
|
265
203
|
let insert = last.insert.trim();
|
|
266
|
-
|
|
267
204
|
if (insert) {
|
|
268
205
|
if (last.insert != insert) {
|
|
269
206
|
let newops = delta.ops.slice();
|
|
@@ -284,7 +221,6 @@ function trimQuillDelta(delta) {
|
|
|
284
221
|
ops: newops
|
|
285
222
|
});
|
|
286
223
|
}
|
|
287
|
-
|
|
288
224
|
function absLink(url) {
|
|
289
225
|
if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('//')) return 'http://' + url;
|
|
290
226
|
return url;
|
|
@@ -4,20 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _index = _interopRequireDefault(require("../util/index.js"));
|
|
9
|
-
|
|
10
8
|
var _common = require("../common.js");
|
|
11
|
-
|
|
12
9
|
var _preact = require("preact");
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
11
|
class Typing extends _common.Com {
|
|
17
12
|
constructor(props) {
|
|
18
13
|
super(props);
|
|
19
14
|
}
|
|
20
|
-
|
|
21
15
|
componentDidMount() {
|
|
22
16
|
this.setState({
|
|
23
17
|
isShow: false,
|
|
@@ -27,11 +21,8 @@ class Typing extends _common.Com {
|
|
|
27
21
|
if (_index.default.convoOfEv(ev) !== this.props.cid) return;
|
|
28
22
|
let user = this.props.store.matchUser();
|
|
29
23
|
if (_index.default.get(ev, 'by.id') === user.id) return;
|
|
30
|
-
|
|
31
24
|
let oldby = _index.default.get(this.state.ev, 'by.id');
|
|
32
|
-
|
|
33
25
|
if (oldby && _index.default.get(ev, 'by.id') !== oldby) return;
|
|
34
|
-
|
|
35
26
|
if (_index.default.get(ev, 'type') === 'message_sent') {
|
|
36
27
|
if (this.timer) clearTimeout(this.timer);
|
|
37
28
|
this.timer = null;
|
|
@@ -58,20 +49,14 @@ class Typing extends _common.Com {
|
|
|
58
49
|
}, 5000);
|
|
59
50
|
});
|
|
60
51
|
}
|
|
61
|
-
|
|
62
52
|
render() {
|
|
63
53
|
let account = this.props.store.matchAccount();
|
|
64
54
|
var cls = this.state.isShow ? '' : 'typing--hidden';
|
|
65
|
-
|
|
66
55
|
let byid = _index.default.get(this.state.ev, 'by.display_id', _index.default.get(this.state.ev, 'by.id'));
|
|
67
|
-
|
|
68
56
|
let agentName = _index.default.getAgentDisplayName(account, this.props.store.matchAgent(byid));
|
|
69
|
-
|
|
70
57
|
return (0, _preact.h)("div", {
|
|
71
58
|
class: `typing ${cls}`
|
|
72
59
|
}, agentName, " ", this.props.t('typing'));
|
|
73
60
|
}
|
|
74
|
-
|
|
75
61
|
}
|
|
76
|
-
|
|
77
62
|
exports.default = Typing;
|