1"use strict";(self.webpackChunkultimate_jekyll=self.webpackChunkultimate_jekyll||[]).push([[1694],{3345(e,i,t){t.d(i,{g:()=>n});var s=t(8129);function n(e,i){const t=document.querySelector(`#prerendered-icons [data-icon="${e}"]`);return t?i?t.innerHTML.replace('class="fa"',`class="fa ${s.A.utilities().escapeHTML(i)}"`):t.innerHTML:""}},1694(e,i,t){t.r(i),t.d(i,{renderEmailPreview:()=>l,renderPushPreview:()=>c});var s=t(3345),n=t(8129);let a=null;async function l(e){const i=e.campaign||{},l=i.subject||"",c=i.preheader||"",d=i.content||"";if(!a){const e=(await t.e(3557).then(t.bind(t,3557))).default;a=new e({html:!0,breaks:!0,linkify:!0})}const r=(await t.e(9418).then(t.bind(t,9418))).default,v=d?r.sanitize(a.render(d),{ALLOWED_TAGS:["h1","h2","h3","h4","h5","h6","p","br","hr","ul","ol","li","a","b","strong","i","em","u","s","del","blockquote","pre","code","img","table","thead","tbody","tr","th","td","div","span","sup","sub"],ALLOWED_ATTR:["href","src","alt","title","width","height","class","target","rel"]}):'<p class="text-muted">No content yet</p>';return`\n <div class="email-preview">\n <div class="email-preview-header">\n <div class="email-preview-subject">${n.A.utilities().escapeHTML(l)||'<span class="text-muted">No subject</span>'}</div>\n ${c?`<div class="email-preview-preheader">${n.A.utilities().escapeHTML(c)}</div>`:""}\n </div>\n <div class="email-preview-body">${v}</div>\n <div class="email-preview-disclaimer text-muted small mt-3">\n ${(0,s.g)("triangle-exclamation","fa-xs me-1")}\n Preview shows formatted content. Final email may vary by template.\n </div>\n </div>\n `}function c(e){const i=e.campaign||{},t=i.name||"Notification Title",a=i.subject||"Notification body text...",l=i.icon||"",c=l&&l.match(/^https?:\/\/.+/)?n.A.utilities().escapeHTML(l):'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="50" height="50"%3E%3Crect width="50" height="50" fill="%236c757d" rx="8"/%3E%3C/svg%3E',d=i.clickAction||"";return`\n <div class="push-preview-frame">\n <div class="push-preview-screen">\n <div class="push-preview-status-bar">\n <span>9:41 AM</span>\n <span>\n ${(0,s.g)("wifi","fa-sm me-1")}\n ${(0,s.g)("battery-full","fa-sm")}\n </span>\n </div>\n <div class="push-preview-notification"\n ${d?`role="button" title="Click to test: ${n.A.utilities().escapeHTML(d)}"`:""}\n data-click-action="${n.A.utilities().escapeHTML(d)}">\n <div class="d-flex align-items-start">\n <img src="${c}"\n class="rounded me-2"\n width="50"\n height="50"\n onerror="this.src='data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2250%22 height=%2250%22%3E%3Crect width=%2250%22 height=%2250%22 fill=%22%236c757d%22 rx=%228%22/%3E%3C/svg%3E'">\n <div class="flex-fill">\n <div class="fw-semibold small">${n.A.utilities().escapeHTML(t)}</div>\n <div class="small text-muted mt-1">${n.A.utilities().escapeHTML(a)}</div>\n <div class="small text-muted mt-1">\n ${(0,s.g)("clock","fa-xs me-1")}\n Now\n </div>\n </div>\n </div>\n </div>\n <div class="mt-2 opacity-50">\n <div class="bg-body-secondary rounded p-2 small">\n <div class="text-muted">Earlier notifications...</div>\n </div>\n </div>\n </div>\n </div>\n `}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.