@subiz/widget-v4 4.0.61 → 4.0.66

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 (134) 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 +39 -1
  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/ChatButton.js +3 -1
  27. package/compiled_src/chatbox/DropdownSelect.js +248 -0
  28. package/compiled_src/chatbox/Event.js +5 -2
  29. package/compiled_src/chatbox/Events.js +1 -0
  30. package/compiled_src/chatbox/Order.js +285 -0
  31. package/compiled_src/chatbox/OrderAttachments.js +2 -1
  32. package/compiled_src/chatbox/ProductAttachments.js +40 -4
  33. package/compiled_src/chatbox/TextMessage.js +9 -2
  34. package/compiled_src/chatbox/Typing.js +3 -1
  35. package/compiled_src/chatbox/Widget.js +44 -3
  36. package/compiled_src/chatbox/main.js +2 -0
  37. package/compiled_src/chatbox/spinner.js +1 -1
  38. package/compiled_src/chatbox/time.js +3 -1
  39. package/compiled_src/common.js +40 -1
  40. package/compiled_src/contact/contact.js +1 -3
  41. package/compiled_src/order/address_picker.js +249 -0
  42. package/compiled_src/order/icon.js +62 -0
  43. package/compiled_src/order/index.js +113 -0
  44. package/compiled_src/order/order.js +1234 -0
  45. package/compiled_src/plugin.js +9 -42
  46. package/compiled_src/store/api.js +20 -0
  47. package/compiled_src/store/store.js +67 -3
  48. package/compiled_src/util/common.js +36 -2
  49. package/dist/{74.js → 132.js} +2355 -271
  50. package/dist/178.js +1 -1
  51. package/dist/17fdfed03d1.132.js +1 -0
  52. package/dist/17fdfed03d1.178.js +1 -0
  53. package/dist/17fdfed03d1.213.js +1 -0
  54. package/dist/17fdfed03d1.335.js +1 -0
  55. package/dist/17fdfed03d1.362.js +1 -0
  56. package/dist/17fdfed03d1.441.js +1 -0
  57. package/dist/17fdfed03d1.605.js +1 -0
  58. package/dist/{17db8166252.678.js → 17fdfed03d1.678.js} +0 -0
  59. package/dist/17fdfed03d1.782.js +1 -0
  60. package/dist/17fdfed03d1.app.js +1 -0
  61. package/dist/{17db8166252.index.html → 17fdfed03d1.index.html} +1 -1
  62. package/dist/{17db8166252.library.html → 17fdfed03d1.library.html} +1 -1
  63. package/dist/17fdfed03d1.library.js +1 -0
  64. package/dist/{17db8166252.preview.html → 17fdfed03d1.preview.html} +1 -1
  65. package/dist/17fdfed03d1.preview.js +1 -0
  66. package/dist/17fdfed03d1.screenshoot.js +1 -0
  67. package/dist/213.js +5 -69
  68. package/dist/335.js +411 -0
  69. package/dist/362.js +1 -1
  70. package/dist/441.js +70 -44
  71. package/dist/605.js +1 -64
  72. package/dist/782.js +1 -1
  73. package/dist/HASH +1 -1
  74. package/dist/assets/img/caret.998eb8f.svg +1 -0
  75. package/dist/assets/img/done_green.b817fd4.svg +4 -0
  76. package/dist/assets/img/empty_1.0b98af0.svg +11 -0
  77. package/dist/assets/img/ghn.070f8e3.svg +17 -0
  78. package/dist/assets/img/ghtk.326eac1.svg +18 -0
  79. package/dist/assets/img/info.ebce7ea.svg +1 -0
  80. package/dist/assets/img/loader.37000a7.svg +1 -0
  81. package/dist/assets/img/not_found_search.2ddb8d1.png +0 -0
  82. package/dist/assets/img/package.8d37d0f.svg +5 -0
  83. package/dist/assets/img/package_fade.763c001.svg +1 -0
  84. package/dist/assets/img/search.f9705ff.svg +1 -0
  85. package/dist/assets/img/shop.f7dc7d8.svg +1 -0
  86. package/dist/assets/img/shop_faded.df7845a.svg +1 -0
  87. package/dist/assets/img/x.26fdfa3.svg +5 -0
  88. package/dist/screenshoot.html +1 -1
  89. package/dist/screenshoot.js +281 -98
  90. package/order.html +19 -771
  91. package/package.json +15 -16
  92. package/src/bot.js +2 -1
  93. package/src/chatbox/Buttons.js +8 -8
  94. package/src/chatbox/ChatButton.js +2 -2
  95. package/src/chatbox/DropdownSelect.js +229 -0
  96. package/src/chatbox/Event.js +3 -3
  97. package/src/chatbox/Events.js +43 -42
  98. package/src/chatbox/Order.js +232 -0
  99. package/src/chatbox/OrderAttachments.js +2 -1
  100. package/src/chatbox/ProductAttachments.js +41 -5
  101. package/src/chatbox/TextMessage.js +21 -12
  102. package/src/chatbox/Typing.js +5 -1
  103. package/src/chatbox/Widget.js +34 -4
  104. package/src/chatbox/main.js +4 -1
  105. package/src/chatbox/spinner.js +1 -1
  106. package/src/chatbox/time.js +1 -1
  107. package/src/common.js +52 -8
  108. package/src/contact/contact.js +1 -1
  109. package/src/order/address_picker.js +235 -0
  110. package/src/order/icon.js +32 -0
  111. package/src/order/index.js +86 -0
  112. package/src/order/order.js +1157 -0
  113. package/src/order/scratch +211 -0
  114. package/src/plugin.js +7 -52
  115. package/src/store/api.js +26 -1
  116. package/src/store/store.js +53 -3
  117. package/src/util/common.js +48 -2
  118. package/up +1 -1
  119. package/webpack.dev.js +2 -0
  120. package/dist/17db8166252.178.js +0 -1
  121. package/dist/17db8166252.213.js +0 -1
  122. package/dist/17db8166252.362.js +0 -1
  123. package/dist/17db8166252.441.js +0 -1
  124. package/dist/17db8166252.605.js +0 -1
  125. package/dist/17db8166252.619.js +0 -1
  126. package/dist/17db8166252.74.js +0 -1
  127. package/dist/17db8166252.782.js +0 -1
  128. package/dist/17db8166252.app.js +0 -1
  129. package/dist/17db8166252.library.js +0 -1
  130. package/dist/17db8166252.preview.js +0 -1
  131. package/dist/17db8166252.screenshoot.js +0 -1
  132. package/dist/619.js +0 -777
  133. package/order.js +0 -0
  134. package/test.js +0 -1
@@ -23,6 +23,8 @@ var _Typing = _interopRequireDefault(require("./Typing.js"));
23
23
 
24
24
  var _Rating = _interopRequireDefault(require("./Rating.js"));
25
25
 
26
+ var _Order = _interopRequireDefault(require("./Order.js"));
27
+
26
28
  var _ListField = _interopRequireDefault(require("./ListField.js"));
27
29
 
28
30
  var _spinner = _interopRequireDefault(require("./spinner.js"));
@@ -35,6 +37,8 @@ var _preact = require("preact");
35
37
 
36
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
39
 
40
+ 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; }
41
+
38
42
  var send = require('../../assets/img/send.svg');
39
43
 
40
44
  var checkedimg = require('../../assets/img/done_gray.svg');
@@ -46,11 +50,38 @@ const defaultAvatar = 'https://file-subiz.com/fiqoahedjbgwclpouoml-avatar_defaul
46
50
  class Widget extends _common.Com {
47
51
  constructor(props) {
48
52
  super(props);
53
+
54
+ _defineProperty(this, "onLink", (e, url) => {
55
+ if (!url) return e.preventDefault();
56
+ let noschemeurl = url.replace(/(^\w+:|^)\/\//, '');
57
+
58
+ if (noschemeurl.startsWith('widget.subiz.com.vn/orders/')) {
59
+ let orderid = noschemeurl.substr('widget.subiz.com.vn/orders/'.length);
60
+ orderid = orderid.split('/')[0];
61
+ this.setState({
62
+ showOrder: true,
63
+ order_id: orderid
64
+ });
65
+ e.preventDefault();
66
+ return;
67
+ }
68
+ });
69
+
70
+ _defineProperty(this, "closeOrder", e => {
71
+ this.setState({
72
+ showOrder: false,
73
+ order_id: ''
74
+ });
75
+ this.focusInput();
76
+ });
77
+
49
78
  this.userSent = {};
50
79
  this.setState({
51
80
  creating: false,
52
81
  clickedJoin: false,
53
- formData: {}
82
+ formData: {},
83
+ showOrder: false,
84
+ order_id: ''
54
85
  });
55
86
  this.props.store.onUpdate(this, _ => this.forceUpdate());
56
87
  }
@@ -66,6 +97,7 @@ class Widget extends _common.Com {
66
97
  }
67
98
 
68
99
  if (prevProp.cid !== this.props.cid) {
100
+ this.closeOrder();
69
101
  this.setState({
70
102
  clickedJoin: false
71
103
  });
@@ -84,7 +116,6 @@ class Widget extends _common.Com {
84
116
  }
85
117
 
86
118
  render() {
87
- let formRequired = this.isFormRequired();
88
119
  let showform = this.shouldShowForm();
89
120
  let form;
90
121
  let accountSetting = this.props.plugin.chatbox || {};
@@ -637,6 +668,7 @@ class Widget extends _common.Com {
637
668
  onClick: e => this.onContainerClick(e)
638
669
  }, (0, _preact.h)(_Events.default, {
639
670
  isShow: this.props.isShow,
671
+ onLink: this.onLink,
640
672
  store: this.props.store,
641
673
  onFormSubmit: e => this.onEventFormSubmit(e),
642
674
  ref: ref => this.events = ref,
@@ -656,6 +688,15 @@ class Widget extends _common.Com {
656
688
  onRate: e => this.onRate(e),
657
689
  cid: this.props.cid,
658
690
  t: this.props.t
691
+ }), (0, _preact.h)(_Order.default, {
692
+ forceView: this.props.view,
693
+ plugin: this.props.plugin,
694
+ show: this.state.showOrder,
695
+ order_id: this.state.order_id,
696
+ store: this.props.store,
697
+ onClose: this.closeOrder,
698
+ cid: this.props.cid,
699
+ t: this.props.t
659
700
  }), $input);
660
701
  }
661
702
 
@@ -952,5 +993,5 @@ class FormMounter extends _common.Com {
952
993
  }
953
994
 
954
995
  function encode(key) {
955
- return btoa(key).split('=').join('');
996
+ return encodeURIComponent(key);
956
997
  }
@@ -184,11 +184,13 @@ class Main extends _common.Com {
184
184
  exports.default = Main;
185
185
 
186
186
  function restoreViewport() {
187
+ if (document.body && document.body.classList) document.body.classList.remove('sbz_no_scroll');
187
188
  let metatag = document.getElementById('subiz-meta-viewport');
188
189
  if (metatag) metatag.remove();
189
190
  }
190
191
 
191
192
  function modifyViewport() {
193
+ if (document.body && document.body.classList) document.body.classList.add('sbz_no_scroll');
192
194
  let metatag = document.createElement('meta');
193
195
  metatag.httpEquiv = 'X-UA-Compatible';
194
196
  metatag.name = 'viewport';
@@ -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();