PageSourceSearch

https://smh.re/EmailDetails-91d349.bundle.js

js smh.re collected 2026-10-01 14:07:57 UTC 16,372 bytes, 98 lines download raw bytes

1"use strict";(self.webpackChunksmarpshare_frontend=self.webpackChunksmarpshare_frontend||[]).push([[6813],{9176:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{EmailDetails:()=>EmailDetails});var react=__webpack_require__(96540),react_router=__webpack_require__(56347),components=__webpack_require__(66931),tabs=__webpack_require__(34126),use_get_text=__webpack_require__(87914),email_details_content=__webpack_require__(74707),emotion_styled_browser_esm=__webpack_require__(59295),with_loader=__webpack_require__(55520),email_overview=__webpack_require__(96187),get_text=__webpack_require__(59247),free_solid_svg_icons=__webpack_require__(66188),index_es=__webpack_require__(46784),isNil=__webpack_require__(97859);const Card=emotion_styled_browser_esm.A.article`
2	display: flex;
3	flex-direction: column;
4	border: 1px solid #d9d9de;
5	height: 134px;
6	flex-grow: 1;
7	align-items: center;
8	background-color: white;
9
10	span:first-of-type {
11		color: #333333;
12	}
13`,Description=emotion_styled_browser_esm.A.header`
14	display: flex;
15	width: 100%;
16	justify-content: space-between;
17	padding: ${props=>props.theme.spacing.XS} 10px;
18`,ValueContainer=emotion_styled_browser_esm.A.div`
19	display: flex;
20	flex-direction: column;
21	max-width: 107px;
22`,Value=emotion_styled_browser_esm.A.div`
23	color: ${props=>props.color};
24	font-size: 30px;
25	font-weight: 600;
26	height: 36px;
27	min-width: 80px;
28	display: flex;
29	justify-content: center;
30`,Rate=emotion_styled_browser_esm.A.div`
31	display: flex;
32	justify-content: space-between;
33	padding-top: 6px;
34	border-top: 1px solid #d9d9de;
35	margin-top: ${props=>props.theme.spacing.XS};
36	color: #6c6c6c;
37`,AnalyticsCard=({name,value,tooltip,rate,color="#127899"})=>{const isShowRate=!(0,isNil.A)(rate);return react.createElement(Card,null,react.createElement(Description,null,react.createElement("span",null,name),react.createElement(components.m_,{place:"bottom",size:"small"},react.createElement(components.m_.Trigger,null,react.createElement(index_es.g,{icon:free_solid_svg_icons.iW_})),react.createElement(components.m_.Content,null,tooltip))),react.createElement(ValueContainer,null,react.createElement(Value,{color},value.toLocaleString("en-US")),isShowRate?react.createElement(Rate,null,react.createElement("div",null,react.createElement(get_text.q,null,"Rate")),react.createElement("div",null,rate,"%")):null))};var warning_box=__webpack_require__(37711);const Content=emotion_styled_browser_esm.A.div`
38	display: flex;
39	flex-grow: 1;
40	align-items: flex-start;
41	justify-content: space-between;
42
43	> button {
44		flex-shrink: 0;
45		color: #ce2121;
46
47		&:hover {
48			color: #ce2121;
49		}
50	}
51`,BouncedBox=({message})=>{const{gettext}=(0,use_get_text.z)(),[collapsed,setCollapsed]=react.useState(!0),isCollapsible=message.length>120,buttonText=collapsed?"Show all list":"Show less";return react.createElement(warning_box.y,null,react.createElement(Content,null,react.createElement(get_text.q,null,((message,collapsed,isCollapsible)=>collapsed&&isCollapsible?`${message.slice(0,120)}...`:message)(message,collapsed,isCollapsible)),isCollapsible&&react.createElement(components.$n,{style:"link",text:gettext(buttonText),onClick:()=>setCollapsed((collapsed=>!collapsed)),size:"small"})))},AnalyticsSection=emotion_styled_browser_esm.A.section`
52	display: flex;
53	justify-content: space-between;
54
55	& > *:not(:last-child) {
56		margin-right: ${props=>props.theme.spacing.S};
57	}
58`,DetailsTableWrapper=emotion_styled_browser_esm.A.div`
59	border: 1px solid #d9d9de;
60	background-color: ${props=>props.theme.color.SpaceDefault};
61	padding: 22px;
62`,EmailDetailsSummary=({isLoading=!1,emailCampaign,bouncedEmails})=>{const{gettext}=(0,use_get_text.z)(),{fromEmail="",emailSubject="",fromName="",recipientCount=0,analytics}=emailCampaign||{},getBouncedText=(()=>{const{ngettext,gettext}=(0,use_get_text.z)();return(0,react.useCallback)((emails=>{if(!emails.length)return"";const emailsString=emails.join(", ");return ngettext(`${gettext("%s email wasn't delivered")} ${emailsString}`,`${gettext("%s emails weren't delivered")} ${emailsString}`,emails.length)}),[gettext,ngettext])})(),bouncedString=getBouncedText(bouncedEmails),{opened=0,openedPct=0,clicked=0,clickedPct=0}=analytics||{};return react.createElement("section",null,react.createElement(with_loader.O,{isLoading},bouncedString?react.createElement(BouncedBox,{message:bouncedString}):null,react.createElement(components.hK,{dir:"y",size:"l"}),react.createElement("section",null,react.createElement(components.H3,null,react.createElement(get_text.q,null,"Analytics")),react.createElement(components.hK,{dir:"y",size:"l"}),react.createElement(AnalyticsSection,null,react.createElement(AnalyticsCard,{name:gettext("Recipients"),value:recipientCount,tooltip:gettext("Amount of recipients in the email"),color:"#50af9e"}),react.createElement(AnalyticsCard,{name:gettext("Opened"),value:opened,tooltip:gettext("Amount of unique users who opened the email"),color:"#127899",rate:openedPct}),react.createElement(AnalyticsCard,{name:gettext("Clicked"),value:clicked,tooltip:gettext("Amount of unique users who clicked any link"),color:"#dc8460",rate:clickedPct}))),react.createElement(components.hK,{dir:"y",size:"xxl"}),react.createElement("section",null,react.createElement(components.H3,null,react.createElement(get_text.q,null,"Email details")),react.createElement(components.hK,{dir:"y",size:"l"}),react.createElement(DetailsTableWrapper,null,react.createElement(email_overview._,{emailSubject,recipientsCount:recipientCount,fromName,from
62Email})))))};var use_fetch_email_campaign_query=__webpack_require__(87147),react_router_dom=__webpack_require__(54625);const StyledLink=(0,emotion_styled_browser_esm.A)(react_router_dom.N_)`
63	display: inline-flex;
64	align-items: center;
65	flex-grow: 0;
66	border: 1px solid #d9d9de;
67	background-color: #f8f8f8;
68	padding: ${props=>props.theme.spacing.S} 14px;
69
70	&,
71	&:link,
72	&:visited,
73	&:hover {
74		color: #6c6c6c;
75		text-decoration: none;
76	}
77`,LinkButton=({children,to,icon=free_solid_svg_icons.CeG})=>react.createElement(StyledLink,{to},react.createElement(index_es.g,{icon}),react.createElement(components.hK,{dir:"x",size:"xs"}),children);var use_email_html_template_query=__webpack_require__(97109);const columnStyles=[{},{},{}],getRowProps=()=>({style:{backgroundColor:"white"}}),EmailDetailsAudience=({recipients=[]})=>{const{gettext}=(0,use_get_text.z)(),headings=[gettext("Email"),gettext("First name"),gettext("Last name")],rows=recipients.map((recipient=>[recipient.email,recipient.firstName,recipient.lastName]));return react.createElement("section",null,react.createElement(components.hK,{dir:"y",size:"l"}),react.createElement(components.bQ,{headings,rows,columnStyles,getRowProps}))};var use_target_audience_query=__webpack_require__(20163),es=__webpack_require__(75942),api=__webpack_require__(56433);const useBouncedEmails=campaignId=>(0,es.useQuery)(["bounced-emails",campaignId],(()=>(campaignId=>api.Y4.mailingRetrieveBouncedEmails(campaignId).then((response=>response.data)))(campaignId)),{enabled:!!campaignId}),SAME_ARRAY=[],EmailDetailsContainer=()=>{const{gettext}=(0,use_get_text.z)(),{campaignId}=(0,react_router.g)(),{data:emailCampaign,isLoading:isCampaignLoading}=(0,use_fetch_email_campaign_query.a)(campaignId),{data:markup}=(0,use_email_html_template_query.R)(null==emailCampaign?void 0:emailCampaign.id),{data:bouncedEmailsData=SAME_ARRAY,isLoading:isBouncedEmailsLoading}=useBouncedEmails(campaignId),{data:recipients}=(0,use_target_audience_query.Tf)(null==emailCampaign?void 0:emailCampaign.mailingListId),[currentTab,setCurrentTab]=react.useState("summary"),onTabClick=tabKey=>{tabKey&&setCurrentTab(tabKey)},bouncedEmails=react.useMemo((()=>bouncedEmailsData.map((item=>item.email))),[bouncedEmailsData]);return react.createElement("section",null,react.createElement(LinkButton,{to:"/email-list"},react.createElement(get_text.q,null,"Back to list")),react.createElement(components.hK,{size:"l",dir:"y"}),react.createElement(components.H2,null,react.createElement(get_text.q,null,"Email details")),react.createElement(tabs.t,null,react.createElement(tabs.t.Tab,{key:"summary",id:"summary",label:gettext("Summary"),active:"summary"===currentTab,onClick:onTabClick},react.createElement(EmailDetailsSummary,{emailCampaign,isLoading:isCampaignLoading||isBouncedEmailsLoading,bouncedEmails})),react.createElement(tabs.t.Tab,{key:"content",id:"content",label:gettext("Content"),active:"content"===currentTab,onClick:onTabClick},react.createElement(email_details_content.g,{markup,isLoading:isCampaignLoading})),react.createElement(tabs.t.Tab,{key:"audience",id:"audience",label:gettext("Audience"),active:"audience"===currentTab,onClick:onTabClick},react.createElement(EmailDetailsAudience,{recipients}))))},EmailDetails=()=>react.createElement(EmailDetailsContainer,null)},20163:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{Tf:()=>useTargetAudienceQuery});var react_query__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(75942),src_api__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(56433);const useTargetAudienceQuery=id=>(0,react_query__WEBPACK_IMPORTED_MODULE_0__.useQuery)(["email-target-audience",id],(()=>(id=>src_api__WEBPACK_IMPORTED_MODULE_1__.Y4.mailingRetrieveRecipients(id).then((response=>response.data)))(id||"")),{enabled:!!id})},37711:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{y:()=>WarningBox});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(96540),_emotion_styled__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(59295),_fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(66188),_fortawesome_react_fontawesome__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(46784),classnames__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(32485),src_design_system_components__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(66931);const Box=_emotion_styled__WEBPACK_IMPORTED_MODULE_1__.A.section`
78	display: flex;
79	flex-grow: 1;
80	align-items: baseline;
81	background: rgba(255, 169, 65, 0.07);
82	border-radius: 0px;
83	border: 1px solid #ffa941;
84	border-left-width: 4px;
85	padding: ${props=>props.theme.spacing.S} ${props=>props.theme.spacing.M};
86	color: #2b2b2b;
87`,WarningBox=({children,className})=>react__WEBPACK_IMPORTED_MODULE_0__.createElement(Box,{className:classnames__WEBPACK_IMPORTED_MODULE_3__(className)},react__WEBPACK_IMPORTED_MODULE_0__.createElement(_fortawesome_react_fontawesome__WEBPACK_IMPORTED_MODULE_2__.g,{icon:_fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_5__.zpE,color:"#ffa941"}),react__WEBPACK_IMPORTED_MODULE_0__.createElement(src_design_system_components__WEBPACK_IMPORTED_MODULE_4__.hK,{dir:"x",size:"s"}),react__WEBPACK_IMPORTED_MODULE_0__.createElement("section",null,children))},74707:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{g:()=>EmailDetailsContent});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(96540),_emotion_styled__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(59295),src_app_modules_app_shared_layout_components_with_loader__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(55520);const EmailWrapper=_emotion_styled__WEBPACK_IMPORTED_MODULE_1__.A.div`
88	background-color: rgb(247, 247, 247);
89	border: 1px solid rgb(217, 217, 222);
90	height: 100%;
91`,StyledIframe=_emotion_styled__WEBPACK_IMPORTED_MODULE_1__.A.iframe`
92	border: 1px solid rgb(217, 217, 222);
93	border-radius: 4px;
94	min-width: 640px;
95	margin: ${s=>s.theme.spacing.XXL} auto;
96	display: block;
97	height: 1264px; // according to the designs as average newsletter height
98`,EmailDetailsContent=({markup,isLoading=!1})=>{const srcDataString=react__WEBPACK_IMPORTED_MODULE_0__.useMemo((()=>markup?`data:text/html;charset=utf-8,${encodeURIComponent(markup)}`:""),[markup]);return react__WEBPACK_IMPORTED_MODULE_0__.createElement("section",null,react__WEBPACK_IMPORTED_MODULE_0__.createElement(src_app_modules_app_shared_layout_components_with_loader__WEBPACK_IMPORTED_MODULE_2__.O,{isLoading},react__WEBPACK_IMPORTED_MODULE_0__.createElement(EmailWrapper,null,markup&&react__WEBPACK_IMPORTED_MODULE_0__.createElement(StyledIframe,{title:"Email newsletter markup","data-testid":"markup-frame",id:"markup-frame",sandbox:"",src:srcDataString}))))}},87147:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{A:()=>EMAIL_NEWSLETTER_KEYS,a:()=>useFetchEmailCampaign});var react_query__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(75942),src_api__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(56433);const EMAIL_NEWSLETTER_KEYS=["email-newsletter","campaign"],useFetchEmailCampaign=(campaignId="")=>(0,react_query__WEBPACK_IMPORTED_MODULE_0__.useQuery)([...EMAIL_NEWSLETTER_KEYS,campaignId],(()=>(campaignId=>src_api__WEBPACK_IMPORTED_MODULE_1__.Y4.retrieveMailingCampaign(campaignId).then((response=>response.data)))(campaignId)),{staleTime:0})},96187:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{_:()=>EmailOverviewTable});var react=__webpack_require__(96540),components=__webpack_require__(66931),get_text=__webpack_require__(59247),use_get_text=__webpack_require__(87914);
98const EmailOverviewTable=({emailSubject,fromName,fromEmail,showContentRow=!1,recipientsCount,goToChangeRecipients,goToChangeInfo,goToChangeContent})=>{const{gettext}=(0,use_get_text.z)(),showActions=Boolean(goToChangeRecipients&&goToChangeInfo);return react.createElement("table",{className:"email-overview-table"},react.createElement("tbody",null,react.createElement("tr",null,react.createElement("td",null,react.createElement(get_text.q,null,"Subject")),react.createElement("td",null,react.createElement(components.H5,null,gettext(emailSubject))),react.createElement("td",{className:"email-overview-table--align-right"},showActions&&react.createElement(components.$n,{text:gettext("Change email info"),type:"button",style:"link",onClick:goToChangeInfo}))),react.createElement("tr",null,react.createElement("td",null,react.createElement(get_text.q,null,"From")),react.createElement("td",null,react.createElement(components.H5,null,react.createElement(get_text.q,null,function(fromName,fromEmail){return`${fromName} ${fromEmail?`(${fromEmail})`:""}`.trim()}(fromName,fromEmail)))),react.createElement("td",null))),react.createElement("tbody",null,react.createElement("tr",null,react.createElement("td",{colSpan:3},react.createElement(components.cG,{type:"default"}))),react.createElement("tr",null,react.createElement("td",null,react.createElement(get_text.q,null,"Recipients")),react.createElement("td",null,react.createElement(components.H5,null,recipientsCount," ",gettext("entries"))),react.createElement("td",{className:"email-overview-table--align-right"},showActions&&react.createElement(components.$n,{text:gettext("Change audience"),type:"button",style:"link",onClick:goToChangeRecipients})))),showContentRow&&react.createElement(react.Fragment,null,react.createElement("tbody",null,react.createElement("tr",null,react.createElement("td",{colSpan:3},react.createElement(components.cG,{type:"default"}))),react.createElement("tr",null,react.createElement("td",null,react.createElement(get_text.q,null,"Email content")),react.createElement("td",null),react.createElement("td",{className:"email-overview-table--align-right"},showActions&&react.createElement(components.$n,{text:gettext("Change content"),type:"button",style:"link",onClick:goToChangeContent}))))))}},97109:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{R:()=>useEmailHtmlTemplateQuery});var react_query__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(75942);const useEmailHtmlTemplateQuery=mailingCampaignId=>(0,react_query__WEBPACK_IMPORTED_MODULE_0__.useQuery)(["email-html-template",mailingCampaignId],(()=>(async mailingCampaignId=>{if(!mailingCampaignId)return"";const headers=new Headers,{protocol,host}=window.location;headers.append("X-Requested-With","XMLHttpRequest");const response=await fetch(`${protocol}//${host}/api/mailing/campaign/${mailingCampaignId}/html`,{headers});return await response.text()})(mailingCampaignId)))}}]);

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.