ts-glitter 20.7.3 → 20.7.5

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 (248) hide show
  1. package/jr9x7k3aau.json +1 -0
  2. package/lowcode/Entry.js +1 -1
  3. package/lowcode/Entry.ts +1 -1
  4. package/lowcode/backend-manager/bg-notify.js +2 -0
  5. package/lowcode/backend-manager/bg-notify.ts +2 -0
  6. package/lowcode/backend-manager/bg-widget.js +280 -155
  7. package/lowcode/backend-manager/bg-widget.ts +387 -244
  8. package/lowcode/backend-manager/splitPage.js +27 -52
  9. package/lowcode/backend-manager/splitPage.ts +29 -47
  10. package/lowcode/cms-plugin/app-release.js +63 -13
  11. package/lowcode/cms-plugin/app-release.ts +73 -13
  12. package/lowcode/cms-plugin/auto-fcm-advertise.js +23 -24
  13. package/lowcode/cms-plugin/auto-fcm-advertise.ts +286 -285
  14. package/lowcode/cms-plugin/auto-reply.js +285 -273
  15. package/lowcode/cms-plugin/auto-reply.ts +673 -660
  16. package/lowcode/cms-plugin/module/data.ts +1 -0
  17. package/lowcode/cms-plugin/module/order-setting.js +134 -117
  18. package/lowcode/cms-plugin/module/order-setting.ts +152 -138
  19. package/lowcode/cms-plugin/pos-pages/products-page.js +8 -16
  20. package/lowcode/cms-plugin/pos-pages/products-page.ts +10 -12
  21. package/lowcode/cms-plugin/shopping-order-manager.js +244 -289
  22. package/lowcode/cms-plugin/shopping-order-manager.ts +128 -156
  23. package/lowcode/cms-plugin/shopping-order-return.js +1 -1
  24. package/lowcode/cms-plugin/shopping-order-return.ts +1 -1
  25. package/lowcode/cms-plugin/shopping-product-setting.js +3 -3
  26. package/lowcode/cms-plugin/shopping-product-setting.ts +3 -3
  27. package/lowcode/cms-plugin/shopping-setting-advance.js +3 -28
  28. package/lowcode/cms-plugin/shopping-setting-advance.ts +3 -28
  29. package/lowcode/cms-plugin/stock-history.js +31 -15
  30. package/lowcode/cms-plugin/stock-history.ts +43 -25
  31. package/lowcode/cms-plugin/third-party-google.js +103 -81
  32. package/lowcode/cms-plugin/third-party-google.ts +296 -265
  33. package/lowcode/cms-plugin/user-list.js +166 -113
  34. package/lowcode/cms-plugin/user-list.ts +136 -78
  35. package/lowcode/form-view/e-commerce/path-select.js +100 -87
  36. package/lowcode/form-view/e-commerce/path-select.ts +372 -343
  37. package/lowcode/glitter-base/route/stock.ts +153 -141
  38. package/lowcode/glitterBundle/plugins/editor-elem.js +139 -149
  39. package/lowcode/glitterBundle/plugins/editor-elem.ts +207 -222
  40. package/lowcode/public-components/blogs/list.js +8 -16
  41. package/lowcode/public-components/blogs/list.ts +10 -12
  42. package/lowcode/public-components/product/product-list.js +8 -16
  43. package/lowcode/public-components/product/product-list.ts +10 -12
  44. package/lowcode/public-components/user-manager/um-login.js +270 -267
  45. package/lowcode/public-components/user-manager/um-login.ts +987 -983
  46. package/lowcode/public-models/order-info.js +12 -20
  47. package/lowcode/public-models/order-info.ts +13 -12
  48. package/package.json +1 -1
  49. package/src/Language.js.map +1 -1
  50. package/src/api-public/controllers/ai-chat.js.map +1 -1
  51. package/src/api-public/controllers/ai-points.js.map +1 -1
  52. package/src/api-public/controllers/app-release.js.map +1 -1
  53. package/src/api-public/controllers/article.js.map +1 -1
  54. package/src/api-public/controllers/chat.js.map +1 -1
  55. package/src/api-public/controllers/customer-sessions.js.map +1 -1
  56. package/src/api-public/controllers/delivery.js.map +1 -1
  57. package/src/api-public/controllers/fb-message.js.map +1 -1
  58. package/src/api-public/controllers/fb-service.js.map +1 -1
  59. package/src/api-public/controllers/fcm.js.map +1 -1
  60. package/src/api-public/controllers/graph-api.js.map +1 -1
  61. package/src/api-public/controllers/index.js.map +1 -1
  62. package/src/api-public/controllers/invoice.js.map +1 -1
  63. package/src/api-public/controllers/lambda.js.map +1 -1
  64. package/src/api-public/controllers/line-message.js.map +1 -1
  65. package/src/api-public/controllers/manager.js.map +1 -1
  66. package/src/api-public/controllers/oauth.js.map +1 -1
  67. package/src/api-public/controllers/post.js.map +1 -1
  68. package/src/api-public/controllers/progress.js.map +1 -1
  69. package/src/api-public/controllers/rebate.js.map +1 -1
  70. package/src/api-public/controllers/recommend.js.map +1 -1
  71. package/src/api-public/controllers/reconciliation.js.map +1 -1
  72. package/src/api-public/controllers/shop.js.map +1 -1
  73. package/src/api-public/controllers/shopee.js.map +1 -1
  74. package/src/api-public/controllers/sms-points.js.map +1 -1
  75. package/src/api-public/controllers/sms.js.map +1 -1
  76. package/src/api-public/controllers/smtp.js.map +1 -1
  77. package/src/api-public/controllers/sql_api.js.map +1 -1
  78. package/src/api-public/controllers/stock.js.map +1 -1
  79. package/src/api-public/controllers/track.js.map +1 -1
  80. package/src/api-public/controllers/user.js +1 -1
  81. package/src/api-public/controllers/user.js.map +1 -1
  82. package/src/api-public/controllers/user.ts +1 -1
  83. package/src/api-public/controllers/voucher.js.map +1 -1
  84. package/src/api-public/controllers/wallet.js.map +1 -1
  85. package/src/api-public/models/glitter-finance.js +2 -1
  86. package/src/api-public/models/glitter-finance.js.map +1 -1
  87. package/src/api-public/services/EcInvoice.js.map +1 -1
  88. package/src/api-public/services/ai-pointes.js.map +1 -1
  89. package/src/api-public/services/ai-robot.d.ts +1 -0
  90. package/src/api-public/services/ai-robot.js.map +1 -1
  91. package/src/api-public/services/article.js.map +1 -1
  92. package/src/api-public/services/auto-send-email.js.map +1 -1
  93. package/src/api-public/services/chat.js.map +1 -1
  94. package/src/api-public/services/checkout-event.d.ts +3 -1
  95. package/src/api-public/services/checkout-event.js +7 -4
  96. package/src/api-public/services/checkout-event.js.map +1 -1
  97. package/src/api-public/services/checkout-event.ts +26 -17
  98. package/src/api-public/services/checkout.js.map +1 -1
  99. package/src/api-public/services/custom-code.js.map +1 -1
  100. package/src/api-public/services/customer-sessions.js.map +1 -1
  101. package/src/api-public/services/data-analyze.js +3 -3
  102. package/src/api-public/services/data-analyze.js.map +1 -1
  103. package/src/api-public/services/data-analyze.ts +3 -3
  104. package/src/api-public/services/delivery.js.map +1 -1
  105. package/src/api-public/services/ezpay/tool.d.ts +1 -0
  106. package/src/api-public/services/ezpay/tool.js.map +1 -1
  107. package/src/api-public/services/fake-data-model/fake-order.js.map +1 -1
  108. package/src/api-public/services/fake-data-model/fake-product.js.map +1 -1
  109. package/src/api-public/services/fake-data-model/fake-user.js.map +1 -1
  110. package/src/api-public/services/fb-api.d.ts +1 -0
  111. package/src/api-public/services/fb-api.js.map +1 -1
  112. package/src/api-public/services/fb-message.d.ts +1 -0
  113. package/src/api-public/services/fb-message.js.map +1 -1
  114. package/src/api-public/services/fb-service.js +4 -4
  115. package/src/api-public/services/fb-service.js.map +1 -1
  116. package/src/api-public/services/filter-protect-data.js.map +1 -1
  117. package/src/api-public/services/financial-service.d.ts +1 -0
  118. package/src/api-public/services/financial-service.js.map +1 -1
  119. package/src/api-public/services/form-check.js.map +1 -1
  120. package/src/api-public/services/graph-api.js.map +1 -1
  121. package/src/api-public/services/initial-fake-data.js.map +1 -1
  122. package/src/api-public/services/invoice.js.map +1 -1
  123. package/src/api-public/services/language-setting.js.map +1 -1
  124. package/src/api-public/services/line-message.d.ts +1 -0
  125. package/src/api-public/services/line-message.js.map +1 -1
  126. package/src/api-public/services/mail.js.map +1 -1
  127. package/src/api-public/services/manager.js.map +1 -1
  128. package/src/api-public/services/model/handlePaymentTransaction.js.map +1 -1
  129. package/src/api-public/services/model/shopnex-line-message.js.map +1 -1
  130. package/src/api-public/services/monitor.d.ts +1 -0
  131. package/src/api-public/services/monitor.js.map +1 -1
  132. package/src/api-public/services/notify.js.map +1 -1
  133. package/src/api-public/services/order-event.js.map +1 -1
  134. package/src/api-public/services/paynow-logistics.js.map +1 -1
  135. package/src/api-public/services/phone-verify.js.map +1 -1
  136. package/src/api-public/services/pos.js.map +1 -1
  137. package/src/api-public/services/post.js.map +1 -1
  138. package/src/api-public/services/product-initial.js.map +1 -1
  139. package/src/api-public/services/public-table-check.js.map +1 -1
  140. package/src/api-public/services/rebate.js.map +1 -1
  141. package/src/api-public/services/recommend.js.map +1 -1
  142. package/src/api-public/services/reconciliation.js.map +1 -1
  143. package/src/api-public/services/schedule.js.map +1 -1
  144. package/src/api-public/services/share-permission.d.ts +1 -1
  145. package/src/api-public/services/share-permission.js.map +1 -1
  146. package/src/api-public/services/shopee.d.ts +1 -0
  147. package/src/api-public/services/shopee.js.map +1 -1
  148. package/src/api-public/services/shopping.js +5 -9
  149. package/src/api-public/services/shopping.js.map +1 -1
  150. package/src/api-public/services/shopping.ts +4 -10
  151. package/src/api-public/services/sms-pointes.js.map +1 -1
  152. package/src/api-public/services/sms.js.map +1 -1
  153. package/src/api-public/services/stock.js.map +1 -1
  154. package/src/api-public/services/terms-check.js.map +1 -1
  155. package/src/api-public/services/updated-table-checked.js.map +1 -1
  156. package/src/api-public/services/user-update.js.map +1 -1
  157. package/src/api-public/services/user.d.ts +6 -1
  158. package/src/api-public/services/user.js +30 -15
  159. package/src/api-public/services/user.js.map +1 -1
  160. package/src/api-public/services/user.ts +109 -91
  161. package/src/api-public/services/voucher.js.map +1 -1
  162. package/src/api-public/services/wallet.js.map +1 -1
  163. package/src/api-public/services/workers.js.map +1 -1
  164. package/src/api-public/utils/ut-database.js.map +1 -1
  165. package/src/api-public/utils/ut-permission.d.ts +1 -0
  166. package/src/api-public/utils/ut-permission.js.map +1 -1
  167. package/src/app-project/serverless/src/controllers/index.js.map +1 -1
  168. package/src/app-project/serverless/src/controllers/sample.js.map +1 -1
  169. package/src/app-project/serverless/src/modules/database.d.ts +2 -1
  170. package/src/app-project/serverless/src/modules/database.js.map +1 -1
  171. package/src/app-project/serverless/src/modules/exception.js.map +1 -1
  172. package/src/app-project/serverless/src/modules/hooks.js.map +1 -1
  173. package/src/app-project/serverless/src/modules/logger.js.map +1 -1
  174. package/src/app-project/serverless/src/modules/redis.d.ts +1 -1
  175. package/src/app-project/serverless/src/modules/redis.js.map +1 -1
  176. package/src/app-project/serverless/src/modules/response.js.map +1 -1
  177. package/src/app-project/serverless/src/modules/ssh.js.map +1 -1
  178. package/src/config.d.ts +1 -1
  179. package/src/config.js.map +1 -1
  180. package/src/controllers/ai.js.map +1 -1
  181. package/src/controllers/app.js.map +1 -1
  182. package/src/controllers/backend-server.js.map +1 -1
  183. package/src/controllers/filemanager.js.map +1 -1
  184. package/src/controllers/global-event.js.map +1 -1
  185. package/src/controllers/index.js.map +1 -1
  186. package/src/controllers/page.js.map +1 -1
  187. package/src/controllers/private_config.js.map +1 -1
  188. package/src/controllers/template.js.map +1 -1
  189. package/src/controllers/user.js.map +1 -1
  190. package/src/domain-check.js.map +1 -1
  191. package/src/export/export-test.js.map +1 -1
  192. package/src/firebase/message.js +2 -1
  193. package/src/firebase/message.js.map +1 -1
  194. package/src/helper/app_creater.js +2 -1
  195. package/src/helper/app_creater.js.map +1 -1
  196. package/src/helper/glitter-util.d.ts +1 -0
  197. package/src/helper/glitter-util.js.map +1 -1
  198. package/src/index.js +3 -3
  199. package/src/index.js.map +1 -1
  200. package/src/lambda/interface.d.ts +1 -1
  201. package/src/lambda/interface.js +2 -2
  202. package/src/lambda/interface.js.map +1 -1
  203. package/src/modules/AWSLib.js +3 -2
  204. package/src/modules/AWSLib.js.map +1 -1
  205. package/src/modules/caught-error.js.map +1 -1
  206. package/src/modules/database.d.ts +2 -1
  207. package/src/modules/database.js.map +1 -1
  208. package/src/modules/exception.js.map +1 -1
  209. package/src/modules/firebase.js.map +1 -1
  210. package/src/modules/hooks.js.map +1 -1
  211. package/src/modules/logger.js.map +1 -1
  212. package/src/modules/redis.d.ts +1 -1
  213. package/src/modules/redis.js.map +1 -1
  214. package/src/modules/response.js.map +1 -1
  215. package/src/modules/ssh.js.map +1 -1
  216. package/src/modules/tool.d.ts +4 -4
  217. package/src/modules/tool.js +2 -1
  218. package/src/modules/tool.js.map +1 -1
  219. package/src/public-config-initial/auto-fcm.js.map +1 -1
  220. package/src/run.js +2 -1
  221. package/src/run.js.map +1 -1
  222. package/src/seo-config.d.ts +1 -0
  223. package/src/seo-config.js +3 -3
  224. package/src/seo-config.js.map +1 -1
  225. package/src/services/ai.js.map +1 -1
  226. package/src/services/app.js.map +1 -1
  227. package/src/services/backend-service.js.map +1 -1
  228. package/src/services/create-instance.js +4 -3
  229. package/src/services/create-instance.js.map +1 -1
  230. package/src/services/global-event.js.map +1 -1
  231. package/src/services/ios-release.js.map +1 -1
  232. package/src/services/page.js.map +1 -1
  233. package/src/services/private_config.js.map +1 -1
  234. package/src/services/release.js.map +1 -1
  235. package/src/services/saas-table-check.js +2 -2
  236. package/src/services/saas-table-check.js.map +1 -1
  237. package/src/services/seo.js.map +1 -1
  238. package/src/services/ses.js +2 -1
  239. package/src/services/ses.js.map +1 -1
  240. package/src/services/system-schedule.js.map +1 -1
  241. package/src/services/template.js.map +1 -1
  242. package/src/services/tool.js +3 -2
  243. package/src/services/tool.js.map +1 -1
  244. package/src/services/user.js.map +1 -1
  245. package/src/services/web-socket.js.map +1 -1
  246. package/src/update-progress-track.js.map +1 -1
  247. package/src/update-script.js.map +1 -1
  248. package/src/api-public/services/checkout-service.js +0 -1074
@@ -142,14 +142,14 @@ export class BgWidget {
142
142
  }
143
143
  static disableButton(text, obj) {
144
144
  var _a;
145
- return html ` <button class="btn btn-gray-disable" style="" type="button">
145
+ return html ` <button class="btn btn-gray-disable" type="button">
146
146
  <i class="${obj && obj.icon && obj.icon.length > 0 ? obj.icon : 'd-none'}" style="color: #393939"></i>
147
147
  ${text.length > 0 ? html `<span class="tx_700" style="${(_a = obj === null || obj === void 0 ? void 0 : obj.textStyle) !== null && _a !== void 0 ? _a : ''}">${text}</span>` : ''}
148
148
  </button>`;
149
149
  }
150
150
  static grayButton(text, event, obj) {
151
151
  var _a;
152
- return html ` <button class="btn btn-gray ${(obj === null || obj === void 0 ? void 0 : obj.class) || ''}" style="" type="button" onclick="${event}">
152
+ return html ` <button class="btn btn-gray ${(obj === null || obj === void 0 ? void 0 : obj.class) || ''}" type="button" onclick="${event}">
153
153
  <i class="${obj && obj.icon && obj.icon.length > 0 ? obj.icon : 'd-none'}" style="color: #393939"></i>
154
154
  ${text.length > 0 ? html `<span class="tx_700" style="${(_a = obj === null || obj === void 0 ? void 0 : obj.textStyle) !== null && _a !== void 0 ? _a : ''}">${text}</span>` : ''}
155
155
  </button>`;
@@ -241,7 +241,6 @@ export class BgWidget {
241
241
  ></i>
242
242
  <div class="w-100 d-none" style="position: absolute;left: 0;top: 100%;z-index:2;">
243
243
  <div
244
- class=""
245
244
  style="height: 100vh;width: 100vw;position: fixed;left: 0;top: 0;z-index:3;"
246
245
  onclick="${gvc.event(e => {
247
246
  if (e.parentElement) {
@@ -525,15 +524,16 @@ export class BgWidget {
525
524
  gvc.notifyDataChange('editDialog');
526
525
  };
527
526
  reload();
528
- return `<div class="${vm.edit_mode ? `m-n3` : `m-n2`}">${gvc.bindView({
527
+ return html `<div class="${vm.edit_mode ? `m-n3` : `m-n2`}">
528
+ ${gvc.bindView({
529
529
  bind: 'editDialog',
530
530
  view: () => __awaiter(this, void 0, void 0, function* () {
531
531
  reload = () => {
532
532
  gvc.recreateView();
533
533
  };
534
534
  return html `
535
- <div class="d-flex flex-column" style="left: 0;top:0;background-color: white;z-index:1;">
536
- ${BgWidget.tableV3({
535
+ <div class="d-flex flex-column" style="left: 0;top:0;background-color: white;z-index:1;">
536
+ ${BgWidget.tableV3({
537
537
  gvc: gvc,
538
538
  getData: vmi => {
539
539
  if (!vm.loading) {
@@ -545,32 +545,32 @@ export class BgWidget {
545
545
  : {
546
546
  key: '',
547
547
  value: html `
548
- <div
549
- class="w-100"
550
- style="justify-content: center; align-items: center; gap: 4px; display: flex;color: #3366BB;cursor: pointer;"
551
- data-bs-toggle="dropdown"
552
- aria-haspopup="true"
553
- aria-expanded="false"
554
- onclick="${gvc.event(() => {
548
+ <div
549
+ class="w-100"
550
+ style="justify-content: center; align-items: center; gap: 4px; display: flex;color: #3366BB;cursor: pointer;"
551
+ data-bs-toggle="dropdown"
552
+ aria-haspopup="true"
553
+ aria-expanded="false"
554
+ onclick="${gvc.event(() => {
555
555
  obj.callback(dd.tag);
556
556
  gvc.closeDialog();
557
557
  })}"
558
- >
559
- <div
560
- style="font-size: 16px; font-family: Noto Sans; font-weight: 400; word-wrap: break-word"
561
558
  >
562
- 選擇
559
+ <div
560
+ style="font-size: 16px; font-family: Noto Sans; font-weight: 400; word-wrap: break-word"
561
+ >
562
+ 選擇
563
+ </div>
563
564
  </div>
564
- </div>
565
- `,
565
+ `,
566
566
  },
567
567
  {
568
568
  key: '標籤',
569
569
  value: html ` <div
570
- class="d-flex flex-shrink-0"
571
- style="width:${elementLength}px;font-size: 16px;font-style: normal;font-weight: 700;"
572
- >
573
- ${BgWidget.editeInput({
570
+ class="d-flex flex-shrink-0"
571
+ style="width:${elementLength}px;font-size: 16px;font-style: normal;font-weight: 700;"
572
+ >
573
+ ${BgWidget.editeInput({
574
574
  gvc: gvc,
575
575
  title: ``,
576
576
  placeHolder: '請輸入標籤',
@@ -581,16 +581,16 @@ export class BgWidget {
581
581
  default: dd.tag || '',
582
582
  readonly: !vm.edit_mode,
583
583
  })}
584
- </div>`,
584
+ </div>`,
585
585
  },
586
586
  ...Language.languageSupport().map(d1 => {
587
587
  return {
588
588
  key: d1.value,
589
589
  value: html ` <div
590
- class="d-flex flex-shrink-0"
591
- style="width:${elementLength}px;font-size: 16px;font-style: normal;font-weight: 700;"
592
- >
593
- ${BgWidget.editeInput({
590
+ class="d-flex flex-shrink-0"
591
+ style="width:${elementLength}px;font-size: 16px;font-style: normal;font-weight: 700;"
592
+ >
593
+ ${BgWidget.editeInput({
594
594
  gvc: gvc,
595
595
  title: ``,
596
596
  placeHolder: '請輸入內文',
@@ -601,7 +601,7 @@ export class BgWidget {
601
601
  default: dd[d1.key] || '',
602
602
  readonly: !vm.edit_mode,
603
603
  })}
604
- </div>`,
604
+ </div>`,
605
605
  };
606
606
  }),
607
607
  ].filter(dd => {
@@ -639,12 +639,11 @@ export class BgWidget {
639
639
  ]
640
640
  : [],
641
641
  })}
642
- </div>
643
- `;
642
+ </div>
643
+ `;
644
644
  }),
645
- divCreate: {},
646
- onCreate: () => { },
647
- })}</div>`;
645
+ })}
646
+ </div>`;
648
647
  },
649
648
  footer_html: (gvc) => {
650
649
  if (vm.edit_mode) {
@@ -898,13 +897,20 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
898
897
  componentFresh();
899
898
  };
900
899
  obj.gvc.addStyle(`
901
- #${dropMenu.elementClass} {
902
- font-size: 14px;
903
- margin-top: 8px;
904
- white-space: normal;
905
- word-break: break-all;
906
- }
907
- `);
900
+ #${dropMenu.elementClass} {
901
+ font-size: 14px;
902
+ margin-top: 8px;
903
+ white-space: normal;
904
+ word-break: break-all;
905
+ }
906
+ .tag-icon-bgr {
907
+ width: 25px;
908
+ height: 25px;
909
+ background-position: center;
910
+ background-size: cover;
911
+ background-repeat: no-repeat;
912
+ }
913
+ `);
908
914
  return obj.gvc.bindView({
909
915
  bind: vm.id,
910
916
  view: () => {
@@ -922,7 +928,9 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
922
928
  if (linkComp.loading) {
923
929
  return html ` <div
924
930
  class="bgw-input border rounded-3"
925
- style="${linkComp.text.length > 0 ? '' : 'padding: 9.5px 12px;'} ${(_a = obj.style) !== null && _a !== void 0 ? _a : ''}"
931
+ style="${linkComp.text.length > 0
932
+ ? 'padding: 8px 18px; height: 41.75px'
933
+ : 'padding: 9.5px 12px;'} ${(_a = obj.style) !== null && _a !== void 0 ? _a : ''}"
926
934
  id="${dropMenu.elementClass}"
927
935
  onclick="${obj.gvc.event(() => {
928
936
  componentFresh();
@@ -969,42 +977,39 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
969
977
  `;
970
978
  }
971
979
  },
972
- divCreate: {},
973
- onCreate: () => { },
974
980
  })}
975
981
  ${obj.gvc.bindView({
976
982
  bind: dropMenu.id,
977
- view: () => {
983
+ view: () => __awaiter(this, void 0, void 0, function* () {
978
984
  if (dropMenu.loading) {
979
985
  return '';
980
986
  }
981
987
  else {
982
- let h1 = '';
983
- if (dropMenu.prevList.length > 0) {
984
- h1 += html ` <div
985
- class="m-3 cursor_pointer"
986
- style="font-size: 16px; font-weight: 500; gap: 6px; line-height: 140%;"
987
- onclick=${obj.gvc.event(() => {
988
+ const barHTML = dropMenu.prevList.length > 0
989
+ ? html ` <div
990
+ class="m-3 cursor_pointer"
991
+ style="font-size: 16px; font-weight: 500; gap: 6px; line-height: 140%;"
992
+ onclick=${obj.gvc.event(() => {
988
993
  dataList = dropMenu.prevList[dropMenu.prevList.length - 1];
989
994
  dropMenu.prevList.pop();
990
995
  dropMenu.recentParent.pop();
991
996
  dropMenu.search = '';
992
997
  obj.gvc.notifyDataChange(dropMenu.id);
993
998
  })}
994
- >
995
- <i class="fa-solid fa-chevron-left me-2 hoverF2"></i>
996
- <span>${dropMenu.recentParent[dropMenu.recentParent.length - 1]}</span>
997
- </div>
998
- <input
999
- class="form-control m-2"
1000
- style="width: 92%"
1001
- type="text"
1002
- placeholder="搜尋"
1003
- onchange="${obj.gvc.event(e => {
999
+ >
1000
+ <i class="fa-solid fa-chevron-left me-2 hoverF2"></i>
1001
+ <span>${dropMenu.recentParent[dropMenu.recentParent.length - 1]}</span>
1002
+ </div>
1003
+ <input
1004
+ class="form-control m-2"
1005
+ style="width: calc(100% - 16.875px)"
1006
+ type="text"
1007
+ placeholder="搜尋"
1008
+ onchange="${obj.gvc.event(e => {
1004
1009
  dropMenu.search = e.value;
1005
1010
  obj.gvc.notifyDataChange(dropMenu.id);
1006
1011
  })}"
1007
- oninput="${obj.gvc.event(e => {
1012
+ oninput="${obj.gvc.event(e => {
1008
1013
  if (obj.pattern) {
1009
1014
  const value = e.value;
1010
1015
  const regex = new RegExp(`[^${obj.pattern}]`, 'g');
@@ -1014,78 +1019,122 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1014
1019
  }
1015
1020
  }
1016
1021
  })}"
1017
- value="${dropMenu.search}"
1018
- />`;
1022
+ value="${dropMenu.search}"
1023
+ />`
1024
+ : '';
1025
+ function getProductHTML() {
1026
+ return BgWidget.tableV3({
1027
+ gvc: obj.gvc,
1028
+ getData: vmi => {
1029
+ const limit = 10;
1030
+ ApiShop.getProduct({
1031
+ page: vmi.page - 1,
1032
+ limit: limit,
1033
+ search: dropMenu.search.trim(),
1034
+ searchType: 'title',
1035
+ status: 'inRange',
1036
+ }).then(data => {
1037
+ dataList = (data.response.data || []).map((item) => {
1038
+ const { id, title, preview_image } = item.content;
1039
+ const icon = preview_image && preview_image[0] ? preview_image[0] : '';
1040
+ return {
1041
+ name: title,
1042
+ icon: icon,
1043
+ link: `/products?product_id=${id}`,
1044
+ };
1045
+ });
1046
+ vmi.tableData = dataList.map(item => {
1047
+ return [
1048
+ {
1049
+ key: '商品名稱',
1050
+ value: html ` <div class="d-flex align-items-center" style="line-height: 32px;">
1051
+ ${BgWidget.validImageBox({
1052
+ gvc: obj.gvc,
1053
+ image: item.icon,
1054
+ width: 32,
1055
+ class: 'rounded border me-2',
1056
+ })}
1057
+ <div class="d-flex flex-column">
1058
+ <div>${Tool.truncateString(item.name)}</div>
1059
+ </div>
1060
+ </div>`,
1061
+ },
1062
+ ];
1063
+ });
1064
+ vmi.pageSize = Math.ceil(data.response.total / limit);
1065
+ vmi.originalData = data.response.data;
1066
+ vmi.loading = false;
1067
+ vmi.callback();
1068
+ });
1069
+ },
1070
+ rowClick: (_, index) => {
1071
+ callbackEvent(dataList[index]);
1072
+ },
1073
+ filter: [],
1074
+ });
1019
1075
  }
1020
- let h2 = '';
1021
- dataList
1022
- .filter(tag => {
1023
- return tag.name.includes(dropMenu.search);
1024
- })
1025
- .map(tag => {
1026
- h2 += html `
1027
- <div
1028
- class="m-2"
1029
- style="cursor:pointer;display: flex; align-items: center; justify-content: space-between;"
1030
- >
1076
+ function getDataListHTML() {
1077
+ return dataList
1078
+ .filter(tag => {
1079
+ return tag.name.includes(dropMenu.search);
1080
+ })
1081
+ .map(tag => {
1082
+ return html `
1031
1083
  <div
1032
- class="w-100 p-1 link-item-container hoverF2 cursor_pointer text-wrap"
1033
- onclick=${obj.gvc.event(() => {
1034
- if (tag.link && tag.link.length > 0 && !tag.ignoreFirst) {
1035
- callbackEvent(tag);
1036
- }
1037
- else {
1084
+ class="m-2"
1085
+ style="cursor:pointer;display: flex; align-items: center; justify-content: space-between;"
1086
+ >
1087
+ <div
1088
+ class="w-100 p-1 link-item-container hoverF2 cursor_pointer text-wrap"
1089
+ onclick=${obj.gvc.event(() => {
1090
+ if (tag.link && tag.link.length > 0 && !tag.ignoreFirst) {
1091
+ callbackEvent(tag);
1092
+ }
1093
+ else {
1094
+ dropMenu.prevList.push(dataList);
1095
+ dropMenu.recentParent.push(tag.name);
1096
+ tag.items && (dataList = tag.items);
1097
+ obj.gvc.notifyDataChange(dropMenu.id);
1098
+ }
1099
+ })}
1100
+ >
1101
+ <div
1102
+ style="min-width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;"
1103
+ >
1104
+ ${tag.icon.includes('https://')
1105
+ ? html ` <div
1106
+ class="tag-icon-bgr"
1107
+ style="background-image: url('${tag.icon}');"
1108
+ ></div>`
1109
+ : html `<i class="${tag.icon.length > 0 ? tag.icon : 'fa-regular fa-image'}"></i>`}
1110
+ </div>
1111
+ ${tag.name}
1112
+ </div>
1113
+ <div
1114
+ class="py-1 px-3 hoverF2 ${tag.items && tag.items.length > 0 ? '' : 'd-none'}"
1115
+ onclick=${obj.gvc.event(() => {
1038
1116
  dropMenu.prevList.push(dataList);
1039
1117
  dropMenu.recentParent.push(tag.name);
1040
1118
  tag.items && (dataList = tag.items);
1041
1119
  obj.gvc.notifyDataChange(dropMenu.id);
1042
- }
1043
- })}
1044
- >
1045
- <div
1046
- style="min-width: 28px; height: 28px; display: flex; align-items: center; justify-content: center;"
1120
+ })}
1047
1121
  >
1048
- ${(() => {
1049
- if (tag.icon.includes('https://')) {
1050
- return html ` <div
1051
- style="
1052
- width: 25px; height: 25px;
1053
- background-image: url('${tag.icon}');
1054
- background-position: center;
1055
- background-size: cover;
1056
- background-repeat: no-repeat;
1057
- "
1058
- ></div>`;
1059
- }
1060
- return html `<i
1061
- class="${tag.icon.length > 0 ? tag.icon : 'fa-regular fa-image'}"
1062
- ></i>`;
1063
- })()}
1122
+ <i class="fa-solid fa-chevron-right cursor_pointer"></i>
1064
1123
  </div>
1065
- ${tag.name}
1066
1124
  </div>
1067
- <div
1068
- class="py-1 px-3 hoverF2 ${tag.items && tag.items.length > 0 ? '' : 'd-none'}"
1069
- onclick=${obj.gvc.event(() => {
1070
- dropMenu.prevList.push(dataList);
1071
- dropMenu.recentParent.push(tag.name);
1072
- tag.items && (dataList = tag.items);
1073
- obj.gvc.notifyDataChange(dropMenu.id);
1074
- })}
1075
- >
1076
- <i class="fa-solid fa-chevron-right cursor_pointer"></i>
1077
- </div>
1078
- </div>
1079
- `;
1080
- });
1125
+ `;
1126
+ })
1127
+ .join('');
1128
+ }
1129
+ const listHTML = dropMenu.recentParent[0] === '所有商品' ? getProductHTML() : getDataListHTML();
1081
1130
  return html `
1082
1131
  <div class="border border-2 rounded-2 p-2" style="width: ${dropMenu.elementWidth}px;">
1083
- ${h1}
1084
- <div style="overflow-y: auto; max-height: 42.5vh;">${h2}</div>
1132
+ ${barHTML}
1133
+ <div style="overflow-y: auto; max-height: 42.5vh;">${listHTML}</div>
1085
1134
  </div>
1086
1135
  `;
1087
1136
  }
1088
- },
1137
+ }),
1089
1138
  divCreate: {
1090
1139
  style: 'position: absolute; top: 44px; left: 0; z-index: 1; background-color: #fff;',
1091
1140
  },
@@ -1093,7 +1142,6 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1093
1142
  </div>`;
1094
1143
  }
1095
1144
  },
1096
- divCreate: {},
1097
1145
  onCreate: () => {
1098
1146
  if (vm.loading) {
1099
1147
  const acticleList = [];
@@ -1110,20 +1158,12 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1110
1158
  });
1111
1159
  }),
1112
1160
  new Promise(resolve => {
1113
- ApiShop.getProduct({ page: 0, limit: 50000, search: '' }).then((data) => {
1114
- if (data.result) {
1115
- (data.response.data || []).map((item) => {
1116
- const { id, title, preview_image } = item.content;
1117
- const icon = preview_image && preview_image[0] ? preview_image[0] : '';
1118
- productList.push({
1119
- name: title,
1120
- icon: icon,
1121
- link: `/products?product_id=${id}`,
1122
- });
1123
- });
1124
- resolve();
1125
- }
1161
+ productList.push({
1162
+ name: '',
1163
+ icon: '',
1164
+ link: `/products?product_id=`,
1126
1165
  });
1166
+ resolve();
1127
1167
  }),
1128
1168
  new Promise(resolve => {
1129
1169
  Article.get({
@@ -1517,12 +1557,12 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1517
1557
  divCreate: {
1518
1558
  class: `card`,
1519
1559
  style: `
1520
- width: 100%;
1521
- overflow: hidden;
1522
- border-radius: 10px;
1523
- background: #fff;
1524
- box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.08);
1525
- `,
1560
+ width: 100%;
1561
+ overflow: hidden;
1562
+ border-radius: 10px;
1563
+ background: #fff;
1564
+ box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.08);
1565
+ `,
1526
1566
  },
1527
1567
  onCreate: () => {
1528
1568
  if (vm.loading) {
@@ -1649,7 +1689,6 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1649
1689
  </div>`;
1650
1690
  }
1651
1691
  },
1652
- divCreate: {},
1653
1692
  onCreate: () => {
1654
1693
  if (vm.loading) {
1655
1694
  getData();
@@ -1682,7 +1721,7 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1682
1721
  table: false,
1683
1722
  };
1684
1723
  gvc.addStyle(`
1685
- .tb_v3 {
1724
+ .tb-v3 {
1686
1725
  text-align: left !important;
1687
1726
  padding-right: 0.25rem !important;
1688
1727
  padding-left: 0.25rem !important;
@@ -1694,6 +1733,33 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1694
1733
  font-size: 24px;
1695
1734
  font-weight: 700;
1696
1735
  }
1736
+ .td-tooltip {
1737
+ position: absolute;
1738
+ top: -30px;
1739
+ left: 50%;
1740
+ transform: translateX(-50%);
1741
+ background-color: #333;
1742
+ color: white;
1743
+ padding: 8px 12px;
1744
+ border-radius: 4px;
1745
+ font-size: 14px;
1746
+ white-space: nowrap;
1747
+ visibility: hidden;
1748
+ opacity: 0;
1749
+ transition:
1750
+ opacity 0.3s,
1751
+ visibility 0.3s;
1752
+ }
1753
+ .td-tooltip::after {
1754
+ content: '';
1755
+ position: absolute;
1756
+ top: 100%;
1757
+ left: 50%;
1758
+ margin-left: -5px;
1759
+ border-width: 5px;
1760
+ border-style: solid;
1761
+ border-color: #333 transparent transparent transparent;
1762
+ }
1697
1763
  `);
1698
1764
  return gvc.bindView(() => {
1699
1765
  var _a;
@@ -1742,6 +1808,7 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1742
1808
  target.style.position = checked ? 'sticky' : 'relative';
1743
1809
  target.style.top = checked ? '0' : '';
1744
1810
  target.style.left = checked ? '0' : '';
1811
+ target.style.zIndex = checked ? '1' : '';
1745
1812
  }
1746
1813
  function initCheckData() {
1747
1814
  const checkedMap = new Map(vm.checkedArray.map(item => [item.dataPin, item]));
@@ -1895,7 +1962,7 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1895
1962
  return vm.tableData[0]
1896
1963
  .map((dd, index) => {
1897
1964
  return html ` <div
1898
- class="${ids.headerCell} ${ids.textClass} tb_v3 tx_700"
1965
+ class="${ids.headerCell} ${ids.textClass} tb-v3 tx_700"
1899
1966
  style="min-width: ${widthList[index]}px;"
1900
1967
  >
1901
1968
  ${dd.key}
@@ -1942,7 +2009,9 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1942
2009
  ${vm.tableData
1943
2010
  .map((dd, trIndex) => {
1944
2011
  return html ` <tr
1945
- class="${trIndex === 0 ? ids.tr : ''}"
2012
+ class="${trIndex === 0 ? ids.tr : ''} ${dd.find(d3 => d3.tooltip)
2013
+ ? 'tr-tooltip-container'
2014
+ : ''}"
1946
2015
  onclick="${gvc.event(() => {
1947
2016
  obj.rowClick && obj.rowClick(dd, trIndex);
1948
2017
  })}"
@@ -1965,12 +2034,19 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
1965
2034
  ${dd.length === 1 ? 'border-radius: 10px;' : ''}
1966
2035
  `;
1967
2036
  return html ` <td
1968
- class="${ids.textClass} ${tdClass} tb_v3 tx_normal"
2037
+ class="${ids.textClass} ${tdClass} tb-v3 tx_normal position-relative"
1969
2038
  style="${style}"
1970
2039
  ${obj.filter.length !== 0 && tdIndex === 0 ? `gvc-checkbox="checkbox${trIndex}"` : ''}
1971
2040
  onclick="${d3.stopClick ? gvc.event((_, event) => event.stopPropagation()) : ''}"
1972
2041
  >
1973
- <div class="text-nowrap" style="color: #393939 !important;">${d3.value}</div>
2042
+ <div
2043
+ class="text-nowrap ${d3.tooltip ? 'hover-element' : ''}"
2044
+ style="color: #393939 !important;"
2045
+ ${d3.tooltip ? `data-tooltip="${d3.tooltip}"` : ''}
2046
+ >
2047
+ ${d3.value}
2048
+ </div>
2049
+ ${d3.tooltip ? html `<div class="td-tooltip">${d3.tooltip}</div>` : ''}
1974
2050
  </td>`;
1975
2051
  })
1976
2052
  .join('')}
@@ -2000,7 +2076,6 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
2000
2076
  return '';
2001
2077
  }
2002
2078
  },
2003
- divCreate: {},
2004
2079
  onCreate: () => {
2005
2080
  if (vm.loading) {
2006
2081
  setTimeout(() => obj.getData(vm));
@@ -2040,6 +2115,27 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
2040
2115
  }
2041
2116
  }, 50);
2042
2117
  }
2118
+ else {
2119
+ const tooltipContainers = document.querySelectorAll('.tr-tooltip-container');
2120
+ tooltipContainers.forEach(container => {
2121
+ const hoverElement = container.querySelector('.hover-element');
2122
+ const tooltip = container.querySelector('.td-tooltip');
2123
+ if (hoverElement && tooltip) {
2124
+ const tooltipText = hoverElement.getAttribute('data-tooltip');
2125
+ if (tooltipText) {
2126
+ tooltip.textContent = tooltipText;
2127
+ }
2128
+ hoverElement.addEventListener('mouseenter', () => {
2129
+ tooltip.style.visibility = 'visible';
2130
+ tooltip.style.opacity = '1';
2131
+ });
2132
+ hoverElement.addEventListener('mouseleave', () => {
2133
+ tooltip.style.visibility = 'hidden';
2134
+ tooltip.style.opacity = '0';
2135
+ });
2136
+ }
2137
+ });
2138
+ }
2043
2139
  }
2044
2140
  },
2045
2141
  };
@@ -2469,7 +2565,7 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
2469
2565
  >
2470
2566
  <div class="fs-5 mb-0"><strong>${title}</strong></div>
2471
2567
  ${messageList && messageList.length > 0
2472
- ? `<div class="mt-2" style="white-space: normal; word-break: break-all;">${h}</div>`
2568
+ ? html `<div class="mt-2" style="white-space: normal; word-break: break-all;">${h}</div>`
2473
2569
  : ``}
2474
2570
  </div>`;
2475
2571
  }
@@ -2685,7 +2781,6 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
2685
2781
  </div>
2686
2782
  </div>`;
2687
2783
  },
2688
- divCreate: {},
2689
2784
  onCreate: () => {
2690
2785
  if (obj.openOnInit) {
2691
2786
  const si = setInterval(() => {
@@ -3540,7 +3635,7 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
3540
3635
  ${opt.note ? html ` <div class="tx_gray_12">${opt.note}</div> ` : ''}
3541
3636
  </div>
3542
3637
  </div>
3543
- <div class="d-flex align-items-center" style="gap: 6px">
3638
+ <div class="d-flex align-items-center justify-content-end" style="gap: 6px; min-width: 115px;">
3544
3639
  <div>庫存量</div>
3545
3640
  <div style="color: #393939; font-size: 24px; font-weight: 600;">${opt.stock}</div>
3546
3641
  </div>
@@ -3638,7 +3733,7 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
3638
3733
  const newOptions = vm.options.slice(startIdx, endIdx);
3639
3734
  newOptions.forEach(option => {
3640
3735
  const optionElement = document.createElement('div');
3641
- optionElement.classList.add('d-flex', 'align-items-center');
3736
+ optionElement.classList.add('d-flex', 'align-items-center', 'justify-content-between');
3642
3737
  optionElement.style.gap = '24px';
3643
3738
  optionElement.innerHTML = printOptionSt(option);
3644
3739
  dialogContainer.appendChild(optionElement);
@@ -3711,7 +3806,6 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
3711
3806
  </div>
3712
3807
  </div>`;
3713
3808
  },
3714
- onCreate: () => { },
3715
3809
  })}
3716
3810
  </div>`;
3717
3811
  }, obj.gvc.glitter.getUUID(), {
@@ -4397,7 +4491,6 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
4397
4491
  </div>`;
4398
4492
  }
4399
4493
  },
4400
- divCreate: {},
4401
4494
  onCreate: () => {
4402
4495
  if (imageVM.loading) {
4403
4496
  this.isImageUrlValid(obj.image).then(isValid => {
@@ -4465,7 +4558,6 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
4465
4558
  </div>`;
4466
4559
  },
4467
4560
  divCreate: { class: 'h-100' },
4468
- onCreate: () => { },
4469
4561
  })}
4470
4562
  </div>`;
4471
4563
  }, windowID);
@@ -4583,7 +4675,6 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
4583
4675
  return ``;
4584
4676
  }
4585
4677
  },
4586
- divCreate: {},
4587
4678
  };
4588
4679
  })());
4589
4680
  }
@@ -4747,6 +4838,40 @@ ${(_c = obj.default) !== null && _c !== void 0 ? _c : ''}</textarea
4747
4838
  </div>`;
4748
4839
  }
4749
4840
  }
4841
+ BgWidget.richTextQuickList = [
4842
+ {
4843
+ title: '商家名稱',
4844
+ value: '@{{app_name}}',
4845
+ },
4846
+ {
4847
+ title: '訂單號碼',
4848
+ value: '@{{訂單號碼}}',
4849
+ },
4850
+ {
4851
+ title: '會員姓名',
4852
+ value: '@{{user_name}}',
4853
+ },
4854
+ {
4855
+ title: '訂單金額',
4856
+ value: '@{{訂單金額}}',
4857
+ },
4858
+ {
4859
+ title: '姓名',
4860
+ value: '@{{姓名}}',
4861
+ },
4862
+ {
4863
+ title: '電話',
4864
+ value: '@{{電話}}',
4865
+ },
4866
+ {
4867
+ title: '地址',
4868
+ value: '@{{地址}}',
4869
+ },
4870
+ {
4871
+ title: '信箱',
4872
+ value: '@{{信箱}}',
4873
+ },
4874
+ ];
4750
4875
  BgWidget.dotlottieJS = 'https://unpkg.com/@dotlottie/player-component@latest/dist/dotlottie-player.mjs';
4751
4876
  BgWidget.getContainerWidth = (obj) => {
4752
4877
  const clientWidth = document.body.clientWidth;