ts-glitter 18.2.7 → 18.2.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 (52) hide show
  1. package/lowcode/Entry.js +30 -1
  2. package/lowcode/Entry.ts +36 -1
  3. package/lowcode/cms-plugin/customer-message-user.js +503 -8
  4. package/lowcode/cms-plugin/customer-message-user.ts +549 -12
  5. package/lowcode/cms-plugin/shopping-information.js +16 -0
  6. package/lowcode/cms-plugin/shopping-information.ts +16 -0
  7. package/lowcode/cms-plugin/shopping-order-manager.js +138 -77
  8. package/lowcode/cms-plugin/shopping-order-manager.ts +177 -102
  9. package/lowcode/glitter-base/global/language.js +6 -0
  10. package/lowcode/glitter-base/global/language.ts +6 -0
  11. package/lowcode/glitterBundle/GVController.js +2 -2
  12. package/lowcode/glitterBundle/GVController.ts +2 -2
  13. package/lowcode/glitterBundle/dialog/dialog_inner.js +5 -2
  14. package/lowcode/glitterBundle/dialog/dialog_inner.ts +5 -2
  15. package/lowcode/glitterBundle/module/Animation.js +59 -0
  16. package/lowcode/glitterBundle/module/Animation.ts +62 -0
  17. package/lowcode/glitterBundle/module/PageManager.js +3 -3
  18. package/lowcode/glitterBundle/module/PageManager.ts +1 -1
  19. package/lowcode/index.html +1 -0
  20. package/lowcode/public-components/checkout/index.js +63 -111
  21. package/lowcode/public-components/checkout/index.ts +160 -217
  22. package/lowcode/public-components/footer/footer-01.js +3 -0
  23. package/lowcode/public-components/footer/footer-01.ts +3 -0
  24. package/lowcode/public-components/footer/footer-02.js +3 -0
  25. package/lowcode/public-components/footer/footer-02.ts +3 -0
  26. package/lowcode/public-components/footer/footer-03.js +3 -0
  27. package/lowcode/public-components/footer/footer-03.ts +3 -0
  28. package/lowcode/public-components/product/pd-class.js +868 -355
  29. package/lowcode/public-components/product/pd-class.ts +1005 -438
  30. package/lowcode/public-components/product/product-detail.js +1 -1
  31. package/lowcode/public-components/product/product-detail.ts +3 -1
  32. package/package.json +1 -1
  33. package/src/api-public/controllers/article.js.map +1 -1
  34. package/src/api-public/controllers/shop.js +34 -30
  35. package/src/api-public/controllers/shop.js.map +1 -1
  36. package/src/api-public/controllers/shop.ts +42 -32
  37. package/src/api-public/controllers/user.js.map +1 -1
  38. package/src/api-public/services/ai-robot.js.map +1 -1
  39. package/src/api-public/services/fb-api.js.map +1 -1
  40. package/src/api-public/services/financial-service.js +2 -0
  41. package/src/api-public/services/financial-service.js.map +1 -1
  42. package/src/api-public/services/financial-service.ts +3 -0
  43. package/src/api-public/services/public-table-check.js.map +1 -1
  44. package/src/api-public/services/shopping.js +12 -5
  45. package/src/api-public/services/shopping.js.map +1 -1
  46. package/src/api-public/services/shopping.ts +14 -5
  47. package/src/api-public/services/user.d.ts +2 -2
  48. package/src/api-public/services/user.js +8 -2
  49. package/src/api-public/services/user.js.map +1 -1
  50. package/src/api-public/services/user.ts +8 -2
  51. package/src/index.js +3 -3
  52. package/src/index.js.map +1 -1
@@ -24,6 +24,7 @@ import { FakeOrder } from './fake-order.js';
24
24
  import { FormCheck } from '../../cms-plugin/module/form-check.js';
25
25
  import { Currency } from '../../glitter-base/global/currency.js';
26
26
  import { ShipmentConfig } from "../../glitter-base/global/shipment-config.js";
27
+ import { Animation } from "../../glitterBundle/module/Animation.js";
27
28
  const html = String.raw;
28
29
  export class CheckoutIndex {
29
30
  static main(gvc, widget, subData) {
@@ -1271,28 +1272,31 @@ export class CheckoutIndex {
1271
1272
  onclick="${gvc.event(() => {
1272
1273
  var _a;
1273
1274
  const titleFontColor = (_a = glitter.share.globalValue['theme_color.0.title']) !== null && _a !== void 0 ? _a : '#333333';
1274
- console.log(`dd.content=>`, dd.content);
1275
1275
  gvc.glitter.innerDialog((gvc) => {
1276
1276
  var _a, _b;
1277
- return html ` <div class="bg-white shadow rounded-3" style="overflow-y: auto; ${document.body.clientWidth > 768 ? `min-width: 400px; width: 1000px;` : 'width:calc(100vw - 20px);'}">
1278
- <div class="bg-white shadow rounded-3" style="width: 100%; overflow-y: auto; position: relative;">
1279
- <div class="w-100 d-flex align-items-center p-3 border-bottom" style="position: sticky; top: 0; background: #fff;z-index:12;">
1280
- <div class="fw-bold fs-5" style="color:${titleFontColor}; white-space: nowrap;text-overflow: ellipsis;max-width: calc(100% - 40px); overflow: hidden;">
1281
- ${dd.content.title}
1282
- </div>
1283
- <div class="flex-fill"></div>
1284
- <i
1285
- class="fa-regular fa-circle-xmark fs-5 text-dark"
1286
- style="cursor: pointer"
1287
- onclick="${gvc.event(() => {
1277
+ return html `
1278
+ <div class=" bg-white shadow ${document.body.clientWidth > 768 ? `rounded-3` : ` position-absolute bottom-0`}"
1279
+ style=" ${document.body.clientWidth > 768 ? `min-width: 400px; width: 1000px;max-height:calc(100% - 150px);overflow-y: auto;` : 'width:calc(100vw);height:100%;'}">
1280
+ <div class="bg-white shadow ${document.body.clientWidth > 768 ? `rounded-3` : `h-100`}" style="
1281
+ width: 100%; position: relative;${document.body.clientWidth > 768 ? `` : `overflow-y: auto;`}">
1282
+ <div class="w-100 d-flex align-items-center p-3 border-bottom"
1283
+ style="position: sticky; top: 0; background: #fff;z-index:12;">
1284
+ <div class="fw-bold fs-5"
1285
+ style="color:${titleFontColor}; white-space: nowrap;text-overflow: ellipsis;max-width: calc(100% - 40px); overflow: hidden;">
1286
+ ${dd.content.title}
1287
+ </div>
1288
+ <div class="flex-fill"></div>
1289
+ <i
1290
+ class="fa-regular fa-circle-xmark fs-5 text-dark"
1291
+ style="cursor: pointer"
1292
+ onclick="${gvc.event(() => {
1288
1293
  gvc.closeDialog();
1289
1294
  })}"
1290
- ></i>
1291
- </div>
1292
- <div class="c_dialog">
1293
- <div class="c_dialog_body">
1294
- <div class="c_dialog_main" style="gap: 24px; max-height: calc(100vh - 100px); ${document.body.clientWidth < 800 ? `padding: 12px 20px;` : `padding: 30px;`}">
1295
- ${PdClass.selectSpec({
1295
+ ></i>
1296
+ </div>
1297
+ <div class="c_dialog_main"
1298
+ style="gap: 24px; max-height: calc(100% - 100px); ${document.body.clientWidth < 800 ? `padding: 12px 20px;` : `padding: 30px;`}">
1299
+ ${PdClass.selectSpec({
1296
1300
  gvc,
1297
1301
  titleFontColor: (_a = glitter.share.globalValue['theme_color.0.title']) !== null && _a !== void 0 ? _a : '#333333',
1298
1302
  prod: dd.content,
@@ -1337,65 +1341,13 @@ export class CheckoutIndex {
1337
1341
  }
1338
1342
  },
1339
1343
  })}
1340
- </div>
1341
- </div>
1342
- </div>
1343
- </div>
1344
- </div>`;
1345
- }, Tool.randomString(7));
1346
- return;
1347
- return gvc.glitter.innerDialog((gvc) => {
1348
- var _a, _b;
1349
- return html ` <div
1350
- class="bg-white shadow rounded-3"
1351
- style="overflow-y: auto; ${document.body.clientWidth > 768
1352
- ? `min-width: 400px; width: 600px;`
1353
- : 'min-width: 90vw; max-width: 92.5vw;'}"
1354
- >
1355
- <div class="bg-white shadow rounded-3" style="width: 100%; overflow-y: auto; position: relative;">
1356
- <div
1357
- class="w-100 d-flex align-items-center p-3 border-bottom"
1358
- style="position: sticky; top: 0; background: #fff;"
1359
- >
1360
- <div class="flex-fill"></div>
1361
- <i
1362
- class="fa-regular fa-circle-xmark fs-5 text-dark"
1363
- style="cursor: pointer"
1364
- onclick="${gvc.event(() => {
1365
- gvc.closeDialog();
1366
- })}"
1367
- ></i>
1368
- </div>
1369
- <div class="c_dialog">
1370
- <div class="c_dialog_body">
1371
- <div
1372
- class="c_dialog_main"
1373
- style="gap: 24px; height: auto; max-height: 500px; padding: 12px 20px;"
1374
- >
1375
- ${PdClass.selectSpec({
1376
- gvc,
1377
- titleFontColor: (_a = glitter.share.globalValue['theme_color.0.title']) !== null && _a !== void 0 ? _a : '#333333',
1378
- prod: dd.content,
1379
- vm: {
1380
- specs: dd.content.specs.map((spec) => {
1381
- return spec.option[0].title;
1382
- }),
1383
- quantity: '1',
1384
- wishStatus: ((_b = glitter.share.wishList) !== null && _b !== void 0 ? _b : []).some((item) => {
1385
- return item.id === dd.id;
1386
- }),
1387
- },
1388
- callback: () => {
1389
- gvc.closeDialog();
1390
- refreshCartData();
1391
- },
1392
- })}
1393
- </div>
1394
- </div>
1344
+ <div class="d-sm-none" style="height:100px;"></div>
1395
1345
  </div>
1396
1346
  </div>
1397
1347
  </div>`;
1398
- }, Tool.randomString(7));
1348
+ }, Tool.randomString(7), {
1349
+ animation: (document.body.clientWidth < 768) ? Animation.popup : Animation.fade
1350
+ });
1399
1351
  })}"
1400
1352
  >
1401
1353
  <span class="${gClass('button-text')}">${Language.text('add_to_cart')}</span>
@@ -1456,25 +1408,29 @@ export class CheckoutIndex {
1456
1408
  const titleFontColor = (_a = glitter.share.globalValue['theme_color.0.title']) !== null && _a !== void 0 ? _a : '#333333';
1457
1409
  gvc.glitter.innerDialog((gvc) => {
1458
1410
  var _a, _b;
1459
- return html ` <div class="bg-white shadow rounded-3" style="overflow-y: auto; ${document.body.clientWidth > 768 ? `min-width: 400px; width: 1000px;` : 'width:calc(100vw - 20px);'}">
1460
- <div class="bg-white shadow rounded-3" style="width: 100%; overflow-y: auto; position: relative;">
1461
- <div class="w-100 d-flex align-items-center p-3 border-bottom" style="position: sticky; top: 0; background: #fff;z-index:12;">
1462
- <div class="fw-bold fs-5" style="color:${titleFontColor}; white-space: nowrap;text-overflow: ellipsis;max-width: calc(100% - 40px); overflow: hidden;">
1463
- ${pd.title}
1464
- </div>
1465
- <div class="flex-fill"></div>
1466
- <i
1467
- class="fa-regular fa-circle-xmark fs-5 text-dark"
1468
- style="cursor: pointer"
1469
- onclick="${gvc.event(() => {
1411
+ return html `
1412
+ <div class=" bg-white shadow ${document.body.clientWidth > 768 ? `rounded-3` : ` position-absolute bottom-0`}"
1413
+ style=" ${document.body.clientWidth > 768 ? `min-width: 400px; width: 1000px;max-height:calc(100% - 150px);overflow-y: auto;` : 'width:calc(100vw);height:100%;'}">
1414
+ <div class="bg-white shadow ${document.body.clientWidth > 768 ? `rounded-3` : `h-100`}" style="
1415
+ width: 100%; position: relative;${document.body.clientWidth > 768 ? `` : `overflow-y: auto;`}">
1416
+ <div class="w-100 d-flex align-items-center p-3 border-bottom"
1417
+ style="position: sticky; top: 0; background: #fff;z-index:12;">
1418
+ <div class="fw-bold fs-5"
1419
+ style="color:${titleFontColor}; white-space: nowrap;text-overflow: ellipsis;max-width: calc(100% - 40px); overflow: hidden;">
1420
+ ${pd.title}
1421
+ </div>
1422
+ <div class="flex-fill"></div>
1423
+ <i
1424
+ class="fa-regular fa-circle-xmark fs-5 text-dark"
1425
+ style="cursor: pointer"
1426
+ onclick="${gvc.event(() => {
1470
1427
  gvc.closeDialog();
1471
1428
  })}"
1472
- ></i>
1473
- </div>
1474
- <div class="c_dialog">
1475
- <div class="c_dialog_body">
1476
- <div class="c_dialog_main" style="gap: 24px; max-height: calc(100vh - 100px); ${document.body.clientWidth < 800 ? `padding: 12px 20px;` : `padding: 30px;`}">
1477
- ${PdClass.selectSpec({
1429
+ ></i>
1430
+ </div>
1431
+ <div class="c_dialog_main"
1432
+ style="gap: 24px; max-height: calc(100% - 100px); ${document.body.clientWidth < 800 ? `padding: 12px 20px;` : `padding: 30px;`}">
1433
+ ${PdClass.selectSpec({
1478
1434
  gvc,
1479
1435
  titleFontColor: (_a = glitter.share.globalValue['theme_color.0.title']) !== null && _a !== void 0 ? _a : '#333333',
1480
1436
  prod: pd,
@@ -1518,12 +1474,13 @@ export class CheckoutIndex {
1518
1474
  }
1519
1475
  },
1520
1476
  })}
1521
- </div>
1522
- </div>
1523
- </div>
1524
- </div>
1525
- </div>`;
1526
- }, Tool.randomString(7));
1477
+ <div class="d-sm-none" style="height:100px;"></div>
1478
+ </div>
1479
+ </div>
1480
+ </div>`;
1481
+ }, Tool.randomString(7), {
1482
+ animation: (document.body.clientWidth < 768) ? Animation.popup : Animation.fade
1483
+ });
1527
1484
  })}"
1528
1485
  >
1529
1486
  <span class="${gClass('button-text')}"
@@ -2500,6 +2457,7 @@ export class CheckoutIndex {
2500
2457
  return "paynow API失敗";
2501
2458
  }
2502
2459
  glitter.innerDialog((gvc) => {
2460
+ document.body.style.setProperty('overflow-y', 'hidden', 'important');
2503
2461
  return gvc.bindView({
2504
2462
  bind: `paynow`,
2505
2463
  view: () => {
@@ -2534,7 +2492,7 @@ export class CheckoutIndex {
2534
2492
  </button></div>
2535
2493
  </div>`;
2536
2494
  }, divCreate: {
2537
- class: `w-100 h-100 d-flex align-items-center justify-content-center`
2495
+ class: ` h-100 d-flex align-items-center justify-content-center`, style: `max-width:100vw;${document.body.clientWidth < 800 ? 'width:100%;' : 'width:400px;'};`
2538
2496
  }, onCreate: () => {
2539
2497
  const publicKey = res.response.publicKey;
2540
2498
  const secret = res.response.data.result.secret;
@@ -2561,20 +2519,14 @@ export class CheckoutIndex {
2561
2519
  });
2562
2520
  }
2563
2521
  });
2564
- }, `paynow`);
2565
- }
2566
- const lineItemIds = vm.cartData.lineItems.map((item) => item.id);
2567
- const cartKeys = [ApiCart.cartPrefix, ApiCart.buyItNow, ApiCart.globalCart];
2568
- for (let i = 0; i < localStorage.length; i++) {
2569
- const key = localStorage.key(i);
2570
- if (key && cartKeys.some((cartKey) => key === null || key === void 0 ? void 0 : key.includes(cartKey))) {
2571
- const formatKey = key === null || key === void 0 ? void 0 : key.replace(window.appName, '');
2572
- const cart = new ApiCart(formatKey);
2573
- cart.setCart((cartItem) => {
2574
- cartItem.line_items = cartItem.line_items.filter((item) => !lineItemIds.includes(item.id));
2575
- });
2576
- }
2522
+ }, `paynow`, {
2523
+ animation: (document.body.clientWidth > 800) ? Animation.fade : Animation.popup,
2524
+ dismiss: () => {
2525
+ document.body.style.setProperty('overflow-y', 'auto');
2526
+ }
2527
+ });
2577
2528
  }
2529
+ localStorage.setItem('clear_cart_items', JSON.stringify(vm.cartData.lineItems.map((item) => item.id)));
2578
2530
  if (res.response.off_line || res.response.is_free) {
2579
2531
  location.href = res.response.return_url;
2580
2532
  }