ts-glitter 14.7.3 → 14.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.
package/lowcode/Entry.js CHANGED
@@ -80,7 +80,7 @@ export class Entry {
80
80
  }
81
81
  window.renderClock = (_a = window.renderClock) !== null && _a !== void 0 ? _a : clockF();
82
82
  console.log(`Entry-time:`, window.renderClock.stop());
83
- glitter.share.editerVersion = 'V_14.7.3';
83
+ glitter.share.editerVersion = 'V_14.7.5';
84
84
  glitter.share.start = new Date();
85
85
  const vm = {
86
86
  appConfig: [],
package/lowcode/Entry.ts CHANGED
@@ -82,7 +82,7 @@ export class Entry {
82
82
 
83
83
  (window as any).renderClock = (window as any).renderClock ?? clockF();
84
84
  console.log(`Entry-time:`, (window as any).renderClock.stop());
85
- glitter.share.editerVersion = 'V_14.7.3';
85
+ glitter.share.editerVersion = 'V_14.7.5';
86
86
  glitter.share.start = new Date();
87
87
  const vm: {
88
88
  appConfig: any;
@@ -0,0 +1,63 @@
1
+ import { BgWidget } from "../../backend-manager/bg-widget.js";
2
+ import { EditorElem } from "../../glitterBundle/plugins/editor-elem.js";
3
+ import { ShareDialog } from "../../glitterBundle/dialog/ShareDialog.js";
4
+ export class EditorAi {
5
+ static view(gvc) {
6
+ const html = String.raw;
7
+ let message = '';
8
+ return html `
9
+ <div class="p-2">
10
+ ${[
11
+ html `
12
+ <lottie-player src="${gvc.glitter.root_path}lottie/ai.json"
13
+ class="mx-auto my-n4" speed="1"
14
+ style="max-width: 100%;width: 250px;height:250px;" loop
15
+ autoplay></lottie-player>`,
16
+ `<div class="w-100 d-flex align-items-center justify-content-center my-3">${BgWidget.grayNote('點擊想要調整的元件之後,在輸入 AI 語句進行調整', `font-weight: 500;`)}</div>`,
17
+ html `
18
+ <div class="w-100" onclick="${gvc.event(() => {
19
+ if (!gvc.glitter.share.editorViewModel.selectItem) {
20
+ const dialog = new ShareDialog(gvc.glitter);
21
+ dialog.errorMessage({ text: '請先點擊要編輯的元件' });
22
+ }
23
+ })}">
24
+ ${EditorElem.editeText({
25
+ gvc: gvc,
26
+ title: '',
27
+ default: '',
28
+ placeHolder: `字體大小20px,距離左邊20px,背景顏色黃色,字體顏色藍色,標題為歡迎來到SHOPNEX開店平台.`,
29
+ callback: (text) => {
30
+ message = text;
31
+ },
32
+ min_height: 100
33
+ })}
34
+ </div>`,
35
+ html `
36
+ <div class="w-100 d-flex align-items-center justify-content-end">
37
+ ${BgWidget.save(gvc.event(() => {
38
+ const dialog = new ShareDialog(gvc.glitter);
39
+ if (!message) {
40
+ dialog.errorMessage({ text: '請輸入描述語句' });
41
+ return;
42
+ }
43
+ dialog.dataLoading({ visible: true });
44
+ gvc.glitter.getModule(new URL('./editor/ai-editor.js', gvc.glitter.root_path).href, (AiEditor) => {
45
+ AiEditor.editView(message, gvc.glitter.share.editorViewModel.selectItem, (result) => {
46
+ dialog.dataLoading({ visible: false });
47
+ if (result) {
48
+ dialog.successMessage({ text: `已為你調整元件『${result}』` });
49
+ gvc.glitter.share.editorViewModel.selectItem.refreshComponent();
50
+ gvc.glitter.closeDrawer();
51
+ }
52
+ else {
53
+ dialog.errorMessage({ text: 'AI無法理解你的意思,請輸入更確切的需求' });
54
+ }
55
+ });
56
+ });
57
+ }), "調整元素", "w-100 mt-3 py-2")}
58
+ </div>`
59
+ ].join('<div class="my-2"></div>')}
60
+ </div>`;
61
+ }
62
+ }
63
+ window.glitter.setModule(import.meta.url, EditorAi);
@@ -0,0 +1,90 @@
1
+ import {GVC} from "../../glitterBundle/GVController.js";
2
+ import {BgWidget} from "../../backend-manager/bg-widget.js";
3
+ import {EditorElem} from "../../glitterBundle/plugins/editor-elem.js";
4
+ import {ShareDialog} from "../../glitterBundle/dialog/ShareDialog.js";
5
+
6
+
7
+ export class EditorAi {
8
+ public static view(gvc: GVC) {
9
+ const html = String.raw
10
+ let message = ''
11
+ return html`
12
+ <div class="p-2">
13
+ ${[
14
+ html`
15
+ <lottie-player src="${gvc.glitter.root_path}lottie/ai.json"
16
+ class="mx-auto my-n4" speed="1"
17
+ style="max-width: 100%;width: 250px;height:250px;" loop
18
+ autoplay></lottie-player>`,
19
+ `<div class="w-100 d-flex align-items-center justify-content-center my-3">${BgWidget.grayNote('點擊想要調整的元件之後,在輸入 AI 語句進行調整', `font-weight: 500;`)}</div>`,
20
+ html`
21
+ <div class="w-100" onclick="${gvc.event(() => {
22
+ if (!gvc.glitter.share.editorViewModel.selectItem) {
23
+ const dialog = new ShareDialog(gvc.glitter)
24
+ dialog.errorMessage({text: '請先點擊要編輯的元件'})
25
+ }
26
+ })}">
27
+ ${EditorElem.editeText({
28
+ gvc: gvc,
29
+ title: '',
30
+ default: '',
31
+ placeHolder: `字體大小20px,距離左邊20px,背景顏色黃色,字體顏色藍色,標題為歡迎來到SHOPNEX開店平台.`,
32
+ callback: (text) => {
33
+ message = text;
34
+ },
35
+ min_height: 100
36
+ })}
37
+ </div>`,
38
+ html`
39
+ <div class="w-100 d-flex align-items-center justify-content-end">
40
+ ${BgWidget.save(gvc.event(() => {
41
+ const dialog = new ShareDialog(gvc.glitter)
42
+ if (!message) {
43
+ dialog.errorMessage({text: '請輸入描述語句'})
44
+ return
45
+ }
46
+
47
+ dialog.dataLoading({visible: true})
48
+ gvc.glitter.getModule(new URL('./editor/ai-editor.js', gvc.glitter.root_path).href, (AiEditor) => {
49
+ AiEditor.editView(message, gvc.glitter.share.editorViewModel.selectItem, (result: any) => {
50
+ dialog.dataLoading({visible: false})
51
+ if (result) {
52
+ dialog.successMessage({text: `已為你調整元件『${result}』`})
53
+ gvc.glitter.share.editorViewModel.selectItem.refreshComponent()
54
+ gvc.glitter.closeDrawer()
55
+ } else {
56
+ dialog.errorMessage({text: 'AI無法理解你的意思,請輸入更確切的需求'})
57
+ }
58
+
59
+ })
60
+ });
61
+
62
+ // const dialog = new ShareDialog(gvc.glitter)
63
+ // dialog.dataLoading({visible: true})
64
+ // AiChat.generateHtml({
65
+ // app_name: (window as any).appName,
66
+ // text: message
67
+ // }).then((res) => {
68
+ // if (res.result && res.response.data.usage === 0) {
69
+ // dialog.dataLoading({visible: false})
70
+ // dialog.errorMessage({text: `很抱歉你的AI代幣不足,請先前往加值`})
71
+ // } else if (res.result && (!res.response.data.obj.result)) {
72
+ // dialog.dataLoading({visible: false})
73
+ // dialog.errorMessage({text: `AI無法理解你的需求,請給出具體一點的描述`})
74
+ // } else if (!res.result) {
75
+ // dialog.dataLoading({visible: false})
76
+ // dialog.errorMessage({text: `發生錯誤`})
77
+ // } else {
78
+ //
79
+ // dialog.successMessage({text: `AI生成完畢,使用了『${res.response.data.usage}』點 AI Points.`})
80
+ //
81
+ // }
82
+ // })
83
+ }), "調整元素", "w-100 mt-3 py-2")}
84
+ </div>`
85
+ ].join('<div class="my-2"></div>')}
86
+ </div>`
87
+ }
88
+ }
89
+
90
+ (window as any).glitter.setModule(import.meta.url, EditorAi);
@@ -13,7 +13,6 @@ import { BgWidget } from '../backend-manager/bg-widget.js';
13
13
  import { AiChat } from '../glitter-base/route/ai-chat.js';
14
14
  import { ShareDialog } from '../glitterBundle/dialog/ShareDialog.js';
15
15
  import { AiPointsApi } from "../glitter-base/route/ai-points-api.js";
16
- import { EditorElem } from "../glitterBundle/plugins/editor-elem.js";
17
16
  import { ProductAi } from "./ai-generator/product-ai.js";
18
17
  import { ProductConfig } from "./product-config.js";
19
18
  import { MemberAi } from "./ai-generator/member-ai.js";
@@ -243,6 +242,7 @@ export class AiMessage {
243
242
  };
244
243
  });
245
244
  if (AiMessage.vm.select_bt === 'ai_generator') {
245
+ let container_id = gvc.glitter.getUUID();
246
246
  const map_ = [
247
247
  header,
248
248
  html `
@@ -254,7 +254,7 @@ export class AiMessage {
254
254
  gvc: gvc,
255
255
  callback: (text) => {
256
256
  vm.select_gen = text;
257
- gvc.notifyDataChange(id);
257
+ gvc.notifyDataChange(container_id);
258
258
  },
259
259
  default: vm.select_gen,
260
260
  options: [
@@ -263,28 +263,35 @@ export class AiMessage {
263
263
  ]
264
264
  })}
265
265
  </div>
266
- <div class="w-100 p-2">
267
- ${(() => {
268
- switch (vm.select_gen) {
269
- case "product":
270
- const add_product = ProductConfig.getInitial({});
271
- return ProductAi.setProduct(gvc, add_product, () => {
272
- localStorage.setItem('add_product', JSON.stringify(add_product));
273
- window.parent.glitter.setUrlParameter('tab', 'product-manager');
274
- window.parent.glitter.share.reloadEditor();
275
- window.parent.glitter.closeDrawer();
276
- });
277
- case 'member':
278
- const member_data = {};
279
- return MemberAi.addMember(gvc, member_data, () => {
280
- localStorage.setItem('add_member', JSON.stringify(member_data));
281
- window.parent.glitter.setUrlParameter('tab', 'user_list');
282
- window.parent.glitter.share.reloadEditor();
283
- window.parent.glitter.closeDrawer();
284
- });
285
- }
286
- })()}
287
- </div>
266
+ ${gvc.bindView(() => {
267
+ return {
268
+ bind: container_id,
269
+ view: () => {
270
+ switch (vm.select_gen) {
271
+ case "product":
272
+ const add_product = ProductConfig.getInitial({});
273
+ return ProductAi.setProduct(gvc, add_product, () => {
274
+ localStorage.setItem('add_product', JSON.stringify(add_product));
275
+ window.parent.glitter.setUrlParameter('tab', 'product-manager');
276
+ window.parent.glitter.share.reloadEditor();
277
+ window.parent.glitter.closeDrawer();
278
+ });
279
+ case 'member':
280
+ const member_data = {};
281
+ return MemberAi.addMember(gvc, member_data, () => {
282
+ localStorage.setItem('add_member', JSON.stringify(member_data));
283
+ window.parent.glitter.setUrlParameter('tab', 'user_list');
284
+ window.parent.glitter.share.reloadEditor();
285
+ window.parent.glitter.closeDrawer();
286
+ });
287
+ }
288
+ return ``;
289
+ },
290
+ divCreate: {
291
+ class: `w-100 p-2`
292
+ }
293
+ };
294
+ })}
288
295
  </div>`
289
296
  ];
290
297
  return map_.join('');
@@ -293,61 +300,7 @@ export class AiMessage {
293
300
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
294
301
  resolve([
295
302
  header,
296
- (AiMessage.vm.select_bt === 'page_editor') ? (() => {
297
- const html = String.raw;
298
- let message = '';
299
- return ` <div class="p-5">
300
- ${[
301
- html `
302
- <lottie-player src="${gvc.glitter.root_path}lottie/ai.json"
303
- class="mx-auto my-n4" speed="1"
304
- style="max-width: 100%;width: 250px;height:250px;" loop
305
- autoplay></lottie-player>`,
306
- `<div class="w-100 d-flex align-items-center justify-content-center my-3">${BgWidget.grayNote('點擊想要調整的元件之後,在輸入 AI 語句進行調整', `font-weight: 500;`)}</div>`,
307
- html `
308
- <div class="w-100" onclick="${gvc.event(() => {
309
- if (!gvc.glitter.share.editorViewModel.selectItem) {
310
- const dialog = new ShareDialog(gvc.glitter);
311
- dialog.errorMessage({ text: '請先點擊要編輯的元件' });
312
- }
313
- })}">
314
- ${EditorElem.editeText({
315
- gvc: gvc,
316
- title: '',
317
- default: '',
318
- placeHolder: `字體大小20px,距離左邊20px,背景顏色黃色,字體顏色藍色,標題為歡迎來到SHOPNEX開店平台.`,
319
- callback: (text) => {
320
- message = text;
321
- },
322
- min_height: 100
323
- })}
324
- </div>`,
325
- `<div class="w-100 d-flex align-items-center justify-content-end">
326
- ${BgWidget.save(gvc.event(() => {
327
- const dialog = new ShareDialog(gvc.glitter);
328
- if (!message) {
329
- dialog.errorMessage({ text: '請輸入描述語句' });
330
- return;
331
- }
332
- dialog.dataLoading({ visible: true });
333
- gvc.glitter.getModule(new URL('./editor/ai-editor.js', gvc.glitter.root_path).href, (AiEditor) => {
334
- AiEditor.editView(message, gvc.glitter.share.editorViewModel.selectItem, (result) => {
335
- dialog.dataLoading({ visible: false });
336
- if (result) {
337
- dialog.successMessage({ text: `已為你調整元件『${result}』` });
338
- gvc.glitter.share.editorViewModel.selectItem.refreshComponent();
339
- gvc.glitter.closeDrawer();
340
- }
341
- else {
342
- dialog.errorMessage({ text: 'AI無法理解你的意思,請輸入更確切的需求' });
343
- }
344
- });
345
- });
346
- }), "調整元素", "w-100 mt-3 py-2")}
347
- </div>`
348
- ].join('<div class="my-2"></div>')}
349
- </div>`;
350
- })() : gvc.bindView(() => {
303
+ gvc.bindView(() => {
351
304
  const viewId = gvc.glitter.getUUID();
352
305
  const messageID = gvc.glitter.getUUID();
353
306
  const vm = {
@@ -830,7 +783,7 @@ ${BgWidget.save(gvc.event(() => {
830
783
  socket.close();
831
784
  },
832
785
  };
833
- }),
786
+ })
834
787
  ].join(''));
835
788
  }));
836
789
  }