@subiz/widget-v4 4.1.207 → 4.1.208

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 (124) hide show
  1. package/compiled_src/chatbox/block.js +5 -0
  2. package/package.json +1 -1
  3. package/src/chatbox/block.js +6 -1
  4. package/dist/127.js +0 -273
  5. package/dist/132.js +0 -2817
  6. package/dist/185.js +0 -1917
  7. package/dist/1a0475c4721.127.js +0 -1
  8. package/dist/1a0475c4721.132.js +0 -1
  9. package/dist/1a0475c4721.185.js +0 -1
  10. package/dist/1a0475c4721.27.js +0 -1
  11. package/dist/1a0475c4721.278.js +0 -1
  12. package/dist/1a0475c4721.339.js +0 -1
  13. package/dist/1a0475c4721.459.js +0 -1
  14. package/dist/1a0475c4721.490.js +0 -1
  15. package/dist/1a0475c4721.74.js +0 -1
  16. package/dist/1a0475c4721.997.js +0 -1
  17. package/dist/1a0475c4721.app.js +0 -1
  18. package/dist/1a0475c4721.chat.html +0 -1
  19. package/dist/1a0475c4721.chat.js +0 -1
  20. package/dist/1a0475c4721.form.html +0 -1
  21. package/dist/1a0475c4721.form.js +0 -1
  22. package/dist/1a0475c4721.index.html +0 -1
  23. package/dist/1a0475c4721.library.html +0 -1
  24. package/dist/1a0475c4721.library.js +0 -1
  25. package/dist/1a0475c4721.preview.html +0 -1
  26. package/dist/1a0475c4721.preview.js +0 -1
  27. package/dist/1a0475c4721.webview.js +0 -1
  28. package/dist/27.js +0 -37
  29. package/dist/459.js +0 -37
  30. package/dist/490.js +0 -305
  31. package/dist/74.js +0 -376
  32. package/dist/997.js +0 -37
  33. package/dist/HASH +0 -1
  34. package/dist/app.js +0 -1406
  35. package/dist/assets/img/Facebook.64607ec.png +0 -0
  36. package/dist/assets/img/Zalo.6845707.png +0 -0
  37. package/dist/assets/img/award1a.1a58e10.png +0 -0
  38. package/dist/assets/img/award3a.3b74423.png +0 -0
  39. package/dist/assets/img/award4a.ed6ccd4.png +0 -0
  40. package/dist/assets/img/award5.39eb7ae.png +0 -0
  41. package/dist/assets/img/bubble_default.7d5e4ab.svg +0 -20
  42. package/dist/assets/img/caret.998eb8f.svg +0 -1
  43. package/dist/assets/img/convos_empty.2353007.svg +0 -72
  44. package/dist/assets/img/default.06e6ee0.jpg +0 -0
  45. package/dist/assets/img/default_avatar.e449b04.png +0 -0
  46. package/dist/assets/img/default_logo.dd13a2b.svg +0 -5
  47. package/dist/assets/img/done_gray.d7e8203.svg +0 -4
  48. package/dist/assets/img/done_green.b817fd4.svg +0 -4
  49. package/dist/assets/img/emoji/messenger/sub_23.529_58.824.d5faf14.png +0 -0
  50. package/dist/assets/img/emoji/messenger/sub_23.529_60.784.1420241.png +0 -0
  51. package/dist/assets/img/emoji/messenger/sub_25.490_0.000.1e6b2c0.png +0 -0
  52. package/dist/assets/img/emoji/messenger/sub_25.490_45.098.3dfbc08.png +0 -0
  53. package/dist/assets/img/emoji/messenger/sub_25.490_5.882.4b49e94.png +0 -0
  54. package/dist/assets/img/emoji/messenger/sub_27.451_72.549.7114f58.png +0 -0
  55. package/dist/assets/img/emoji/messenger/sub_27.451_84.314.231e2b7.png +0 -0
  56. package/dist/assets/img/emoji/messenger/sub_27.451_96.078.ddbb008.png +0 -0
  57. package/dist/assets/img/emoji/messenger/sub_29.412_5.882.61f3359.png +0 -0
  58. package/dist/assets/img/emoji/messenger/sub_58.824_100.000.6df72bc.png +0 -0
  59. package/dist/assets/img/emoji/messenger/sub_58.824_45.098.3d7a7ad.png +0 -0
  60. package/dist/assets/img/emoji/messenger/sub_58.824_47.059.0f4d6e2.png +0 -0
  61. package/dist/assets/img/emoji/messenger/sub_58.824_54.902.65724c1.png +0 -0
  62. package/dist/assets/img/emoji/messenger/sub_58.824_64.706.9da3cba.png +0 -0
  63. package/dist/assets/img/emoji/messenger/sub_58.824_72.549.edca5cf.png +0 -0
  64. package/dist/assets/img/emoji/messenger/sub_58.824_78.431.f910f2a.png +0 -0
  65. package/dist/assets/img/emoji/messenger/sub_58.824_88.235.def4e71.png +0 -0
  66. package/dist/assets/img/emoji/messenger/sub_60.784_11.765.49c03d0.png +0 -0
  67. package/dist/assets/img/emoji/messenger/sub_60.784_27.451.46b54e5.png +0 -0
  68. package/dist/assets/img/emoji/messenger/sub_60.784_29.412.e36d284.png +0 -0
  69. package/dist/assets/img/emoji/messenger/sub_60.784_3.922.bb191b0.png +0 -0
  70. package/dist/assets/img/emoji/messenger/sub_60.784_35.294.af7b927.png +0 -0
  71. package/dist/assets/img/emoji/messenger/sub_60.784_7.843.98f2a99.png +0 -0
  72. package/dist/assets/img/empty.29bed2d.svg +0 -23
  73. package/dist/assets/img/empty_1.0b98af0.svg +0 -11
  74. package/dist/assets/img/examplte_logo.f86535f.svg +0 -1
  75. package/dist/assets/img/external-link.90577cc.svg +0 -1
  76. package/dist/assets/img/fb_inverse_circle.36c2cfc.png +0 -0
  77. package/dist/assets/img/ghn.070f8e3.svg +0 -17
  78. package/dist/assets/img/ghtk.326eac1.svg +0 -18
  79. package/dist/assets/img/image_default.be0698b.png +0 -0
  80. package/dist/assets/img/info.ebce7ea.svg +0 -1
  81. package/dist/assets/img/loader.37000a7.svg +0 -1
  82. package/dist/assets/img/loading_static.a27f0ac.svg +0 -10
  83. package/dist/assets/img/main-service1.d536cc2.png +0 -0
  84. package/dist/assets/img/main-service2.9b99549.png +0 -0
  85. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  86. package/dist/assets/img/package.8d37d0f.svg +0 -5
  87. package/dist/assets/img/package_fade.763c001.svg +0 -1
  88. package/dist/assets/img/rating--average.1ea492c.svg +0 -12
  89. package/dist/assets/img/rating--great.e3d712e.svg +0 -16
  90. package/dist/assets/img/rating--poor.2938a25.svg +0 -12
  91. package/dist/assets/img/search.f9705ff.svg +0 -1
  92. package/dist/assets/img/send.6db52a9.svg +0 -3
  93. package/dist/assets/img/shop.f7dc7d8.svg +0 -1
  94. package/dist/assets/img/shop_faded.df7845a.svg +0 -1
  95. package/dist/assets/img/stars_v2.79cf728.png +0 -0
  96. package/dist/assets/img/subiz-mono.8fbc067.svg +0 -3
  97. package/dist/assets/img/x.26fdfa3.svg +0 -5
  98. package/dist/chat.html +0 -10
  99. package/dist/chat.js +0 -1395
  100. package/dist/form.html +0 -10
  101. package/dist/form.js +0 -609
  102. package/dist/index.html +0 -90
  103. package/dist/inject.html +0 -20
  104. package/dist/inject.js +0 -1395
  105. package/dist/library.html +0 -90
  106. package/dist/library.js +0 -1385
  107. package/dist/malicious-app.js +0 -17
  108. package/dist/order.html +0 -32
  109. package/dist/order.js +0 -810
  110. package/dist/preview.html +0 -784
  111. package/dist/preview.js +0 -1455
  112. package/dist/screenshoot.html +0 -15
  113. package/dist/screenshoot.js +0 -1385
  114. package/dist/src_chatbox_OrderAttachments_js.js +0 -22
  115. package/dist/src_chatbox_Order_js.js +0 -206
  116. package/dist/src_chatbox_css_js.js +0 -306
  117. package/dist/src_contact_contact_js.js +0 -22
  118. package/dist/src_contact_css_js.js +0 -32
  119. package/dist/src_form_css_js.js +0 -32
  120. package/dist/src_notif_css_js.js +0 -32
  121. package/dist/src_notif_notif_js.js +0 -22
  122. package/dist/src_popup_css_js.js +0 -32
  123. package/dist/src_popup_popup_js.js +0 -84
  124. package/dist/webview.js +0 -1406
@@ -104,6 +104,9 @@ class Block extends _common.Com {
104
104
  ele.attrs['src'] = _index.default.get(block, 'image.url');
105
105
  ele.attrs['alt'] = block.alt_text;
106
106
  }
107
+ if (block.type == 'hard_break') {
108
+ ele.tag = 'br';
109
+ }
107
110
  let $body = null;
108
111
  if (_index.default.size(block.content)) {
109
112
  $body = _index.default.map(block.content, block => this.renderBlock(block));
@@ -177,6 +180,8 @@ class Block extends _common.Com {
177
180
  return (0, _preact.h)("b", null, $body);
178
181
  case 'hr':
179
182
  return (0, _preact.h)("hr", null);
183
+ case 'br':
184
+ return (0, _preact.h)("br", null);
180
185
  case 'a':
181
186
  return (0, _preact.h)("a", {
182
187
  class: this.props.textMessage ? 'message-text-link' : '',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subiz/widget-v4",
3
- "version": "4.1.207",
3
+ "version": "4.1.208",
4
4
  "main": "./compiled_src/lib.js",
5
5
  "scripts": {
6
6
  "dev": "npx webpack serve --config webpack.dev.js",
@@ -111,6 +111,9 @@ export default class Block extends Com {
111
111
  ele.attrs['src'] = sb.get(block, 'image.url')
112
112
  ele.attrs['alt'] = block.alt_text
113
113
  }
114
+ if (block.type == 'hard_break') {
115
+ ele.tag = 'br'
116
+ }
114
117
 
115
118
  let $body = null
116
119
  if (sb.size(block.content)) {
@@ -185,10 +188,12 @@ export default class Block extends Com {
185
188
  return <b>{$body}</b>
186
189
  case 'hr':
187
190
  return <hr />
191
+ case 'br':
192
+ return <br />
188
193
  case 'a':
189
194
  return (
190
195
  <a
191
- class={this.props.textMessage ? 'message-text-link' : ''}
196
+ class={this.props.textMessage ? 'message-text-link' : ''}
192
197
  href={ele.attrs['href']}
193
198
  target={this.props.textMessage ? '_blank' : ele.attrs['target']}
194
199
  title={ele.attrs['title']}
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__(8026);
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
- }]);