@subiz/widget-v4 4.1.149 → 4.1.151

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 (104) hide show
  1. package/assets/less/message.less +21 -1
  2. package/compiled_src/chatbox/TextMessage.js +4 -2
  3. package/compiled_src/chatbox/block.js +14 -6
  4. package/compiled_src/store/api.js +1 -0
  5. package/package.json +1 -1
  6. package/src/chatbox/TextMessage.js +2 -2
  7. package/src/chatbox/block.js +12 -6
  8. package/src/store/api.js +1 -0
  9. package/dist/127.js +0 -273
  10. package/dist/132.js +0 -2802
  11. package/dist/185.js +0 -1827
  12. package/dist/197bb8b9cf8.127.js +0 -1
  13. package/dist/197bb8b9cf8.132.js +0 -1
  14. package/dist/197bb8b9cf8.185.js +0 -1
  15. package/dist/197bb8b9cf8.27.js +0 -1
  16. package/dist/197bb8b9cf8.278.js +0 -1
  17. package/dist/197bb8b9cf8.339.js +0 -1
  18. package/dist/197bb8b9cf8.459.js +0 -1
  19. package/dist/197bb8b9cf8.490.js +0 -1
  20. package/dist/197bb8b9cf8.74.js +0 -1
  21. package/dist/197bb8b9cf8.997.js +0 -1
  22. package/dist/197bb8b9cf8.app.js +0 -1
  23. package/dist/197bb8b9cf8.chat.html +0 -1
  24. package/dist/197bb8b9cf8.chat.js +0 -1
  25. package/dist/197bb8b9cf8.form.html +0 -1
  26. package/dist/197bb8b9cf8.form.js +0 -1
  27. package/dist/197bb8b9cf8.index.html +0 -71
  28. package/dist/197bb8b9cf8.library.html +0 -71
  29. package/dist/197bb8b9cf8.library.js +0 -1
  30. package/dist/197bb8b9cf8.preview.html +0 -759
  31. package/dist/197bb8b9cf8.preview.js +0 -1
  32. package/dist/197bb8b9cf8.webview.js +0 -1
  33. package/dist/27.js +0 -107
  34. package/dist/278.js +0 -417
  35. package/dist/459.js +0 -107
  36. package/dist/490.js +0 -305
  37. package/dist/74.js +0 -372
  38. package/dist/997.js +0 -107
  39. package/dist/HASH +0 -1
  40. package/dist/assets/img/Facebook.64607ec.png +0 -0
  41. package/dist/assets/img/Zalo.6845707.png +0 -0
  42. package/dist/assets/img/award1a.1a58e10.png +0 -0
  43. package/dist/assets/img/award3a.3b74423.png +0 -0
  44. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  45. package/dist/assets/img/award5.39eb7ae.png +0 -0
  46. package/dist/assets/img/bubble_default.7d5e4ab.svg +0 -20
  47. package/dist/assets/img/caret.998eb8f.svg +0 -1
  48. package/dist/assets/img/convos_empty.2353007.svg +0 -72
  49. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  50. package/dist/assets/img/default_avatar.5b74dc1.png +0 -0
  51. package/dist/assets/img/done_gray.d7e8203.svg +0 -4
  52. package/dist/assets/img/done_green.b817fd4.svg +0 -4
  53. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  54. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  55. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  56. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  57. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  58. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  59. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  60. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  61. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  62. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  63. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  64. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  65. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  66. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  67. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  68. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  69. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  70. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  71. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  72. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  73. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  74. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  75. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  76. package/dist/assets/img/empty.29bed2d.svg +0 -23
  77. package/dist/assets/img/empty_1.0b98af0.svg +0 -11
  78. package/dist/assets/img/examplte_logo.f86535f.svg +0 -1
  79. package/dist/assets/img/external-link.90577cc.svg +0 -1
  80. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  81. package/dist/assets/img/ghn.070f8e3.svg +0 -17
  82. package/dist/assets/img/ghtk.326eac1.svg +0 -18
  83. package/dist/assets/img/image_default.be0698b.png +0 -0
  84. package/dist/assets/img/info.ebce7ea.svg +0 -1
  85. package/dist/assets/img/loader.37000a7.svg +0 -1
  86. package/dist/assets/img/loading_static.a27f0ac.svg +0 -10
  87. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  88. package/dist/assets/img/main-service2.9b99549.png +0 -0
  89. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  90. package/dist/assets/img/package.8d37d0f.svg +0 -5
  91. package/dist/assets/img/package_fade.763c001.svg +0 -1
  92. package/dist/assets/img/rating--average.1ea492c.svg +0 -12
  93. package/dist/assets/img/rating--great.e3d712e.svg +0 -16
  94. package/dist/assets/img/rating--poor.2938a25.svg +0 -12
  95. package/dist/assets/img/search.f9705ff.svg +0 -1
  96. package/dist/assets/img/send.6db52a9.svg +0 -3
  97. package/dist/assets/img/shop.f7dc7d8.svg +0 -1
  98. package/dist/assets/img/shop_faded.df7845a.svg +0 -1
  99. package/dist/assets/img/stars_v2.79cf728.png +0 -0
  100. package/dist/assets/img/subiz-mono.8fbc067.svg +0 -3
  101. package/dist/assets/img/x.26fdfa3.svg +0 -5
  102. package/dist/malicious-app.js +0 -15
  103. package/dist/screenshoot.html +0 -7
  104. package/dist/screenshoot.js +0 -11634
@@ -923,10 +923,30 @@ a.product_attachment__title {
923
923
  .message-text-inline-image-wrapper {
924
924
  display: block;
925
925
  margin-top: 8px;
926
- margin-bottom: 8px;
926
+ margin-bottom: 8px;
927
927
  max-width: 100%;
928
928
  }
929
929
 
930
930
  .message-text-inline-image {
931
931
  width: 100%;
932
932
  }
933
+
934
+ .text-message-ul {
935
+ display: block;
936
+ list-style-type: disc;
937
+ margin-block-start: 8px;
938
+ margin-block-end: 8px;
939
+ padding-inline-start: 20px;
940
+ }
941
+
942
+ .text-message-ol {
943
+ display: block;
944
+ list-style-type: decimal;
945
+ margin-block-start: 8px;
946
+ margin-block-end: 8px;
947
+ padding-inline-start: 20px;
948
+ }
949
+
950
+ .text-message-li {
951
+ display: list-item;
952
+ }
@@ -81,7 +81,8 @@ class TextMessage extends _common.Com {
81
81
  title: t
82
82
  }, (0, _preact.h)(_block.default, {
83
83
  block: block,
84
- onLink: this.props.onLink
84
+ onLink: this.props.onLink,
85
+ textMessage: true
85
86
  }), this.renderTime());
86
87
  }
87
88
  let msgcls = 'message-user message-text--user';
@@ -91,7 +92,8 @@ class TextMessage extends _common.Com {
91
92
  title: t
92
93
  }, (0, _preact.h)(_block.default, {
93
94
  block: block,
94
- onLink: this.props.onLink
95
+ onLink: this.props.onLink,
96
+ textMessage: true
95
97
  }));
96
98
  }
97
99
  }
@@ -35,9 +35,9 @@ class Block extends _common.Com {
35
35
  });
36
36
  if (block.type == 'bullet_list' || block.type == 'ordered_list') {
37
37
  if (block.type == 'bullet_list') {
38
- ele.tag = 'ol';
39
- } else {
40
38
  ele.tag = 'ul';
39
+ } else {
40
+ ele.tag = 'ol';
41
41
  }
42
42
  }
43
43
  if (block.type == 'list_item') {
@@ -135,11 +135,11 @@ class Block extends _common.Com {
135
135
  switch (ele.tag) {
136
136
  case 'img':
137
137
  return (0, _preact.h)("a", {
138
- class: "message-text-inline-image-wrapper",
138
+ class: this.props.textMessage ? 'message-text-inline-image-wrapper' : '',
139
139
  href: _index.default.get(ele, 'attrs.src'),
140
140
  target: "_blank"
141
141
  }, (0, _preact.h)("img", {
142
- class: "message-text-inline-image",
142
+ class: this.props.textMessage ? 'message-text-inline-image' : '',
143
143
  src: _index.default.get(ele, 'attrs.src'),
144
144
  alt: _index.default.get(ele, 'attrs.alt') || ''
145
145
  }));
@@ -158,9 +158,17 @@ class Block extends _common.Com {
158
158
  case 'h6':
159
159
  return (0, _preact.h)("h6", null, $body);
160
160
  case 'ol':
161
- return (0, _preact.h)("ol", null, $body);
161
+ return (0, _preact.h)("ol", {
162
+ class: this.props.textMessage ? 'text-message-ol' : ''
163
+ }, $body);
162
164
  case 'ul':
163
- return (0, _preact.h)("ul", null, $body);
165
+ return (0, _preact.h)("ul", {
166
+ class: this.props.textMessage ? 'text-message-ul' : ''
167
+ }, $body);
168
+ case 'li':
169
+ return (0, _preact.h)("li", {
170
+ class: this.props.textMessage ? 'text-message-li' : ''
171
+ }, $body);
164
172
  case 'span':
165
173
  return (0, _preact.h)("span", null, $body);
166
174
  case 'em':
@@ -64,6 +64,7 @@ class _default {
64
64
  body,
65
65
  error
66
66
  } = await ajax.setBaseUrl('https://api5.subiz.com.vn/4.1').withCredentials(true).setQuery({
67
+ 'account-id': this.accid,
67
68
  description: 'upload\n user-client: web-widget',
68
69
  name: file.name.replace(/\s+/g, '_'),
69
70
  size: file.size,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subiz/widget-v4",
3
- "version": "4.1.149",
3
+ "version": "4.1.151",
4
4
  "main": "./compiled_src/lib.js",
5
5
  "scripts": {
6
6
  "dev": "npx webpack serve --config webpack.dev.js",
@@ -80,7 +80,7 @@ export default class TextMessage extends Com {
80
80
  if (byType === 'agent') {
81
81
  return (
82
82
  <div class='message-agent message-text--agent' title={t}>
83
- <Block block={block} onLink={this.props.onLink} />
83
+ <Block block={block} onLink={this.props.onLink} textMessage/>
84
84
  {this.renderTime()}
85
85
  </div>
86
86
  )
@@ -89,7 +89,7 @@ export default class TextMessage extends Com {
89
89
  if (this.props.ev._error) msgcls += ' message-user--error'
90
90
  return (
91
91
  <div class={msgcls} title={t}>
92
- <Block block={block} onLink={this.props.onLink} />
92
+ <Block block={block} onLink={this.props.onLink} textMessage/>
93
93
  </div>
94
94
  )
95
95
  }
@@ -32,9 +32,9 @@ export default class Block extends Com {
32
32
  })
33
33
  if (block.type == 'bullet_list' || block.type == 'ordered_list') {
34
34
  if (block.type == 'bullet_list') {
35
- ele.tag = 'ol'
36
- } else {
37
35
  ele.tag = 'ul'
36
+ } else {
37
+ ele.tag = 'ol'
38
38
  }
39
39
  }
40
40
 
@@ -145,9 +145,13 @@ export default class Block extends Com {
145
145
  switch (ele.tag) {
146
146
  case 'img':
147
147
  return (
148
- <a class='message-text-inline-image-wrapper' href={sb.get(ele, 'attrs.src')} target='_blank'>
148
+ <a
149
+ class={this.props.textMessage ? 'message-text-inline-image-wrapper' : ''}
150
+ href={sb.get(ele, 'attrs.src')}
151
+ target='_blank'
152
+ >
149
153
  <img
150
- class='message-text-inline-image'
154
+ class={this.props.textMessage ? 'message-text-inline-image' : ''}
151
155
  src={sb.get(ele, 'attrs.src')}
152
156
  alt={sb.get(ele, 'attrs.alt') || ''}
153
157
  />
@@ -168,9 +172,11 @@ export default class Block extends Com {
168
172
  case 'h6':
169
173
  return <h6>{$body}</h6>
170
174
  case 'ol':
171
- return <ol>{$body}</ol>
175
+ return <ol class={this.props.textMessage ? 'text-message-ol' : ''}>{$body}</ol>
172
176
  case 'ul':
173
- return <ul>{$body}</ul>
177
+ return <ul class={this.props.textMessage ? 'text-message-ul' : ''}>{$body}</ul>
178
+ case 'li':
179
+ return <li class={this.props.textMessage ? 'text-message-li' : ''}>{$body}</li>
174
180
  case 'span':
175
181
  return <span>{$body}</span>
176
182
  case 'em':
package/src/store/api.js CHANGED
@@ -274,6 +274,7 @@ export default class {
274
274
  .setBaseUrl('https://api5.subiz.com.vn/4.1')
275
275
  .withCredentials(true)
276
276
  .setQuery({
277
+ 'account-id': this.accid,
277
278
  description: 'upload\n user-client: web-widget',
278
279
  name: file.name.replace(/\s+/g, '_'),
279
280
  size: file.size,
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__(8150);
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
- }]);