@opentiny/tiny-engine-toolbar-save 2.6.1 → 2.7.0-alpha.0

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/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import "./style.css";
2
- import { reactive as N, ref as B, onMounted as P, onUnmounted as x, resolveComponent as f, createElementBlock as U, openBlock as E, createVNode as p, withCtx as d, createBlock as I, createCommentVNode as G, createTextVNode as S, createElementVNode as _ } from "vue";
3
- import { ToolbarBase as R, VueMonaco as j } from "@opentiny/tiny-engine-common";
4
- import { Select as Y, Checkbox as q, DialogBox as z, Popover as F, Button as H } from "@opentiny/vue";
5
- import { useMessage as V, useCanvas as C, getOptions as K, useNotify as A, useLayout as Q, usePage as W, getMetaApi as X, META_APP as Z, useBlock as $ } from "@opentiny/tiny-engine-meta-register";
6
- import { constants as w } from "@opentiny/tiny-engine-utils";
7
- import { handlePageUpdate as ee } from "@opentiny/tiny-engine-common/js/http";
8
- const D = {
2
+ import { useMessage as f, callEntry as m, getMetaApi as j, META_APP as I, useBlock as J, getOptions as L, usePage as G, useNotify as V, useLayout as R, useCanvas as u, useCompile as Q } from "@opentiny/tiny-engine-meta-register";
3
+ import { reactive as te, ref as X, onMounted as Z, onUnmounted as $, resolveComponent as w, createElementBlock as ae, openBlock as ee, createVNode as N, withCtx as P, createBlock as oe, createCommentVNode as ne, createTextVNode as W, createElementVNode as K } from "vue";
4
+ import { ToolbarBase as h, VueMonaco as M } from "@opentiny/tiny-engine-common";
5
+ import { Select as se, Checkbox as ie, DialogBox as le, Popover as ce, Button as re } from "@opentiny/vue";
6
+ import { constants as _ } from "@opentiny/tiny-engine-utils";
7
+ import { handlePageUpdate as Y } from "@opentiny/tiny-engine-common/js/http";
8
+ const B = {
9
9
  id: "engine.toolbars.save",
10
10
  type: "toolbars",
11
11
  title: "save",
@@ -15,100 +15,314 @@ const D = {
15
15
  },
16
16
  renderType: "button"
17
17
  }
18
- }, { publish: te } = V(), { PAGE_STATUS: g, AUTO_SAVED: M } = w, k = N({
18
+ }, {
19
+ publish: q
20
+ } = f(), {
21
+ PAGE_STATUS: E,
22
+ AUTO_SAVED: U
23
+ } = _, O = te({
19
24
  visible: !1,
20
25
  code: "",
21
26
  originalCode: "",
22
27
  disabled: !1
23
- }), b = B(!1), oe = async (a) => {
28
+ }), c = X(!1), z = m(async (o) => {
24
29
  var s;
25
- const e = X(Z.BlockManage), { getCurrentBlock: o } = $(), t = o();
26
- t.label = a.fileName, t.content = a, b.value = !0, t.screenshot = await e.getBlockBase64(), await ((s = e.saveBlock) == null ? void 0 : s.call(e, t)), b.value = !1;
27
- }, ae = async (a) => {
28
- const { currentPage: e } = C().pageState, o = {
29
- page_content: a
30
+ const e = j(I.BlockManage), {
31
+ getCurrentBlock: a
32
+ } = J(), t = a();
33
+ t.label = o.fileName, t.content = o, c.value = !0, t.screenshot = await e.getBlockBase64(), await ((s = e.saveBlock) == null ? void 0 : s.call(e, t)), c.value = !1;
34
+ }, {
35
+ metaData: {
36
+ id: "engine.toolbars.save.js-index.saveBlock"
37
+ },
38
+ ctx: () => ({
39
+ useBlock: J,
40
+ useCanvas: u,
41
+ useLayout: R,
42
+ useNotify: V,
43
+ usePage: G,
44
+ getOptions: L,
45
+ getMetaApi: j,
46
+ META_APP: I,
47
+ useMessage: f,
48
+ constants: _,
49
+ handlePageUpdate: Y,
50
+ meta: B,
51
+ publish: q,
52
+ PAGE_STATUS: E,
53
+ AUTO_SAVED: U,
54
+ state: O,
55
+ isLoading: c,
56
+ saveBlock: z,
57
+ savePage: F,
58
+ saveCommon: g,
59
+ openCommon: y,
60
+ getAutoSaveStatus: k,
61
+ setAutoSaveStatus: x
62
+ })
63
+ }), F = m(async (o) => {
64
+ const {
65
+ currentPage: e
66
+ } = u().pageState, a = {
67
+ page_content: o
30
68
  };
31
- b.value = !0;
69
+ c.value = !0;
32
70
  const t = {
33
71
  id: e.id,
34
- params: { ...e, ...o }
72
+ params: {
73
+ ...e,
74
+ ...a
75
+ }
35
76
  };
36
- await ee(t), b.value = !1, te({ topic: "page-saved" });
37
- }, O = (a) => {
38
- const { pageSettingState: e, isTemporaryPage: o } = W(), { isBlock: t, canvasApi: s, pageState: l, resetBlockCanvasState: r, resetPageCanvasState: i } = C(), n = JSON.parse(a), { selectNode: c } = s.value;
39
- if (t() ? r({ ...l, pageSchema: n }) : i({ ...l, pageSchema: n }), e != null && e.isAIPage) {
40
- o.saved && (o.saved = !1), o.saved = !0;
41
- const v = "page_content";
42
- return e.currentPageData[v] = n, Promise.resolve();
77
+ await Y(t), c.value = !1, q({
78
+ topic: "page-saved"
79
+ });
80
+ }, {
81
+ metaData: {
82
+ id: "engine.toolbars.save.js-index.savePage"
83
+ },
84
+ ctx: () => ({
85
+ useBlock: J,
86
+ useCanvas: u,
87
+ useLayout: R,
88
+ useNotify: V,
89
+ usePage: G,
90
+ getOptions: L,
91
+ getMetaApi: j,
92
+ META_APP: I,
93
+ useMessage: f,
94
+ constants: _,
95
+ handlePageUpdate: Y,
96
+ meta: B,
97
+ publish: q,
98
+ PAGE_STATUS: E,
99
+ AUTO_SAVED: U,
100
+ state: O,
101
+ isLoading: c,
102
+ saveBlock: z,
103
+ savePage: F,
104
+ saveCommon: g,
105
+ openCommon: y,
106
+ getAutoSaveStatus: k,
107
+ setAutoSaveStatus: x
108
+ })
109
+ }), g = m((o) => {
110
+ const {
111
+ pageSettingState: e,
112
+ isTemporaryPage: a
113
+ } = G(), {
114
+ isBlock: t,
115
+ canvasApi: s,
116
+ pageState: i,
117
+ resetBlockCanvasState: d,
118
+ resetPageCanvasState: r
119
+ } = u(), n = JSON.parse(o), {
120
+ selectNode: l
121
+ } = s.value;
122
+ if (t() ? d({
123
+ ...i,
124
+ pageSchema: n
125
+ }) : r({
126
+ ...i,
127
+ pageSchema: n
128
+ }), e != null && e.isAIPage) {
129
+ a.saved && (a.saved = !1), a.saved = !0;
130
+ const b = "page_content";
131
+ return e.currentPageData[b] = n, Promise.resolve();
43
132
  }
44
- return c(null), t() ? oe(n) : ae(n);
45
- }, J = async () => {
46
- var v;
47
- const { isSaved: a, getSchema: e } = C();
48
- if (a() || k.disabled)
133
+ return l(null), t() ? z(n) : F(n);
134
+ }, {
135
+ metaData: {
136
+ id: "engine.toolbars.save.js-index.saveCommon"
137
+ },
138
+ ctx: () => ({
139
+ useBlock: J,
140
+ useCanvas: u,
141
+ useLayout: R,
142
+ useNotify: V,
143
+ usePage: G,
144
+ getOptions: L,
145
+ getMetaApi: j,
146
+ META_APP: I,
147
+ useMessage: f,
148
+ constants: _,
149
+ handlePageUpdate: Y,
150
+ meta: B,
151
+ publish: q,
152
+ PAGE_STATUS: E,
153
+ AUTO_SAVED: U,
154
+ state: O,
155
+ isLoading: c,
156
+ saveBlock: z,
157
+ savePage: F,
158
+ saveCommon: g,
159
+ openCommon: y,
160
+ getAutoSaveStatus: k,
161
+ setAutoSaveStatus: x
162
+ })
163
+ }), y = m(async () => {
164
+ var b;
165
+ const {
166
+ isSaved: o,
167
+ getSchema: e
168
+ } = u();
169
+ if (o() || O.disabled)
49
170
  return;
50
- const { beforeSave: o, saveMethod: t, saved: s } = K(D.id);
171
+ const {
172
+ beforeSave: a,
173
+ saveMethod: t,
174
+ saved: s
175
+ } = L(B.id);
51
176
  try {
52
- if (typeof o == "function" && await o(), typeof t == "function" && await t())
177
+ if (typeof a == "function" && await a(), typeof t == "function" && await t())
53
178
  return;
54
- } catch (u) {
55
- A({
179
+ } catch (v) {
180
+ V({
56
181
  type: "error",
57
- message: `Error in saving: ${u}`
182
+ message: `Error in saving: ${v}`
58
183
  });
59
184
  }
60
- const l = (v = Q().layoutState) == null ? void 0 : v.pageStatus, r = l == null ? void 0 : l.state, i = l == null ? void 0 : l.data, n = {
61
- [g.Release]: "当前页面未锁定,请先锁定再保存",
62
- [g.Empty]: "当前应用无页面,请先新建页面再保存",
63
- [g.Guest]: "官网演示应用不能保存页面,如需体验请切换应用",
64
- [g.Lock]: `当前页面被 ${i == null ? void 0 : i.username} ${i == null ? void 0 : i.resetPasswordToken} 锁定,如需编辑请先联系他解锁文件,然后再锁定该页面后编辑!`
185
+ const i = (b = R().layoutState) == null ? void 0 : b.pageStatus, d = i == null ? void 0 : i.state, r = i == null ? void 0 : i.data, n = {
186
+ [E.Release]: "当前页面未锁定,请先锁定再保存",
187
+ [E.Empty]: "当前应用无页面,请先新建页面再保存",
188
+ [E.Guest]: "官网演示应用不能保存页面,如需体验请切换应用",
189
+ [E.Lock]: `当前页面被 ${(r == null ? void 0 : r.username) || ""} 锁定,如需编辑请先联系他解锁文件,然后再锁定该页面后编辑!`
65
190
  };
66
- if ([g.Release, g.Empty, g.Guest, g.Lock].includes(r)) {
67
- A({
191
+ if ([E.Release, E.Empty, E.Guest, E.Lock].includes(d)) {
192
+ V({
68
193
  type: "error",
69
194
  title: "保存失败",
70
- message: n[r]
195
+ message: n[d]
71
196
  });
72
197
  return;
73
198
  }
74
- k.disabled = !0;
75
- const c = e();
76
- k.code = JSON.stringify(c || {}, null, 2), O(k.code).finally(() => {
77
- if (k.disabled = !1, typeof s == "function")
199
+ O.disabled = !0;
200
+ const l = e();
201
+ O.code = JSON.stringify(l || {}, null, 2), g(O.code).finally(() => {
202
+ if (O.disabled = !1, typeof s == "function")
78
203
  try {
79
204
  s();
80
- } catch (u) {
81
- A({
205
+ } catch (v) {
206
+ V({
82
207
  type: "error",
83
- message: `Error in saved: ${u}`
208
+ message: `Error in saved: ${v}`
84
209
  });
85
210
  }
86
211
  });
87
- }, ne = () => {
212
+ }, {
213
+ metaData: {
214
+ id: "engine.toolbars.save.js-index.openCommon"
215
+ },
216
+ ctx: () => ({
217
+ useBlock: J,
218
+ useCanvas: u,
219
+ useLayout: R,
220
+ useNotify: V,
221
+ usePage: G,
222
+ getOptions: L,
223
+ getMetaApi: j,
224
+ META_APP: I,
225
+ useMessage: f,
226
+ constants: _,
227
+ handlePageUpdate: Y,
228
+ meta: B,
229
+ publish: q,
230
+ PAGE_STATUS: E,
231
+ AUTO_SAVED: U,
232
+ state: O,
233
+ isLoading: c,
234
+ saveBlock: z,
235
+ savePage: F,
236
+ saveCommon: g,
237
+ openCommon: y,
238
+ getAutoSaveStatus: k,
239
+ setAutoSaveStatus: x
240
+ })
241
+ }), k = m(() => {
88
242
  try {
89
- const a = localStorage.getItem(M) ?? "";
90
- return JSON.parse(a) ?? !1;
243
+ const o = localStorage.getItem(U) ?? "";
244
+ return JSON.parse(o) ?? !1;
91
245
  } catch {
92
246
  return !1;
93
247
  }
94
- }, se = (a) => {
248
+ }, {
249
+ metaData: {
250
+ id: "engine.toolbars.save.js-index.getAutoSaveStatus"
251
+ },
252
+ ctx: () => ({
253
+ useBlock: J,
254
+ useCanvas: u,
255
+ useLayout: R,
256
+ useNotify: V,
257
+ usePage: G,
258
+ getOptions: L,
259
+ getMetaApi: j,
260
+ META_APP: I,
261
+ useMessage: f,
262
+ constants: _,
263
+ handlePageUpdate: Y,
264
+ meta: B,
265
+ publish: q,
266
+ PAGE_STATUS: E,
267
+ AUTO_SAVED: U,
268
+ state: O,
269
+ isLoading: c,
270
+ saveBlock: z,
271
+ savePage: F,
272
+ saveCommon: g,
273
+ openCommon: y,
274
+ getAutoSaveStatus: k,
275
+ setAutoSaveStatus: x
276
+ })
277
+ }), x = m((o) => {
95
278
  try {
96
- return localStorage.setItem(M, JSON.stringify(a)), !0;
279
+ return localStorage.setItem(U, JSON.stringify(o)), !0;
97
280
  } catch {
98
281
  return !1;
99
282
  }
100
- }, { OPEN_DELAY: ie } = w, le = {
101
- saveCommon: O,
102
- openCommon: J
103
- }, ce = {
283
+ }, {
284
+ metaData: {
285
+ id: "engine.toolbars.save.js-index.setAutoSaveStatus"
286
+ },
287
+ ctx: () => ({
288
+ useBlock: J,
289
+ useCanvas: u,
290
+ useLayout: R,
291
+ useNotify: V,
292
+ usePage: G,
293
+ getOptions: L,
294
+ getMetaApi: j,
295
+ META_APP: I,
296
+ useMessage: f,
297
+ constants: _,
298
+ handlePageUpdate: Y,
299
+ meta: B,
300
+ publish: q,
301
+ PAGE_STATUS: E,
302
+ AUTO_SAVED: U,
303
+ state: O,
304
+ isLoading: c,
305
+ saveBlock: z,
306
+ savePage: F,
307
+ saveCommon: g,
308
+ openCommon: y,
309
+ getAutoSaveStatus: k,
310
+ setAutoSaveStatus: x
311
+ })
312
+ }), {
313
+ OPEN_DELAY: T
314
+ } = _, A = {
315
+ saveCommon: g,
316
+ openCommon: y
317
+ }, de = {
104
318
  components: {
105
- VueMonaco: j,
106
- TinyButton: H,
107
- TinyPopover: F,
108
- TinyDialogBox: z,
109
- TinyCheckbox: q,
110
- TinySelect: Y,
111
- ToolbarBase: R
319
+ VueMonaco: M,
320
+ TinyButton: re,
321
+ TinyPopover: ce,
322
+ TinyDialogBox: le,
323
+ TinyCheckbox: ie,
324
+ TinySelect: se,
325
+ ToolbarBase: h
112
326
  },
113
327
  props: {
114
328
  iconExpand: {
@@ -121,140 +335,615 @@ const D = {
121
335
  }
122
336
  },
123
337
  setup() {
124
- const a = [
125
- { value: 5, label: "5分钟" },
126
- { value: 10, label: "10分钟" },
127
- { value: 15, label: "15分钟" }
128
- ], e = N({
338
+ const o = [{
339
+ value: 5,
340
+ label: "5分钟"
341
+ }, {
342
+ value: 10,
343
+ label: "10分钟"
344
+ }, {
345
+ value: 15,
346
+ label: "15分钟"
347
+ }], e = te({
129
348
  visible: !1,
130
349
  code: "",
131
350
  originalCode: "",
132
351
  checked: !1,
133
352
  timeValue: 5,
134
353
  preservationTime: null
135
- }), o = B(null), { isSaved: t, setSaved: s, getSchema: l } = C(), { subscribe: r, unsubscribe: i } = V(), n = "toolbar-save", c = B(null);
136
- P(() => {
137
- r({
354
+ }), a = X(null), {
355
+ isSaved: t,
356
+ setSaved: s,
357
+ getSchema: i
358
+ } = u(), {
359
+ subscribe: d,
360
+ unsubscribe: r
361
+ } = f(), n = "toolbar-save", l = X(null);
362
+ Z(m(m(() => {
363
+ d({
138
364
  topic: "pageOrBlockInit",
139
365
  subscriber: n,
140
- callback: (y) => {
141
- c.value = JSON.stringify(y), s(!0);
366
+ callback: (H) => {
367
+ l.value = JSON.stringify(H), s(!0);
142
368
  }
143
- }), r({
369
+ }), d({
144
370
  topic: "schemaChange",
145
371
  subscriber: n,
146
372
  callback: () => {
147
- if (c.value) {
148
- const y = JSON.stringify(l()) === c.value;
149
- s(y);
373
+ if (l.value) {
374
+ const H = JSON.stringify(i()) === l.value;
375
+ s(H);
150
376
  }
151
377
  }
152
- }), r({
378
+ }), d({
153
379
  topic: "schemaImport",
154
380
  subscriber: n,
155
381
  callback: () => {
156
- if (c.value) {
157
- const y = JSON.stringify(l()) === c.value;
158
- s(y);
382
+ if (l.value) {
383
+ const H = JSON.stringify(i()) === l.value;
384
+ s(H);
159
385
  }
160
386
  }
161
387
  });
162
- }), x(() => {
163
- i({ topic: "pageOrBlockInit", subscriber: n }), i({ topic: "schemaChange", subscriber: n }), i({ topic: "schemaImport", subscriber: n });
164
- });
165
- const v = () => {
388
+ }, {
389
+ metaData: {
390
+ id: "engine.toolbars.save.Main.onMounted[0]"
391
+ },
392
+ ctx: () => ({
393
+ delayOptions: o,
394
+ state: e,
395
+ editor: a,
396
+ isSaved: t,
397
+ setSaved: s,
398
+ getSchema: i,
399
+ subscribe: d,
400
+ unsubscribe: r,
401
+ subscriber: n,
402
+ originSchema: l,
403
+ close: b,
404
+ openApi: v,
405
+ saveApi: C,
406
+ editorOptions: S,
407
+ saveSetTimeout: p,
408
+ saveConfig: D,
409
+ VueMonaco: M,
410
+ useCanvas: u,
411
+ useMessage: f,
412
+ ToolbarBase: h,
413
+ openCommon: y,
414
+ saveCommon: g,
415
+ isLoading: c,
416
+ setAutoSaveStatus: x,
417
+ getAutoSaveStatus: k,
418
+ constants: _,
419
+ OPEN_DELAY: T,
420
+ api: A
421
+ })
422
+ }), {
423
+ metaData: {
424
+ id: "engine.toolbars.save.Main.onMounted[0]"
425
+ },
426
+ ctx: () => ({
427
+ delayOptions: o,
428
+ state: e,
429
+ editor: a,
430
+ isSaved: t,
431
+ setSaved: s,
432
+ getSchema: i,
433
+ subscribe: d,
434
+ unsubscribe: r,
435
+ subscriber: n,
436
+ originSchema: l,
437
+ close: b,
438
+ openApi: v,
439
+ saveApi: C,
440
+ editorOptions: S,
441
+ saveSetTimeout: p,
442
+ saveConfig: D,
443
+ _callEntry: m,
444
+ _useCompile: Q,
445
+ _metaData: B,
446
+ VueMonaco: M,
447
+ useCanvas: u,
448
+ useMessage: f,
449
+ ToolbarBase: h,
450
+ openCommon: y,
451
+ saveCommon: g,
452
+ isLoading: c,
453
+ setAutoSaveStatus: x,
454
+ getAutoSaveStatus: k,
455
+ constants: _,
456
+ OPEN_DELAY: T,
457
+ api: A
458
+ })
459
+ })), $(m(m(() => {
460
+ r({
461
+ topic: "pageOrBlockInit",
462
+ subscriber: n
463
+ }), r({
464
+ topic: "schemaChange",
465
+ subscriber: n
466
+ }), r({
467
+ topic: "schemaImport",
468
+ subscriber: n
469
+ });
470
+ }, {
471
+ metaData: {
472
+ id: "engine.toolbars.save.Main.onUnmounted[0]"
473
+ },
474
+ ctx: () => ({
475
+ delayOptions: o,
476
+ state: e,
477
+ editor: a,
478
+ isSaved: t,
479
+ setSaved: s,
480
+ getSchema: i,
481
+ subscribe: d,
482
+ unsubscribe: r,
483
+ subscriber: n,
484
+ originSchema: l,
485
+ close: b,
486
+ openApi: v,
487
+ saveApi: C,
488
+ editorOptions: S,
489
+ saveSetTimeout: p,
490
+ saveConfig: D,
491
+ VueMonaco: M,
492
+ useCanvas: u,
493
+ useMessage: f,
494
+ ToolbarBase: h,
495
+ openCommon: y,
496
+ saveCommon: g,
497
+ isLoading: c,
498
+ setAutoSaveStatus: x,
499
+ getAutoSaveStatus: k,
500
+ constants: _,
501
+ OPEN_DELAY: T,
502
+ api: A
503
+ })
504
+ }), {
505
+ metaData: {
506
+ id: "engine.toolbars.save.Main.onUnmounted[0]"
507
+ },
508
+ ctx: () => ({
509
+ delayOptions: o,
510
+ state: e,
511
+ editor: a,
512
+ isSaved: t,
513
+ setSaved: s,
514
+ getSchema: i,
515
+ subscribe: d,
516
+ unsubscribe: r,
517
+ subscriber: n,
518
+ originSchema: l,
519
+ close: b,
520
+ openApi: v,
521
+ saveApi: C,
522
+ editorOptions: S,
523
+ saveSetTimeout: p,
524
+ saveConfig: D,
525
+ _callEntry: m,
526
+ _useCompile: Q,
527
+ _metaData: B,
528
+ VueMonaco: M,
529
+ useCanvas: u,
530
+ useMessage: f,
531
+ ToolbarBase: h,
532
+ openCommon: y,
533
+ saveCommon: g,
534
+ isLoading: c,
535
+ setAutoSaveStatus: x,
536
+ getAutoSaveStatus: k,
537
+ constants: _,
538
+ OPEN_DELAY: T,
539
+ api: A
540
+ })
541
+ }));
542
+ const b = m(() => {
166
543
  e.visible = !1, e.originalCode = "";
167
- }, u = () => {
168
- b.value || J();
169
- }, h = () => {
170
- O();
171
- }, T = {
544
+ }, {
545
+ metaData: {
546
+ id: "engine.toolbars.save.Main.close"
547
+ },
548
+ ctx: () => ({
549
+ delayOptions: o,
550
+ state: e,
551
+ editor: a,
552
+ isSaved: t,
553
+ setSaved: s,
554
+ getSchema: i,
555
+ subscribe: d,
556
+ unsubscribe: r,
557
+ subscriber: n,
558
+ originSchema: l,
559
+ close: b,
560
+ openApi: v,
561
+ saveApi: C,
562
+ editorOptions: S,
563
+ saveSetTimeout: p,
564
+ saveConfig: D,
565
+ VueMonaco: M,
566
+ useCanvas: u,
567
+ useMessage: f,
568
+ ToolbarBase: h,
569
+ openCommon: y,
570
+ saveCommon: g,
571
+ isLoading: c,
572
+ setAutoSaveStatus: x,
573
+ getAutoSaveStatus: k,
574
+ constants: _,
575
+ OPEN_DELAY: T,
576
+ api: A
577
+ })
578
+ }), v = m(() => {
579
+ c.value || y();
580
+ }, {
581
+ metaData: {
582
+ id: "engine.toolbars.save.Main.openApi"
583
+ },
584
+ ctx: () => ({
585
+ delayOptions: o,
586
+ state: e,
587
+ editor: a,
588
+ isSaved: t,
589
+ setSaved: s,
590
+ getSchema: i,
591
+ subscribe: d,
592
+ unsubscribe: r,
593
+ subscriber: n,
594
+ originSchema: l,
595
+ close: b,
596
+ openApi: v,
597
+ saveApi: C,
598
+ editorOptions: S,
599
+ saveSetTimeout: p,
600
+ saveConfig: D,
601
+ VueMonaco: M,
602
+ useCanvas: u,
603
+ useMessage: f,
604
+ ToolbarBase: h,
605
+ openCommon: y,
606
+ saveCommon: g,
607
+ isLoading: c,
608
+ setAutoSaveStatus: x,
609
+ getAutoSaveStatus: k,
610
+ constants: _,
611
+ OPEN_DELAY: T,
612
+ api: A
613
+ })
614
+ }), C = m(() => {
615
+ g();
616
+ }, {
617
+ metaData: {
618
+ id: "engine.toolbars.save.Main.saveApi"
619
+ },
620
+ ctx: () => ({
621
+ delayOptions: o,
622
+ state: e,
623
+ editor: a,
624
+ isSaved: t,
625
+ setSaved: s,
626
+ getSchema: i,
627
+ subscribe: d,
628
+ unsubscribe: r,
629
+ subscriber: n,
630
+ originSchema: l,
631
+ close: b,
632
+ openApi: v,
633
+ saveApi: C,
634
+ editorOptions: S,
635
+ saveSetTimeout: p,
636
+ saveConfig: D,
637
+ VueMonaco: M,
638
+ useCanvas: u,
639
+ useMessage: f,
640
+ ToolbarBase: h,
641
+ openCommon: y,
642
+ saveCommon: g,
643
+ isLoading: c,
644
+ setAutoSaveStatus: x,
645
+ getAutoSaveStatus: k,
646
+ constants: _,
647
+ OPEN_DELAY: T,
648
+ api: A
649
+ })
650
+ }), S = {
172
651
  language: "json",
173
652
  lineNumbers: !0,
174
653
  minimap: {
175
654
  enabled: !1
176
655
  }
177
- }, m = () => {
656
+ }, p = m(() => {
178
657
  clearTimeout(e.preservationTime), e.preservationTime = setTimeout(() => {
179
- u(), m();
658
+ v(), p();
180
659
  }, e.timeValue * 60 * 1e3);
181
- }, L = () => {
182
- se(e.checked), e.checked ? m() : clearTimeout(e.preservationTime);
183
- };
184
- return P(() => {
185
- e.checked = ne(), e.checked && m();
186
- }), x(() => {
660
+ }, {
661
+ metaData: {
662
+ id: "engine.toolbars.save.Main.saveSetTimeout"
663
+ },
664
+ ctx: () => ({
665
+ delayOptions: o,
666
+ state: e,
667
+ editor: a,
668
+ isSaved: t,
669
+ setSaved: s,
670
+ getSchema: i,
671
+ subscribe: d,
672
+ unsubscribe: r,
673
+ subscriber: n,
674
+ originSchema: l,
675
+ close: b,
676
+ openApi: v,
677
+ saveApi: C,
678
+ editorOptions: S,
679
+ saveSetTimeout: p,
680
+ saveConfig: D,
681
+ VueMonaco: M,
682
+ useCanvas: u,
683
+ useMessage: f,
684
+ ToolbarBase: h,
685
+ openCommon: y,
686
+ saveCommon: g,
687
+ isLoading: c,
688
+ setAutoSaveStatus: x,
689
+ getAutoSaveStatus: k,
690
+ constants: _,
691
+ OPEN_DELAY: T,
692
+ api: A
693
+ })
694
+ }), D = m(() => {
695
+ x(e.checked), e.checked ? p() : clearTimeout(e.preservationTime);
696
+ }, {
697
+ metaData: {
698
+ id: "engine.toolbars.save.Main.saveConfig"
699
+ },
700
+ ctx: () => ({
701
+ delayOptions: o,
702
+ state: e,
703
+ editor: a,
704
+ isSaved: t,
705
+ setSaved: s,
706
+ getSchema: i,
707
+ subscribe: d,
708
+ unsubscribe: r,
709
+ subscriber: n,
710
+ originSchema: l,
711
+ close: b,
712
+ openApi: v,
713
+ saveApi: C,
714
+ editorOptions: S,
715
+ saveSetTimeout: p,
716
+ saveConfig: D,
717
+ VueMonaco: M,
718
+ useCanvas: u,
719
+ useMessage: f,
720
+ ToolbarBase: h,
721
+ openCommon: y,
722
+ saveCommon: g,
723
+ isLoading: c,
724
+ setAutoSaveStatus: x,
725
+ getAutoSaveStatus: k,
726
+ constants: _,
727
+ OPEN_DELAY: T,
728
+ api: A
729
+ })
730
+ });
731
+ return Z(m(m(() => {
732
+ e.checked = k(), e.checked && p();
733
+ }, {
734
+ metaData: {
735
+ id: "engine.toolbars.save.Main.onMounted[1]"
736
+ },
737
+ ctx: () => ({
738
+ delayOptions: o,
739
+ state: e,
740
+ editor: a,
741
+ isSaved: t,
742
+ setSaved: s,
743
+ getSchema: i,
744
+ subscribe: d,
745
+ unsubscribe: r,
746
+ subscriber: n,
747
+ originSchema: l,
748
+ close: b,
749
+ openApi: v,
750
+ saveApi: C,
751
+ editorOptions: S,
752
+ saveSetTimeout: p,
753
+ saveConfig: D,
754
+ VueMonaco: M,
755
+ useCanvas: u,
756
+ useMessage: f,
757
+ ToolbarBase: h,
758
+ openCommon: y,
759
+ saveCommon: g,
760
+ isLoading: c,
761
+ setAutoSaveStatus: x,
762
+ getAutoSaveStatus: k,
763
+ constants: _,
764
+ OPEN_DELAY: T,
765
+ api: A
766
+ })
767
+ }), {
768
+ metaData: {
769
+ id: "engine.toolbars.save.Main.onMounted[1]"
770
+ },
771
+ ctx: () => ({
772
+ delayOptions: o,
773
+ state: e,
774
+ editor: a,
775
+ isSaved: t,
776
+ setSaved: s,
777
+ getSchema: i,
778
+ subscribe: d,
779
+ unsubscribe: r,
780
+ subscriber: n,
781
+ originSchema: l,
782
+ close: b,
783
+ openApi: v,
784
+ saveApi: C,
785
+ editorOptions: S,
786
+ saveSetTimeout: p,
787
+ saveConfig: D,
788
+ _callEntry: m,
789
+ _useCompile: Q,
790
+ _metaData: B,
791
+ VueMonaco: M,
792
+ useCanvas: u,
793
+ useMessage: f,
794
+ ToolbarBase: h,
795
+ openCommon: y,
796
+ saveCommon: g,
797
+ isLoading: c,
798
+ setAutoSaveStatus: x,
799
+ getAutoSaveStatus: k,
800
+ constants: _,
801
+ OPEN_DELAY: T,
802
+ api: A
803
+ })
804
+ })), $(m(m(() => {
187
805
  clearTimeout(e.preservationTime);
806
+ }, {
807
+ metaData: {
808
+ id: "engine.toolbars.save.Main.onUnmounted[1]"
809
+ },
810
+ ctx: () => ({
811
+ delayOptions: o,
812
+ state: e,
813
+ editor: a,
814
+ isSaved: t,
815
+ setSaved: s,
816
+ getSchema: i,
817
+ subscribe: d,
818
+ unsubscribe: r,
819
+ subscriber: n,
820
+ originSchema: l,
821
+ close: b,
822
+ openApi: v,
823
+ saveApi: C,
824
+ editorOptions: S,
825
+ saveSetTimeout: p,
826
+ saveConfig: D,
827
+ VueMonaco: M,
828
+ useCanvas: u,
829
+ useMessage: f,
830
+ ToolbarBase: h,
831
+ openCommon: y,
832
+ saveCommon: g,
833
+ isLoading: c,
834
+ setAutoSaveStatus: x,
835
+ getAutoSaveStatus: k,
836
+ constants: _,
837
+ OPEN_DELAY: T,
838
+ api: A
839
+ })
188
840
  }), {
841
+ metaData: {
842
+ id: "engine.toolbars.save.Main.onUnmounted[1]"
843
+ },
844
+ ctx: () => ({
845
+ delayOptions: o,
846
+ state: e,
847
+ editor: a,
848
+ isSaved: t,
849
+ setSaved: s,
850
+ getSchema: i,
851
+ subscribe: d,
852
+ unsubscribe: r,
853
+ subscriber: n,
854
+ originSchema: l,
855
+ close: b,
856
+ openApi: v,
857
+ saveApi: C,
858
+ editorOptions: S,
859
+ saveSetTimeout: p,
860
+ saveConfig: D,
861
+ _callEntry: m,
862
+ _useCompile: Q,
863
+ _metaData: B,
864
+ VueMonaco: M,
865
+ useCanvas: u,
866
+ useMessage: f,
867
+ ToolbarBase: h,
868
+ openCommon: y,
869
+ saveCommon: g,
870
+ isLoading: c,
871
+ setAutoSaveStatus: x,
872
+ getAutoSaveStatus: k,
873
+ constants: _,
874
+ OPEN_DELAY: T,
875
+ api: A
876
+ })
877
+ })), {
189
878
  state: e,
190
- editor: o,
191
- editorOptions: T,
192
- isLoading: b,
879
+ editor: a,
880
+ editorOptions: S,
881
+ isLoading: c,
193
882
  isSaved: t,
194
- close: v,
195
- openApi: u,
196
- saveApi: h,
197
- delayOptions: a,
198
- saveConfig: L,
199
- OPEN_DELAY: ie
883
+ close: b,
884
+ openApi: v,
885
+ saveApi: C,
886
+ delayOptions: o,
887
+ saveConfig: D,
888
+ OPEN_DELAY: T
200
889
  };
201
890
  }
202
- }, re = (a, e) => {
203
- const o = a.__vccOpts || a;
891
+ }, me = (o, e) => {
892
+ const a = o.__vccOpts || o;
204
893
  for (const [t, s] of e)
205
- o[t] = s;
206
- return o;
207
- }, de = { class: "toolbar-save" }, ue = { class: "save-style" }, me = { class: "save-time" }, pe = { class: "save-button-group" };
208
- function ve(a, e, o, t, s, l) {
209
- const r = f("svg-icon"), i = f("tiny-checkbox"), n = f("tiny-select"), c = f("tiny-button"), v = f("tiny-popover"), u = f("vue-monaco"), h = f("tiny-dialog-box"), T = f("toolbar-base");
210
- return E(), U("div", de, [
211
- p(T, {
894
+ a[t] = s;
895
+ return a;
896
+ }, ue = { class: "toolbar-save" }, ve = { class: "save-style" }, pe = { class: "save-time" }, ge = { class: "save-button-group" };
897
+ function be(o, e, a, t, s, i) {
898
+ const d = w("svg-icon"), r = w("tiny-checkbox"), n = w("tiny-select"), l = w("tiny-button"), b = w("tiny-popover"), v = w("vue-monaco"), C = w("tiny-dialog-box"), S = w("toolbar-base");
899
+ return ee(), ae("div", ue, [
900
+ N(S, {
212
901
  content: t.isLoading ? "保存中" : "保存",
213
- icon: o.options.icon.default || o.options.icon,
214
- options: { ...o.options, showDots: !t.isSaved() },
902
+ icon: a.options.icon.default || a.options.icon,
903
+ options: { ...a.options, showDots: !t.isSaved() },
215
904
  onClickApi: t.openApi
216
905
  }, {
217
- button: d(() => [
218
- p(v, {
906
+ button: P(() => [
907
+ N(b, {
219
908
  "visible-arrow": !1,
220
909
  width: "203",
221
910
  trigger: "click",
222
911
  "open-delay": t.OPEN_DELAY.Default
223
912
  }, {
224
- reference: d(() => [
225
- p(r, { name: o.iconExpand }, null, 8, ["name"])
913
+ reference: P(() => [
914
+ N(d, { name: a.iconExpand }, null, 8, ["name"])
226
915
  ]),
227
- default: d(() => [
228
- _("div", ue, [
229
- e[6] || (e[6] = _("div", { class: "save-setting" }, "保存设置", -1)),
230
- p(i, {
916
+ default: P(() => [
917
+ K("div", ve, [
918
+ e[6] || (e[6] = K("div", { class: "save-setting" }, "保存设置", -1)),
919
+ N(r, {
231
920
  modelValue: t.state.checked,
232
- "onUpdate:modelValue": e[0] || (e[0] = (m) => t.state.checked = m),
921
+ "onUpdate:modelValue": e[0] || (e[0] = (p) => t.state.checked = p),
233
922
  name: "tiny-checkbox"
234
923
  }, {
235
- default: d(() => e[3] || (e[3] = [
236
- S("自动保存")
924
+ default: P(() => e[3] || (e[3] = [
925
+ W("自动保存")
237
926
  ])),
238
927
  _: 1,
239
928
  __: [3]
240
929
  }, 8, ["modelValue"]),
241
- _("div", me, [
242
- e[4] || (e[4] = _("div", { class: "save-time-label" }, "保存间隔", -1)),
243
- p(n, {
930
+ K("div", pe, [
931
+ e[4] || (e[4] = K("div", { class: "save-time-label" }, "保存间隔", -1)),
932
+ N(n, {
244
933
  modelValue: t.state.timeValue,
245
- "onUpdate:modelValue": e[1] || (e[1] = (m) => t.state.timeValue = m),
934
+ "onUpdate:modelValue": e[1] || (e[1] = (p) => t.state.timeValue = p),
246
935
  options: t.delayOptions,
247
936
  disabled: !t.state.checked,
248
937
  autocomplete: ""
249
938
  }, null, 8, ["modelValue", "options", "disabled"])
250
939
  ]),
251
- _("div", pe, [
252
- p(c, {
940
+ K("div", ge, [
941
+ N(l, {
253
942
  type: "primary",
254
943
  onClick: t.saveConfig
255
944
  }, {
256
- default: d(() => e[5] || (e[5] = [
257
- S("设置并保存")
945
+ default: P(() => e[5] || (e[5] = [
946
+ W("设置并保存")
258
947
  ])),
259
948
  _: 1,
260
949
  __: [5]
@@ -265,37 +954,37 @@ function ve(a, e, o, t, s, l) {
265
954
  _: 1
266
955
  }, 8, ["open-delay"])
267
956
  ]),
268
- default: d(() => [
269
- p(h, {
957
+ default: P(() => [
958
+ N(C, {
270
959
  class: "dialog-box",
271
960
  modal: !1,
272
961
  fullscreen: !0,
273
962
  "append-to-body": !0,
274
963
  visible: t.state.visible,
275
964
  title: "Schema 本地与线上差异",
276
- "onUpdate:visible": e[2] || (e[2] = (m) => t.state.visible = m)
965
+ "onUpdate:visible": e[2] || (e[2] = (p) => t.state.visible = p)
277
966
  }, {
278
- footer: d(() => [
279
- p(c, { onClick: t.close }, {
280
- default: d(() => e[7] || (e[7] = [
281
- S("取 消")
967
+ footer: P(() => [
968
+ N(l, { onClick: t.close }, {
969
+ default: P(() => e[7] || (e[7] = [
970
+ W("取 消")
282
971
  ])),
283
972
  _: 1,
284
973
  __: [7]
285
974
  }, 8, ["onClick"]),
286
- p(c, {
975
+ N(l, {
287
976
  type: "primary",
288
977
  onClick: t.saveApi
289
978
  }, {
290
- default: d(() => e[8] || (e[8] = [
291
- S("保 存")
979
+ default: P(() => e[8] || (e[8] = [
980
+ W("保 存")
292
981
  ])),
293
982
  _: 1,
294
983
  __: [8]
295
984
  }, 8, ["onClick"])
296
985
  ]),
297
- default: d(() => [
298
- t.state.visible ? (E(), I(u, {
986
+ default: P(() => [
987
+ t.state.visible ? (ee(), oe(v, {
299
988
  key: 0,
300
989
  ref: "editor",
301
990
  class: "monaco-editor",
@@ -303,7 +992,7 @@ function ve(a, e, o, t, s, l) {
303
992
  options: t.editorOptions,
304
993
  value: t.state.code,
305
994
  original: t.state.originalCode
306
- }, null, 8, ["options", "value", "original"])) : G("", !0)
995
+ }, null, 8, ["options", "value", "original"])) : ne("", !0)
307
996
  ]),
308
997
  _: 1
309
998
  }, 8, ["visible"])
@@ -312,10 +1001,10 @@ function ve(a, e, o, t, s, l) {
312
1001
  }, 8, ["content", "icon", "options", "onClickApi"])
313
1002
  ]);
314
1003
  }
315
- const fe = /* @__PURE__ */ re(ce, [["render", ve], ["__scopeId", "data-v-047f42c8"]]), he = {
316
- ...D,
1004
+ const fe = /* @__PURE__ */ me(de, [["render", be], ["__scopeId", "data-v-0ac2d01a"]]), he = {
1005
+ ...B,
317
1006
  entry: fe,
318
- apis: le
1007
+ apis: A
319
1008
  };
320
1009
  export {
321
1010
  he as default
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../meta.js","../src/js/index.ts","../src/Main.vue","../index.ts"],"sourcesContent":["export default {\n id: 'engine.toolbars.save',\n type: 'toolbars',\n title: 'save',\n options: {\n icon: {\n default: 'save'\n },\n renderType: 'button'\n }\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport { reactive, ref } from 'vue'\nimport {\n useBlock,\n useCanvas,\n useLayout,\n useNotify,\n usePage,\n getOptions,\n getMetaApi,\n META_APP,\n useMessage\n} from '@opentiny/tiny-engine-meta-register'\nimport { constants } from '@opentiny/tiny-engine-utils'\nimport { handlePageUpdate } from '@opentiny/tiny-engine-common/js/http'\nimport meta from '../../meta'\n\nconst { publish } = useMessage()\n\nconst { PAGE_STATUS, AUTO_SAVED } = constants\nconst state = reactive({\n visible: false,\n code: '',\n originalCode: '',\n disabled: false\n})\n\nexport const isLoading = ref(false)\n\n// 保存或新建区块\nconst saveBlock = async (pageSchema: { fileName: any }) => {\n const api = getMetaApi(META_APP.BlockManage)\n const { getCurrentBlock } = useBlock()\n const block = getCurrentBlock()\n\n block.label = pageSchema.fileName\n // 画布上的schem回写到block的schema\n block.content = pageSchema\n // 获取区块截图\n isLoading.value = true\n block.screenshot = await api.getBlockBase64()\n await api.saveBlock?.(block)\n isLoading.value = false\n}\n\nconst savePage = async (pageSchema: any) => {\n const { currentPage } = useCanvas().pageState\n const params = {\n page_content: pageSchema\n }\n\n isLoading.value = true\n const updateParams = {\n id: currentPage.id,\n params: { ...currentPage, ...params }\n }\n await handlePageUpdate(updateParams)\n isLoading.value = false\n\n // 发布页面保存事件,通知其他组件进行相应处理\n publish({ topic: 'page-saved' })\n}\n\nexport const saveCommon = (value: string) => {\n const { pageSettingState, isTemporaryPage } = usePage()\n const { isBlock, canvasApi, pageState, resetBlockCanvasState, resetPageCanvasState } = useCanvas()\n const pageSchema = JSON.parse(value)\n const { selectNode } = canvasApi.value\n\n if (isBlock()) {\n resetBlockCanvasState({ ...pageState, pageSchema })\n } else {\n resetPageCanvasState({ ...pageState, pageSchema })\n }\n\n if (pageSettingState?.isAIPage) {\n if (isTemporaryPage.saved) {\n isTemporaryPage.saved = false\n }\n\n // 如果当前页面没有ID,为临时生成的页面,则打开新建页面面板\n isTemporaryPage.saved = true\n const pageContent = 'page_content'\n\n pageSettingState.currentPageData[pageContent] = pageSchema\n\n return Promise.resolve()\n }\n\n // 选中画布中的页面,关闭插件、属性配置\n selectNode(null)\n\n return isBlock() ? saveBlock(pageSchema) : savePage(pageSchema)\n}\nexport const openCommon = async () => {\n const { isSaved, getSchema } = useCanvas()\n if (isSaved() || state.disabled) {\n return\n }\n\n const { beforeSave, saveMethod, saved } = getOptions(meta.id)\n\n try {\n if (typeof beforeSave === 'function') {\n await beforeSave()\n }\n\n if (typeof saveMethod === 'function') {\n const stop = await saveMethod()\n\n if (stop) {\n return\n }\n }\n } catch (error) {\n useNotify({\n type: 'error',\n message: `Error in saving: ${error}`\n })\n }\n\n const pageStatus = useLayout().layoutState?.pageStatus\n const curPageState = pageStatus?.state\n const pageInfo = pageStatus?.data\n const ERR_MSG = {\n [PAGE_STATUS.Release]: '当前页面未锁定,请先锁定再保存',\n [PAGE_STATUS.Empty]: '当前应用无页面,请先新建页面再保存',\n [PAGE_STATUS.Guest]: '官网演示应用不能保存页面,如需体验请切换应用',\n [PAGE_STATUS.Lock]: `当前页面被 ${pageInfo?.username} ${pageInfo?.resetPasswordToken} 锁定,如需编辑请先联系他解锁文件,然后再锁定该页面后编辑!`\n }\n\n if ([PAGE_STATUS.Release, PAGE_STATUS.Empty, PAGE_STATUS.Guest, PAGE_STATUS.Lock].includes(curPageState)) {\n useNotify({\n type: 'error',\n title: '保存失败',\n message: ERR_MSG[curPageState]\n })\n\n return\n }\n\n state.disabled = true\n\n const pageSchema = getSchema()\n\n state.code = JSON.stringify(pageSchema || {}, null, 2)\n\n // 获取请求前schema代码,暂时先屏蔽\n /**\n if (useCanvas().isBlock()) {\n const api = getMetaApi(META_APP.BlockManage)\n const block = useBlock().getCurrentBlock()\n const remote = await api.getBlockById(block?.id)\n state.originalCode = JSON.stringify(remote?.content || {}, null, 2)\n } else {\n const api = getMetaApi(META_APP.AppManage)\n const remote = await api.getPageById(pageState?.currentPage?.id)\n state.originalCode = JSON.stringify(remote?.['page_content'] || {}, null, 2)\n }\n */\n\n saveCommon(state.code).finally(() => {\n state.disabled = false\n\n if (typeof saved === 'function') {\n try {\n saved()\n } catch (error) {\n useNotify({\n type: 'error',\n message: `Error in saved: ${error}`\n })\n }\n }\n })\n}\n\nexport const getAutoSaveStatus = () => {\n try {\n const value = localStorage.getItem(AUTO_SAVED) ?? ''\n return JSON.parse(value) ?? false\n } catch {\n return false\n }\n}\n\nexport const setAutoSaveStatus = (status: any) => {\n try {\n localStorage.setItem(AUTO_SAVED, JSON.stringify(status))\n return true\n } catch {\n return false\n }\n}\n","<template>\n <div class=\"toolbar-save\">\n <toolbar-base\n :content=\"isLoading ? '保存中' : '保存'\"\n :icon=\"options.icon.default || options.icon\"\n :options=\"{ ...options, showDots: !isSaved() }\"\n @click-api=\"openApi\"\n >\n <template #button>\n <tiny-popover :visible-arrow=\"false\" width=\"203\" trigger=\"click\" :open-delay=\"OPEN_DELAY.Default\">\n <template #reference>\n <svg-icon :name=\"iconExpand\"></svg-icon>\n </template>\n <div class=\"save-style\">\n <div class=\"save-setting\">保存设置</div>\n <tiny-checkbox v-model=\"state.checked\" name=\"tiny-checkbox\">自动保存</tiny-checkbox>\n <div class=\"save-time\">\n <div class=\"save-time-label\">保存间隔</div>\n <tiny-select v-model=\"state.timeValue\" :options=\"delayOptions\" :disabled=\"!state.checked\" autocomplete>\n </tiny-select>\n </div>\n <div class=\"save-button-group\">\n <tiny-button type=\"primary\" @click=\"saveConfig\">设置并保存</tiny-button>\n </div>\n </div>\n </tiny-popover>\n </template>\n <template #default>\n <tiny-dialog-box\n class=\"dialog-box\"\n :modal=\"false\"\n :fullscreen=\"true\"\n :append-to-body=\"true\"\n :visible=\"state.visible\"\n title=\"Schema 本地与线上差异\"\n @update:visible=\"state.visible = $event\"\n >\n <vue-monaco\n v-if=\"state.visible\"\n ref=\"editor\"\n class=\"monaco-editor\"\n :diffEditor=\"true\"\n :options=\"editorOptions\"\n :value=\"state.code\"\n :original=\"state.originalCode\"\n ></vue-monaco>\n <template #footer>\n <tiny-button @click=\"close\">取 消</tiny-button>\n <tiny-button type=\"primary\" @click=\"saveApi\">保 存</tiny-button>\n </template>\n </tiny-dialog-box>\n </template>\n </toolbar-base>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { reactive, ref, onUnmounted, onMounted } from 'vue'\nimport { VueMonaco } from '@opentiny/tiny-engine-common'\nimport { Button, Popover, DialogBox, Checkbox, Select } from '@opentiny/vue'\nimport { useCanvas, useMessage } from '@opentiny/tiny-engine-meta-register'\nimport { ToolbarBase } from '@opentiny/tiny-engine-common'\nimport { openCommon, saveCommon } from './js/index'\nimport { isLoading, setAutoSaveStatus, getAutoSaveStatus } from './js/index'\nimport { constants } from '@opentiny/tiny-engine-utils'\nconst { OPEN_DELAY } = constants\n\nexport const api = {\n saveCommon,\n openCommon\n}\nexport default {\n components: {\n VueMonaco,\n TinyButton: Button,\n TinyPopover: Popover,\n TinyDialogBox: DialogBox,\n TinyCheckbox: Checkbox,\n TinySelect: Select,\n ToolbarBase\n },\n props: {\n iconExpand: {\n type: String,\n default: 'down-arrow'\n },\n options: {\n type: Object,\n default: () => ({})\n }\n },\n setup() {\n const delayOptions = [\n { value: 5, label: '5分钟' },\n { value: 10, label: '10分钟' },\n { value: 15, label: '15分钟' }\n ]\n const state = reactive({\n visible: false,\n code: '',\n originalCode: '',\n checked: false,\n timeValue: 5,\n preservationTime: null\n })\n\n const editor = ref(null)\n\n const { isSaved, setSaved, getSchema } = useCanvas()\n\n const { subscribe, unsubscribe } = useMessage()\n const subscriber = 'toolbar-save'\n\n const originSchema = ref(null)\n\n onMounted(() => {\n // 订阅页面/区块初始化事件\n subscribe({\n topic: 'pageOrBlockInit',\n subscriber,\n callback: (schema: any) => {\n originSchema.value = JSON.stringify(schema)\n setSaved(true) // 初始化时标记为已保存\n }\n })\n\n // 订阅 schema 变更事件\n subscribe({\n topic: 'schemaChange',\n subscriber,\n callback: () => {\n if (originSchema.value) {\n const hasChange = JSON.stringify(getSchema()) === originSchema.value\n setSaved(hasChange)\n }\n }\n })\n\n // 订阅 schema 导入事件\n subscribe({\n topic: 'schemaImport',\n subscriber,\n callback: () => {\n if (originSchema.value) {\n const hasChange = JSON.stringify(getSchema()) === originSchema.value\n setSaved(hasChange)\n }\n }\n })\n })\n\n onUnmounted(() => {\n unsubscribe({ topic: 'pageOrBlockInit', subscriber })\n unsubscribe({ topic: 'schemaChange', subscriber })\n unsubscribe({ topic: 'schemaImport', subscriber })\n })\n\n const close = () => {\n state.visible = false\n state.originalCode = ''\n }\n const openApi = () => {\n if (!isLoading.value) {\n openCommon()\n }\n }\n const saveApi = () => {\n saveCommon()\n }\n // 保存或新建区块\n const editorOptions = {\n language: 'json',\n lineNumbers: true,\n minimap: {\n enabled: false\n }\n }\n const saveSetTimeout = () => {\n clearTimeout(state.preservationTime)\n state.preservationTime = setTimeout(() => {\n openApi()\n saveSetTimeout()\n }, state.timeValue * 60 * 1000)\n }\n const saveConfig = () => {\n setAutoSaveStatus(state.checked)\n if (state.checked) {\n saveSetTimeout()\n } else {\n clearTimeout(state.preservationTime)\n }\n }\n\n onMounted(() => {\n state.checked = getAutoSaveStatus()\n if (state.checked) {\n saveSetTimeout()\n }\n })\n\n onUnmounted(() => {\n clearTimeout(state.preservationTime)\n })\n\n return {\n state,\n editor,\n editorOptions,\n isLoading,\n isSaved,\n close,\n openApi,\n saveApi,\n delayOptions,\n saveConfig,\n OPEN_DELAY\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.dots {\n width: 6px;\n height: 6px;\n background: var(--te-toolbars-save-dot-color);\n border-radius: 50%;\n display: inline-block;\n position: absolute;\n top: 4px;\n right: 3px;\n z-index: 100;\n}\n\n.toolbar-save {\n .icon-down-arrow.icon-down-arrow {\n margin-left: var(--te-base-space-2x);\n margin-right: var(--te-base-space-0);\n }\n .save-button {\n background-color: var(--te-toolbars-save-button-bg-color);\n border: none;\n min-width: 70px;\n height: 26px;\n display: flex;\n align-items: center;\n padding: 0 8px;\n border-radius: 4px;\n &:not(.disabled):hover {\n background-color: var(--te-toolbars-save-button-bg-color);\n }\n }\n\n :deep(.icon-down-arrow:focus) {\n outline: none;\n }\n}\n\n.save-style {\n padding: 8px 4px;\n font-size: 12px;\n\n .save-setting {\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n height: 20px;\n margin-bottom: 16px;\n }\n\n .save-time {\n line-height: 24px;\n font-size: 12px;\n margin: 12px 0 16px 0;\n display: flex;\n .save-time-label {\n width: 60px;\n color: var(--te-toolbars-save-text-color);\n }\n\n .tiny-select {\n width: 103px;\n margin-left: 12px;\n\n :deep(.tiny-input__suffix) {\n width: 12px;\n }\n }\n :deep(.tiny-select.is-disabled .tiny-input__suffix) {\n display: flex;\n }\n }\n\n .save-button-group {\n text-align: right;\n }\n}\n\n#saving {\n cursor: not-allowed;\n color: var(--te-toolbars-save-text-color-disabled);\n\n :deep(svg) {\n color: var(--te-toolbars-save-text-color-disabled);\n }\n}\n\n.dialog-box {\n :deep(.tiny-dialog-box) {\n display: flex;\n flex-direction: column;\n\n .tiny-dialog-box__body {\n flex: 1;\n }\n }\n\n .monaco-editor {\n width: 100%;\n height: 100%;\n }\n}\n</style>\n\n<style>\n.changeRole a {\n color: var(--te-toolbars-save-text-color-link);\n padding: 0 5px;\n}\n.save-style .save-time .tiny-input__inner {\n height: 24px !important;\n}\n</style>\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport entry, { api } from './src/Main.vue'\nimport metaData from './meta'\nimport './src/styles/vars.less'\n\nexport default {\n ...metaData,\n entry,\n apis: api\n}\n"],"names":["metaData","publish","useMessage","PAGE_STATUS","AUTO_SAVED","constants","state","reactive","isLoading","ref","saveBlock","pageSchema","api","getMetaApi","META_APP","getCurrentBlock","useBlock","block","_a","savePage","currentPage","useCanvas","params","updateParams","handlePageUpdate","saveCommon","value","pageSettingState","isTemporaryPage","usePage","isBlock","canvasApi","pageState","resetBlockCanvasState","resetPageCanvasState","selectNode","pageContent","openCommon","isSaved","getSchema","beforeSave","saveMethod","saved","getOptions","meta","error","useNotify","pageStatus","useLayout","curPageState","pageInfo","ERR_MSG","getAutoSaveStatus","setAutoSaveStatus","status","OPEN_DELAY","_sfc_main","VueMonaco","Button","Popover","DialogBox","Checkbox","Select","ToolbarBase","delayOptions","editor","setSaved","subscribe","unsubscribe","subscriber","originSchema","onMounted","schema","hasChange","onUnmounted","close","openApi","saveApi","editorOptions","saveSetTimeout","saveConfig","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_openBlock","_createElementBlock","_createVNode","_component_toolbar_base","$setup","$props","_withCtx","_component_tiny_popover","_component_svg_icon","_createElementVNode","_cache","_component_tiny_checkbox","$event","_createTextVNode","_component_tiny_select","_component_tiny_button","_component_tiny_dialog_box","_createBlock","_component_vue_monaco","_createCommentVNode","index","entry"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../meta.js","../index.ts"],"sourcesContent":["export default {\n id: 'engine.toolbars.save',\n type: 'toolbars',\n title: 'save',\n options: {\n icon: {\n default: 'save'\n },\n renderType: 'button'\n }\n}\n","/**\n * Copyright (c) 2023 - present TinyEngine Authors.\n * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd.\n *\n * Use of this source code is governed by an MIT-style license.\n *\n * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,\n * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR\n * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.\n *\n */\n\nimport entry, { api } from './src/Main.vue'\nimport metaData from './meta'\nimport './src/styles/vars.less'\n\nexport default {\n ...metaData,\n entry,\n apis: api\n}\n"],"names":["metaData","index","entry","api"],"mappings":";;;;;;;AAAA,MAAeA,IAAA;AAAA,EACb,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,IACP,MAAM;AAAA,MACJ,SAAS;AAAA,IACV;AAAA,IACD,YAAY;AAAA,EAChB;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uFCMeC,KAAA;AAAA,EACb,GAAGD;AAAA,EACH,OAAAE;AAAA,EACA,MAAMC;AACR;"}
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .dots[data-v-047f42c8]{width:6px;height:6px;background:var(--te-toolbars-save-dot-color);border-radius:50%;display:inline-block;position:absolute;top:4px;right:3px;z-index:100}.toolbar-save .icon-down-arrow.icon-down-arrow[data-v-047f42c8]{margin-left:var(--te-base-space-2x);margin-right:var(--te-base-space-0)}.toolbar-save .save-button[data-v-047f42c8]{background-color:var(--te-toolbars-save-button-bg-color);border:none;min-width:70px;height:26px;display:flex;align-items:center;padding:0 8px;border-radius:4px}.toolbar-save .save-button[data-v-047f42c8]:not(.disabled):hover{background-color:var(--te-toolbars-save-button-bg-color)}.toolbar-save[data-v-047f42c8] .icon-down-arrow:focus{outline:none}.save-style[data-v-047f42c8]{padding:8px 4px;font-size:12px}.save-style .save-setting[data-v-047f42c8]{font-size:14px;font-weight:600;line-height:20px;height:20px;margin-bottom:16px}.save-style .save-time[data-v-047f42c8]{line-height:24px;font-size:12px;margin:12px 0 16px;display:flex}.save-style .save-time .save-time-label[data-v-047f42c8]{width:60px;color:var(--te-toolbars-save-text-color)}.save-style .save-time .tiny-select[data-v-047f42c8]{width:103px;margin-left:12px}.save-style .save-time .tiny-select[data-v-047f42c8] .tiny-input__suffix{width:12px}.save-style .save-time[data-v-047f42c8] .tiny-select.is-disabled .tiny-input__suffix{display:flex}.save-style .save-button-group[data-v-047f42c8]{text-align:right}#saving[data-v-047f42c8]{cursor:not-allowed;color:var(--te-toolbars-save-text-color-disabled)}#saving[data-v-047f42c8] svg{color:var(--te-toolbars-save-text-color-disabled)}.dialog-box[data-v-047f42c8] .tiny-dialog-box{display:flex;flex-direction:column}.dialog-box[data-v-047f42c8] .tiny-dialog-box .tiny-dialog-box__body{flex:1}.dialog-box .monaco-editor[data-v-047f42c8]{width:100%;height:100%}.changeRole a{color:var(--te-toolbars-save-text-color-link);padding:0 5px}.save-style .save-time .tiny-input__inner{height:24px!important}:root{--te-toolbars-save-text-color: var(--te-common-text-secondary);--te-toolbars-save-text-color-disabled: var(--te-common-text-disabled);--te-toolbars-save-dot-color: var(--te-common-color-error);--te-toolbars-save-button-bg-color: var(--te-common-bg-prompt);--te-toolbars-save-text-color-link: var(--te-common-text-link)}
1
+ .dots[data-v-0ac2d01a]{width:6px;height:6px;background:var(--te-toolbars-save-dot-color);border-radius:50%;display:inline-block;position:absolute;top:4px;right:3px;z-index:100}.toolbar-save .icon-down-arrow.icon-down-arrow[data-v-0ac2d01a]{margin-left:var(--te-base-space-2x);margin-right:var(--te-base-space-0)}.toolbar-save .save-button[data-v-0ac2d01a]{background-color:var(--te-toolbars-save-button-bg-color);border:none;min-width:70px;height:26px;display:flex;align-items:center;padding:0 8px;border-radius:4px}.toolbar-save .save-button[data-v-0ac2d01a]:not(.disabled):hover{background-color:var(--te-toolbars-save-button-bg-color)}.toolbar-save[data-v-0ac2d01a] .icon-down-arrow:focus{outline:none}.save-style[data-v-0ac2d01a]{padding:8px 4px;font-size:12px}.save-style .save-setting[data-v-0ac2d01a]{font-size:14px;font-weight:600;line-height:20px;height:20px;margin-bottom:16px}.save-style .save-time[data-v-0ac2d01a]{line-height:24px;font-size:12px;margin:12px 0 16px;display:flex}.save-style .save-time .save-time-label[data-v-0ac2d01a]{width:60px;color:var(--te-toolbars-save-text-color)}.save-style .save-time .tiny-select[data-v-0ac2d01a]{width:103px;margin-left:12px}.save-style .save-time .tiny-select[data-v-0ac2d01a] .tiny-input__suffix{width:12px}.save-style .save-time[data-v-0ac2d01a] .tiny-select.is-disabled .tiny-input__suffix{display:flex}.save-style .save-button-group[data-v-0ac2d01a]{text-align:right}#saving[data-v-0ac2d01a]{cursor:not-allowed;color:var(--te-toolbars-save-text-color-disabled)}#saving[data-v-0ac2d01a] svg{color:var(--te-toolbars-save-text-color-disabled)}.dialog-box[data-v-0ac2d01a] .tiny-dialog-box{display:flex;flex-direction:column}.dialog-box[data-v-0ac2d01a] .tiny-dialog-box .tiny-dialog-box__body{flex:1}.dialog-box .monaco-editor[data-v-0ac2d01a]{width:100%;height:100%}.changeRole a{color:var(--te-toolbars-save-text-color-link);padding:0 5px}.save-style .save-time .tiny-input__inner{height:24px!important}:root{--te-toolbars-save-text-color: var(--te-common-text-secondary);--te-toolbars-save-text-color-disabled: var(--te-common-text-disabled);--te-toolbars-save-dot-color: var(--te-common-color-error);--te-toolbars-save-button-bg-color: var(--te-common-bg-prompt);--te-toolbars-save-text-color-link: var(--te-common-text-link)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentiny/tiny-engine-toolbar-save",
3
- "version": "2.6.1",
3
+ "version": "2.7.0-alpha.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -25,12 +25,12 @@
25
25
  "license": "MIT",
26
26
  "homepage": "https://opentiny.design/tiny-engine",
27
27
  "dependencies": {
28
- "@opentiny/tiny-engine-common": "2.6.1",
29
- "@opentiny/tiny-engine-meta-register": "2.6.1",
30
- "@opentiny/tiny-engine-utils": "2.6.1"
28
+ "@opentiny/tiny-engine-common": "2.7.0-alpha.0",
29
+ "@opentiny/tiny-engine-meta-register": "2.7.0-alpha.0",
30
+ "@opentiny/tiny-engine-utils": "2.7.0-alpha.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@opentiny/tiny-engine-vite-plugin-meta-comments": "2.6.1",
33
+ "@opentiny/tiny-engine-vite-plugin-meta-comments": "2.7.0-alpha.0",
34
34
  "@vitejs/plugin-vue": "^5.1.2",
35
35
  "@vitejs/plugin-vue-jsx": "^4.0.1",
36
36
  "vite": "^5.4.2"
@@ -39,5 +39,5 @@
39
39
  "@opentiny/vue": "^3.20.0",
40
40
  "vue": "^3.4.15"
41
41
  },
42
- "gitHead": "81baa12c2e7fd029f62d377387c9f2726f1f559b"
42
+ "gitHead": "d5cbb9c02048aa7d8f8c88ac77e09d4654398d86"
43
43
  }