| 4927 | } | 4927 | } |
| 4928 | | 4928 | |
| 4929 | const params = await itemizedParams(itemizedPrompts, thisPromptSet); | 4929 | const params = await itemizedParams(itemizedPrompts, thisPromptSet); |
| | 4930 | const flatten = (rawPrompt) => Array.isArray(rawPrompt) ? rawPrompt.map(x => x.content).join('\n') : rawPrompt; |
| 4930 | | 4931 | |
| 4931 | const template = params.this_main_api == 'openai' | 4932 | const template = params.this_main_api == 'openai' |
| 4932 | ? await renderTemplateAsync('itemizationChat', params) | 4933 | ? await renderTemplateAsync('itemizationChat', params) |
| 4933 | : await renderTemplateAsync('itemizationText', params); | 4934 | : await renderTemplateAsync('itemizationText', params); |
| 4934 | | 4935 | |
| 4935 | const popup = new Popup(template, POPUP_TYPE.TEXT); | 4936 | const popup = new Popup(template, POPUP_TYPE.TEXT); |
| 4936 | if (priorPromptArrayItemForRawPromptDisplay){ | 4937 | |
| 4937 | popup.dlg.querySelector('#diffPrevPrompt').style.display=''; | 4938 | /** @type {HTMLElement} */ |
| 4938 | popup.dlg.querySelector('#diffPrevPrompt').addEventListener('click', function () { | 4939 | const diffPrevPrompt = popup.dlg.querySelector('#diffPrevPrompt'); |
| 4939 | var dmp = new diff_match_patch(); | 4940 | if (priorPromptArrayItemForRawPromptDisplay) { |
| 4940 | var text1 = itemizedPrompts[priorPromptArrayItemForRawPromptDisplay].rawPrompt; | 4941 | diffPrevPrompt.style.display = ''; |
| 4941 | var text2 = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt; | 4942 | diffPrevPrompt.addEventListener('click', function () { |
| | 4943 | const dmp = new diff_match_patch(); |
| | 4944 | const text1 = flatten(itemizedPrompts[priorPromptArrayItemForRawPromptDisplay].rawPrompt); |
| | 4945 | const text2 = flatten(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt); |
| 4942 | | 4946 | |
| 4943 | dmp.Diff_Timeout = 2.0; | 4947 | dmp.Diff_Timeout = 2.0; |
| 4944 | | | |
| 4945 | var d = dmp.diff_main(text1, text2); | | |
| 4946 | var ds = dmp.diff_prettyHtml(d); | | |
| 4947 | | 4948 | |
| | 4949 | const d = dmp.diff_main(text1, text2); |
| | 4950 | let ds = dmp.diff_prettyHtml(d); |
| 4948 | // make it readable | 4951 | // make it readable |
| 4949 | ds = ds.replaceAll("background:#e6ffe6;", "background:#b9f3b9; color:black;"); | 4952 | ds = ds.replaceAll('background:#e6ffe6;', 'background:#b9f3b9; color:black;'); |
| 4950 | ds = ds.replaceAll("background:#ffe6e6;", "background:#f5b4b4; color:black;"); | 4953 | ds = ds.replaceAll('background:#ffe6e6;', 'background:#f5b4b4; color:black;'); |
| 4951 | ds = ds.replaceAll("¶", ""); | 4954 | ds = ds.replaceAll('¶', ''); |
| 4952 | ds = "<div style='display:block;'>" + ds + "</div>"; | 4955 | const container = document.createElement('div'); |
| | 4956 | container.innerHTML = DOMPurify.sanitize(ds); |
| 4953 | const rawPromptWrapper = document.getElementById('rawPromptWrapper'); | 4957 | const rawPromptWrapper = document.getElementById('rawPromptWrapper'); |
| 4954 | rawPromptWrapper.innerHTML = ds; | 4958 | rawPromptWrapper.replaceChildren(container); |
| 4955 | $('#rawPromptPopup').slideToggle(); | 4959 | $('#rawPromptPopup').slideToggle(); |
| 4956 | }); | 4960 | }); |
| 4957 | } else { | 4961 | } else { |
| 4958 | popup.dlg.querySelector('#diffPrevPrompt').style.display='none'; | 4962 | diffPrevPrompt.style.display = 'none'; |
| 4959 | } | 4963 | } |
| 4960 | popup.dlg.querySelector('#copyPromptToClipboard').addEventListener('click', function () { | 4964 | popup.dlg.querySelector('#copyPromptToClipboard').addEventListener('click', function () { |
| 4961 | let rawPrompt = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt; | 4965 | let rawPrompt = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt; |