ts-glitter 21.2.1 → 21.2.3

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.
@@ -27,116 +27,117 @@ import { PageCodeSetting } from '../editor/page-code-setting.js';
27
27
  import { NormalPageEditor } from '../editor/normal-page-editor.js';
28
28
  import { EditorConfig } from '../editor-config.js';
29
29
  import { BgCustomerMessage } from '../backend-manager/bg-customer-message.js';
30
- import { BgGuide } from "../backend-manager/bg-guide.js";
31
- import { ApiShop } from "../glitter-base/route/shopping.js";
32
- import { ShareDialog } from "../glitterBundle/dialog/ShareDialog.js";
33
- import { SearchIdea } from "../editor/search-idea.js";
34
- import { AiMessage } from "../cms-plugin/ai-message.js";
35
- import { GlobalWidget } from "../glitterBundle/html-component/global-widget.js";
36
- import { BgWidget } from "../backend-manager/bg-widget.js";
37
- import { ApiUser } from "../glitter-base/route/user.js";
38
- import { BaseApi } from "../glitterBundle/api/base.js";
39
- import { GlobalUser } from "../glitter-base/global/global-user.js";
40
- import { Article } from "../glitter-base/route/article.js";
41
- import { AiChat } from "../glitter-base/route/ai-chat.js";
42
- import { SaasViewModel } from "../view-model/saas-view-model.js";
30
+ import { BgGuide } from '../backend-manager/bg-guide.js';
31
+ import { ApiShop } from '../glitter-base/route/shopping.js';
32
+ import { ShareDialog } from '../glitterBundle/dialog/ShareDialog.js';
33
+ import { SearchIdea } from '../editor/search-idea.js';
34
+ import { AiMessage } from '../cms-plugin/ai-message.js';
35
+ import { GlobalWidget } from '../glitterBundle/html-component/global-widget.js';
36
+ import { BgWidget } from '../backend-manager/bg-widget.js';
37
+ import { ApiUser } from '../glitter-base/route/user.js';
38
+ import { BaseApi } from '../glitterBundle/api/base.js';
39
+ import { GlobalUser } from '../glitter-base/global/global-user.js';
40
+ import { Article } from '../glitter-base/route/article.js';
41
+ import { AiChat } from '../glitter-base/route/ai-chat.js';
42
+ import { SaasViewModel } from '../view-model/saas-view-model.js';
43
43
  const html = String.raw;
44
44
  const editorContainerID = `HtmlEditorContainer`;
45
45
  init(import.meta.url, (gvc, glitter, gBundle) => {
46
- glitter.share.loading_dialog = (new ShareDialog(gvc.glitter));
46
+ glitter.share.loading_dialog = new ShareDialog(gvc.glitter);
47
47
  const css = String.raw;
48
48
  gvc.addStyle(css `
49
+ .hoverHidden div {
50
+ display: none;
51
+ }
49
52
 
50
- .hoverHidden div {
51
- display: none;
52
- }
53
-
54
- .hoverHidden:hover div {
55
- display: flex;
56
- }
53
+ .hoverHidden:hover div {
54
+ display: flex;
55
+ }
57
56
 
58
- .tooltip {
59
- z-index: 99999 !important;
60
- }
57
+ .tooltip {
58
+ z-index: 99999 !important;
59
+ }
61
60
 
62
- .scroll-in {
63
- animation: slideInFromLeft 0.3s ease-out forwards;
64
- }
61
+ .scroll-in {
62
+ animation: slideInFromLeft 0.3s ease-out forwards;
63
+ }
65
64
 
66
- .scroll-out {
67
- left: 0%; /* 將元素移到畫面外 */
68
- animation: slideOutFromLeft 0.3s ease-out forwards;
69
- }
65
+ .scroll-out {
66
+ left: 0%; /* 將元素移到畫面外 */
67
+ animation: slideOutFromLeft 0.3s ease-out forwards;
68
+ }
70
69
 
71
- /* @keyframes 定義動畫 */
72
- @keyframes slideInFromLeft {
73
- 0% {
74
- left: -120%; /* 起始位置在畫面外 */
75
- }
76
- 100% {
77
- left: 0; /* 結束位置在畫面內 */
78
- }
79
- }
80
- /* @keyframes 定義動畫 */
81
- @keyframes slideOutFromLeft {
82
- 0% {
83
- left: 0; /* 起始位置在畫面外 */
84
- }
85
- 100% {
86
- left: -120%; /* 結束位置在畫面內 */
87
- }
88
- }
89
- `);
70
+ /* @keyframes 定義動畫 */
71
+ @keyframes slideInFromLeft {
72
+ 0% {
73
+ left: -120%; /* 起始位置在畫面外 */
74
+ }
75
+ 100% {
76
+ left: 0; /* 結束位置在畫面內 */
77
+ }
78
+ }
79
+ /* @keyframes 定義動畫 */
80
+ @keyframes slideOutFromLeft {
81
+ 0% {
82
+ left: 0; /* 起始位置在畫面外 */
83
+ }
84
+ 100% {
85
+ left: -120%; /* 結束位置在畫面內 */
86
+ }
87
+ }
88
+ `);
90
89
  gvc.addStyle(css `
91
- .parent_ {
92
- position: relative; /* 确保子元素相对于父元素定位 */
93
- }
90
+ .parent_ {
91
+ position: relative; /* 确保子元素相对于父元素定位 */
92
+ }
94
93
 
95
- .child_ {
96
- display: none; /* 默认隐藏子元素 */
97
- position: absolute; /* 可选:使子元素定位 */
98
- top: 100%; /* 可选:根据需要调整子元素的位置 */
99
- left: 0;
100
- background-color: lightgrey; /* 可选:子元素背景颜色 */
101
- padding: 10px; /* 可选:子元素内边距 */
102
- border: 1px solid #ccc; /* 可选:子元素边框 */
103
- }
94
+ .child_ {
95
+ display: none; /* 默认隐藏子元素 */
96
+ position: absolute; /* 可选:使子元素定位 */
97
+ top: 100%; /* 可选:根据需要调整子元素的位置 */
98
+ left: 0;
99
+ background-color: lightgrey; /* 可选:子元素背景颜色 */
100
+ padding: 10px; /* 可选:子元素内边距 */
101
+ border: 1px solid #ccc; /* 可选:子元素边框 */
102
+ }
104
103
 
105
- .parent_:hover .child_ {
106
- display: block; /* 当父元素被 hover 时显示子元素 */
107
- }
104
+ .parent_:hover .child_ {
105
+ display: block; /* 当父元素被 hover 时显示子元素 */
106
+ }
108
107
 
109
- .scroll-right-in {
110
- right: -120%; /* 將元素移到畫面外 */
111
- animation: slideInRight 0.3s ease-out forwards;
112
- }
108
+ .scroll-right-in {
109
+ right: -120%; /* 將元素移到畫面外 */
110
+ animation: slideInRight 0.3s ease-out forwards;
111
+ }
113
112
 
114
- .scroll-right-out {
115
- right: 0; /* 將元素移到畫面外 */
116
- animation: slideOutRight 0.3s ease-out forwards;
117
- }
113
+ .scroll-right-out {
114
+ right: 0; /* 將元素移到畫面外 */
115
+ animation: slideOutRight 0.3s ease-out forwards;
116
+ }
118
117
 
119
- /* @keyframes 定義動畫 */
120
- @keyframes slideInRight {
121
- 0% {
122
- right: -120%; /* 起始位置在畫面外 */
123
- }
124
- 100% {
125
- right: 0; /* 結束位置在畫面內 */
126
- }
127
- }
128
- /* @keyframes 定義動畫 */
129
- @keyframes slideOutRight {
130
- 0% {
131
- right: 0; /* 起始位置在畫面外 */
132
- }
133
- 100% {
134
- right: -120%; /* 結束位置在畫面內 */
135
- }
136
- }
137
- `);
118
+ /* @keyframes 定義動畫 */
119
+ @keyframes slideInRight {
120
+ 0% {
121
+ right: -120%; /* 起始位置在畫面外 */
122
+ }
123
+ 100% {
124
+ right: 0; /* 結束位置在畫面內 */
125
+ }
126
+ }
127
+ /* @keyframes 定義動畫 */
128
+ @keyframes slideOutRight {
129
+ 0% {
130
+ right: 0; /* 起始位置在畫面外 */
131
+ }
132
+ 100% {
133
+ right: -120%; /* 結束位置在畫面內 */
134
+ }
135
+ }
136
+ `);
138
137
  glitter.share.is_blog_editor = () => {
139
- return glitter.getUrlParameter('page').startsWith('pages/') || glitter.getUrlParameter('page').startsWith('hidden/') || glitter.getUrlParameter('page').startsWith('shop/');
138
+ return (glitter.getUrlParameter('page').startsWith('pages/') ||
139
+ glitter.getUrlParameter('page').startsWith('hidden/') ||
140
+ glitter.getUrlParameter('page').startsWith('shop/'));
140
141
  };
141
142
  Storage.lastSelect = '';
142
143
  const viewModel = {
@@ -186,24 +187,26 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
186
187
  }
187
188
  if (parseInt(glitter.share.top_inset, 10)) {
188
189
  gvc.addStyle(css `
189
- .scroll-in {
190
- padding-top: ${glitter.share.top_inset}px;
191
- }
190
+ .scroll-in {
191
+ padding-top: ${glitter.share.top_inset}px;
192
+ }
192
193
 
193
- .scroll-right-in {
194
- padding-top: ${glitter.share.top_inset}px;
195
- }
196
- `);
194
+ .scroll-right-in {
195
+ padding-top: ${glitter.share.top_inset}px;
196
+ }
197
+ `);
197
198
  }
198
199
  const waitGetData = [
199
200
  () => __awaiter(this, void 0, void 0, function* () {
200
- if ((EditorConfig.backend_page() === 'backend-manger') && !(gvc.glitter.getUrlParameter('tab'))) {
201
+ if (EditorConfig.backend_page() === 'backend-manger' && !gvc.glitter.getUrlParameter('tab')) {
201
202
  gvc.glitter.setUrlParameter('tab', 'home_page');
202
203
  }
203
204
  return yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
204
- ApiPageConfig.getAppConfig().then((res) => {
205
+ ApiPageConfig.getAppConfig().then(res => {
205
206
  viewModel.app_config_original = res.response.result[0];
206
- if (EditorConfig.backend_page() === 'backend-manger' && ((viewModel.app_config_original.refer_app) && (viewModel.app_config_original.refer_app !== viewModel.app_config_original.appName))) {
207
+ if (EditorConfig.backend_page() === 'backend-manger' &&
208
+ viewModel.app_config_original.refer_app &&
209
+ viewModel.app_config_original.refer_app !== viewModel.app_config_original.appName) {
207
210
  glitter.setUrlParameter('appName', viewModel.app_config_original.refer_app);
208
211
  location.reload();
209
212
  return;
@@ -219,16 +222,18 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
219
222
  viewModel.data = yield new Promise((resolve, reject) => {
220
223
  ApiPageConfig.getPage({
221
224
  tag: glitter.getUrlParameter('page'),
222
- appName: gBundle.appName
223
- }).then((d2) => {
225
+ appName: gBundle.appName,
226
+ }).then(d2 => {
224
227
  if (glitter.share.is_blog_editor()) {
225
228
  Article.get({
226
229
  page: 0,
227
230
  limit: 1,
228
- id: glitter.getUrlParameter('page-id')
231
+ id: glitter.getUrlParameter('page-id'),
229
232
  }).then((data) => __awaiter(this, void 0, void 0, function* () {
230
233
  const content = data.response.data[0].content;
231
- if (content.language_data && content.language_data[glitter.getUrlParameter('language')] && content.language_data[glitter.getUrlParameter('language')].config) {
234
+ if (content.language_data &&
235
+ content.language_data[glitter.getUrlParameter('language')] &&
236
+ content.language_data[glitter.getUrlParameter('language')].config) {
232
237
  content.config = content.language_data[glitter.getUrlParameter('language')].config;
233
238
  }
234
239
  d2.response.result[0].config = content.config;
@@ -313,7 +318,7 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
313
318
  },
314
319
  ].concat(viewModel.initialJS);
315
320
  for (const a of glitter.share.globalJsList) {
316
- yield new Promise((resolve) => {
321
+ yield new Promise(resolve => {
317
322
  glitter.addMtScript([
318
323
  {
319
324
  src: TriggerEvent.getLink(a.src.official),
@@ -334,7 +339,7 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
334
339
  else {
335
340
  resolve(false);
336
341
  }
337
- })).then((data) => {
342
+ })).then(data => {
338
343
  return data;
339
344
  });
340
345
  }),
@@ -342,13 +347,13 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
342
347
  let count = 0;
343
348
  let result = yield new Promise((resolve, reject) => {
344
349
  for (const a of waitGetData) {
345
- a().then((result) => {
350
+ a().then(result => {
346
351
  if (result) {
347
352
  count++;
348
353
  }
349
354
  else {
350
355
  resolve(false);
351
- console.log(`falseIn`, waitGetData.findIndex((dd) => {
356
+ console.log(`falseIn`, waitGetData.findIndex(dd => {
352
357
  return dd === a;
353
358
  }));
354
359
  }
@@ -364,14 +369,14 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
364
369
  }
365
370
  dialog.dataLoading({ visible: false });
366
371
  viewModel.loading = false;
367
- gvc.glitter.runJsInterFace("getFireBaseToken", {}, (response) => {
372
+ gvc.glitter.runJsInterFace('getFireBaseToken', {}, response => {
368
373
  if (response.token) {
369
374
  ApiUser.registerFCM(viewModel.app_config_original.user, response.token, window.glitterBase);
370
375
  }
371
376
  }, {
372
377
  webFunction(data, callback) {
373
378
  callback({});
374
- }
379
+ },
375
380
  });
376
381
  gvc.notifyDataChange(editorContainerID);
377
382
  });
@@ -428,7 +433,7 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
428
433
  Article.get({
429
434
  page: 0,
430
435
  limit: 1,
431
- id: glitter.getUrlParameter('page-id')
436
+ id: glitter.getUrlParameter('page-id'),
432
437
  }).then((data) => __awaiter(this, void 0, void 0, function* () {
433
438
  var _a;
434
439
  const content = data.response.data[0].content;
@@ -442,7 +447,7 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
442
447
  keywords: '',
443
448
  },
444
449
  text: '',
445
- config: ''
450
+ config: '',
446
451
  };
447
452
  }
448
453
  content.language_data = (_a = content.language_data) !== null && _a !== void 0 ? _a : {
@@ -452,11 +457,11 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
452
457
  name: content.name,
453
458
  seo: content.seo,
454
459
  text: content.text,
455
- config: content.config
456
- }
460
+ config: content.config,
461
+ },
457
462
  };
458
463
  content.language_data[glitter.getUrlParameter('language')].config = config;
459
- Article.put(data.response.data[0]).then((response) => {
464
+ Article.put(data.response.data[0]).then(response => {
460
465
  resolve(response && response.result);
461
466
  });
462
467
  }));
@@ -473,7 +478,7 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
473
478
  page_type: viewModel.data.page_type,
474
479
  preview_image: viewModel.data.preview_image,
475
480
  favorite: viewModel.data.favorite,
476
- }).then((api) => {
481
+ }).then(api => {
477
482
  resolve(result && api.result);
478
483
  });
479
484
  }
@@ -516,7 +521,7 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
516
521
  }
517
522
  });
518
523
  }
519
- saveEvent().then((r) => {
524
+ saveEvent().then(r => {
520
525
  callback && callback();
521
526
  });
522
527
  };
@@ -556,10 +561,11 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
556
561
  view.push(NormalPageEditor.leftNav(gvc));
557
562
  try {
558
563
  const doc = new Editor(gvc, viewModel);
559
- view.push(doc.create(html `
560
- <div class="d-flex overflow-hidden border-end guide-user-editor-1"
561
- style="height:100vh;background:white;">
562
- ${gvc.bindView(() => {
564
+ view.push(doc.create(html ` <div
565
+ class="d-flex overflow-hidden border-end guide-user-editor-1"
566
+ style="height:100vh;background:white;"
567
+ >
568
+ ${gvc.bindView(() => {
563
569
  return {
564
570
  bind: 'left_sm_bar',
565
571
  view: () => {
@@ -572,15 +578,15 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
572
578
  {
573
579
  src: `fa-sharp fa-regular fa-globe guide-user-editor-11-icon`,
574
580
  index: 'color',
575
- hint: '全站樣式'
581
+ hint: '全站樣式',
576
582
  },
577
583
  {
578
584
  src: `fa-regular fa-grid-2 design-guide-1-icon`,
579
585
  index: 'widget',
580
- hint: '設計元件'
581
- }
586
+ hint: '設計元件',
587
+ },
582
588
  ]
583
- .filter((dd) => {
589
+ .filter(dd => {
584
590
  if (gvc.glitter.getUrlParameter('device') === 'mobile') {
585
591
  return dd.index !== 'widget';
586
592
  }
@@ -590,36 +596,40 @@ init(import.meta.url, (gvc, glitter, gBundle) => {
590
596
  })
591
597
  .map((da) => {
592
598
  return html `<i
593
- class=" ${da.src} fs-5 fw-bold p-2 rounded"
594
- data-bs-toggle="tooltip"
595
- data-bs-placement="top"
596
- data-bs-custom-class="custom-tooltip"
597
- data-bs-title="${da.hint}"
598
- style="cursor:pointer;
599
- ${Storage.page_setting_item === `${da.index}` ? `background:${EditorConfig.editor_layout.btn_background};color:white;` : ``}
599
+ class=" ${da.src} fs-5 fw-bold p-2 rounded"
600
+ data-bs-toggle="tooltip"
601
+ data-bs-placement="top"
602
+ data-bs-custom-class="custom-tooltip"
603
+ data-bs-title="${da.hint}"
604
+ style="cursor:pointer;
605
+ ${Storage.page_setting_item === `${da.index}`
606
+ ? `background:${EditorConfig.editor_layout.btn_background};color:white;`
607
+ : ``}
600
608
  "
601
- onclick="${gvc.event(() => {
609
+ onclick="${gvc.event(() => {
602
610
  viewModel.waitCopy = undefined;
603
611
  viewModel.selectItem = undefined;
604
612
  Storage.page_setting_item = da.index;
605
- gvc.notifyDataChange(["MainEditorLeft", "left_sm_bar"]);
613
+ gvc.notifyDataChange(['MainEditorLeft', 'left_sm_bar']);
606
614
  })}"
607
- ></i>`;
615
+ ></i>`;
608
616
  })
609
617
  .join('')}`;
610
618
  },
611
619
  divCreate: {
612
620
  style: `width:60px;gap:20px;padding-top: 15px;min-width:60px;`,
613
- class: `${Storage.select_function === 'user-editor' || Storage.select_function === 'page-editor' ? `` : `d-none`} h-120 border-end d-flex flex-column align-items-center`,
621
+ class: `${Storage.select_function === 'user-editor' || Storage.select_function === 'page-editor'
622
+ ? ``
623
+ : `d-none`} h-120 border-end d-flex flex-column align-items-center`,
614
624
  },
615
625
  onCreate: () => {
616
626
  $('.tooltip').remove();
617
627
  $('[data-bs-toggle="tooltip"]').tooltip();
618
- }
628
+ },
619
629
  };
620
630
  })}
621
- <div
622
- class="offcanvas-body swiper scrollbar-hover w-120 ${(() => {
631
+ <div
632
+ class="offcanvas-body swiper scrollbar-hover w-120 ${(() => {
623
633
  switch (Storage.select_function) {
624
634
  case 'backend-manger':
625
635
  case 'server-manager':
@@ -630,10 +640,13 @@ ${Storage.page_setting_item === `${da.index}` ? `background:${EditorConfig.edito
630
640
  return `p-0`;
631
641
  }
632
642
  })()}"
633
- style="overflow-y: auto;overflow-x:hidden;height:calc(100vh - ${(document.body.clientWidth < 800 || document.body.clientWidth > 1200) ? 56 : (parseInt(glitter.share.top_inset, 10) + 56)}px);"
634
- >
635
- <div class="h-120">
636
- ${gvc.bindView(() => {
643
+ style="overflow-y: auto;overflow-x:hidden;height:calc(100vh - ${document.body.clientWidth < 800 ||
644
+ document.body.clientWidth > 1200
645
+ ? 56
646
+ : parseInt(glitter.share.top_inset, 10) + 56}px);"
647
+ >
648
+ <div class="h-120">
649
+ ${gvc.bindView(() => {
637
650
  return {
638
651
  bind: 'MainEditorLeft',
639
652
  view: () => __awaiter(void 0, void 0, void 0, function* () {
@@ -646,7 +659,8 @@ ${Storage.page_setting_item === `${da.index}` ? `background:${EditorConfig.edito
646
659
  case 'page-editor':
647
660
  case 'user-editor':
648
661
  if (Storage.select_function === 'user-editor') {
649
- if (!viewModel.data.page_config || viewModel.data.page_config.support_editor !== 'true') {
662
+ if (!viewModel.data.page_config ||
663
+ viewModel.data.page_config.support_editor !== 'true') {
650
664
  console.log(glitter.root_path);
651
665
  }
652
666
  }
@@ -673,10 +687,10 @@ ${Storage.page_setting_item === `${da.index}` ? `background:${EditorConfig.edito
673
687
  },
674
688
  };
675
689
  })}
676
- </div>
677
- <div class="swiper-scrollbar end-0"></div>
678
- </div>
679
- </div>`, gvc.bindView({
690
+ </div>
691
+ <div class="swiper-scrollbar end-0"></div>
692
+ </div>
693
+ </div>`, gvc.bindView({
680
694
  bind: 'MainEditorRight',
681
695
  view: () => {
682
696
  return ``;
@@ -723,7 +737,7 @@ ${Storage.page_setting_item === `${da.index}` ? `background:${EditorConfig.edito
723
737
  else {
724
738
  }
725
739
  }
726
- (ApiUser.getSaasUserData(GlobalUser.saas_token, 'me')).then((res) => {
740
+ ApiUser.getSaasUserData(GlobalUser.saas_token, 'me').then(res => {
727
741
  const userData = res.response;
728
742
  if (!userData.userData.name || !userData.userData.contact_phone) {
729
743
  SaasViewModel.setContactInfo(gvc);
@@ -742,20 +756,19 @@ ${Storage.page_setting_item === `${da.index}` ? `background:${EditorConfig.edito
742
756
  },
743
757
  });
744
758
  },
745
- onCreate: () => {
746
- },
759
+ onCreate: () => { },
747
760
  onResume: () => {
748
761
  setTimeout(() => {
749
762
  gvc.notifyDataChange('MainEditorLeft');
750
763
  }, 100);
751
- }
764
+ },
752
765
  };
753
766
  });
754
767
  function initialEditor(gvc, viewModel) {
755
768
  var _a;
756
769
  const glitter = gvc.glitter;
757
770
  setTimeout(() => {
758
- if (EditorConfig.backend_page() === 'backend-manger' && (glitter.getUrlParameter('page') !== 'cms')) {
771
+ if (EditorConfig.backend_page() === 'backend-manger' && glitter.getUrlParameter('page') !== 'cms') {
759
772
  setTimeout(() => {
760
773
  glitter.setUrlParameter('page', 'cms');
761
774
  }, 100);
@@ -768,13 +781,13 @@ function initialEditor(gvc, viewModel) {
768
781
  dialog.dataLoading({ visible: true });
769
782
  AiChat.generateHtml({
770
783
  app_name: window.appName,
771
- text: message
772
- }).then((res) => {
784
+ text: message,
785
+ }).then(res => {
773
786
  if (res.result && res.response.data.usage === 0) {
774
787
  dialog.dataLoading({ visible: false });
775
788
  dialog.errorMessage({ text: `很抱歉你的AI代幣不足,請先前往加值` });
776
789
  }
777
- else if (res.result && (!res.response.data.obj.result)) {
790
+ else if (res.result && !res.response.data.obj.result) {
778
791
  dialog.dataLoading({ visible: false });
779
792
  dialog.errorMessage({ text: `AI無法理解你的需求,請給出具體一點的描述` });
780
793
  }
@@ -785,112 +798,113 @@ function initialEditor(gvc, viewModel) {
785
798
  else {
786
799
  res.response.data.obj.html;
787
800
  AddComponent.addWidget(gvc, {
788
- "id": "s7scs2s9s3s5s8sc",
789
- "js": "./official_view_component/official.js",
790
- "css": { "class": {}, "style": {} },
791
- "data": {
792
- "refer_app": "shop_template_black_style",
793
- "tag": "custom-code",
794
- "list": [],
795
- "carryData": {},
796
- "_style_refer_global": { "index": "0" },
797
- "_style_refer": "custom",
798
- "elem": "div",
799
- "inner": "",
800
- "attr": [],
801
- "_padding": {},
802
- "_margin": {},
803
- "_border": {},
804
- "_max_width": "1200",
805
- "_gap": "",
806
- "_background": "",
807
- "_other": {},
808
- "_radius": "",
809
- "_reverse": "false",
810
- "_hor_position": "center",
811
- "_background_setting": { "type": "none" },
812
- "refer_form_data": {
813
- "code": res.response.data.obj.html,
814
- "width": { "unit": "px", "value": "0px", "number": "0" },
815
- "height": {
816
- "unit": "px",
817
- "value": "50px",
818
- "number": "50"
801
+ id: 's7scs2s9s3s5s8sc',
802
+ js: './official_view_component/official.js',
803
+ css: { class: {}, style: {} },
804
+ data: {
805
+ refer_app: 'shop_template_black_style',
806
+ tag: 'custom-code',
807
+ list: [],
808
+ carryData: {},
809
+ _style_refer_global: { index: '0' },
810
+ _style_refer: 'custom',
811
+ elem: 'div',
812
+ inner: '',
813
+ attr: [],
814
+ _padding: {},
815
+ _margin: {},
816
+ _border: {},
817
+ _max_width: '1200',
818
+ _gap: '',
819
+ _background: '',
820
+ _other: {},
821
+ _radius: '',
822
+ _reverse: 'false',
823
+ _hor_position: 'center',
824
+ _background_setting: { type: 'none' },
825
+ refer_form_data: {
826
+ code: res.response.data.obj.html,
827
+ width: { unit: 'px', value: '0px', number: '0' },
828
+ height: {
829
+ unit: 'px',
830
+ value: '50px',
831
+ number: '50',
819
832
  },
820
- "with_bg": "false",
821
- "background": {
822
- "id": "custom-background",
823
- "title": "#030303",
824
- "content": "#000000",
825
- "sec-title": "#000000",
826
- "background": "#ffffff",
827
- "sec-background": "#FFFFFF",
828
- "solid-button-bg": "#000000",
829
- "border-button-bg": "#000000",
830
- "solid-button-text": "#ffffff",
831
- "border-button-text": "#000000"
832
- }
833
- }
833
+ with_bg: 'false',
834
+ background: {
835
+ id: 'custom-background',
836
+ title: '#030303',
837
+ content: '#000000',
838
+ 'sec-title': '#000000',
839
+ background: '#ffffff',
840
+ 'sec-background': '#FFFFFF',
841
+ 'solid-button-bg': '#000000',
842
+ 'border-button-bg': '#000000',
843
+ 'solid-button-text': '#ffffff',
844
+ 'border-button-text': '#000000',
845
+ },
846
+ },
834
847
  },
835
- "type": "component",
836
- "class": "w-100",
837
- "index": 0,
838
- "label": "自定義HTML代碼",
839
- "style": "",
840
- "bundle": {},
841
- "global": [],
842
- "toggle": true,
843
- "stylist": [],
844
- "dataType": "static",
845
- "style_from": "code",
846
- "classDataType": "static",
847
- "preloadEvenet": {},
848
- "share": {},
849
- "formData": {},
850
- "refreshAllParameter": {},
851
- "editor_bridge": {},
852
- "refreshComponentParameter": {},
853
- "list": [],
854
- "version": "v2",
855
- "storage": {},
856
- "mobile": {
857
- "id": "s7scs2s9s3s5s8sc",
858
- "js": "./official_view_component/official.js",
859
- "css": { "class": {}, "style": {} },
860
- "data": { "refer_app": "shop_template_black_style" },
861
- "type": "component",
862
- "class": "w-100",
863
- "index": 0,
864
- "label": "自定義HTML代碼",
865
- "style": "",
866
- "global": [],
867
- "toggle": true,
868
- "stylist": [],
869
- "dataType": "static",
870
- "style_from": "code",
871
- "classDataType": "static",
872
- "preloadEvenet": {},
873
- "refreshAllParameter": {},
874
- "editor_bridge": {},
875
- "refreshComponentParameter": {},
876
- "list": [],
877
- "version": "v2",
878
- "mobile_editable": [],
879
- "desktop_editable": [],
880
- "container_fonts": 0,
881
- "visible": true,
882
- "refer": "custom"
848
+ type: 'component',
849
+ class: 'w-100',
850
+ index: 0,
851
+ label: '自定義HTML代碼',
852
+ style: '',
853
+ bundle: {},
854
+ global: [],
855
+ toggle: true,
856
+ stylist: [],
857
+ dataType: 'static',
858
+ style_from: 'code',
859
+ classDataType: 'static',
860
+ preloadEvenet: {},
861
+ share: {},
862
+ formData: {},
863
+ refreshAllParameter: {},
864
+ editor_bridge: {},
865
+ refreshComponentParameter: {},
866
+ list: [],
867
+ version: 'v2',
868
+ storage: {},
869
+ mobile: {
870
+ id: 's7scs2s9s3s5s8sc',
871
+ js: './official_view_component/official.js',
872
+ css: { class: {}, style: {} },
873
+ data: { refer_app: 'shop_template_black_style' },
874
+ type: 'component',
875
+ class: 'w-100',
876
+ index: 0,
877
+ label: '自定義HTML代碼',
878
+ style: '',
879
+ global: [],
880
+ toggle: true,
881
+ stylist: [],
882
+ dataType: 'static',
883
+ style_from: 'code',
884
+ classDataType: 'static',
885
+ preloadEvenet: {},
886
+ refreshAllParameter: {},
887
+ editor_bridge: {},
888
+ refreshComponentParameter: {},
889
+ list: [],
890
+ version: 'v2',
891
+ mobile_editable: [],
892
+ desktop_editable: [],
893
+ container_fonts: 0,
894
+ visible: true,
895
+ refer: 'custom',
883
896
  },
884
- "mobile_editable": [],
885
- "desktop": {
886
- "data": {
887
- "refer_app": "shop_template_black_style",
888
- "refer_form_data": {}
889
- }, "refer": "custom"
897
+ mobile_editable: [],
898
+ desktop: {
899
+ data: {
900
+ refer_app: 'shop_template_black_style',
901
+ refer_form_data: {},
902
+ },
903
+ refer: 'custom',
890
904
  },
891
- "desktop_editable": [],
892
- "container_fonts": 0,
893
- "visible": true
905
+ desktop_editable: [],
906
+ container_fonts: 0,
907
+ visible: true,
894
908
  });
895
909
  dialog.successMessage({ text: `AI生成完畢,使用了『${res.response.data.usage}』點 AI Points.` });
896
910
  }
@@ -904,12 +918,14 @@ function initialEditor(gvc, viewModel) {
904
918
  backGroundColor: `transparent;`,
905
919
  carry_search: [
906
920
  {
907
- key: 'device', value: device
921
+ key: 'device',
922
+ value: device,
908
923
  },
909
924
  {
910
- key: 'function', value: 'user-editor'
911
- }
912
- ]
925
+ key: 'function',
926
+ value: 'user-editor',
927
+ },
928
+ ],
913
929
  });
914
930
  };
915
931
  glitter.share.subscription = (title) => __awaiter(this, void 0, void 0, function* () {
@@ -923,11 +939,11 @@ function initialEditor(gvc, viewModel) {
923
939
  email: '',
924
940
  invoice_type: 'me',
925
941
  company: '',
926
- gui_number: ''
942
+ gui_number: '',
927
943
  },
928
- customer_info: {}
944
+ customer_info: {},
929
945
  };
930
- const dd = (yield ApiUser.getPublicConfig('ai-points-store', 'manager'));
946
+ const dd = yield ApiUser.getPublicConfig('ai-points-store', 'manager');
931
947
  if (dd.response.value) {
932
948
  vm.user_info = dd.response.value;
933
949
  }
@@ -949,15 +965,17 @@ function initialEditor(gvc, viewModel) {
949
965
  page: 0,
950
966
  searchType: 'sku',
951
967
  search: sku,
952
- app_name: window.parent.glitterBase
968
+ app_name: window.parent.glitterBase,
953
969
  });
954
- vm.line_items = [{
970
+ vm.line_items = [
971
+ {
955
972
  id: product.response.data[0].id,
956
973
  spec: product.response.data[0].content.variants.find((dd) => {
957
974
  return dd.sku === sku;
958
975
  }).spec,
959
- count: 1
960
- }];
976
+ count: 1,
977
+ },
978
+ ];
961
979
  BgWidget.settingDialog({
962
980
  gvc: gvc,
963
981
  title: title,
@@ -967,52 +985,62 @@ function initialEditor(gvc, viewModel) {
967
985
  gvc: gvc,
968
986
  title: `發票寄送電子信箱`,
969
987
  placeHolder: '請輸入發票寄送電子信箱',
970
- callback: (text) => {
988
+ callback: text => {
971
989
  vm.user_info.email = text;
972
990
  },
973
991
  type: 'email',
974
- default: vm.user_info.email
992
+ default: vm.user_info.email,
975
993
  }),
976
994
  `<div class="tx_normal fw-normal" >發票開立方式</div>`,
977
995
  BgWidget.select({
978
- gvc: gvc, callback: (text) => {
996
+ gvc: gvc,
997
+ callback: text => {
979
998
  vm.user_info.invoice_type = text;
980
999
  gvc.recreateView();
981
- }, options: [
1000
+ },
1001
+ options: [
982
1002
  { key: 'me', value: '個人單位' },
983
- { key: 'company', value: '公司行號' }
984
- ], default: vm.user_info.invoice_type
1003
+ { key: 'company', value: '公司行號' },
1004
+ ],
1005
+ default: vm.user_info.invoice_type,
985
1006
  }),
986
1007
  ...(() => {
987
1008
  if (vm.user_info.invoice_type === 'company') {
988
1009
  return [
989
1010
  BgWidget.editeInput({
990
- gvc: gvc, title: `發票抬頭`, placeHolder: '請輸入發票抬頭', callback: (text) => {
1011
+ gvc: gvc,
1012
+ title: `發票抬頭`,
1013
+ placeHolder: '請輸入發票抬頭',
1014
+ callback: text => {
991
1015
  vm.user_info.company = text;
992
- }, type: 'text', default: `${vm.user_info.company}`
1016
+ },
1017
+ type: 'text',
1018
+ default: `${vm.user_info.company}`,
993
1019
  }),
994
1020
  BgWidget.editeInput({
995
1021
  gvc: gvc,
996
1022
  title: `公司統一編號`,
997
1023
  placeHolder: '請輸入統一編號',
998
- callback: (text) => {
1024
+ callback: text => {
999
1025
  vm.user_info.gui_number = text;
1000
1026
  },
1001
1027
  type: 'number',
1002
- default: `${vm.user_info.gui_number}`
1003
- })
1028
+ default: `${vm.user_info.gui_number}`,
1029
+ }),
1004
1030
  ];
1005
1031
  }
1006
1032
  else {
1007
1033
  return [];
1008
1034
  }
1009
- })()
1035
+ })(),
1010
1036
  ].join(`<div class="my-2"></div>`)}</div>`;
1011
1037
  },
1012
1038
  footer_html: (gvc) => {
1013
- return [BgWidget.cancel(gvc.event(() => {
1039
+ return [
1040
+ BgWidget.cancel(gvc.event(() => {
1014
1041
  gvc.closeDialog();
1015
- })), BgWidget.save(gvc.event(() => __awaiter(this, void 0, void 0, function* () {
1042
+ })),
1043
+ BgWidget.save(gvc.event(() => __awaiter(this, void 0, void 0, function* () {
1016
1044
  if (vm.user_info.invoice_type !== 'company') {
1017
1045
  vm.user_info.company = '';
1018
1046
  vm.user_info.gui_number = '';
@@ -1044,10 +1072,10 @@ function initialEditor(gvc, viewModel) {
1044
1072
  user_id: 'manager',
1045
1073
  });
1046
1074
  vm.note = {
1047
- invoice_data: vm.user_info
1075
+ invoice_data: vm.user_info,
1048
1076
  };
1049
1077
  vm.customer_info = {
1050
- "payment_select": "ecPay"
1078
+ payment_select: 'ecPay',
1051
1079
  };
1052
1080
  vm.user_info.appName = window.parent.appName;
1053
1081
  BaseApi.create({
@@ -1056,7 +1084,7 @@ function initialEditor(gvc, viewModel) {
1056
1084
  headers: {
1057
1085
  'Content-Type': 'application/json',
1058
1086
  'g-app': 'shopnex',
1059
- 'Authorization': GlobalUser.saas_token,
1087
+ Authorization: GlobalUser.saas_token,
1060
1088
  },
1061
1089
  data: JSON.stringify(vm),
1062
1090
  }).then((res) => __awaiter(this, void 0, void 0, function* () {
@@ -1064,14 +1092,16 @@ function initialEditor(gvc, viewModel) {
1064
1092
  if (res.response.form) {
1065
1093
  const id = gvc.glitter.getUUID();
1066
1094
  if (gvc.glitter.deviceType === gvc.glitter.deviceTypeEnum.Ios) {
1067
- gvc.glitter.runJsInterFace("toCheckout", {
1068
- form: res.response.form
1095
+ gvc.glitter.runJsInterFace('toCheckout', {
1096
+ form: res.response.form,
1069
1097
  }, () => {
1070
1098
  window.parent.location.reload();
1071
1099
  });
1072
1100
  }
1073
1101
  else {
1074
- window.$('body').append(`<div id="${id}" style="display: none;">${res.response.form}</div>`);
1102
+ window
1103
+ .$('body')
1104
+ .append(`<div id="${id}" style="display: none;">${res.response.form}</div>`);
1075
1105
  window.document.querySelector(`#${id} #submit`).click();
1076
1106
  }
1077
1107
  gvc.closeDialog();
@@ -1080,8 +1110,9 @@ function initialEditor(gvc, viewModel) {
1080
1110
  dialog.errorMessage({ text: '發生錯誤' });
1081
1111
  }
1082
1112
  }));
1083
- })))].join('');
1084
- }
1113
+ }))),
1114
+ ].join('');
1115
+ },
1085
1116
  });
1086
1117
  });
1087
1118
  if (gvc.glitter.getUrlParameter('device') === 'mobile') {
@@ -1095,8 +1126,7 @@ function initialEditor(gvc, viewModel) {
1095
1126
  glitter.share.swal = swal;
1096
1127
  glitter.share.pastEvent = () => {
1097
1128
  if (!glitter.share.copycomponent) {
1098
- swal.nextStep(`請先複製元件`, () => {
1099
- }, 'error');
1129
+ swal.nextStep(`請先複製元件`, () => { }, 'error');
1100
1130
  return;
1101
1131
  }
1102
1132
  let copy = JSON.parse(glitter.share.copycomponent);
@@ -1195,7 +1225,7 @@ function initialEditor(gvc, viewModel) {
1195
1225
  Storage.lastSelect = data.id;
1196
1226
  glitter.htmlGenerate.hover_items = [Storage.lastSelect];
1197
1227
  data.data._style_refer_global = {
1198
- index: `0`
1228
+ index: `0`,
1199
1229
  };
1200
1230
  console.log('viewModel.selectContainer==>', viewModel.selectContainer);
1201
1231
  console.log('viewModel.selectContainer.container_config==>', viewModel.selectContainer.container_config);
@@ -1203,8 +1233,7 @@ function initialEditor(gvc, viewModel) {
1203
1233
  try {
1204
1234
  viewModel.selectContainer.container_config.getElement().recreateView();
1205
1235
  }
1206
- catch (e) {
1207
- }
1236
+ catch (e) { }
1208
1237
  }
1209
1238
  else {
1210
1239
  $(viewModel.selectContainer.container_config.getElement()).append(glitter.htmlGenerate.renderWidgetSingle({
@@ -1237,7 +1266,9 @@ function initialEditor(gvc, viewModel) {
1237
1266
  glitter.share.loading_dialog.dataLoading({ visible: false });
1238
1267
  }, 1000);
1239
1268
  }, 100);
1240
- viewModel.selectContainer && viewModel.selectContainer.rerenderReplaceElem && viewModel.selectContainer.rerenderReplaceElem();
1269
+ viewModel.selectContainer &&
1270
+ viewModel.selectContainer.rerenderReplaceElem &&
1271
+ viewModel.selectContainer.rerenderReplaceElem();
1241
1272
  }
1242
1273
  AddComponent.toggle(false);
1243
1274
  };
@@ -1292,9 +1323,20 @@ function initialEditor(gvc, viewModel) {
1292
1323
  }, 1000);
1293
1324
  }, 100);
1294
1325
  AddComponent.toggle(false);
1295
- viewModel.selectContainer && viewModel.selectContainer.rerenderReplaceElem && viewModel.selectContainer.rerenderReplaceElem();
1326
+ viewModel.selectContainer &&
1327
+ viewModel.selectContainer.rerenderReplaceElem &&
1328
+ viewModel.selectContainer.rerenderReplaceElem();
1296
1329
  };
1297
1330
  shortCutKey(gvc);
1331
+ ApiPageConfig.getPageTemplate({
1332
+ template_from: 'all',
1333
+ page: '0',
1334
+ limit: '3000',
1335
+ type: 'module',
1336
+ tag: '標頭元件,商品卡片,頁腳元件',
1337
+ }).then(res => {
1338
+ glitter.share._global_component = res.response.result.data;
1339
+ });
1298
1340
  }
1299
1341
  function shortCutKey(gvc) {
1300
1342
  document.addEventListener('keydown', function (event) {