ts-glitter 20.8.7 → 20.8.9

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 (177) hide show
  1. package/lowcode/Entry.js +1 -1
  2. package/lowcode/Entry.ts +1 -1
  3. package/lowcode/backend-manager/bg-product.js +1 -1
  4. package/lowcode/backend-manager/bg-product.ts +1 -1
  5. package/lowcode/backend-manager/bg-recommend.js +1 -1
  6. package/lowcode/backend-manager/bg-recommend.ts +2 -2
  7. package/lowcode/backend-manager/bg-shopping.js +2 -5
  8. package/lowcode/backend-manager/bg-shopping.ts +2 -5
  9. package/lowcode/cms-plugin/POS-setting.js +58 -34
  10. package/lowcode/cms-plugin/POS-setting.ts +69 -33
  11. package/lowcode/cms-plugin/data-analyze-orders.js +0 -1
  12. package/lowcode/cms-plugin/data-analyze-orders.ts +1 -1
  13. package/lowcode/cms-plugin/data-analyze.js +1 -21
  14. package/lowcode/cms-plugin/data-analyze.ts +25 -25
  15. package/lowcode/cms-plugin/filter-options.js +1 -1
  16. package/lowcode/cms-plugin/filter-options.ts +1 -2
  17. package/lowcode/cms-plugin/information/information-module.js +275 -0
  18. package/lowcode/cms-plugin/information/information-module.ts +308 -0
  19. package/lowcode/cms-plugin/pos-pages/models.ts +3 -1
  20. package/lowcode/cms-plugin/pos-pages/payment-page.js +3 -11
  21. package/lowcode/cms-plugin/pos-pages/payment-page.ts +3 -11
  22. package/lowcode/cms-plugin/pos-pages/pos-function.js +1 -0
  23. package/lowcode/cms-plugin/pos-pages/pos-function.ts +1 -0
  24. package/lowcode/cms-plugin/pos-pages/products-page.js +1 -1
  25. package/lowcode/cms-plugin/pos-pages/products-page.ts +1 -1
  26. package/lowcode/cms-plugin/product-service.js +4 -9
  27. package/lowcode/cms-plugin/product-service.ts +4 -13
  28. package/lowcode/cms-plugin/shopping-discount-setting.js +76 -27
  29. package/lowcode/cms-plugin/shopping-discount-setting.ts +123 -63
  30. package/lowcode/cms-plugin/shopping-information.js +21 -167
  31. package/lowcode/cms-plugin/shopping-information.ts +35 -191
  32. package/lowcode/cms-plugin/shopping-order-return.js +212 -360
  33. package/lowcode/cms-plugin/shopping-order-return.ts +349 -482
  34. package/lowcode/cms-plugin/shopping-product-setting.js +8 -0
  35. package/lowcode/cms-plugin/shopping-product-setting.ts +12 -4
  36. package/lowcode/form-view/e-commerce/product-select.js +59 -51
  37. package/lowcode/form-view/e-commerce/product-select.ts +279 -266
  38. package/lowcode/glitter-base/global/language.js +2 -1
  39. package/lowcode/glitter-base/global/language.ts +2 -1
  40. package/lowcode/public-components/checkout/index.ts +2078 -2078
  41. package/lowcode/public-components/headers/sy-02.js +190 -179
  42. package/lowcode/public-components/headers/sy-02.ts +397 -370
  43. package/lowcode/public-components/headers/sy-03.js +133 -107
  44. package/lowcode/public-components/headers/sy-03.ts +276 -244
  45. package/lowcode/public-components/headers/sy-04.js +181 -146
  46. package/lowcode/public-components/headers/sy-04.ts +289 -247
  47. package/lowcode/public-components/product/pd-class.js +31 -23
  48. package/lowcode/public-components/product/pd-class.ts +51 -29
  49. package/lowcode/public-components/user-manager/um-voucher.js +1 -0
  50. package/lowcode/public-components/user-manager/um-voucher.ts +1 -0
  51. package/package.json +1 -1
  52. package/src/Language.js +1 -1
  53. package/src/Language.js.map +1 -1
  54. package/src/Language.ts +1 -1
  55. package/src/api-public/controllers/ai-chat.js.map +1 -1
  56. package/src/api-public/controllers/chat.js.map +1 -1
  57. package/src/api-public/controllers/customer-sessions.js.map +1 -1
  58. package/src/api-public/controllers/fb-message.js.map +1 -1
  59. package/src/api-public/controllers/fb-service.js.map +1 -1
  60. package/src/api-public/controllers/invoice.js.map +1 -1
  61. package/src/api-public/controllers/line-message.js.map +1 -1
  62. package/src/api-public/controllers/oauth.js.map +1 -1
  63. package/src/api-public/controllers/progress.js.map +1 -1
  64. package/src/api-public/controllers/rebate.js.map +1 -1
  65. package/src/api-public/controllers/recommend.js.map +1 -1
  66. package/src/api-public/controllers/reconciliation.js.map +1 -1
  67. package/src/api-public/controllers/shop.js +5 -2
  68. package/src/api-public/controllers/shop.js.map +1 -1
  69. package/src/api-public/controllers/shop.ts +7 -3
  70. package/src/api-public/controllers/shopee.js.map +1 -1
  71. package/src/api-public/controllers/sms.js.map +1 -1
  72. package/src/api-public/controllers/smtp.js.map +1 -1
  73. package/src/api-public/controllers/stock.js.map +1 -1
  74. package/src/api-public/controllers/track.js.map +1 -1
  75. package/src/api-public/controllers/voucher.js.map +1 -1
  76. package/src/api-public/models/glitter-finance.js +1 -2
  77. package/src/api-public/models/glitter-finance.js.map +1 -1
  78. package/src/api-public/services/EcInvoice.js.map +1 -1
  79. package/src/api-public/services/article.js.map +1 -1
  80. package/src/api-public/services/auto-send-email.js.map +1 -1
  81. package/src/api-public/services/chat.js.map +1 -1
  82. package/src/api-public/services/checkout-event.d.ts +1 -0
  83. package/src/api-public/services/checkout-event.js +17 -7
  84. package/src/api-public/services/checkout-event.js.map +1 -1
  85. package/src/api-public/services/checkout-event.ts +21 -9
  86. package/src/api-public/services/checkout.js.map +1 -1
  87. package/src/api-public/services/custom-code.js.map +1 -1
  88. package/src/api-public/services/customer-sessions.js.map +1 -1
  89. package/src/api-public/services/data-analyze.js +209 -196
  90. package/src/api-public/services/data-analyze.js.map +1 -1
  91. package/src/api-public/services/data-analyze.ts +219 -205
  92. package/src/api-public/services/delivery.js.map +1 -1
  93. package/src/api-public/services/ezpay/tool.d.ts +0 -1
  94. package/src/api-public/services/ezpay/tool.js.map +1 -1
  95. package/src/api-public/services/fake-data-model/fake-order.js.map +1 -1
  96. package/src/api-public/services/fake-data-model/fake-product.js.map +1 -1
  97. package/src/api-public/services/fake-data-model/fake-user.js.map +1 -1
  98. package/src/api-public/services/fb-api.js.map +1 -1
  99. package/src/api-public/services/filter-protect-data.js.map +1 -1
  100. package/src/api-public/services/financial-service.js +0 -1
  101. package/src/api-public/services/financial-service.js.map +1 -1
  102. package/src/api-public/services/form-check.js.map +1 -1
  103. package/src/api-public/services/graph-api.js.map +1 -1
  104. package/src/api-public/services/initial-fake-data.js.map +1 -1
  105. package/src/api-public/services/invoice.d.ts +3 -9
  106. package/src/api-public/services/invoice.js +66 -85
  107. package/src/api-public/services/invoice.js.map +1 -1
  108. package/src/api-public/services/invoice.ts +287 -293
  109. package/src/api-public/services/language-setting.js.map +1 -1
  110. package/src/api-public/services/mail.js.map +1 -1
  111. package/src/api-public/services/manager.js.map +1 -1
  112. package/src/api-public/services/paynow-logistics.js.map +1 -1
  113. package/src/api-public/services/phone-verify.js.map +1 -1
  114. package/src/api-public/services/pos.js.map +1 -1
  115. package/src/api-public/services/post.js.map +1 -1
  116. package/src/api-public/services/product-initial.js.map +1 -1
  117. package/src/api-public/services/rebate.js.map +1 -1
  118. package/src/api-public/services/reconciliation.js.map +1 -1
  119. package/src/api-public/services/schedule.d.ts +1 -0
  120. package/src/api-public/services/schedule.js +27 -0
  121. package/src/api-public/services/schedule.js.map +1 -1
  122. package/src/api-public/services/schedule.ts +30 -0
  123. package/src/api-public/services/shopping.d.ts +4 -3
  124. package/src/api-public/services/shopping.js +40 -20
  125. package/src/api-public/services/shopping.js.map +1 -1
  126. package/src/api-public/services/shopping.ts +52 -28
  127. package/src/api-public/services/stock.js.map +1 -1
  128. package/src/api-public/services/terms-check.js.map +1 -1
  129. package/src/api-public/services/updated-table-checked.js.map +1 -1
  130. package/src/api-public/services/user-update.js.map +1 -1
  131. package/src/api-public/services/user.d.ts +10 -0
  132. package/src/api-public/services/user.js +35 -8
  133. package/src/api-public/services/user.js.map +1 -1
  134. package/src/api-public/services/user.ts +50 -7
  135. package/src/api-public/services/voucher.js.map +1 -1
  136. package/src/api-public/utils/ut-database.js.map +1 -1
  137. package/src/app-project/android/app/src/main/res/xml/network_security_config.xml +3 -3
  138. package/src/app-project/android/app/src/main/res/xml/s.xml +5 -5
  139. package/src/app-project/android/gradlew.bat +94 -94
  140. package/src/app-project/serverless/src/controllers/index.js.map +1 -1
  141. package/src/app-project/serverless/src/controllers/sample.js.map +1 -1
  142. package/src/app-project/serverless/src/modules/database.d.ts +1 -2
  143. package/src/app-project/serverless/src/modules/database.js.map +1 -1
  144. package/src/app-project/serverless/src/modules/exception.js.map +1 -1
  145. package/src/app-project/serverless/src/modules/hooks.js.map +1 -1
  146. package/src/app-project/serverless/src/modules/logger.js.map +1 -1
  147. package/src/app-project/serverless/src/modules/redis.d.ts +1 -1
  148. package/src/app-project/serverless/src/modules/redis.js.map +1 -1
  149. package/src/app-project/serverless/src/modules/response.js.map +1 -1
  150. package/src/app-project/serverless/src/modules/ssh.js.map +1 -1
  151. package/src/controllers/ai.js.map +1 -1
  152. package/src/controllers/global-event.js.map +1 -1
  153. package/src/controllers/page.js.map +1 -1
  154. package/src/controllers/private_config.js.map +1 -1
  155. package/src/export/export-test.js.map +1 -1
  156. package/src/firebase/message.js +1 -2
  157. package/src/firebase/message.js.map +1 -1
  158. package/src/helper/app_creater.js +1 -2
  159. package/src/helper/app_creater.js.map +1 -1
  160. package/src/helper/glitter-util.d.ts +0 -1
  161. package/src/helper/glitter-util.js.map +1 -1
  162. package/src/lambda/interface.d.ts +1 -1
  163. package/src/lambda/interface.js +2 -2
  164. package/src/lambda/interface.js.map +1 -1
  165. package/src/modules/exception.js.map +1 -1
  166. package/src/modules/hooks.js.map +1 -1
  167. package/src/modules/response.js.map +1 -1
  168. package/src/modules/ssh.js.map +1 -1
  169. package/src/public-config-initial/auto-fcm.js.map +1 -1
  170. package/src/run.js.map +1 -1
  171. package/src/run.ts +12 -12
  172. package/src/services/ai.js.map +1 -1
  173. package/src/services/ses.js +1 -2
  174. package/src/services/ses.js.map +1 -1
  175. package/src/services/system-schedule.js.map +1 -1
  176. package/src/update-progress-track.js.map +1 -1
  177. package/src/update-script.js.map +1 -1
@@ -13,16 +13,15 @@ import { HeaderMobile } from './header-mobile.js';
13
13
  const html = String.raw;
14
14
 
15
15
  export class Sy02 {
16
- public static main(gvc: GVC, widget: any, subData: any) {
17
- return HeadInitial.initial({
18
- browser:()=>{
19
- let changePage = (index: string, type: 'page' | 'home', subData: any) => {
20
- };
21
- gvc.glitter.getModule(new URL('./official_event/page/change-page.js', gvc.glitter.root_path).href, (cl) => {
22
- changePage = cl.changePage;
23
- });
24
- const colors = Color.getTheme(gvc, widget.formData);
25
- return html`
16
+ public static main(gvc: GVC, widget: any, subData: any) {
17
+ return HeadInitial.initial({
18
+ browser: () => {
19
+ let changePage = (index: string, type: 'page' | 'home', subData: any) => {};
20
+ gvc.glitter.getModule(new URL('./official_event/page/change-page.js', gvc.glitter.root_path).href, cl => {
21
+ changePage = cl.changePage;
22
+ });
23
+ const colors = Color.getTheme(gvc, widget.formData);
24
+ return html`
26
25
  <div style="height: 76px;"></div>
27
26
  <nav
28
27
  class="navbar navbar-expand-lg vw-100 header header-place shadow position-fixed top-0 left-0 py-0"
@@ -30,9 +29,13 @@ export class Sy02 {
30
29
 
31
30
  "
32
31
  >
33
- <div class="mx-auto header-place h-100" style="max-width: 100% !important; ${document.body.clientWidth>1300 ? `min-width: 1280px !important;`:`width:100%;
32
+ <div class="mx-auto header-place h-100" style="max-width: 100% !important; ${
33
+ document.body.clientWidth > 1300
34
+ ? `min-width: 1280px !important;`
35
+ : `width:100%;
34
36
  padding-left: 10px;padding-right: 10px;
35
- `}">
37
+ `
38
+ }">
36
39
  <!--LOGO顯示區塊-->
37
40
  <div class="d-flex align-items-center justify-content-center h-100 w-100 gap-2">
38
41
  <!--手機版選單-->
@@ -40,174 +43,183 @@ export class Sy02 {
40
43
  class="d-flex align-items-center justify-content-center"
41
44
  style="width:40px !important;height:40px !important;"
42
45
  onclick="${gvc.event(() => {
43
- gvc.glitter.setDrawer(
44
- gvc.bindView(() => {
45
- const id = gvc.glitter.getUUID();
46
- return {
47
- bind: id,
48
- view: () => {
49
- return html`
50
- <div
51
- class="div d-flex align-items-center flex-column w-100 p-3"
52
- style="border-bottom:1px solid ${widget.formData.theme_color['title']};"
53
- >
54
- <div class="d-flex align-items-center ">
55
- <div>
56
- <div
57
- class="h-100"
58
- onclick="${gvc.event(() => {
59
- changePage('index', 'home', {});
60
- })}"
61
- >
62
- ${widget.formData.logo.type === 'text'
63
- ? html`
64
- <div
65
- class=" fw-bold d-flex align-items-center justify-content-center"
66
- style="width: 150px; margin-bottom: 20px;font-size: 36px;color: ${widget.formData.theme_color['title'] ??
67
- '#000'};"
68
- >
69
- ${widget.formData.logo.value}
70
- </div>
71
- `
72
- : html`<img
73
- style="width: 150px;
46
+ gvc.glitter.setDrawer(
47
+ gvc.bindView(() => {
48
+ const id = gvc.glitter.getUUID();
49
+ return {
50
+ bind: id,
51
+ view: () => {
52
+ return html` <div
53
+ class="div d-flex align-items-center flex-column w-100 p-3"
54
+ style="border-bottom:1px solid ${widget.formData.theme_color['title']};"
55
+ >
56
+ <div class="d-flex align-items-center ">
57
+ <div>
58
+ <div
59
+ class="h-100"
60
+ onclick="${gvc.event(() => {
61
+ changePage('index', 'home', {});
62
+ })}"
63
+ >
64
+ ${widget.formData.logo.type === 'text'
65
+ ? html`
66
+ <div
67
+ class=" fw-bold d-flex align-items-center justify-content-center"
68
+ style="width: 150px; margin-bottom: 20px;font-size: 36px;color: ${widget
69
+ .formData.theme_color['title'] ?? '#000'};"
70
+ >
71
+ ${widget.formData.logo.value}
72
+ </div>
73
+ `
74
+ : html`<img
75
+ style="width: 150px;
74
76
  background-position: center;
75
77
  background-size: cover;
76
78
  background-repeat: no-repeat;
77
79
  border-radius: 10px;
78
80
  margin-bottom: 20px;"
79
- src="${widget.formData.logo.value}"
80
- /> `}
81
- </div>
82
- </div>
83
- </div>
84
- <div class="mb-3">${LanguageView.selectLanguage(gvc, colors)}
85
- </div>
86
- <div class="position-relative">
87
- <input
88
- class="form-control fw-500 "
89
- placeholder="${Language.text('find_product')}"
90
- autocomplete="off"
91
- value=""
92
- onchange="${gvc.event((e, event) => {
93
- gvc.glitter.href = `/all-product?search=${e.value}`;
94
- })}"
95
- />
81
+ src="${widget.formData.logo.value}"
82
+ /> `}
83
+ </div>
84
+ </div>
85
+ </div>
86
+ <div class="mb-3">${LanguageView.selectLanguage(gvc, colors)}</div>
87
+ <div class="position-relative">
88
+ <input
89
+ class="form-control fw-500 "
90
+ placeholder="${Language.text('find_product')}"
91
+ autocomplete="off"
92
+ value=""
93
+ onchange="${gvc.event((e, event) => {
94
+ gvc.glitter.href = `/all-product?search=${e.value}`;
95
+ })}"
96
+ />
96
97
 
97
- <div
98
- style=" position: absolute;
98
+ <div
99
+ style=" position: absolute;
99
100
  right: 10px;
100
101
  top: 50%;
101
102
  transform: translateY(-50%);
102
103
  color: rgb(107, 114, 128);"
103
- >
104
- <i class="fa-solid fa-magnifying-glass"></i>
105
- </div>
106
- </div>
107
- </div>
104
+ >
105
+ <i class="fa-solid fa-magnifying-glass"></i>
106
+ </div>
107
+ </div>
108
+ </div>
108
109
 
109
- <div class="offcanvas-body p-0 ">
110
- ${gvc.bindView(() => {
111
- const id = gvc.glitter.getUUID();
112
- const vm = {
113
- data: [],
114
- };
115
- ApiUser.getPublicConfig('menu-setting', 'manager', (window as any).appName).then((res) => {
116
- vm.data = res.response.value[Language.getLanguage()];
117
- gvc.notifyDataChange(id);
118
- });
119
- return {
120
- bind: id,
121
- view: () => {
122
- function resetToggle() {
110
+ <div class="offcanvas-body p-0 ">
111
+ ${gvc.bindView(() => {
112
+ const id = gvc.glitter.getUUID();
113
+ const vm = {
114
+ data: [],
115
+ };
116
+ ApiUser.getPublicConfig(
117
+ 'menu-setting',
118
+ 'manager',
119
+ (window as any).appName
120
+ ).then(res => {
121
+ vm.data = res.response.value[Language.getLanguage()];
122
+ gvc.notifyDataChange(id);
123
+ });
124
+ return {
125
+ bind: id,
126
+ view: () => {
127
+ function resetToggle() {
123
128
  function loop(data: any) {
124
- data.map((dd: any) => {
125
- (dd as any).open = false;
126
- loop((dd as any).items ?? []);
127
- });
129
+ data.map((dd: any) => {
130
+ (dd as any).open = false;
131
+ loop((dd as any).items ?? []);
132
+ });
128
133
  }
129
134
 
130
135
  loop(vm.data);
131
- }
136
+ }
132
137
 
133
- function loopItems(data: any, show_border: boolean) {
138
+ function loopItems(data: any, show_border: boolean) {
134
139
  return data
135
140
  .map((dd: any) => {
136
- return html`
137
- <li
138
- style="${show_border
139
- ? `border-bottom: 1px solid ${widget.formData.theme_color['title'] ?? '#000'} !important;`
140
- : ``}"
141
- >
142
- <div
143
- class="nav-link d-flex justify-content-between"
144
- style="padding: 16px;"
145
- onclick="${gvc.event(() => {
146
- if (((dd as any).items ?? []).length === 0) {
141
+ return html`
142
+ <li
143
+ style="${show_border
144
+ ? `border-bottom: 1px solid ${widget.formData.theme_color['title'] ?? '#000'} !important;`
145
+ : ``}"
146
+ >
147
+ <div
148
+ class="nav-link d-flex justify-content-between"
149
+ style="padding: 16px;"
150
+ onclick="${gvc.event(() => {
151
+ if (((dd as any).items ?? []).length === 0) {
147
152
  if (dd.link) {
148
- gvc.glitter.href = dd.link;
149
- gvc.glitter.closeDrawer();
153
+ gvc.glitter.href = dd.link;
154
+ gvc.glitter.closeDrawer();
150
155
  }
151
- } else {
156
+ } else {
152
157
  let og = dd.open;
153
158
  resetToggle();
154
159
  if (!og) {
155
- dd.open = true;
160
+ dd.open = true;
156
161
  }
157
162
  gvc.notifyDataChange(id);
158
- }
159
- })}"
160
- >
161
- <div
162
- style="color: ${widget.formData.theme_color['title'] ?? '#000'} !important;"
163
- onclick="${gvc.event((e, event) => {
164
- if (dd.link) {
165
- gvc.glitter.href = dd.link;
166
- gvc.glitter.closeDrawer();
167
- }
168
- event.stopPropagation();
169
- event.preventDefault();
170
- })}"
171
- >
172
- ${dd.title}
173
- </div>
174
- ${(dd.items ?? []).length
175
- ? html` <i
176
- class="fa-solid ${dd.open ? `fa-angle-up` : `fa-angle-down`}"
177
- style="color: ${widget.formData.theme_color['title'] ?? '#000'} !important;"
178
- ></i>`
179
- : ``}
180
- </div>
181
- ${dd.open ? `<ul class="ps-3 pb-2">${loopItems(dd.items ?? [], false)}</ul>` : ``}
182
- </li>
183
- `;
163
+ }
164
+ })}"
165
+ >
166
+ <div
167
+ style="color: ${widget.formData.theme_color['title'] ??
168
+ '#000'} !important;"
169
+ onclick="${gvc.event((e, event) => {
170
+ if (dd.link) {
171
+ gvc.glitter.href = dd.link;
172
+ gvc.glitter.closeDrawer();
173
+ }
174
+ event.stopPropagation();
175
+ event.preventDefault();
176
+ })}"
177
+ >
178
+ ${dd.title}
179
+ </div>
180
+ ${(dd.items ?? []).length
181
+ ? html` <i
182
+ class="fa-solid ${dd.open
183
+ ? `fa-angle-up`
184
+ : `fa-angle-down`}"
185
+ style="color: ${widget.formData.theme_color[
186
+ 'title'
187
+ ] ?? '#000'} !important;"
188
+ ></i>`
189
+ : ``}
190
+ </div>
191
+ ${dd.open
192
+ ? `<ul class="ps-3 pb-2">${loopItems(dd.items ?? [], false)}</ul>`
193
+ : ``}
194
+ </li>
195
+ `;
184
196
  })
185
197
  .join('');
186
- }
198
+ }
187
199
 
188
- return loopItems(vm.data, true);
189
- },
190
- divCreate: {
191
- class: `navbar-nav me-auto mb-2 mb-lg-0`,
192
- style: ``,
193
- elem: `ul`,
194
- },
195
- };
196
- })}
197
- </div>`;
198
- },
199
- divCreate: {
200
- class: `w-100 h-100`,
201
- style: `z-index: 9999;overflow-y:auto;
200
+ return loopItems(vm.data, true);
201
+ },
202
+ divCreate: {
203
+ class: `navbar-nav me-auto mb-2 mb-lg-0`,
204
+ style: ``,
205
+ elem: `ul`,
206
+ },
207
+ };
208
+ })}
209
+ </div>`;
210
+ },
211
+ divCreate: {
212
+ class: `w-100 h-100`,
213
+ style: `z-index: 9999;overflow-y:auto;
202
214
  background: ${colors.bgr ?? '#000'};overflow-x: hidden;`,
203
- },
204
- };
205
- }),
206
- () => {
207
- gvc.glitter.openDrawer(280);
208
- },
209
- );
210
- })}"
215
+ },
216
+ };
217
+ }),
218
+ () => {
219
+ gvc.glitter.openDrawer(280);
220
+ }
221
+ );
222
+ })}"
211
223
  >
212
224
  <i
213
225
  class="fa-solid fa-bars fa-fw d-md-none "
@@ -217,242 +229,257 @@ background: ${colors.bgr ?? '#000'};overflow-x: hidden;`,
217
229
  </div>
218
230
  <div class="${widget.formData.logo.type === 'text' ? `` : `h-100`}"
219
231
  onclick="${gvc.event(() => {
220
- changePage('index', 'home', {});
221
- })}"> ${
222
- widget.formData.logo.type === 'text'
223
- ? html`
224
- <div class=" fw-bold d-flex align-items-center h-100 mb-1 mb-sm-auto"
225
- style="font-size: 28px;line-height: 28px;color: ${widget.formData.theme_color['title'] ?? '#000'};">
226
- ${widget.formData.logo.value}
227
- </div>
228
- `
229
- : html`
230
- <div class="d-flex align-items-center justify-content-center h-100 py-2"><img
231
- src="${widget.formData.logo.value}" style="max-height: 100%;max-width:200px;" />
232
- </div> `
233
- }
232
+ changePage('index', 'home', {});
233
+ })}"> ${
234
+ widget.formData.logo.type === 'text'
235
+ ? html`
236
+ <div
237
+ class=" fw-bold d-flex align-items-center h-100 mb-1 mb-sm-auto"
238
+ style="font-size: 28px;line-height: 28px;color: ${widget.formData.theme_color[
239
+ 'title'
240
+ ] ?? '#000'};"
241
+ >
242
+ ${widget.formData.logo.value}
243
+ </div>
244
+ `
245
+ : html`
246
+ <div class="d-flex align-items-center justify-content-center h-100 py-2">
247
+ <img
248
+ src="${widget.formData.logo.value}"
249
+ style="max-height: 100%;max-width:200px;"
250
+ />
251
+ </div>
252
+ `
253
+ }
234
254
  </div>
235
255
  <!--選單列表顯示區塊-->
236
256
  <ul class="navbar-nav d-none d-md-block flex-fill ps-2" style="">
237
257
  ${gvc.bindView(() => {
238
- const id = gvc.glitter.getUUID();
239
- const vm = {
240
- data: [],
241
- };
242
- ApiUser.getPublicConfig('menu-setting', 'manager', (window as any).appName).then((res) => {
243
- vm.data = res.response.value[Language.getLanguage()];
244
- gvc.notifyDataChange(id);
245
- });
246
- return {
247
- bind: id,
248
- view: () => {
249
-
250
- function loopItems(data: any) {
251
- return data
252
- .map((dd: any) => {
253
- return html`
254
- <li class="nav-item dropdown">
255
- <a
256
- class="nav-link header-link "
257
- style="color: ${widget.formData.theme_color['title'] ?? '#000'} !important;cursor: pointer;font-size: 15px;"
258
- onclick="${gvc.event(() => {
259
- if (dd.link) {
260
- gvc.glitter.href = dd.link;
261
- }
262
- })}"
263
- >${dd.title}
264
- ${dd.items.length > 0 ? `<i class="fa-solid fa-angle-down ms-2"></i>` : ``}</a
265
- >
266
- ${dd.items.length > 0
267
- ? html`
268
- <ul
269
- class="dropdown-menu"
270
- style="background:${widget.formData.theme_color['background'] ?? '#000'} !important; cursor: pointer; z-index: 99999;"
271
- >
272
- ${loopItems(dd.items)}
273
- </ul>`
274
- : ``}
275
- </li>`;
276
- })
277
- .join('');
278
- }
258
+ const id = gvc.glitter.getUUID();
259
+ const vm = {
260
+ data: [],
261
+ };
262
+ ApiUser.getPublicConfig('menu-setting', 'manager', (window as any).appName).then(res => {
263
+ vm.data = res.response.value[Language.getLanguage()];
264
+ gvc.notifyDataChange(id);
265
+ });
266
+ return {
267
+ bind: id,
268
+ view: () => {
269
+ function loopItems(data: any) {
270
+ return data
271
+ .map((dd: any) => {
272
+ return html` <li class="nav-item dropdown">
273
+ <a
274
+ class="nav-link header-link "
275
+ style="color: ${widget.formData.theme_color['title'] ??
276
+ '#000'} !important;cursor: pointer;font-size: 15px;"
277
+ onclick="${gvc.event(() => {
278
+ if (dd.link) {
279
+ gvc.glitter.href = dd.link;
280
+ }
281
+ })}"
282
+ >${dd.title}
283
+ ${dd.items.length > 0
284
+ ? `<i class="fa-solid fa-angle-down ms-2"></i>`
285
+ : ``}</a
286
+ >
287
+ ${dd.items.length > 0
288
+ ? html` <ul
289
+ class="dropdown-menu"
290
+ style="background:${widget.formData.theme_color['background'] ??
291
+ '#000'} !important; cursor: pointer; z-index: 99999;"
292
+ >
293
+ ${loopItems(dd.items)}
294
+ </ul>`
295
+ : ``}
296
+ </li>`;
297
+ })
298
+ .join('');
299
+ }
279
300
 
280
- return loopItems(vm.data);
281
- },
282
- divCreate: {
283
- class: `navbar-nav ms-3 me-auto`,
284
- style: `flex-direction: row; gap: 15px;`,
285
- elem: `ul`,
286
- },
287
- };
288
- })}
301
+ return loopItems(vm.data);
302
+ },
303
+ divCreate: {
304
+ class: `navbar-nav ms-3 me-auto`,
305
+ style: `flex-direction: row; gap: 15px;`,
306
+ elem: `ul`,
307
+ },
308
+ };
309
+ })}
289
310
  </ul>
290
311
  <div class="d-flex align-items-center ms-auto">
291
312
  <!--固定按鈕顯示區塊-->
292
313
  <ul class="navbar-nav flex-row ms-auto">
293
314
  ${gvc.bindView(() => {
294
- const id = gvc.glitter.getUUID();
295
- const vm = {
296
- visible: false,
297
- };
298
- ApiUser.getPublicConfig('store-information', 'manager').then((res) => {
299
- if (res.response.value.ai_search) {
300
- vm.visible = true;
301
- gvc.notifyDataChange(id);
302
- }
303
- });
304
- return {
305
- bind: id,
306
- view: () => {
307
- return html`
308
- <div
309
- class="d-flex align-items-center justify-content-center "
310
- style="color: ${widget.formData.theme_color['title'] ?? '#000'} !important;width:30px;height:30px;font-size: 15px;
315
+ const id = gvc.glitter.getUUID();
316
+ const vm = {
317
+ visible: false,
318
+ };
319
+ ApiUser.getPublicConfig('store-information', 'manager').then(res => {
320
+ if (res.response.value.ai_search) {
321
+ vm.visible = true;
322
+ gvc.notifyDataChange(id);
323
+ }
324
+ });
325
+ return {
326
+ bind: id,
327
+ view: () => {
328
+ return html` <div
329
+ class="d-flex align-items-center justify-content-center "
330
+ style="color: ${widget.formData.theme_color['title'] ??
331
+ '#000'} !important;width:30px;height:30px;font-size: 15px;
311
332
  border: 2px solid ${widget.formData.theme_color['title'] ?? '#000'} !important;
312
333
  border-radius: 50%;
313
334
  font-weight: 700 !important;
314
335
  padding-bottom: 2px;
315
336
  "
316
- >
317
- AI
318
- </div>`;
319
- },
320
- divCreate: () => {
321
- return {
322
- class: `nav-item ${vm.visible ? `d-flex` : `d-none`} align-items-center justify-content-center`,
323
- style: `width:48px !important;cursor: pointer;`,
324
- option: [
325
- {
326
- key: 'onclick',
327
- value: gvc.event(() => {
328
- AiSearch.searchProduct(gvc);
329
- }),
337
+ >
338
+ AI
339
+ </div>`;
340
+ },
341
+ divCreate: () => {
342
+ return {
343
+ class: `nav-item ${vm.visible ? `d-flex` : `d-none`} align-items-center justify-content-center`,
344
+ style: `width:48px !important;cursor: pointer;`,
345
+ option: [
346
+ {
347
+ key: 'onclick',
348
+ value: gvc.event(() => {
349
+ AiSearch.searchProduct(gvc);
350
+ }),
351
+ },
352
+ ],
353
+ };
330
354
  },
331
- ],
332
- };
333
- },
334
- };
335
- })}
336
- ${(HeaderClass.hideShopperBtn()) ? `` : `<li class="nav-item d-none d-sm-flex align-items-center justify-content-center "
355
+ };
356
+ })}
357
+ ${
358
+ HeaderClass.hideShopperBtn()
359
+ ? ``
360
+ : `<li class="nav-item d-none d-sm-flex align-items-center justify-content-center "
337
361
  style="">
338
362
  ${gvc.bindView(() => {
339
- const vm = {
340
- id: gvc.glitter.getUUID(),
341
- toggle: false,
342
- };
343
- return {
344
- bind: vm.id,
345
- view: () => {
346
-
347
- if (!vm.toggle) {
348
- return html`<i
349
- class="fa-regular fa-magnifying-glass"
350
- style="color: ${widget.formData.theme_color['title'] ?? '#000'};cursor: pointer;font-size:20px;"
351
- onclick="${gvc.event(() => {
352
- vm.toggle = !vm.toggle;
353
- gvc.notifyDataChange(vm.id);
354
- })}"
355
- ></i>`;
356
- } else {
357
- return html`<a
358
- class="nav-link search-container d-flex align-items-center"
359
- ><i
360
- class="fa-regular fa-circle-xmark"
361
- style="color: ${widget.formData.theme_color['title'] ?? '#000'};cursor: pointer;font-size:20px;"
362
- onclick="${gvc.event(() => {
363
- vm.toggle = !vm.toggle;
364
- gvc.notifyDataChange(vm.id);
365
- })}"
366
- ></i
367
- ><input
368
- class="ms-3 form-control"
369
- style="height:40px;"
370
- placeholder="${Language.text('input_product_keyword')}"
371
- autocomplete="off"
372
- onchange="${gvc.event((e, event) => {
373
- gvc.glitter.href = `/all-product?search=${e.value}`;
374
- vm.toggle = !vm.toggle;
375
- gvc.notifyDataChange(vm.id);
376
- })}"
377
- />
378
- </a>`;
379
- }
380
- },
381
- divCreate: {
382
- class: `nav-link search-container`,
383
- elem: `a`,
384
- },
385
- };
386
- })}
387
- </li>`}
363
+ const vm = {
364
+ id: gvc.glitter.getUUID(),
365
+ toggle: false,
366
+ };
367
+ return {
368
+ bind: vm.id,
369
+ view: () => {
370
+ if (!vm.toggle) {
371
+ return html`<i
372
+ class="fa-regular fa-magnifying-glass"
373
+ style="color: ${widget.formData.theme_color['title'] ??
374
+ '#000'};cursor: pointer;font-size:20px;"
375
+ onclick="${gvc.event(() => {
376
+ vm.toggle = !vm.toggle;
377
+ gvc.notifyDataChange(vm.id);
378
+ })}"
379
+ ></i>`;
380
+ } else {
381
+ return html`<a class="nav-link search-container d-flex align-items-center"
382
+ ><i
383
+ class="fa-regular fa-circle-xmark"
384
+ style="color: ${widget.formData.theme_color['title'] ??
385
+ '#000'};cursor: pointer;font-size:20px;"
386
+ onclick="${gvc.event(() => {
387
+ vm.toggle = !vm.toggle;
388
+ gvc.notifyDataChange(vm.id);
389
+ })}"
390
+ ></i
391
+ ><input
392
+ class="ms-3 form-control"
393
+ style="height:40px;"
394
+ placeholder="${Language.text('input_product_keyword')}"
395
+ autocomplete="off"
396
+ onchange="${gvc.event((e, event) => {
397
+ gvc.glitter.href = `/all-product?search=${`${e.value}`.trim()}`;
398
+ vm.toggle = !vm.toggle;
399
+ gvc.notifyDataChange(vm.id);
400
+ })}"
401
+ />
402
+ </a>`;
403
+ }
404
+ },
405
+ divCreate: {
406
+ class: `nav-link search-container`,
407
+ elem: `a`,
408
+ },
409
+ };
410
+ })}
411
+ </li>`
412
+ }
388
413
  <li class="nav-item d-flex align-items-center justify-content-center"
389
414
  style="width:40px !important;">
390
415
  ${gvc.bindView(() => {
391
- const vm = {
392
- id: gvc.glitter.getUUID(),
393
- count: 0,
394
- };
416
+ const vm = {
417
+ id: gvc.glitter.getUUID(),
418
+ count: 0,
419
+ };
395
420
 
396
- return {
397
- bind: vm.id,
398
- view: () => {
399
- return html`<span
400
- class="position-relative"
401
- onclick="${gvc.event(() => {
402
- HeaderClass.rightCartMenu(gvc, widget);
403
- })}"
404
- >
405
- <i
406
- class="fa-duotone fa-cart-shopping"
407
- style="color: ${widget.formData.theme_color['title'] ?? '#000'} !important;cursor: pointer;font-size:20px;"
408
- ></i>
409
- ${gvc.bindView(() => {
410
- return {
411
- bind: gvc.glitter.getUUID(),
412
- view: () => {
413
- return new Promise((resolve, reject) => {
414
- getCheckoutCount((count) => {
415
- vm.count = count;
416
- resolve(
417
- vm.count
418
- ? html`
419
- <div class="position-absolute"
420
- style="font-size: 10px;right: -10px;top: -6px;">
421
- <div
422
- class="rounded-circle bg-danger text-white align-items-center justify-content-center fw-500 d-flex"
423
- style="width:18px;height: 18px;color: white !important;background:#fe5541;"
424
- >
425
- ${vm.count}
426
- </div>
427
- </div>`
428
- : ``,
429
- );
430
- });
431
- });
432
- },
433
- };
434
- })}
435
- </span>`;
436
- },
437
- divCreate: {
438
- class: `nav-link js-cart-count `,
439
- },
440
- };
441
- })}
421
+ return {
422
+ bind: vm.id,
423
+ view: () => {
424
+ return html`<span
425
+ class="position-relative"
426
+ onclick="${gvc.event(() => {
427
+ HeaderClass.rightCartMenu(gvc, widget);
428
+ })}"
429
+ >
430
+ <i
431
+ class="fa-duotone fa-cart-shopping"
432
+ style="color: ${widget.formData.theme_color['title'] ??
433
+ '#000'} !important;cursor: pointer;font-size:20px;"
434
+ ></i>
435
+ ${gvc.bindView(() => {
436
+ return {
437
+ bind: gvc.glitter.getUUID(),
438
+ view: () => {
439
+ return new Promise((resolve, reject) => {
440
+ getCheckoutCount(count => {
441
+ vm.count = count;
442
+ resolve(
443
+ vm.count
444
+ ? html` <div
445
+ class="position-absolute"
446
+ style="font-size: 10px;right: -10px;top: -6px;"
447
+ >
448
+ <div
449
+ class="rounded-circle bg-danger text-white align-items-center justify-content-center fw-500 d-flex"
450
+ style="width:18px;height: 18px;color: white !important;background:#fe5541;"
451
+ >
452
+ ${vm.count}
453
+ </div>
454
+ </div>`
455
+ : ``
456
+ );
457
+ });
458
+ });
459
+ },
460
+ };
461
+ })}
462
+ </span>`;
463
+ },
464
+ divCreate: {
465
+ class: `nav-link js-cart-count `,
466
+ },
467
+ };
468
+ })}
442
469
  </li>
443
470
  <li
444
471
  class="nav-item d-flex align-items-center justify-content-center ms-3 "
445
472
  style=""
446
473
  onclick="${gvc.event(() => {
447
- if (GlobalUser.token) {
448
- changePage('account_userinfo', 'page', {});
449
- } else {
450
- if (localStorage.getItem('redirect_cart') === 'true') {
451
- localStorage.removeItem('redirect_cart');
452
- }
453
- changePage('login', 'page', {});
454
- }
455
- })}"
474
+ if (GlobalUser.token) {
475
+ changePage('account_userinfo', 'page', {});
476
+ } else {
477
+ if (localStorage.getItem('redirect_cart') === 'true') {
478
+ localStorage.removeItem('redirect_cart');
479
+ }
480
+ changePage('login', 'page', {});
481
+ }
482
+ })}"
456
483
  >
457
484
  <div
458
485
  class=""
@@ -473,16 +500,16 @@ border-radius: 5px;"
473
500
  </div>
474
501
  </div>
475
502
  </nav>`;
476
- },
477
- mobile:()=>{
478
- return HeaderMobile.mian({
479
- gvc:gvc,
480
- widget:widget
481
- })
482
- },
483
- gvc:gvc
484
- })
485
- }
503
+ },
504
+ mobile: () => {
505
+ return HeaderMobile.mian({
506
+ gvc: gvc,
507
+ widget: widget,
508
+ });
509
+ },
510
+ gvc: gvc,
511
+ });
512
+ }
486
513
  }
487
514
 
488
515
  (window as any).glitter.setModule(import.meta.url, Sy02);