@subiz/widget-v4 4.0.46 → 4.0.51
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/assets/img/default.jpg +0 -0
- package/assets/img/external-link.svg +1 -0
- package/assets/less/message.less +210 -42
- package/compiled_src/chatbox/ChatButton.js +12 -6
- package/compiled_src/chatbox/Event.js +22 -2
- package/compiled_src/chatbox/MessageInput.js +8 -3
- package/compiled_src/chatbox/OrderAttachments.js +113 -0
- package/compiled_src/chatbox/ProductAttachments.js +79 -0
- package/compiled_src/chatbox/TextMessage.js +1 -1
- package/compiled_src/chatbox/Widget.js +18 -3
- package/compiled_src/chatbox/main.js +5 -4
- package/compiled_src/chatbox/time.js +94 -7
- package/compiled_src/common.js +1 -1
- package/compiled_src/contact/contact.js +1 -1
- package/compiled_src/plugin.js +8 -2
- package/compiled_src/store/store.js +150 -5
- package/compiled_src/util/campaign.js +2 -2
- package/compiled_src/util/common.js +78 -49
- package/compiled_src/util/extractor.js +3 -3
- package/compiled_src/util/pubsub.js +6 -3
- package/dist/17d02a15859.178.js +1 -0
- package/dist/17d02a15859.213.js +1 -0
- package/dist/17d02a15859.362.js +1 -0
- package/dist/17d02a15859.441.js +1 -0
- package/dist/17d02a15859.605.js +1 -0
- package/dist/17d02a15859.619.js +1 -0
- package/dist/17d02a15859.678.js +1 -0
- package/dist/17d02a15859.712.js +1 -0
- package/dist/17d02a15859.782.js +1 -0
- package/dist/17d02a15859.app.js +1 -0
- package/dist/17d02a15859.index.html +21 -0
- package/dist/17d02a15859.library.html +21 -0
- package/dist/17d02a15859.library.js +1 -0
- package/dist/17d02a15859.preview.html +759 -0
- package/dist/17d02a15859.preview.js +1 -0
- package/dist/HASH +1 -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 +20 -0
- package/dist/assets/img/convos_empty.2353007.svg +72 -0
- package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
- package/dist/assets/img/done_gray.d7e8203.svg +4 -0
- 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 +23 -0
- package/dist/assets/img/examplte_logo.f86535f.svg +1 -0
- package/dist/assets/img/external-link.90577cc.svg +1 -0
- package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
- package/dist/assets/img/image_default.be0698b.png +0 -0
- package/dist/assets/img/loading_static.8f403ae.svg +10 -0
- package/dist/assets/img/main-service1.d536cc2.png +0 -0
- package/dist/assets/img/main-service2.9b99549.png +0 -0
- package/dist/assets/img/rating--average.1ea492c.svg +12 -0
- package/dist/assets/img/rating--great.e3d712e.svg +16 -0
- package/dist/assets/img/rating--poor.2938a25.svg +12 -0
- package/dist/assets/img/send.6db52a9.svg +3 -0
- package/dist/assets/img/subiz-mono.877e9f5.svg +3 -0
- package/package.json +20 -19
- package/src/chatbox/ChatButton.js +10 -6
- package/src/chatbox/Event.js +72 -56
- package/src/chatbox/OrderAttachments.js +112 -0
- package/src/chatbox/ProductAttachments.js +70 -0
- package/src/chatbox/TextMessage.js +1 -1
- package/src/chatbox/main.js +6 -4
- package/src/plugin.js +9 -4
- package/src/store/store.js +146 -8
- package/src/util/common.js +6 -0
|
@@ -62,6 +62,7 @@ class Main extends _common.Com {
|
|
|
62
62
|
widgetView: '',
|
|
63
63
|
widgetConvoId: ''
|
|
64
64
|
});
|
|
65
|
+
this.checkExpand();
|
|
65
66
|
this.props.store.onResetCSS(this, () => this.refreshCSS());
|
|
66
67
|
this.props.store.onConvoEvent(this, _ => this.checkExpand());
|
|
67
68
|
this.props.store.onUpdate(this, _ => this.checkExpand());
|
|
@@ -131,7 +132,7 @@ class Main extends _common.Com {
|
|
|
131
132
|
}
|
|
132
133
|
|
|
133
134
|
async showWidget(p) {
|
|
134
|
-
this.refButton.current && this.refButton.current.
|
|
135
|
+
this.refButton.current && this.refButton.current.ClearPreview();
|
|
135
136
|
|
|
136
137
|
if (!p.view) {
|
|
137
138
|
let lastview = this.props.store.matchLastview() || {};
|
|
@@ -156,11 +157,11 @@ class Main extends _common.Com {
|
|
|
156
157
|
}
|
|
157
158
|
|
|
158
159
|
showGreeting() {
|
|
159
|
-
this.refButton.current && this.refButton.current.
|
|
160
|
+
this.refButton.current && this.refButton.current.ShowGreeting();
|
|
160
161
|
}
|
|
161
162
|
|
|
162
163
|
hideGreeting() {
|
|
163
|
-
this.refButton.current && this.refButton.current.
|
|
164
|
+
this.refButton.current && this.refButton.current.HideGreeting();
|
|
164
165
|
}
|
|
165
166
|
|
|
166
167
|
hideWidget() {
|
|
@@ -172,7 +173,7 @@ class Main extends _common.Com {
|
|
|
172
173
|
}
|
|
173
174
|
|
|
174
175
|
onWidgetClose() {
|
|
175
|
-
this.refButton.current && this.refButton.current.
|
|
176
|
+
this.refButton.current && this.refButton.current.ClearPreview();
|
|
176
177
|
this.props.store.setHasManuallyClosed();
|
|
177
178
|
this.hideWidget();
|
|
178
179
|
}
|
|
@@ -13,11 +13,6 @@ var _preact = require("preact");
|
|
|
13
13
|
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
|
|
16
|
-
var dayjs = require('dayjs');
|
|
17
|
-
|
|
18
|
-
var relativeTime = require('dayjs/plugin/relativeTime');
|
|
19
|
-
|
|
20
|
-
dayjs.extend(relativeTime);
|
|
21
16
|
var g_pub = new _index.default.Pubsub();
|
|
22
17
|
setInterval(() => g_pub.publish('time'), 20 * 1000);
|
|
23
18
|
|
|
@@ -34,7 +29,22 @@ class Time extends _common.Com {
|
|
|
34
29
|
var t = '';
|
|
35
30
|
|
|
36
31
|
if (this.props.ago) {
|
|
37
|
-
if (this.props.
|
|
32
|
+
if (this.props.short) {
|
|
33
|
+
if (Math.abs(this.props.time - new _index.default.Date().getTime()) > 86400000 * 10) {
|
|
34
|
+
let tim = new _index.default.Date(this.props.time);
|
|
35
|
+
let tzyear = tim.getFullYear();
|
|
36
|
+
|
|
37
|
+
let locale = _index.default.get(navigator, 'languages.0', 'en-US');
|
|
38
|
+
|
|
39
|
+
let tzmonthname = tim.toLocaleDateString(locale, {
|
|
40
|
+
month: 'short'
|
|
41
|
+
});
|
|
42
|
+
let tzdate = tim.getDate();
|
|
43
|
+
t = tzdate + ' ' + tzmonthname + ' ' + tzyear;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (!t && this.props.time > 0) t = ago(this.props.time, new _index.default.Date().getTime());
|
|
38
48
|
} else t = _index.default.shortTime(this.props.time, this.props.tzoffset);
|
|
39
49
|
|
|
40
50
|
if (this.props.uppercase) t = t.toUpperCase();
|
|
@@ -55,4 +65,81 @@ class Time extends _common.Com {
|
|
|
55
65
|
|
|
56
66
|
}
|
|
57
67
|
|
|
58
|
-
exports.default = Time;
|
|
68
|
+
exports.default = Time;
|
|
69
|
+
|
|
70
|
+
function ago(timeA, timeB) {
|
|
71
|
+
const relObj = {
|
|
72
|
+
s: '%d s',
|
|
73
|
+
m: '1m',
|
|
74
|
+
mm: '%dm',
|
|
75
|
+
h: '1h',
|
|
76
|
+
hh: '%dh',
|
|
77
|
+
d: '1d',
|
|
78
|
+
dd: '%dd',
|
|
79
|
+
M: '1M',
|
|
80
|
+
MM: '%M',
|
|
81
|
+
y: '1y',
|
|
82
|
+
yy: '%dy'
|
|
83
|
+
};
|
|
84
|
+
const loc = relObj;
|
|
85
|
+
const T = [{
|
|
86
|
+
l: 's',
|
|
87
|
+
r: 44,
|
|
88
|
+
d: 1000
|
|
89
|
+
}, {
|
|
90
|
+
l: 'm',
|
|
91
|
+
r: 89
|
|
92
|
+
}, {
|
|
93
|
+
l: 'mm',
|
|
94
|
+
r: 44,
|
|
95
|
+
d: 60000
|
|
96
|
+
}, {
|
|
97
|
+
l: 'h',
|
|
98
|
+
r: 89
|
|
99
|
+
}, {
|
|
100
|
+
l: 'hh',
|
|
101
|
+
r: 21,
|
|
102
|
+
d: 3600000
|
|
103
|
+
}, {
|
|
104
|
+
l: 'd',
|
|
105
|
+
r: 35
|
|
106
|
+
}, {
|
|
107
|
+
l: 'dd',
|
|
108
|
+
r: 25,
|
|
109
|
+
d: 86400000
|
|
110
|
+
}, {
|
|
111
|
+
l: 'M',
|
|
112
|
+
r: 45
|
|
113
|
+
}, {
|
|
114
|
+
l: 'MM',
|
|
115
|
+
r: 10,
|
|
116
|
+
d: 30 * 86400000
|
|
117
|
+
}, {
|
|
118
|
+
l: 'y',
|
|
119
|
+
r: 17
|
|
120
|
+
}, {
|
|
121
|
+
l: 'yy',
|
|
122
|
+
d: 365 * 86400000
|
|
123
|
+
}];
|
|
124
|
+
const Tl = T.length;
|
|
125
|
+
let result;
|
|
126
|
+
let out;
|
|
127
|
+
|
|
128
|
+
for (let i = 0; i < Tl; i += 1) {
|
|
129
|
+
let t = T[i];
|
|
130
|
+
|
|
131
|
+
if (t.d) {
|
|
132
|
+
result = (timeA - timeB) / t.d;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
let abs = Math.round(Math.abs(result));
|
|
136
|
+
|
|
137
|
+
if (abs <= t.r || !t.r) {
|
|
138
|
+
if (abs <= 1 && i > 0) t = T[i - 1];
|
|
139
|
+
out = loc[t.l].replace('%d', abs);
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return out;
|
|
145
|
+
}
|
package/compiled_src/common.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = exports.DEFVAL = void 0;
|
|
6
7
|
exports.replaceCssVariable = replaceCssVariable;
|
|
7
|
-
exports.DEFVAL = exports.default = void 0;
|
|
8
8
|
|
|
9
9
|
var _index = _interopRequireDefault(require("../util/index.js"));
|
|
10
10
|
|
package/compiled_src/plugin.js
CHANGED
|
@@ -407,10 +407,16 @@ function downloadLanguage(store, locale, force) {
|
|
|
407
407
|
}
|
|
408
408
|
|
|
409
409
|
const getLocale = (plugin, loc) => {
|
|
410
|
-
|
|
410
|
+
if (!loc) loc = '';
|
|
411
|
+
|
|
412
|
+
let found = _index.default.find(plugin.locales, l => l.toLowerCase().trim() === loc.toLowerCase().trim());
|
|
411
413
|
|
|
412
414
|
if (found) return loc;
|
|
413
|
-
found = _index.default.find(plugin.locales, l =>
|
|
415
|
+
found = _index.default.find(plugin.locales, l => {
|
|
416
|
+
l = l.replace('-', '_').split('_')[0].trim().toLowerCase();
|
|
417
|
+
let compareloc = loc.replace('-', '_').split('_')[0].trim().toLowerCase();
|
|
418
|
+
return l == compareloc;
|
|
419
|
+
});
|
|
414
420
|
if (found) return found;
|
|
415
421
|
return plugin.locale || 'en-US';
|
|
416
422
|
};
|
|
@@ -28,11 +28,6 @@ var cookie = require('cookie_js');
|
|
|
28
28
|
cookie.defaults.path = '/';
|
|
29
29
|
cookie.expiresMultiplier = 60 * 60 * 24;
|
|
30
30
|
cookie.defaults.expires = 3650;
|
|
31
|
-
|
|
32
|
-
var dayjs = require('dayjs');
|
|
33
|
-
|
|
34
|
-
require('dayjs/locale/vi');
|
|
35
|
-
|
|
36
31
|
const MAX_CONVO = 20;
|
|
37
32
|
|
|
38
33
|
const page_loaded = _index.default.Date.now();
|
|
@@ -1020,6 +1015,156 @@ class Store {
|
|
|
1020
1015
|
setTimeout(() => this.loopTime(), 60000);
|
|
1021
1016
|
}
|
|
1022
1017
|
|
|
1018
|
+
getPrice(obj, field, currency) {
|
|
1019
|
+
if (!obj) return 0;
|
|
1020
|
+
if (!currency) return obj[field] || 0;
|
|
1021
|
+
|
|
1022
|
+
let defcur = _index.default.get(this.matchAccount(), 'currency');
|
|
1023
|
+
|
|
1024
|
+
if (currency != defcur) return _index.default.get(obj, [field + '_locale', currency], 0);
|
|
1025
|
+
return obj[field] || 0;
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
getOrderTotal(order) {
|
|
1029
|
+
let subtotal = 0;
|
|
1030
|
+
|
|
1031
|
+
_index.default.map(order.items, item => {
|
|
1032
|
+
if (!item.product) return 0;
|
|
1033
|
+
let price = this.getPrice(item.product, 'price', order.currency) * item.quantity;
|
|
1034
|
+
|
|
1035
|
+
if (item.discount_type) {
|
|
1036
|
+
if (item.discount_type == 'percentage') {
|
|
1037
|
+
if (item.discount_before_tax && item.discount_percentage > 0) {
|
|
1038
|
+
price = price * (1 - item.discount_percentage / 10000);
|
|
1039
|
+
}
|
|
1040
|
+
} else if (item.discount_type == 'amount') {
|
|
1041
|
+
let computed_discount = this.getPrice(item, 'discount', order.currency);
|
|
1042
|
+
|
|
1043
|
+
if (item.discount_before_tax && computed_discount > 0) {
|
|
1044
|
+
price = price - computed_discount;
|
|
1045
|
+
if (price <= 0) price = 0;
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
subtotal += price;
|
|
1051
|
+
});
|
|
1052
|
+
|
|
1053
|
+
let computed_discount = 0;
|
|
1054
|
+
|
|
1055
|
+
_index.default.map(order.items, item => {
|
|
1056
|
+
if (!item.discount_type) return;
|
|
1057
|
+
if (!item.product) return 0;
|
|
1058
|
+
let price = this.getPrice(item.product, 'price', order.currency) * item.quantity;
|
|
1059
|
+
let tax = item.product.tax;
|
|
1060
|
+
let taxprice = 0;
|
|
1061
|
+
if (tax && tax.id) taxprice = price * tax.percentage / 10000;
|
|
1062
|
+
|
|
1063
|
+
if (item.discount_type == 'percentage' && !item.discount_before_tax && item.discount_percentage > 0) {
|
|
1064
|
+
computed_discount += (price + taxprice) * item.discount_percentage / 10000;
|
|
1065
|
+
} else if (item.discount_type == 'amount') {
|
|
1066
|
+
let itemdiscount = this.getPrice(item, 'discount', order.currency);
|
|
1067
|
+
|
|
1068
|
+
if (!item.discount_before_tax && itemdiscount > 0) {
|
|
1069
|
+
if (itemdiscount > price + taxprice) itemdiscount = price + taxprice;
|
|
1070
|
+
computed_discount += itemdiscount;
|
|
1071
|
+
}
|
|
1072
|
+
}
|
|
1073
|
+
});
|
|
1074
|
+
|
|
1075
|
+
let totaltax = 0;
|
|
1076
|
+
let taxM = {};
|
|
1077
|
+
|
|
1078
|
+
_index.default.map(order.items, (item, i) => {
|
|
1079
|
+
if (!item.product) return;
|
|
1080
|
+
let tax = item.product.tax;
|
|
1081
|
+
if (!tax) return;
|
|
1082
|
+
if (!tax.id) return;
|
|
1083
|
+
let price = this.getPrice(item.product, 'price', order.currency) * item.quantity;
|
|
1084
|
+
|
|
1085
|
+
if (item.discount_type) {
|
|
1086
|
+
if (item.discount_type == 'percentage') {
|
|
1087
|
+
if (item.discount_before_tax && item.discount_percentage > 0) {
|
|
1088
|
+
price = price * (1 - item.discount_percentage / 10000);
|
|
1089
|
+
}
|
|
1090
|
+
} else if (item.discount_type == 'amount') {
|
|
1091
|
+
let computed_discount = this.getPrice(item, 'discount', order.currency);
|
|
1092
|
+
|
|
1093
|
+
if (item.discount_before_tax && computed_discount > 0) {
|
|
1094
|
+
price = price - computed_discount;
|
|
1095
|
+
if (price <= 0) price = 0;
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
let taxprice = price * tax.percentage / 10000;
|
|
1101
|
+
taxM[i] = {
|
|
1102
|
+
tax: tax,
|
|
1103
|
+
taxprice: taxprice
|
|
1104
|
+
};
|
|
1105
|
+
});
|
|
1106
|
+
|
|
1107
|
+
if (order.discount_before_tax) {
|
|
1108
|
+
if (order.discount_type == 'percentage' && order.discount_percentage > 0) {
|
|
1109
|
+
_index.default.map(taxM, t => {
|
|
1110
|
+
t.taxprice = t.taxprice * (1 - order.discount_percentage / 10000);
|
|
1111
|
+
});
|
|
1112
|
+
|
|
1113
|
+
computed_discount += subtotal * order.discount_percentage / 10000;
|
|
1114
|
+
} else if (order.discount_type == 'amount') {
|
|
1115
|
+
let discount = this.getPrice(order, 'discount', order.currency);
|
|
1116
|
+
|
|
1117
|
+
if (subtotal > 0) {
|
|
1118
|
+
_index.default.map(taxM, t => {
|
|
1119
|
+
if (discount > subtotal) discount = subtotal;
|
|
1120
|
+
t.taxprice = t.taxprice * (1 - discount / subtotal);
|
|
1121
|
+
});
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
computed_discount += discount;
|
|
1125
|
+
}
|
|
1126
|
+
} else {
|
|
1127
|
+
if (order.discount_type == 'percentage' && order.discount_percentage > 0) {
|
|
1128
|
+
let taxprice = 0;
|
|
1129
|
+
|
|
1130
|
+
_index.default.map(taxM, t => taxprice += t.taxprice);
|
|
1131
|
+
|
|
1132
|
+
computed_discount += (subtotal + taxprice) * order.discount_percentage / 10000;
|
|
1133
|
+
} else if (order.discount_type == 'amount') {
|
|
1134
|
+
let discount = this.getPrice(order, 'discount', order.currency);
|
|
1135
|
+
computed_discount += discount;
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
let shippingfee = this.getPrice(order.shipping, 'fee', order.currency);
|
|
1140
|
+
|
|
1141
|
+
if (shippingfee > 0) {
|
|
1142
|
+
if (_index.default.get(order, 'shipping.tax.id')) {
|
|
1143
|
+
let tax = order.shipping.tax;
|
|
1144
|
+
let taxprice = shippingfee * tax.percentage / 10000;
|
|
1145
|
+
taxM['ship'] = {
|
|
1146
|
+
tax: tax,
|
|
1147
|
+
taxprice: taxprice
|
|
1148
|
+
};
|
|
1149
|
+
}
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
let taxprice = 0;
|
|
1153
|
+
|
|
1154
|
+
_index.default.map(taxM, t => taxprice += t.taxprice);
|
|
1155
|
+
|
|
1156
|
+
let total = subtotal + taxprice - computed_discount + shippingfee;
|
|
1157
|
+
let adj = this.getPrice(order, 'adjustment', order.currency);
|
|
1158
|
+
total += adj;
|
|
1159
|
+
if (total < 0) total = 0;
|
|
1160
|
+
return {
|
|
1161
|
+
subtotal,
|
|
1162
|
+
computed_discount,
|
|
1163
|
+
taxM,
|
|
1164
|
+
total
|
|
1165
|
+
};
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1023
1168
|
replaceFileUrl(src) {
|
|
1024
1169
|
if (!src) return '';
|
|
1025
1170
|
if (_index.default.startsWith(src, '/')) return src;
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.trackExitIntent = trackExitIntent;
|
|
7
|
-
exports.trackScrollingPercentage = trackScrollingPercentage;
|
|
8
6
|
exports.trackAreaClicked = trackAreaClicked;
|
|
7
|
+
exports.trackExitIntent = trackExitIntent;
|
|
9
8
|
exports.trackInactivity = trackInactivity;
|
|
9
|
+
exports.trackScrollingPercentage = trackScrollingPercentage;
|
|
10
10
|
exports.trackTimeOnPage = trackTimeOnPage;
|
|
11
11
|
|
|
12
12
|
var common = require('./common.js');
|
|
@@ -3,65 +3,69 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.Date = exports.DEF_CHAT_BUTTON_BACKGROUND_IMAGE_URL = exports.DEFVAL = void 0;
|
|
7
|
+
exports.agentsOfConvo = agentsOfConvo;
|
|
8
|
+
exports.checkRunConditions = checkRunConditions;
|
|
9
|
+
exports.cloneDeep = cloneDeep;
|
|
7
10
|
exports.convoOfEv = convoOfEv;
|
|
8
11
|
exports.convoToEv = convoToEv;
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.cloneDeep = cloneDeep;
|
|
13
|
-
exports.randomString = randomString;
|
|
14
|
-
exports.filter = filter;
|
|
15
|
-
exports.includes = includes;
|
|
16
|
-
exports.map = map;
|
|
12
|
+
exports.detectLang = detectLang;
|
|
13
|
+
exports.diffDay = diffDay;
|
|
14
|
+
exports.diffYear = diffYear;
|
|
17
15
|
exports.each = each;
|
|
18
|
-
exports.
|
|
19
|
-
exports.isConvoSeen = isConvoSeen;
|
|
20
|
-
exports.agentsOfConvo = agentsOfConvo;
|
|
21
|
-
exports.startsWith = startsWith;
|
|
22
|
-
exports.size = size;
|
|
23
|
-
exports.replaceAll = replaceAll;
|
|
24
|
-
exports.trim = trim;
|
|
25
|
-
exports.trimStart = trimStart;
|
|
26
|
-
exports.throttle = throttle;
|
|
16
|
+
exports.filter = filter;
|
|
27
17
|
exports.find = find;
|
|
28
|
-
exports.
|
|
18
|
+
exports.formatCurrency = formatCurrency;
|
|
19
|
+
exports.getAgentDisplayName = getAgentDisplayName;
|
|
20
|
+
exports.getDayName = getDayName;
|
|
29
21
|
exports.getIntegrationId = getIntegrationId;
|
|
22
|
+
exports.getMs = getMs;
|
|
23
|
+
exports.getMsgField = getMsgField;
|
|
24
|
+
exports.getUrlParameter = getUrlParameter;
|
|
25
|
+
exports.getUserAttr = getUserAttr;
|
|
26
|
+
exports.includes = includes;
|
|
27
|
+
exports.isConvoSeen = isConvoSeen;
|
|
28
|
+
exports.isEmail = isEmail;
|
|
29
|
+
exports.isNumber = isNumber;
|
|
30
30
|
exports.isPhone = isPhone;
|
|
31
31
|
exports.isURL = isURL;
|
|
32
|
-
exports.isNumber = isNumber;
|
|
33
|
-
exports.isEmail = isEmail;
|
|
34
|
-
exports.last = last;
|
|
35
|
-
exports.getAgentDisplayName = getAgentDisplayName;
|
|
36
32
|
exports.isUserBanned = isUserBanned;
|
|
37
|
-
exports.setUserAttr = setUserAttr;
|
|
38
|
-
exports.getUserAttr = getUserAttr;
|
|
39
|
-
exports.norm = norm;
|
|
40
|
-
exports.noop = noop;
|
|
41
|
-
exports.replaceCssVariablePlugin = replaceCssVariablePlugin;
|
|
42
|
-
exports.replaceCssVariable = replaceCssVariable;
|
|
43
|
-
exports.tokenize = tokenize;
|
|
44
|
-
exports.setCss = setCss;
|
|
45
33
|
exports.js2css = js2css;
|
|
46
|
-
exports.
|
|
47
|
-
exports.
|
|
48
|
-
exports.
|
|
49
|
-
exports.
|
|
34
|
+
exports.last = last;
|
|
35
|
+
exports.map = map;
|
|
36
|
+
exports.merge = merge;
|
|
37
|
+
exports.noop = noop;
|
|
38
|
+
exports.norm = norm;
|
|
50
39
|
exports.offsetToMin = offsetToMin;
|
|
51
|
-
exports.
|
|
52
|
-
exports.
|
|
40
|
+
exports.orderBy = orderBy;
|
|
41
|
+
exports.parseJSON = parseJSON;
|
|
42
|
+
exports.preloadImg = preloadImg;
|
|
43
|
+
exports.preloadWebfonts = preloadWebfonts;
|
|
44
|
+
exports.randomString = randomString;
|
|
45
|
+
exports.replaceAll = replaceAll;
|
|
46
|
+
exports.replaceCssVariable = replaceCssVariable;
|
|
47
|
+
exports.replaceCssVariablePlugin = replaceCssVariablePlugin;
|
|
48
|
+
exports.requestAnimationFrame = void 0;
|
|
53
49
|
exports.sameDay = sameDay;
|
|
50
|
+
exports.setCss = setCss;
|
|
51
|
+
exports.setInterval = void 0;
|
|
52
|
+
exports.setMsgField = setMsgField;
|
|
53
|
+
exports.setTimeout = void 0;
|
|
54
|
+
exports.setUserAttr = setUserAttr;
|
|
54
55
|
exports.shortTime = shortTime;
|
|
56
|
+
exports.size = size;
|
|
57
|
+
exports.sleep = void 0;
|
|
58
|
+
exports.startsWith = startsWith;
|
|
59
|
+
exports.stringify = void 0;
|
|
60
|
+
exports.throttle = throttle;
|
|
61
|
+
exports.tokenize = tokenize;
|
|
62
|
+
exports.trim = trim;
|
|
63
|
+
exports.trimStart = trimStart;
|
|
55
64
|
exports.unixSec = unixSec;
|
|
56
|
-
exports.
|
|
57
|
-
exports.detectLang = detectLang;
|
|
58
|
-
exports.getUrlParameter = getUrlParameter;
|
|
59
|
-
exports.sleep = exports.DEFVAL = exports.DEF_CHAT_BUTTON_BACKGROUND_IMAGE_URL = exports.setInterval = exports.setTimeout = exports.requestAnimationFrame = exports.Date = exports.stringify = void 0;
|
|
65
|
+
exports.usersOfConvo = usersOfConvo;
|
|
60
66
|
|
|
61
67
|
var op = require('./op.js');
|
|
62
68
|
|
|
63
|
-
var dayjs = require('dayjs');
|
|
64
|
-
|
|
65
69
|
function parseJSON(str) {
|
|
66
70
|
try {
|
|
67
71
|
return parse(str);
|
|
@@ -164,7 +168,11 @@ function isObject(item) {
|
|
|
164
168
|
return item && typeof item === 'object' && !Array.isArray(item);
|
|
165
169
|
}
|
|
166
170
|
|
|
167
|
-
function merge(target
|
|
171
|
+
function merge(target) {
|
|
172
|
+
for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
173
|
+
sources[_key - 1] = arguments[_key];
|
|
174
|
+
}
|
|
175
|
+
|
|
168
176
|
if (!sources.length) return target;
|
|
169
177
|
const source = sources.shift();
|
|
170
178
|
|
|
@@ -1059,12 +1067,27 @@ function shortTime(utcms, tzoffset, now) {
|
|
|
1059
1067
|
var offsetmin = machineoffsetmin;
|
|
1060
1068
|
if (tzoffset) offsetmin = offsetToMin(tzoffset);
|
|
1061
1069
|
var time = new Date(getMs(utcms));
|
|
1062
|
-
|
|
1070
|
+
let tztime = new Date(time);
|
|
1071
|
+
tztime.setMinutes(time.getMinutes() + offsetmin - machineoffsetmin);
|
|
1063
1072
|
if (!now) now = new Date();
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1073
|
+
let tzhour = tztime.getHours();
|
|
1074
|
+
let tzmin = tztime.getMinutes();
|
|
1075
|
+
let locale = op.get(navigator, 'languages.0', 'en-US');
|
|
1076
|
+
let tzdddd = tztime.toLocaleDateString(locale, {
|
|
1077
|
+
weekday: 'long'
|
|
1078
|
+
});
|
|
1079
|
+
let tzyear = tztime.getFullYear();
|
|
1080
|
+
let tzmonth = tztime.getMonth() + 1;
|
|
1081
|
+
let tzmonthname = tztime.toLocaleDateString(locale, {
|
|
1082
|
+
month: 'long'
|
|
1083
|
+
});
|
|
1084
|
+
let tzdate = tztime.getDate();
|
|
1085
|
+
if (tzhour < 10) tzhour = '0' + tzhour;
|
|
1086
|
+
if (tzmin < 10) tzmin = '0' + tzmin;
|
|
1087
|
+
if (sameDay(time, now, tzoffset)) return tzhour + ':' + tzmin;
|
|
1088
|
+
if (diffDay(time, now, tzoffset) <= 5) return tzdddd + ', ' + tzhour + ':' + tzmin;
|
|
1089
|
+
if (diffYear(time, now, tzoffset) === 0) return tzmonthname + ' ' + tzdate + ', ' + tzhour + ':' + tzmin;
|
|
1090
|
+
return tzyear + '/' + tzmonth + '/' + tzdate + ', ' + tzhour + ':' + tzmin;
|
|
1068
1091
|
}
|
|
1069
1092
|
|
|
1070
1093
|
function unixSec(t) {
|
|
@@ -1107,6 +1130,12 @@ var sleep = ms => new Promise(res => setTimeout(res, ms));
|
|
|
1107
1130
|
|
|
1108
1131
|
exports.sleep = sleep;
|
|
1109
1132
|
|
|
1133
|
+
function formatCurrency(val) {
|
|
1134
|
+
if (!val) return 0;
|
|
1135
|
+
val = Math.round(val);
|
|
1136
|
+
return val.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,');
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1110
1139
|
function replaceFileUrl(src) {
|
|
1111
1140
|
let fileurl = 'https://vcdn.subiz-cdn.com/file/';
|
|
1112
1141
|
if (!src) return '';
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.extract = extract;
|
|
7
|
+
exports.extractEmails = extractEmails;
|
|
6
8
|
exports.extractEmojis = extractEmojis;
|
|
7
9
|
exports.extractLinks = extractLinks;
|
|
8
|
-
exports.extractEmails = extractEmails;
|
|
9
10
|
exports.extractPhones = extractPhones;
|
|
10
|
-
exports.extract = extract;
|
|
11
|
-
exports.pipeExtracts = pipeExtracts;
|
|
12
11
|
exports.extractText = extractText;
|
|
12
|
+
exports.pipeExtracts = pipeExtracts;
|
|
13
13
|
|
|
14
14
|
var common = require('./common.js');
|
|
15
15
|
|
|
@@ -17,9 +17,12 @@ class Pubsub {
|
|
|
17
17
|
|
|
18
18
|
publish(topic, payload, payload2, payload3) {
|
|
19
19
|
this.listeners[topic] = filter(this.listeners[topic], sub => sub.obj._isMounted);
|
|
20
|
-
map(this.listeners[topic],
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
map(this.listeners[topic], _ref => {
|
|
21
|
+
let {
|
|
22
|
+
cb
|
|
23
|
+
} = _ref;
|
|
24
|
+
return cb(payload, payload2, payload3);
|
|
25
|
+
});
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
on2(obj, topic, cb) {
|