@subiz/widget-v4 4.1.76 → 4.1.78

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 (96) hide show
  1. package/assets/less/message_input.less +2 -1
  2. package/assets/less/widget.less +2 -2
  3. package/compiled_src/chatbox/ChatButton.js +5 -4
  4. package/package.json +2 -2
  5. package/src/chatbox/ChatButton.js +9 -4
  6. package/dist/127.js +0 -273
  7. package/dist/132.js +0 -2796
  8. package/dist/185.js +0 -1885
  9. package/dist/18f3763d12b.127.js +0 -1
  10. package/dist/18f3763d12b.132.js +0 -1
  11. package/dist/18f3763d12b.185.js +0 -1
  12. package/dist/18f3763d12b.27.js +0 -1
  13. package/dist/18f3763d12b.278.js +0 -1
  14. package/dist/18f3763d12b.459.js +0 -1
  15. package/dist/18f3763d12b.490.js +0 -1
  16. package/dist/18f3763d12b.74.js +0 -1
  17. package/dist/18f3763d12b.997.js +0 -1
  18. package/dist/18f3763d12b.app.js +0 -1
  19. package/dist/18f3763d12b.index.html +0 -33
  20. package/dist/18f3763d12b.library.html +0 -33
  21. package/dist/18f3763d12b.library.js +0 -1
  22. package/dist/18f3763d12b.preview.html +0 -759
  23. package/dist/18f3763d12b.preview.js +0 -1
  24. package/dist/18f3763d12b.screenshoot.js +0 -1
  25. package/dist/18f3763d12b.webview.js +0 -1
  26. package/dist/27.js +0 -107
  27. package/dist/278.js +0 -406
  28. package/dist/459.js +0 -107
  29. package/dist/490.js +0 -304
  30. package/dist/74.js +0 -372
  31. package/dist/997.js +0 -107
  32. package/dist/HASH +0 -1
  33. package/dist/assets/img/Facebook.64607ec.png +0 -0
  34. package/dist/assets/img/Zalo.6845707.png +0 -0
  35. package/dist/assets/img/award1a.1a58e10.png +0 -0
  36. package/dist/assets/img/award3a.3b74423.png +0 -0
  37. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  38. package/dist/assets/img/award5.39eb7ae.png +0 -0
  39. package/dist/assets/img/bubble_default.7d5e4ab.svg +0 -20
  40. package/dist/assets/img/caret.998eb8f.svg +0 -1
  41. package/dist/assets/img/convos_empty.2353007.svg +0 -72
  42. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  43. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  44. package/dist/assets/img/done_gray.d7e8203.svg +0 -4
  45. package/dist/assets/img/done_green.b817fd4.svg +0 -4
  46. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  47. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  48. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  49. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  50. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  51. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  52. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  53. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  54. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  55. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  56. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  57. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  58. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  59. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  60. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  61. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  62. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  63. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  64. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  65. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  66. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  67. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  68. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  69. package/dist/assets/img/empty.29bed2d.svg +0 -23
  70. package/dist/assets/img/empty_1.0b98af0.svg +0 -11
  71. package/dist/assets/img/examplte_logo.f86535f.svg +0 -1
  72. package/dist/assets/img/external-link.90577cc.svg +0 -1
  73. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  74. package/dist/assets/img/ghn.070f8e3.svg +0 -17
  75. package/dist/assets/img/ghtk.326eac1.svg +0 -18
  76. package/dist/assets/img/image_default.be0698b.png +0 -0
  77. package/dist/assets/img/info.ebce7ea.svg +0 -1
  78. package/dist/assets/img/loader.37000a7.svg +0 -1
  79. package/dist/assets/img/loading_static.a27f0ac.svg +0 -10
  80. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  81. package/dist/assets/img/main-service2.9b99549.png +0 -0
  82. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  83. package/dist/assets/img/package.8d37d0f.svg +0 -5
  84. package/dist/assets/img/package_fade.763c001.svg +0 -1
  85. package/dist/assets/img/rating--average.1ea492c.svg +0 -12
  86. package/dist/assets/img/rating--great.e3d712e.svg +0 -16
  87. package/dist/assets/img/rating--poor.2938a25.svg +0 -12
  88. package/dist/assets/img/search.f9705ff.svg +0 -1
  89. package/dist/assets/img/send.6db52a9.svg +0 -3
  90. package/dist/assets/img/shop.f7dc7d8.svg +0 -1
  91. package/dist/assets/img/shop_faded.df7845a.svg +0 -1
  92. package/dist/assets/img/subiz-mono.877e9f5.svg +0 -3
  93. package/dist/assets/img/x.26fdfa3.svg +0 -5
  94. package/dist/malicious-app.js +0 -15
  95. package/dist/screenshoot.html +0 -7
  96. package/dist/screenshoot.js +0 -10423
@@ -65,8 +65,9 @@ textarea[disabled=disabled] {
65
65
  }
66
66
 
67
67
  .message-input--send-button {
68
- .inline-svg-code(~'<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" fill="@{esc-primary-color-esc}" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-up-circle"><circle stroke="@{esc-primary-color-esc}" cx="12" cy="12" r="10"></circle><polyline points="16 12 12 8 8 12"></polyline><line x1="12" y1="16" x2="12" y2="8"></line></svg>');
68
+ .inline-svg-code(~'<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" viewBox="0 0 24 24" stroke-width="1.5" stroke="@{esc-primary-color-esc}" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4.698 4.034l16.302 7.966l-16.302 7.966a.503 .503 0 0 1 -.546 -.124a.555 .555 0 0 1 -.12 -.568l2.468 -7.274l-2.468 -7.274a.555 .555 0 0 1 .12 -.568a.503 .503 0 0 1 .546 -.124z" fill="@{esc-primary-color-esc}"/><path d="M6.5 12h14.5" /></svg>');
69
69
  background-image: @-inline-svg-url;
70
+ background-size: 82%;
70
71
  }
71
72
 
72
73
  .message-input--preform {
@@ -502,11 +502,11 @@
502
502
  white-space: pre-wrap;
503
503
  word-wrap: break-word;
504
504
  font-weight: 500;
505
- font-size: 15px;
505
+ font-size: 16px;
506
506
  display: block;
507
507
  margin: 0;
508
508
  margin-bottom: 0px;
509
- max-height: 72px;
509
+ max-height: 78px;
510
510
  overflow: hidden;
511
511
  }
512
512
 
@@ -33,7 +33,8 @@ class ChatButton extends _common.Com {
33
33
  }
34
34
  });
35
35
  if (isquickreplies) return;
36
- this.setState({
36
+ var tags = _index.default.filter(_index.default.map(this.renderMessagePreview(ev), tag => _index.default.trim(tag)), a => a);
37
+ if (_index.default.size(tags) > 0) this.setState({
37
38
  displayPreview: true,
38
39
  previewEvent: ev
39
40
  });
@@ -180,7 +181,7 @@ class ChatButton extends _common.Com {
180
181
  }
181
182
  let cls = 'widget-preview widget-preview--' + position;
182
183
  if (!this.state.displayPreview) cls += ' widget-preview--hidden';
183
- var tags = this.renderMessagePreview(this.state.previewEvent, this.props.t('sent_you_a_message'));
184
+ var tags = this.renderMessagePreview(this.state.previewEvent);
184
185
  if (_index.default.size(tags) === 0) cls += ' widget-preview--hidden';
185
186
  return (0, _preact.h)("div", {
186
187
  class: cls
@@ -339,7 +340,7 @@ class ChatButton extends _common.Com {
339
340
  $el.src = defaultBubble;
340
341
  }
341
342
  renderMessagePreview(ev, defmsg) {
342
- defmsg = defmsg || 'Sent you a message';
343
+ defmsg = defmsg || this.props.t('sent_you_a_message');
343
344
  let message = _index.default.get(ev, 'data.message.text');
344
345
  var format = _index.default.get(ev, 'data.message.format');
345
346
  if (format === 'delta') return this.renderDeltaMessagePreview(ev, defmsg);
@@ -357,7 +358,7 @@ class ChatButton extends _common.Com {
357
358
  return tags;
358
359
  }
359
360
  renderDeltaMessagePreview(ev, defmsg) {
360
- defmsg = defmsg || 'Sent you a message';
361
+ defmsg = defmsg || this.props.t('sent_you_a_message');
361
362
  let message = _index.default.get(ev, 'data.message.quill_delta');
362
363
  if (!message && _index.default.size(_index.default.get(ev, 'data.message.attachments')) > 0) message = defmsg;
363
364
  if (!message) return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subiz/widget-v4",
3
- "version": "4.1.76",
3
+ "version": "4.1.78",
4
4
  "main": "./compiled_src/lib.js",
5
5
  "scripts": {
6
6
  "dev": "npx webpack serve --config webpack.dev.js",
@@ -30,7 +30,7 @@
30
30
  "babel-loader": "^9.1.3",
31
31
  "babel-plugin-syntax-jsx": "^6.18.0",
32
32
  "html-webpack-plugin": "^5.6.0",
33
- "puppeteer": "^22.8.2",
33
+ "puppeteer": "^22.9.0",
34
34
  "webpack": "^5.91.0",
35
35
  "webpack-bundle-analyzer": "^4.10.2",
36
36
  "webpack-cli": "^5.1.4",
@@ -32,7 +32,12 @@ export default class ChatButton extends Com {
32
32
  })
33
33
  if (isquickreplies) return
34
34
 
35
- this.setState({displayPreview: true, previewEvent: ev})
35
+ // only set preview have content ev
36
+ var tags = sb.filter(
37
+ sb.map(this.renderMessagePreview(ev), (tag) => sb.trim(tag)),
38
+ (a) => a,
39
+ )
40
+ if (sb.size(tags) > 0) this.setState({displayPreview: true, previewEvent: ev})
36
41
  })
37
42
  }
38
43
 
@@ -195,7 +200,7 @@ export default class ChatButton extends Com {
195
200
  let cls = 'widget-preview widget-preview--' + position
196
201
  if (!this.state.displayPreview) cls += ' widget-preview--hidden'
197
202
 
198
- var tags = this.renderMessagePreview(this.state.previewEvent, this.props.t('sent_you_a_message'))
203
+ var tags = this.renderMessagePreview(this.state.previewEvent)
199
204
  if (sb.size(tags) === 0) cls += ' widget-preview--hidden'
200
205
 
201
206
  return (
@@ -371,7 +376,7 @@ export default class ChatButton extends Com {
371
376
  }
372
377
 
373
378
  renderMessagePreview(ev, defmsg) {
374
- defmsg = defmsg || 'Sent you a message'
379
+ defmsg = defmsg || this.props.t('sent_you_a_message')
375
380
 
376
381
  let message = sb.get(ev, 'data.message.text')
377
382
  var format = sb.get(ev, 'data.message.format')
@@ -394,7 +399,7 @@ export default class ChatButton extends Com {
394
399
  }
395
400
 
396
401
  renderDeltaMessagePreview(ev, defmsg) {
397
- defmsg = defmsg || 'Sent you a message'
402
+ defmsg = defmsg || this.props.t('sent_you_a_message')
398
403
 
399
404
  let message = sb.get(ev, 'data.message.quill_delta')
400
405
  if (!message && sb.size(sb.get(ev, 'data.message.attachments')) > 0) message = defmsg
package/dist/127.js DELETED
@@ -1,273 +0,0 @@
1
- "use strict";
2
- (self["webpackChunk_subiz_widget_v4"] = self["webpackChunk_subiz_widget_v4"] || []).push([[127],{
3
-
4
- /***/ 6127:
5
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
-
7
- __webpack_require__.r(__webpack_exports__);
8
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
- /* harmony export */ "default": () => (/* binding */ ProductAttachments)
10
- /* harmony export */ });
11
- /* harmony import */ var _util_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6801);
12
- /* harmony import */ var _common_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2840);
13
- /* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172);
14
-
15
-
16
-
17
- class ProductAttachments extends _common_js__WEBPACK_IMPORTED_MODULE_1__/* .Com */ .Mw {
18
- render() {
19
- let byType = _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(this.props.ev, 'by.type');
20
- if (byType === 'user') return null;
21
- let acc = this.props.store.matchAccount();
22
- var attachments = _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(this.props.ev, 'data.message.attachments', []);
23
- let orders = _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.filter(attachments, att => att.type === 'order' && att.order).map(att => att.order);
24
- if (orders.length === 0) return null;
25
- let $orders = _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.map(orders, (order, index) => {
26
- calcOrderTotal(order);
27
- let $note = null;
28
- if (order.note) {
29
- $note = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", null, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
30
- class: "order_attachment__label"
31
- }, this.props.t('note')), (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
32
- class: "order_attachment__note",
33
- title: order.note
34
- }, order.note));
35
- }
36
- let $products = null;
37
- if (_util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.size(order.items) > 0) {
38
- $products = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", null, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
39
- class: "order_attachment__label"
40
- }, this.props.t('product')), _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.map(order.items, item => {
41
- let product = item.product || {};
42
- return (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
43
- class: "order_attachment__product"
44
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("img", {
45
- class: "order_attachment__product_img",
46
- alt: '' + _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(product, 'id'),
47
- src: _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(product, 'image', __webpack_require__(2876))
48
- }), (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
49
- style: "overflow: hidden !important;"
50
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
51
- class: "order_attachment__product_name",
52
- title: this.props.t.i18n(product.i18n_name) || product.name
53
- }, this.props.t.i18n(product.i18n_name) || product.name), (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
54
- class: "order_attachment__product_desc"
55
- }, getProductPropName(product, ' / ')), (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
56
- class: "order_attachment__product_desc"
57
- }, this.props.t('qty'), " ", item.quantity, "\xA0\xB7\xA0", _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(product.price))));
58
- }));
59
- }
60
- let $total = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
61
- class: "order_attachment__footer"
62
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
63
- class: "d-flex align-items-center justify-content-between"
64
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", null, this.props.t('total')), ' ', (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", null, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("b", {
65
- class: "order_attachment__total"
66
- }, _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(order.total)))));
67
- let phoneattr = _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.find(_util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(order, 'user.attributes', []), attr => attr.key === 'phones') || {
68
- key: 'phones',
69
- text: ''
70
- };
71
- let phone = _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(order, 'shipping.address.phone', '').trim();
72
- phone = phone || _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.trim(phoneattr.text);
73
- if (phone) phone = this.props.t('phn') + ': ' + phone;
74
- let $shipto = null;
75
- if (displayOrderShippingAddress(order) || phone) {
76
- $shipto = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", null, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
77
- class: "order_attachment__label"
78
- }, this.props.t('ship_to')), (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", null, displayOrderShippingAddress(order)), (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
79
- class: "order_attachment__text_truncate"
80
- }, phone));
81
- }
82
- let $beforeTax = null;
83
- if (order._discount_before_tax) {
84
- $beforeTax = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
85
- class: "order_attachment__footer"
86
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
87
- class: "d-flex align-items-center justify-content-between"
88
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
89
- class: "order_attachment__label no_margin"
90
- }, this.props.t('subtotal_before_tax')), ' ', (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", null, _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(order._order_value))), (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
91
- class: "d-flex align-items-center justify-content-between"
92
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
93
- class: "order_attachment__label no_margin"
94
- }, this.props.t('discount_before_tax')), ' ', (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", null, "-", _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(order._discount_before_tax))));
95
- }
96
- let $subtotal = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
97
- class: "d-flex align-items-center justify-content-between"
98
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
99
- class: "order_attachment__label no_margin"
100
- }, this.props.t('subtotal')), ' ', (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
101
- style: ""
102
- }, _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(order.subtotal)));
103
- let $tax = null;
104
- if (order.total_tax) {
105
- let taxname = '';
106
- if (_util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.size(order._taxM) === 1) {
107
- let tax = _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(order._taxM, '0.tax', {});
108
- if (tax.name && tax.percentage) taxname = `(${tax.name} ${Math.round(tax.percentage || 0) / 100}%)`;
109
- }
110
- $tax = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
111
- class: "d-flex align-items-center justify-content-between"
112
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
113
- class: "order_attachment__label no_margin"
114
- }, this.props.t('tax'), " ", taxname), (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
115
- style: ""
116
- }, _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(order.total_tax)));
117
- }
118
- let $discount = null;
119
- if (order.discount_type === 'percentage' && order.discount_percentage) {
120
- $discount = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
121
- class: "d-flex align-items-center justify-content-between"
122
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
123
- class: "order_attachment__label no_margin"
124
- }, this.props.t('discount_after_tax'), " (", Math.round(order.discount_percentage / 100), "%)"), ' ', (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
125
- style: ""
126
- }, "-", _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(order._computed_discount)));
127
- }
128
- if (order.discount_type === 'amount' && order.discount_amount) {
129
- $discount = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
130
- class: "d-flex align-items-center justify-content-between"
131
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
132
- class: "order_attachment__label no_margin"
133
- }, this.props.t('discount_after_tax')), ' ', (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
134
- class: "no-shrink"
135
- }, "-", _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(order._computed_discount)));
136
- }
137
- let $shipping = null;
138
- if (_util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(order, 'shipping.nominal_fee')) {
139
- $shipping = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
140
- class: "d-flex align-items-center justify-content-between"
141
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
142
- class: "order_attachment__label no_margin"
143
- }, this.props.t('shipping_fee')), ' ', (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
144
- style: ""
145
- }, _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(_util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.get(order, 'shipping.nominal_fee', 0))));
146
- }
147
- let $adjustment = null;
148
- if (order.adjustment) {
149
- $adjustment = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
150
- class: "d-flex align-items-center justify-content-between"
151
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
152
- class: "order_attachment__label no_margin"
153
- }, order.adjustment_description), ' ', (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
154
- class: "no-shrink"
155
- }, _util_index_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.formatCurrency(order.adjustment)));
156
- }
157
- $subtotal = (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
158
- class: "order_attachment__footer"
159
- }, $subtotal, $tax, $shipping, $discount, $adjustment);
160
- if (!$shipping && !$adjustment && !$discount && !$tax) {
161
- $subtotal = null;
162
- }
163
- return (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
164
- class: `order_attachment order_attachment__${byType}`
165
- }, (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("div", {
166
- class: "order_attachment__header"
167
- }, this.props.t('order'), (0,preact__WEBPACK_IMPORTED_MODULE_2__.h)("span", {
168
- class: "order_attachment__text_muted order_attachment__text_sm"
169
- }, getOrderDisplayName(order))), $products, $shipto, $note, $beforeTax, $subtotal, $total);
170
- });
171
- return $orders;
172
- }
173
- }
174
- function getProductPropName(product, seperator = ' - ') {
175
- let options = op.get(product, 'options', []);
176
- let props = op.get(product, 'props', []);
177
- let multiPropsOptions = op.filter(options, option => op.size(option.values) > 1);
178
- let names = [];
179
- op.each(multiPropsOptions, option => {
180
- let prop = op.find(props, prop => prop.key === option.key) || {};
181
- if (prop.value) names.push(prop.value);
182
- });
183
- return names.join(seperator);
184
- }
185
- function getOrderDisplayName(order = {}) {
186
- return order.number || order.id || '';
187
- }
188
- function displayOrderShippingAddress(order, isShorten) {
189
- let addr = op.get(order, 'shipping.address', {});
190
- let fulladdr = [addr.address, addr.ward, addr.district, addr.province].filter(a => a).join(', ').trim();
191
- if (isShorten) fulladdr = shortenAddr(fulladdr);
192
- return fulladdr;
193
- }
194
- function shortenAddr(str) {
195
- str = str || '';
196
- str = str.replace(/Hà Nội/gi, 'HN');
197
- str = str.replace(/Hồ Chí Minh/gi, 'HCM');
198
- str = str.replace(/Thành Phố/gi, 'TP');
199
- return str;
200
- }
201
- function calcOrderTotal(order) {
202
- let subtotal = 0;
203
- let beforeTaxDiscount = 0;
204
- let ordervalue = 0;
205
- op.map(order.items, item => {
206
- if (!item.product) return 0;
207
- let price = op.get(item, 'product.price', 0) * (item.quantity || 0);
208
- ordervalue += price;
209
- if (item.discount_type == 'percentage') {
210
- if (item.discount_percentage > 0) {
211
- beforeTaxDiscount += price * item.discount_percentage / 10000;
212
- price = price * (1 - (item.discount_percentage || 0) / 10000);
213
- }
214
- } else if (item.discount_type == 'amount') {
215
- if (item.discount_amount > 0) {
216
- beforeTaxDiscount += item.discount_amount;
217
- price = price - (item.discount_amount || 0);
218
- if (price <= 0) price = 0;
219
- }
220
- }
221
- item.total = price;
222
- subtotal += price;
223
- });
224
- let taxM = {};
225
- op.map(order.items, (item, i) => {
226
- if (!item.product) return;
227
- let tax = item.product.tax;
228
- if (!tax) return;
229
- if (!tax.id) return;
230
- let taxprice = item.total * tax.percentage / 10000;
231
- item.total_tax = taxprice;
232
- taxM[i] = {
233
- tax: tax,
234
- taxprice: taxprice
235
- };
236
- });
237
- let totaltax = 0;
238
- op.map(taxM, t => totaltax += t.taxprice);
239
- let computed_discount = 0;
240
- if (order.discount_type == 'percentage' && order.discount_percentage > 0) {
241
- computed_discount = (subtotal + totaltax) * order.discount_percentage / 10000;
242
- } else if (order.discount_type == 'amount') {
243
- computed_discount = order.discount_amount || 0;
244
- }
245
- let shippingfee = op.get(order, 'shipping.nominal_fee', 0);
246
- if (shippingfee > 0) {
247
- if (op.get(order, 'shipping.tax.id')) {
248
- let tax = order.shipping.tax;
249
- let taxprice = shippingfee * (tax.percentage / 10000);
250
- taxM['ship'] = {
251
- tax: tax,
252
- taxprice: taxprice
253
- };
254
- order.shipping.total_tax = taxprice;
255
- }
256
- }
257
- totaltax = 0;
258
- op.map(taxM, t => totaltax += t.taxprice);
259
- let total = subtotal + totaltax - computed_discount + shippingfee;
260
- total += order.adjustment || 0;
261
- if (total < 0) total = 0;
262
- order.subtotal = subtotal;
263
- order._computed_discount = computed_discount;
264
- order._taxM = taxM;
265
- order.total = total;
266
- order.total_tax = totaltax;
267
- order._discount_before_tax = beforeTaxDiscount;
268
- order._order_value = ordervalue;
269
- }
270
-
271
- /***/ })
272
-
273
- }]);