Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/aimogen-pro/scripts/gutenberg-editor.js
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
"use strict";
2
+
function aiomatic_uniq_fast(a)
3
+
{
4
+
var seen = {};
5
+
var out = [];
6
+
var len = a.length;
7
+
var j = 0;
8
+
for(var i = 0; i < len; i++) {
9
+
var item = a[i];
10
+
var jsit = JSON.stringify(item);
11
+
if(seen[jsit] !== 1) {
12
+
seen[jsit] = 1;
13
+
out[j++] = item;
14
+
}
15
+
}
16
+
return out;
17
+
}
18
+
(() => {
19
+
var t, e = {
20
+
401: () => {
21
+
const t = window.wp.element,
22
+
e = window.wp.richText,
23
+
o = window.wp.blockEditor,
24
+
r = window.wp.components;
25
+
async function c() {
26
+
let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "below",
27
+
e = l(),
28
+
[o, r] = p(e),
29
+
c = r.clientId,
30
+
a = o.clientId,
31
+
n = wp.data.select("core/block-editor").getBlock(c),
32
+
s = '<span id="' + (Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15)) + '" class="aiomatic-editor-loading"></span>';
33
+
if ("above" === t) {
34
+
let t = wp.blocks.createBlock("core/paragraph", {
35
+
content: s
36
+
}),
37
+
e = wp.data.select("core/block-editor").getBlockIndex(a),
38
+
o = wp.data.select("core/block-editor").getBlockRootClientId(a);
39
+
return await wp.data.dispatch("core/block-editor").insertBlock(t, e, o), t
40
+
}
41
+
if (e.length > 1 || "core/paragraph" !== n.name) {
42
+
let t = wp.blocks.createBlock("core/paragraph", {
43
+
content: s
44
+
}),
45
+
e = wp.data.select("core/block-editor").getBlockRootClientId(c),
46
+
o = wp.data.select("core/block-editor").getBlockIndex(c) + 1;
47
+
if (!wp.data.select("core/block-editor").canInsertBlockType("core/paragraph", e))
48
+
for (; e && (o = wp.data.select("core/block-editor").getBlockIndex(e) + 1, e = wp.data.select("core/block-editor").getBlockRootClientId(e), !wp.data.select("core/block-editor").canInsertBlockType("core/paragraph", e)););
49
+
return await wp.data.dispatch("core/block-editor").insertBlock(t, o, e), t
50
+
}
51
+
let d = wp.data.select("core/block-editor").getBlockRootClientId(c);
52
+
if (!wp.data.select("core/block-editor").canInsertBlockType("core/paragraph", d)) {
53
+
for (; d && (d = wp.data.select("core/block-editor").getBlockRootClientId(d), !wp.data.select("core/block-editor").canInsertBlockType("core/paragraph", d)););
54
+
let t = wp.blocks.createBlock("core/paragraph", {
55
+
content: s
56
+
});
57
+
return await wp.data.dispatch("core/block-editor").insertBlock(t, void 0, d), t
58
+
}
59
+
let w = i(n),
60
+
u = wp.richText.create({
61
+
html: w
62
+
}),
63
+
g = w.length;
64
+
"offset" in r && (g = r.offset);
65
+
let b = wp.richText.slice(u, 0, g),
66
+
k = wp.richText.slice(u, g, u.text.length),
67
+
h = wp.richText.toHTMLString({
68
+
value: b
69
+
}),
70
+
f = wp.richText.toHTMLString({
71
+
value: k
72
+
}),
73
+
m = n.attributes;
74
+
const v = r.attributeKey;
75
+
let B = m;
76
+
B[v] = h;
77
+
const I = wp.blocks.createBlock(n.name, B);
78
+
let x = m;
79
+
x[v] = s;
80
+
let _ = wp.blocks.createBlock("core/paragraph", x),
81
+
T = m;
82
+
T[v] = f;
83
+
let y = [I, _, wp.blocks.createBlock(n.name, T)];
84
+
return 0 === k.text.trim().length && (y = [I, _]), await wp.data.dispatch("core/block-editor").replaceBlock(c, y), _
85
+
}
86
+
87
+
function n() {
88
+
let t = l(),
89
+
[e, o] = p(t);
90
+
return s(t, e, o).trim()
91
+
}
92
+
93
+
function l() {
94
+
let t = wp.data.select("core/block-editor").getMultiSelectedBlockClientIds();
95
+
return 0 === t.length && (t = [wp.data.select("core/block-editor").getSelectedBlockClientId()]), t
96
+
}
97
+
98
+
function i(t) {
99
+
let e = "";
100
+
return "content" in t.attributes ? e = t.attributes.content : "citation" in t.attributes ? e = t.attributes.citation : "value" in t.attributes ? e = t.attributes.value : "values" in t.attributes ? e = t.attributes.values : "text" in t.attributes && (e = t.attributes.text), e
101
+
}
102
+
103
+
function s(t, e, o) {
104
+
let r = "";
105
+
return t.forEach((t => {
106
+
const c = wp.data.select("core/block-editor").getBlock(t);
107
+
let a = i(c),
108
+
n = wp.richText.create({
109
+
html: a
110
+
}).text,
111
+
l = 0,
112
+
p = n.length;
113
+
e.clientId === t && "offset" in e && (l = e.offset), o.clientId === t && "offset" in o && (p = o.offset), n = n.substring(l, p), r += "\n" + n, c.innerBlocks.length > 0 && (r += s(c.innerBlocks.map((t => t.clientId))))
114
+
})), r
115
+
}
116
+
117
+
function p(t) {
118
+
const e = wp.data.select("core/block-editor").getSelectionStart(),
119
+
o = wp.data.select("core/block-editor").getSelectionEnd();
120
+
if (e.clientId === o.clientId) return [e, o];
121
+
let r = e,
122
+
c = o;
123
+
return t.length > 0 && t[0] === o.clientId && (r = o, c = e), [r, c]
124
+
}
125
+
126
+
function d() {
127
+
let t = n();
128
+
return t.length > 0 && t
129
+
}(0, e.registerFormatType)("aiomatic/custom-buttons", {
130
+
title: "Aimogen Content Wizard",
131
+
tagName: "aiomatic",
132
+
className: null,
133
+
edit: e => {
134
+
let {
135
+
isActive: n,
136
+
onChange: l,
137
+
value: i
138
+
} = e, s = [];
139
+
if ("object" == typeof aiomatic && "object" == typeof aiomatic.prompts)
140
+
{
141
+
for (let operation in aiomatic.prompts)
142
+
{
143
+
let prompt = aiomatic.prompts[operation];
144
+
let icon = 'text';
145
+
if(prompt[1] == 'image')
146
+
{
147
+
icon = 'format-image';
148
+
}
149
+
s.push({
150
+
title: operation,
151
+
icon: icon,
152
+
onClick: async function() {
153
+
var selectedText = d();
154
+
var send_prompt = prompt[0].replace('%%selected_text%%', selectedText);
155
+
if(send_prompt.includes('%%'))
156
+
{
157
+
if (wp && wp.data)
158
+
{
159
+
const postId = wp.data.select("core/editor").getCurrentPostId();
160
+
const ajaxurl = aiomatic.ajaxurl;
161
+
const nonce = aiomatic.nonce;
162
+
const xdata = new FormData();
163
+
xdata.append( 'postId', postId );
164
+
xdata.append( 'nonce', nonce );
165
+
xdata.append( 'send_prompt', send_prompt );
166
+
xdata.append( 'action', 'aiomatic_shortcode_replacer' );
167
+
const response = await fetch(ajaxurl, {
168
+
method: 'POST',
169
+
body: xdata
170
+
}).catch(async error => {
171
+
console.log('An exception occurred: ' + error.text());
172
+
})
173
+
174
+
if (!response.ok)
175
+
{
176
+
console.log('An error occurred: ' + response.text());
177
+
}
178
+
else
179
+
{
180
+
const ret = await response.json();
181
+
if (ret.message !== undefined) {
182
+
console.log('A general error occurred: ' + response.text());
183
+
}
184
+
else
185
+
{
186
+
send_prompt = ret.data.content;
187
+
}
188
+
}
189
+
}
190
+
}
191
+
var block = await aiomaticCreateBlockForAutocompletion(aiomatic.placement);
192
+
if(icon == 'text')
193
+
{
194
+
await aiomaticAutocomplete(block, send_prompt);
195
+
}
196
+
else
197
+
{
198
+
if(icon == 'format-image')
199
+
{
200
+
await aiomaticImager(block, send_prompt);
201
+
}
202
+
}
203
+
},
204
+
});
205
+
}
206
+
}
207
+
s = aiomatic_uniq_fast(s);
208
+
return (0, t.createElement)(o.BlockControls, null, (0, t.createElement)(r.ToolbarGroup, null, (0, t.createElement)(r.ToolbarDropdownMenu, {
209
+
className: "aiomatic_editor_icon",
210
+
label: "Aimogen Content Wizard",
211
+
icon: '',
212
+
controls: s
213
+
})))
214
+
}
215
+
})
216
+
}
217
+
},
218
+
o = {};
219
+
220
+
function r(t) {
221
+
var c = o[t];
222
+
if (void 0 !== c) return c.exports;
223
+
var a = o[t] = {
224
+
exports: {}
225
+
};
226
+
return e[t](a, a.exports, r), a.exports
227
+
}
228
+
r.m = e, t = [], r.O = (e, o, c, a) => {
229
+
if (!o) {
230
+
var n = 1 / 0;
231
+
for (p = 0; p < t.length; p++) {
232
+
for (var [o, c, a] = t[p], l = !0, i = 0; i < o.length; i++)(!1 & a || n >= a) && Object.keys(r.O).every((t => r.O[t](o[i]))) ? o.splice(i--, 1) : (l = !1, a < n && (n = a));
233
+
if (l) {
234
+
t.splice(p--, 1);
235
+
var s = c();
236
+
void 0 !== s && (e = s)
237
+
}
238
+
}
239
+
return e
240
+
}
241
+
a = a || 0;
242
+
for (var p = t.length; p > 0 && t[p - 1][2] > a; p--) t[p] = t[p - 1];
243
+
t[p] = [o, c, a]
244
+
}, r.o = (t, e) => Object.prototype.hasOwnProperty.call(t, e), (() => {
245
+
var t = {
246
+
826: 0,
247
+
431: 0
248
+
};
249
+
r.O.j = e => 0 === t[e];
250
+
var e = (e, o) => {
251
+
var c, a, [n, l, i] = o,
252
+
s = 0;
253
+
if (n.some((e => 0 !== t[e]))) {
254
+
for (c in l) r.o(l, c) && (r.m[c] = l[c]);
255
+
if (i) var p = i(r)
256
+
}
257
+
for (e && e(o); s < n.length; s++) a = n[s], r.o(t, a) && t[a] && t[a][0](), t[a] = 0;
258
+
return r.O(p)
259
+
},
260
+
o = globalThis.webpackChunkgutenpride = globalThis.webpackChunkgutenpride || [];
261
+
o.forEach(e.bind(null, 0)), o.push = e.bind(null, o.push.bind(o))
262
+
})();
263
+
var c = r.O(void 0, [431], (() => r(401)));
264
+
c = r.O(c)
265
+
})();
266
+
267
+
async function aiomaticCreateBlockForAutocompletion(placement) {
268
+
let selectedBlockClientIds = aiomaticgetSelectedBlockClientIds();
269
+
let [selectionStart, selectionEnd] = aiomaticGetAdjustedSelections(selectedBlockClientIds);
270
+
let lastBlockClientId = selectionEnd.clientId;
271
+
let firstBlockClientId = selectionStart.clientId;
272
+
let lastBlock = wp.data.select('core/block-editor').getBlock(lastBlockClientId);
273
+
let loadingSpinner = aiomaticCreateLoadingSpinner();
274
+
if (placement === 'above') {
275
+
let autoCompleteBlock = wp.blocks.createBlock('core/paragraph', {
276
+
content: loadingSpinner
277
+
});
278
+
279
+
let index = wp.data.select('core/block-editor').getBlockIndex(firstBlockClientId);
280
+
281
+
let parentClientId = wp.data.select('core/block-editor').getBlockRootClientId(firstBlockClientId);
282
+
283
+
await wp.data.dispatch('core/block-editor').insertBlock(autoCompleteBlock, index, parentClientId);
284
+
return autoCompleteBlock;
285
+
}
286
+
if (selectedBlockClientIds.length > 1 || lastBlock.name !== 'core/paragraph') {
287
+
288
+
let autoCompleteBlock = wp.blocks.createBlock('core/paragraph', {
289
+
content: loadingSpinner
290
+
});
291
+
let parentBlockClientId = wp.data.select('core/block-editor').getBlockRootClientId(lastBlockClientId);
292
+
let indexToInsertAt = wp.data.select('core/block-editor').getBlockIndex(lastBlockClientId) + 1;
293
+
294
+
if (!wp.data.select('core/block-editor').canInsertBlockType('core/paragraph', parentBlockClientId)) {
295
+
while (parentBlockClientId) {
296
+
indexToInsertAt = wp.data.select('core/block-editor').getBlockIndex(parentBlockClientId) + 1;
297
+
parentBlockClientId = wp.data.select('core/block-editor').getBlockRootClientId(parentBlockClientId);
298
+
299
+
if (wp.data.select('core/block-editor').canInsertBlockType('core/paragraph', parentBlockClientId)) {
300
+
break;
301
+
}
302
+
}
303
+
}
304
+
await wp.data.dispatch('core/block-editor').insertBlock(autoCompleteBlock, indexToInsertAt, parentBlockClientId);
305
+
return autoCompleteBlock;
306
+
}
307
+
308
+
let parentBlockClientId = wp.data.select('core/block-editor').getBlockRootClientId(lastBlockClientId);
309
+
310
+
if (!wp.data.select('core/block-editor').canInsertBlockType('core/paragraph', parentBlockClientId)) {
311
+
312
+
while (parentBlockClientId) {
313
+
parentBlockClientId = wp.data.select('core/block-editor').getBlockRootClientId(parentBlockClientId);
314
+
315
+
if (wp.data.select('core/block-editor').canInsertBlockType('core/paragraph', parentBlockClientId)) {
316
+
break;
317
+
}
318
+
}
319
+
320
+
let autoCompleteBlock = wp.blocks.createBlock('core/paragraph', {
321
+
content: loadingSpinner
322
+
});
323
+
324
+
await wp.data.dispatch('core/block-editor').insertBlock(autoCompleteBlock, undefined, parentBlockClientId);
325
+
return autoCompleteBlock;
326
+
}
327
+
328
+
let lastBlockContent = aiomaticExtractBlockContent(lastBlock);
329
+
let richText = wp.richText.create({
330
+
html: lastBlockContent
331
+
});
332
+
let start = 0;
333
+
let end = lastBlockContent.length;
334
+
335
+
if ('offset' in selectionEnd) {
336
+
end = selectionEnd.offset;
337
+
}
338
+
339
+
let firstPart = wp.richText.slice(richText, start, end);
340
+
let secondPart = wp.richText.slice(richText, end, richText.text.length);
341
+
let firstPartContent = wp.richText.toHTMLString({
342
+
value: firstPart
343
+
});
344
+
let secondPartContent = wp.richText.toHTMLString({
345
+
value: secondPart
346
+
});
347
+
let inheritedAttributes = lastBlock.attributes;
348
+
349
+
const key = selectionEnd.attributeKey;
350
+
let firstBlockAttributes = inheritedAttributes;
351
+
firstBlockAttributes[key] = firstPartContent;
352
+
const firstPartBlock = wp.blocks.createBlock(lastBlock.name, firstBlockAttributes);
353
+
354
+
let autoCompleteAttributes = inheritedAttributes;
355
+
autoCompleteAttributes[key] = loadingSpinner;
356
+
let autoCompleteBlock = wp.blocks.createBlock('core/paragraph', autoCompleteAttributes);
357
+
358
+
let secondBlockAttributes = inheritedAttributes;
359
+
secondBlockAttributes[key] = secondPartContent;
360
+
const secondPartBlock = wp.blocks.createBlock(lastBlock.name, secondBlockAttributes);
361
+
let replacementBlocks = [firstPartBlock, autoCompleteBlock, secondPartBlock];
362
+
363
+
if (secondPart.text.trim().length === 0) {
364
+
replacementBlocks = [firstPartBlock, autoCompleteBlock];
365
+
}
366
+
367
+
368
+
await wp.data.dispatch('core/block-editor').replaceBlock(lastBlockClientId, replacementBlocks);
369
+
return autoCompleteBlock;
370
+
}
371
+
372
+
function aiomaticCreateLoadingSpinner() {
373
+
const loadingSpinnerId = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
374
+
let spinnersrc = "data:image/gif;base64,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";
375
+
let spinnerHtml = '<p id="' + loadingSpinnerId + '" class="aiomatic-mce-loading"><img src="' + spinnersrc + '"></p>';
376
+
return spinnerHtml;
377
+
}
378
+
async function aiomaticAutocomplete(autocompleteBlock, selectedText) {
379
+
let autocompletedText = '';
380
+
381
+
try {
382
+
autocompletedText = await aiomatic_doAutocompleteRequest(selectedText);
383
+
} catch (error) {
384
+
await wp.data.dispatch('core/block-editor').removeBlocks(autocompleteBlock.clientId);
385
+
alert('An API error occurred with the following response body: \n\n' + error.message);
386
+
return;
387
+
}
388
+
if(autocompletedText === undefined)
389
+
{
390
+
await wp.data.dispatch('core/block-editor').removeBlocks(autocompleteBlock.clientId);
391
+
alert('Incorrect response by AI API!');
392
+
return;
393
+
}
394
+
const autocompletedTextWithLineBreaks = autocompletedText.replace(/\n/g, '<br>');
395
+
396
+
await wp.data.dispatch('core/block-editor').updateBlockAttributes(autocompleteBlock.clientId, { isLoading: true });
397
+
setTimeout(async () => {
398
+
await wp.data.dispatch('core/block-editor').updateBlockAttributes(autocompleteBlock.clientId, { content: autocompletedTextWithLineBreaks, isLoading: false });
399
+
400
+
wp.data.dispatch('core/block-editor').selectBlock(autocompleteBlock.clientId);
401
+
wp.data.dispatch('core/block-editor').clearSelectedBlock();
402
+
}, 100);
403
+
}
404
+
async function aiomaticImager(autocompleteBlock, selectedText) {
405
+
let autocompletedText = '';
406
+
407
+
try {
408
+
autocompletedText = await aiomatic_doImageRequest(selectedText);
409
+
} catch (error) {
410
+
await wp.data.dispatch('core/block-editor').removeBlocks(autocompleteBlock.clientId);
411
+
alert('An API error occurred with the following response body: \n\n' + error.message);
412
+
return;
413
+
}
414
+
if(autocompletedText === undefined)
415
+
{
416
+
await wp.data.dispatch('core/block-editor').removeBlocks(autocompleteBlock.clientId);
417
+
alert('Incorrect response returned by AI API!');
418
+
return;
419
+
}
420
+
421
+
await wp.data.dispatch('core/block-editor').updateBlockAttributes(autocompleteBlock.clientId, { isLoading: true });
422
+
setTimeout(async () => {
423
+
await wp.data.dispatch('core/block-editor').updateBlockAttributes(autocompleteBlock.clientId, { content: autocompletedText, isLoading: false });
424
+
425
+
wp.data.dispatch('core/block-editor').selectBlock(autocompleteBlock.clientId);
426
+
wp.data.dispatch('core/block-editor').clearSelectedBlock();
427
+
}, 100);
428
+
}
429
+
430
+
const aiomatic_doAutocompleteRequest = async function (text) {
431
+
const ajaxurl = aiomatic.ajaxurl;
432
+
const nonce = aiomatic.nonce;
433
+
const xdata = new FormData();
434
+
xdata.append( 'prompt', text );
435
+
xdata.append( 'nonce', nonce );
436
+
xdata.append( 'action', 'aiomatic_editor' );
437
+
const response = await fetch(ajaxurl, {
438
+
method: 'POST',
439
+
body: xdata
440
+
}).catch(async error => {
441
+
throw new Error(await error.text());
442
+
})
443
+
444
+
if (!response.ok) {
445
+
throw new Error(await response.text());
446
+
}
447
+
448
+
const ret = await response.json();
449
+
if (ret.message !== undefined) {
450
+
throw new Error(await response.text());
451
+
}
452
+
return ret.data.content;
453
+
}
454
+
const aiomatic_doImageRequest = async function (text) {
455
+
const ajaxurl = aiomatic.ajaxurl;
456
+
const nonce = aiomatic.nonce;
457
+
const xdata = new FormData();
458
+
xdata.append( 'prompt', text );
459
+
xdata.append( 'nonce', nonce );
460
+
xdata.append( 'action', 'aiomatic_imager' );
461
+
const response = await fetch(ajaxurl, {
462
+
method: 'POST',
463
+
body: xdata
464
+
}).catch(async error => {
465
+
throw new Error(await error.text());
466
+
})
467
+
468
+
if (!response.ok) {
469
+
throw new Error(await response.text());
470
+
}
471
+
472
+
const ret = await response.json();
473
+
if (ret.message !== undefined) {
474
+
throw new Error(await response.text());
475
+
}
476
+
return ret.data.content;
477
+
}
478
+
function aiomaticgetSelectedBlockClientIds() {
479
+
let selectedBlockClientIds = wp.data.select('core/block-editor').getMultiSelectedBlockClientIds();
480
+
481
+
if (selectedBlockClientIds.length === 0) {
482
+
selectedBlockClientIds = [wp.data.select('core/block-editor').getSelectedBlockClientId()];
483
+
}
484
+
485
+
return selectedBlockClientIds;
486
+
}
487
+
function aiomaticGetAdjustedSelections(selectedBlockClientIds) {
488
+
const selectionStart = wp.data.select('core/block-editor').getSelectionStart();
489
+
const selectionEnd = wp.data.select('core/block-editor').getSelectionEnd();
490
+
491
+
if (selectionStart.clientId === selectionEnd.clientId) {
492
+
return [selectionStart, selectionEnd];
493
+
}
494
+
495
+
let adjustedSelectionStart = selectionStart;
496
+
let adjustedSelectionEnd = selectionEnd;
497
+
498
+
if (selectedBlockClientIds.length > 0 && selectedBlockClientIds[0] === selectionEnd.clientId) {
499
+
adjustedSelectionStart = selectionEnd;
500
+
adjustedSelectionEnd = selectionStart;
501
+
}
502
+
503
+
return [adjustedSelectionStart, adjustedSelectionEnd];
504
+
}
505
+
function aiomaticExtractBlockContent(block) {
506
+
let content = '';
507
+
if ('content' in block.attributes) {
508
+
content = block.attributes.content;
509
+
} else if ('citation' in block.attributes) {
510
+
content = block.attributes.citation;
511
+
} else if ('value' in block.attributes) {
512
+
content = block.attributes.value;
513
+
} else if ('values' in block.attributes) {
514
+
content = block.attributes.values;
515
+
} else if ('text' in block.attributes) {
516
+
content = block.attributes.text;
517
+
}
518
+
return content;
519
+
}