@subiz/widget-v4 4.0.59 → 4.0.64

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 (152) hide show
  1. package/assets/img/caret.svg +1 -0
  2. package/assets/img/done_green.svg +4 -0
  3. package/assets/img/empty_1.svg +11 -0
  4. package/assets/img/ghn.svg +17 -0
  5. package/assets/img/ghtk.svg +18 -0
  6. package/assets/img/home.svg +1 -0
  7. package/assets/img/info.svg +1 -0
  8. package/assets/img/loader.svg +1 -0
  9. package/assets/img/map-pin.svg +1 -0
  10. package/assets/img/not_found_search.png +0 -0
  11. package/assets/img/package.svg +5 -0
  12. package/assets/img/package_fade.svg +1 -0
  13. package/assets/img/phone.svg +1 -0
  14. package/assets/img/search.svg +1 -0
  15. package/assets/img/shop.svg +1 -0
  16. package/assets/img/shop_faded.svg +1 -0
  17. package/assets/img/user.svg +1 -0
  18. package/assets/img/x.svg +5 -0
  19. package/assets/less/chatbox.less +35 -0
  20. package/assets/less/dropdown_select.less +130 -0
  21. package/assets/less/form.less +7 -20
  22. package/assets/less/order.less +489 -0
  23. package/assets/less/rating.less +3 -8
  24. package/babel.config.js +2 -4
  25. package/compiled_src/bot.js +7 -1
  26. package/compiled_src/chatbox/DropdownSelect.js +248 -0
  27. package/compiled_src/chatbox/Event.js +4 -2
  28. package/compiled_src/chatbox/Events.js +1 -0
  29. package/compiled_src/chatbox/Order.js +285 -0
  30. package/compiled_src/chatbox/OrderAttachments.js +2 -1
  31. package/compiled_src/chatbox/TextMessage.js +9 -2
  32. package/compiled_src/chatbox/Widget.js +44 -3
  33. package/compiled_src/chatbox/main.js +2 -1
  34. package/compiled_src/chatbox/spinner.js +1 -1
  35. package/compiled_src/chatbox/time.js +3 -1
  36. package/compiled_src/common.js +40 -1
  37. package/compiled_src/contact/contact.js +1 -3
  38. package/compiled_src/order/address_picker.js +249 -0
  39. package/compiled_src/order/icon.js +62 -0
  40. package/compiled_src/order/index.js +113 -0
  41. package/compiled_src/order/order.js +1234 -0
  42. package/compiled_src/plugin.js +9 -42
  43. package/compiled_src/popup/popup.js +2 -2
  44. package/compiled_src/store/api.js +20 -0
  45. package/compiled_src/store/store.js +42 -0
  46. package/compiled_src/util/common.js +36 -2
  47. package/dist/0b82fa7e5c3b07b40a44.png +1 -0
  48. package/dist/0f4af006e38ee8b93633.png +1 -0
  49. package/dist/{74.js → 132.js} +2322 -279
  50. package/dist/178.js +341 -174
  51. package/dist/17ee31b89ac.132.js +1 -0
  52. package/dist/17ee31b89ac.178.js +1 -0
  53. package/dist/17ee31b89ac.213.js +1 -0
  54. package/dist/17ee31b89ac.335.js +1 -0
  55. package/dist/17ee31b89ac.362.js +1 -0
  56. package/dist/17ee31b89ac.441.js +1 -0
  57. package/dist/17ee31b89ac.605.js +1 -0
  58. package/dist/17ee31b89ac.678.js +1 -0
  59. package/dist/17ee31b89ac.782.js +1 -0
  60. package/dist/17ee31b89ac.app.js +1 -0
  61. package/dist/{17d939953e0.index.html → 17ee31b89ac.index.html} +3 -18
  62. package/dist/{17d939953e0.library.html → 17ee31b89ac.library.html} +3 -18
  63. package/dist/17ee31b89ac.library.js +1 -0
  64. package/dist/{17d939953e0.preview.html → 17ee31b89ac.preview.html} +1 -1
  65. package/dist/17ee31b89ac.preview.js +1 -0
  66. package/dist/17ee31b89ac.screenshoot.js +1 -0
  67. package/dist/1ea1c6cd21d25176810c.png +1 -0
  68. package/dist/213.js +35 -70
  69. package/dist/292d42404e1b03398f61.png +1 -0
  70. package/dist/312d376370831b7bea83.png +1 -0
  71. package/dist/313d1bfc1cf776d1aefe.png +1 -0
  72. package/dist/335.js +411 -0
  73. package/dist/362.js +71 -21
  74. package/dist/441.js +70 -44
  75. package/dist/4aa58bb7a66bb44975aa.png +1 -0
  76. package/dist/56ce063bc6c81adb7322.png +1 -0
  77. package/dist/605.js +1 -64
  78. package/dist/678.js +70 -20
  79. package/dist/6a411166ef5cc79e0714.png +1 -0
  80. package/dist/6faf403782fefacc1649.png +1 -0
  81. package/dist/782.js +118 -21
  82. package/dist/79dca33c68fab79c067f.png +1 -0
  83. package/dist/82da1578fa84f9debaeb.png +1 -0
  84. package/dist/8b8e0f0824743974b282.png +1 -0
  85. package/dist/8d551390d81e39130a3c.png +1 -0
  86. package/dist/9fc61b9479877ebdb6c7.png +1 -0
  87. package/dist/HASH +1 -1
  88. package/dist/a165d31dcb3dc90f1057.png +1 -0
  89. package/dist/a98d4a5698812c4426b3.png +1 -0
  90. package/dist/assets/img/caret.998eb8f.svg +1 -0
  91. package/dist/assets/img/done_green.b817fd4.svg +4 -0
  92. package/dist/assets/img/empty_1.0b98af0.svg +11 -0
  93. package/dist/assets/img/ghn.070f8e3.svg +17 -0
  94. package/dist/assets/img/ghtk.326eac1.svg +18 -0
  95. package/dist/assets/img/info.ebce7ea.svg +1 -0
  96. package/dist/assets/img/loader.37000a7.svg +1 -0
  97. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  98. package/dist/assets/img/package.8d37d0f.svg +5 -0
  99. package/dist/assets/img/package_fade.763c001.svg +1 -0
  100. package/dist/assets/img/search.f9705ff.svg +1 -0
  101. package/dist/assets/img/shop.f7dc7d8.svg +1 -0
  102. package/dist/assets/img/shop_faded.df7845a.svg +1 -0
  103. package/dist/assets/img/x.26fdfa3.svg +5 -0
  104. package/dist/c41606bf9d1b604e46d5.png +1 -0
  105. package/dist/ce1f7450ce6c1aacd330.png +1 -0
  106. package/dist/cf8c01e88f4770a6e3e5.png +1 -0
  107. package/dist/dfbcfeab1d5622a737e2.png +1 -0
  108. package/dist/e4893ed8c2f7b8329919.png +1 -0
  109. package/dist/ec2ab4eb4ef73d186186.png +1 -0
  110. package/dist/screenshoot.html +1 -1
  111. package/dist/screenshoot.js +211 -48
  112. package/index.html +3 -18
  113. package/order.html +32 -0
  114. package/package.json +14 -15
  115. package/src/bot.js +2 -1
  116. package/src/chatbox/DropdownSelect.js +229 -0
  117. package/src/chatbox/Event.js +2 -2
  118. package/src/chatbox/Events.js +43 -42
  119. package/src/chatbox/Order.js +232 -0
  120. package/src/chatbox/OrderAttachments.js +2 -1
  121. package/src/chatbox/TextMessage.js +21 -12
  122. package/src/chatbox/Widget.js +34 -4
  123. package/src/chatbox/main.js +2 -2
  124. package/src/chatbox/spinner.js +1 -1
  125. package/src/chatbox/time.js +1 -1
  126. package/src/common.js +52 -8
  127. package/src/contact/contact.js +1 -1
  128. package/src/order/address_picker.js +235 -0
  129. package/src/order/icon.js +32 -0
  130. package/src/order/index.js +86 -0
  131. package/src/order/order.js +1157 -0
  132. package/src/order/scratch +211 -0
  133. package/src/plugin.js +7 -52
  134. package/src/popup/popup.js +2 -2
  135. package/src/store/api.js +26 -1
  136. package/src/store/store.js +46 -9
  137. package/src/util/common.js +48 -2
  138. package/webpack.dev.js +2 -0
  139. package/dist/17d939953e0.178.js +0 -1
  140. package/dist/17d939953e0.213.js +0 -1
  141. package/dist/17d939953e0.362.js +0 -1
  142. package/dist/17d939953e0.441.js +0 -1
  143. package/dist/17d939953e0.605.js +0 -1
  144. package/dist/17d939953e0.619.js +0 -1
  145. package/dist/17d939953e0.678.js +0 -1
  146. package/dist/17d939953e0.74.js +0 -1
  147. package/dist/17d939953e0.782.js +0 -1
  148. package/dist/17d939953e0.app.js +0 -1
  149. package/dist/17d939953e0.library.js +0 -1
  150. package/dist/17d939953e0.preview.js +0 -1
  151. package/dist/17d939953e0.screenshoot.js +0 -1
  152. package/dist/619.js +0 -777
@@ -23,7 +23,7 @@ class Spinner extends _common.Com {
23
23
  border-bottom-color: ${borderColor} !important;border-right-color: ${mainColor} !important;`;
24
24
 
25
25
  if (this.props.static) {
26
- let style = `width: ${size}px;height: ${size}px;`;
26
+ let style = `width: ${size}px !important;height: ${size}px !important;`;
27
27
  if (size < 40) return (0, _preact.h)(LoaderIcon, {
28
28
  size: size + '',
29
29
  style: `stroke:${mainColor}`
@@ -60,7 +60,9 @@ class Time extends _common.Com {
60
60
  }
61
61
 
62
62
  render() {
63
- return (0, _preact.h)("span", null, this.state.t);
63
+ return (0, _preact.h)("span", {
64
+ style: this.props.style
65
+ }, this.state.t);
64
66
  }
65
67
 
66
68
  }
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Com = exports.Clickaway = void 0;
7
+ exports.downloadLanguage = downloadLanguage;
8
+ exports.langMessages = exports.getLocale = void 0;
7
9
 
8
10
  var _preact = require("preact");
9
11
 
@@ -64,4 +66,41 @@ class Clickaway extends Com {
64
66
 
65
67
  }
66
68
 
67
- exports.Clickaway = Clickaway;
69
+ exports.Clickaway = Clickaway;
70
+
71
+ const getLocale = (plugin, loc) => {
72
+ if (!loc) loc = '';
73
+
74
+ let found = _index.default.find(plugin.locales, l => l.toLowerCase().trim() === loc.toLowerCase().trim());
75
+
76
+ if (found) return found;
77
+ found = _index.default.find(plugin.locales, l => {
78
+ l = l.replace('-', '_').split('_')[0].trim().toLowerCase();
79
+ let compareloc = loc.replace('-', '_').split('_')[0].trim().toLowerCase();
80
+ return l == compareloc;
81
+ });
82
+ if (found) return found;
83
+ return plugin.locale || 'en-US';
84
+ };
85
+
86
+ exports.getLocale = getLocale;
87
+ let langMessages = {};
88
+ exports.langMessages = langMessages;
89
+ let downloadLock = false;
90
+
91
+ function downloadLanguage(store, locale, force) {
92
+ if (downloadLock) return new Promise(resolve => setTimeout(() => downloadLanguage(store, locale, force).then(resolve), 100));
93
+ downloadLock = true;
94
+ let messages;
95
+
96
+ if (locale === 'debug' || langMessages[locale] && !force) {
97
+ downloadLock = false;
98
+ return Promise.resolve();
99
+ }
100
+
101
+ return store.getLocaleContent(locale).then(res => {
102
+ downloadLock = false;
103
+ messages = _index.default.get(res, 'body.messages', []);
104
+ langMessages[locale] = messages;
105
+ });
106
+ }
@@ -12,8 +12,6 @@ var _preact = require("preact");
12
12
 
13
13
  var _common = require("../common.js");
14
14
 
15
- var _jsApiLoader = require("@googlemaps/js-api-loader");
16
-
17
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
16
 
19
17
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -44,7 +42,7 @@ class Contact extends _common.Com {
44
42
  map_initialized: true,
45
43
  map_loading: true
46
44
  });
47
- await new _jsApiLoader.Loader({
45
+ await new Loader({
48
46
  apiKey: 'YOUR_API_KEY',
49
47
  version: 'weekly'
50
48
  }).load();
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _index = _interopRequireDefault(require("../util/index.js"));
9
+
10
+ var _common = require("../common.js");
11
+
12
+ var _preact = require("preact");
13
+
14
+ var _spinner = _interopRequireDefault(require("../chatbox/spinner.js"));
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
+
20
+ class AddressPicker extends _common.Com {
21
+ constructor(props) {
22
+ super(props);
23
+
24
+ _defineProperty(this, "state", {
25
+ show: false,
26
+ searchValue: '',
27
+ addresses: []
28
+ });
29
+
30
+ _defineProperty(this, "filterRef", (0, _preact.createRef)());
31
+
32
+ _defineProperty(this, "overlayRef", (0, _preact.createRef)());
33
+
34
+ _defineProperty(this, "onTouchMove", e => {
35
+ if (e.target === this.overlayRef.current) {
36
+ e.preventDefault();
37
+ e.stopPropagation();
38
+ }
39
+ });
40
+
41
+ _defineProperty(this, "hideDropdown", () => {
42
+ this.setState({
43
+ show: false,
44
+ searchValue: ''
45
+ });
46
+ });
47
+
48
+ _defineProperty(this, "onKeydown", e => {
49
+ if (e.key === 'Escape') {
50
+ if (!this.state.show) return;
51
+ if (this.state.searchValue) this.setState({
52
+ searchValue: ''
53
+ });else this.hideDropdown();
54
+ e.preventDefault();
55
+ e.stopPropagation();
56
+ }
57
+
58
+ if (e.key == 'Enter') {}
59
+ });
60
+
61
+ _defineProperty(this, "doSearch", _index.default.throttle(async () => {
62
+ let requestId = Date.now();
63
+ this.requestId = requestId;
64
+ let res = await this.props.store.suggest_addresses(this.state.searchValue);
65
+ if (this.requestId !== requestId) return;
66
+ this.setState({
67
+ addresses: _index.default.get(res, 'body.addresses', [])
68
+ });
69
+ }, 100));
70
+
71
+ _defineProperty(this, "onChangeSearchValue", e => {
72
+ this.setState({
73
+ searchValue: e.target.value
74
+ });
75
+ this.props.onChangeAddress(e.target.value);
76
+ this.doSearch();
77
+ });
78
+
79
+ _defineProperty(this, "toogleDropdown", async () => {
80
+ await this.setState({
81
+ show: true,
82
+ searchValue: this.props.initAddress || ''
83
+ });
84
+ this.focusFilter();
85
+ });
86
+
87
+ _defineProperty(this, "onSelect", item => {
88
+ this.props.onSelect(item);
89
+ this.hideDropdown();
90
+ });
91
+
92
+ _defineProperty(this, "onBackgroundScroll", e => {
93
+ console.log('EEEEEEE', e);
94
+ });
95
+
96
+ document.addEventListener('touchmove', function (e) {});
97
+ }
98
+
99
+ componentDidMount() {
100
+ window.addEventListener('keydown', this.onKeydown);
101
+ }
102
+
103
+ componentWillUnmount() {
104
+ window.removeEventListener('keydown', this.onKeydown);
105
+ }
106
+
107
+ renderEmpty() {
108
+ return (0, _preact.h)("div", {
109
+ class: "dropdown_select_filter__empty"
110
+ }, (0, _preact.h)("img", {
111
+ class: "dropdown_select_filter__empty_img",
112
+ src: require('../../assets/img/not_found_search.png')
113
+ }), (0, _preact.h)("div", {
114
+ class: "muted",
115
+ style: "text-align: center !important;"
116
+ }, "Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3"));
117
+ }
118
+
119
+ renderLoading() {
120
+ return (0, _preact.h)("div", {
121
+ class: "dropdown_select_filter__empty pt-3"
122
+ }, (0, _preact.h)(_spinner.default, {
123
+ size: "40",
124
+ static: true
125
+ }), (0, _preact.h)("div", {
126
+ class: "muted mt-2",
127
+ style: "text-align: center !important;"
128
+ }, "\u0110ang t\u1EA3i d\u1EEF li\u1EC7u"));
129
+ }
130
+
131
+ focusFilter() {
132
+ if (!this.filterRef.current) return;
133
+ this.filterRef.current.focus();
134
+ setTimeout(() => {
135
+ if (!this.filterRef.current) return;
136
+ this.filterRef.current.focus();
137
+ }, 100);
138
+ }
139
+
140
+ renderDropdown() {
141
+ if (!this.state.show) return null;
142
+
143
+ let $items = _index.default.map(this.state.addresses, (addr, i) => {
144
+ let label = [((addr.address || '') + ' ' + normalize(addr.street)).trim()].join(', ');
145
+ let desc = [normalize(addr.ward), normalize(addr.district), normalize(addr.province)].join(', ');
146
+ return (0, _preact.h)("div", {
147
+ class: "dropdown_select__item",
148
+ onClick: _ => this.onSelect(addr),
149
+ key: i
150
+ }, (0, _preact.h)("div", null, (0, _preact.h)("b", null, label)), (0, _preact.h)("div", {
151
+ style: "opacity: 0.7 !important;"
152
+ }, desc));
153
+ });
154
+
155
+ let $filter = null;
156
+ let $img = (0, _preact.h)("img", {
157
+ class: "dropdown_select_filter__icon",
158
+ src: require('../../assets/img/search.svg')
159
+ });
160
+
161
+ if (this.props.loading) {
162
+ $img = (0, _preact.h)("img", {
163
+ class: "dropdown_select_filter__icon",
164
+ src: require('../../assets/img/loader.svg')
165
+ });
166
+ }
167
+
168
+ $filter = (0, _preact.h)("div", {
169
+ class: "dropdown_select_filter"
170
+ }, $img, (0, _preact.h)("input", {
171
+ ref: this.filterRef,
172
+ value: this.state.searchValue,
173
+ onInput: this.onChangeSearchValue,
174
+ type: "text",
175
+ class: "dropdown_select_filter_input "
176
+ }));
177
+ if ($items.length == 0) $items = this.renderEmpty();
178
+ if (this.props.loading) $items = this.renderLoading();
179
+ let style = `width: ${this.props.width || '150px'} !important;`;
180
+
181
+ if (this.props.full) {
182
+ style = ` top: 20px !important; left: 20px !important; right: 20px !important; width: unset !important; `;
183
+ return (0, _preact.h)("div", {
184
+ class: "dropdown_select__overlay",
185
+ ref: this.overlayRef,
186
+ onClick: this.hideDropdown,
187
+ onTouchMove: this.onTouchMove
188
+ }, (0, _preact.h)("div", {
189
+ class: "dropdown_select",
190
+ style: style,
191
+ onClick: e => {
192
+ e.preventDefault();
193
+ e.stopPropagation();
194
+ }
195
+ }, $filter, (0, _preact.h)("div", {
196
+ class: "dropdown_select__items"
197
+ }, $items)));
198
+ }
199
+
200
+ return (0, _preact.h)("div", {
201
+ class: "dropdown_select",
202
+ style: style
203
+ }, $filter, (0, _preact.h)("div", {
204
+ class: "dropdown_select__items"
205
+ }, $items));
206
+ }
207
+
208
+ render() {
209
+ let $name = (0, _preact.h)("div", {
210
+ class: "text-truncate",
211
+ style: "flex: 1 !important;"
212
+ }, this.props.initAddress);
213
+ let style = 'position: relative !important;';
214
+
215
+ if (this.props.full) {
216
+ style = '';
217
+ }
218
+
219
+ return (0, _preact.h)("div", {
220
+ style: style
221
+ }, (0, _preact.h)(_common.Clickaway, {
222
+ onClickaway: this.hideDropdown
223
+ }, (0, _preact.h)("div", {
224
+ type: "text",
225
+ class: 'dropdown_select_input ' + this.props.extra_cls,
226
+ onClick: this.toogleDropdown
227
+ }, $name), this.renderDropdown()));
228
+ }
229
+
230
+ }
231
+
232
+ exports.default = AddressPicker;
233
+
234
+ function normalize(s) {
235
+ let ls = (s + '').toLowerCase();
236
+ if (ls.startsWith('tp ')) return s.substr(3);
237
+ if (ls.startsWith('thanh pho ')) return s.substr('thanh pho '.length);
238
+ if (ls.startsWith('thành phố ')) return s.substr('thành phố '.length);
239
+ if (ls.startsWith('tỉnh ')) return s.substr('tỉnh '.length);
240
+ if (ls.startsWith('huyện ')) return s.substr('huyện '.length);
241
+ if (ls.startsWith('tỉnh ')) return s.substr('tỉnh '.length);
242
+ if (ls.startsWith('xã ')) return s.substr('xã '.length);
243
+ if (ls.startsWith('thị trấn ')) return s.substr('thị trấn '.length);
244
+ if (ls.startsWith('thị xã ')) return s.substr('thị xã '.length);
245
+ if (ls.startsWith('đường ') && (s[7] < '0' || s[7] > '9')) return s.substr('đường '.length);
246
+ if (ls.startsWith('phường ') && (s[7] < '0' || s[7] > '9')) return s.substr('phường '.length);
247
+ if (ls.startsWith('quận ') && (s[7] < '0' || s[7] > '9')) return s.substr('quận '.length);
248
+ return s;
249
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _index = _interopRequireDefault(require("../util/index.js"));
9
+
10
+ var _time = _interopRequireDefault(require("../chatbox/time.js"));
11
+
12
+ var common = _interopRequireWildcard(require("../common.js"));
13
+
14
+ var _DropdownSelect = _interopRequireDefault(require("../chatbox/DropdownSelect.js"));
15
+
16
+ var _preact = require("preact");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ let promiseMainCSS = (() => Promise.resolve().then(() => _interopRequireWildcard(require('../chatbox/css.js'))))();
25
+
26
+ var $link = document.createElement('link');
27
+ $link.href = 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;500&display=swap';
28
+ $link.rel = 'stylesheet';
29
+ document.head.append($link);
30
+
31
+ _index.default.preloadWebfonts(['Roboto'], [400, 500]);
32
+
33
+ let defaultAvatar = require('../../assets/img/default_avatar.png');
34
+
35
+ class Icon extends common.Com {
36
+ render() {
37
+ if (this.props.name == 'package') {
38
+ if (this.props.active) return (0, _preact.h)("img", {
39
+ style: "width: 18px !important;",
40
+ src: require('../../assets/img/package.svg')
41
+ });
42
+ return (0, _preact.h)("img", {
43
+ style: "width: 18px !important;",
44
+ src: require('../../assets/img/package_fade.svg')
45
+ });
46
+ }
47
+
48
+ if (this.props.name === 'shop') {
49
+ if (this.props.active) return (0, _preact.h)("img", {
50
+ style: "width: 18px !important;",
51
+ src: require('../../assets/img/shop.svg')
52
+ });
53
+ return (0, _preact.h)("img", {
54
+ style: "width: 18px !important;",
55
+ src: require('../../assets/img/shop_faded.svg')
56
+ });
57
+ }
58
+ }
59
+
60
+ }
61
+
62
+ exports.default = Icon;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ var _store = _interopRequireDefault(require("../store/store.js"));
4
+
5
+ var common = _interopRequireWildcard(require("../common.js"));
6
+
7
+ var _index = _interopRequireDefault(require("../util/index.js"));
8
+
9
+ var _preact = require("preact");
10
+
11
+ var _order = _interopRequireDefault(require("./order.js"));
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+
19
+ let promiseMainCSS = (() => Promise.resolve().then(() => _interopRequireWildcard(require('../chatbox/css.js'))))();
20
+
21
+ var config = require('../../config.js');
22
+
23
+ function findChatbox(store) {
24
+ var pluginM = store.matchPlugin();
25
+
26
+ let chatboxs = _index.default.filter(pluginM, plugin => plugin.type === 'chatbox');
27
+
28
+ if (_index.default.size(chatboxs) === 0) {
29
+ console.error('no chatbox found.');
30
+ return;
31
+ }
32
+
33
+ return chatboxs[0];
34
+ }
35
+
36
+ function getUrlParameter(name) {
37
+ name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
38
+ var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
39
+ var results = regex.exec(location.search);
40
+ return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
41
+ }
42
+
43
+ var $link = document.createElement('link');
44
+ $link.href = 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;500&display=swap';
45
+ $link.rel = 'stylesheet';
46
+ document.head.append($link);
47
+
48
+ _index.default.preloadWebfonts(['Roboto'], [400, 500]);
49
+
50
+ async function load() {
51
+ let store = new _store.default(config.ApiURL, config.FileURL, config.RealtimeURL, true);
52
+ let signkey = getUrlParameter('x-signed-key');
53
+ let {
54
+ body,
55
+ error
56
+ } = await store.lookupOrder(signkey);
57
+ let order = body;
58
+
59
+ let accid = _index.default.get(order, 'ctx.credential.account_id');
60
+
61
+ let user_id = _index.default.get(order, 'ctx.credential.issuer');
62
+
63
+ let mask = accid + '@' + user_id;
64
+ await store.init(accid, mask);
65
+ window.store = store;
66
+
67
+ let t = key => {
68
+ if (_locale === 'debug') return `{{${key}}}`;
69
+
70
+ let messages = _index.default.get(common.langMessages, _locale, []);
71
+
72
+ let message = _index.default.find(messages, message => message.key === key);
73
+
74
+ return _index.default.get(message, 'message', key);
75
+ };
76
+
77
+ let acc = store.matchAccount();
78
+ let plugin = findChatbox(store);
79
+ let css = (await promiseMainCSS).default.default.toString();
80
+
81
+ var outcss = _index.default.replaceCssVariable(css, plugin.chatbox);
82
+
83
+ let $cssStyleDiv = document.createElement('style');
84
+ document.head.appendChild($cssStyleDiv);
85
+ $cssStyleDiv.type = 'text/css';
86
+ $cssStyleDiv.id = 'subiz-style-for-order';
87
+
88
+ _index.default.setCss('order', $cssStyleDiv, outcss);
89
+
90
+ let _locale = plugin.locale || acc.locale || 'vi-VN';
91
+
92
+ t.i18n = i18nText => {
93
+ if (!i18nText) return '';
94
+ let fallbackLocale = plugin.locale || acc.locale || 'vi-VN';
95
+ fallbackLocale = fallbackLocale.replace('-', '_');
96
+
97
+ let locale = _locale.replace('-', '_');
98
+
99
+ return i18nText[locale] || i18nText[fallbackLocale];
100
+ };
101
+
102
+ t.locale = () => _locale;
103
+
104
+ common.downloadLanguage(store, _locale).then(() => {
105
+ (0, _preact.render)((0, _preact.h)(_order.default, {
106
+ store: store,
107
+ t: t,
108
+ order_id: order.id
109
+ }), document.getElementById('order'));
110
+ });
111
+ }
112
+
113
+ load();