@mikezimm/fps-library-v2
Version:
Library of reusable typescript/javascript functions, interfaces and constants
114 lines (112 loc) • 7.81 kB
JavaScript
/**
* CodeAnalizerComment: Updated 2 imports on 2024-09-22 14:49:52
* Update:: import { TeamsLogo } to '@mikezimm/fps-core-v7/lib/components/atoms/SVGIcons/TeamsLogo;'
* Update:: import { IMinWPVisitorPanelInfo } to '@mikezimm/fps-core-v7/lib/banner/components/VisitorPanel/Interfaces;'
*/
/**
* CodeAnalizerComment: Updated 3 imports on 2024-09-21 23:07:24
* Update:: import { IRepoLinks } to '@mikezimm/fps-core-v7/lib/components/atoms/Links/IRepoLinks;'
* Update:: import { IMinWPVisitorPanelInfo } to '@mikezimm/fps-core-v7/lib/banner/components/VisitorPanel/Interfaces;'
* Update:: import { check4This } to '@mikezimm/fps-core-v7/lib/logic/Links/CheckSearch;'
*/
import * as React from 'react';
import { TeamsLogo } from '@mikezimm/fps-core-v7/lib/components/atoms/SVGIcons/TeamsLogo';
import { check4This, Check4 } from '@mikezimm/fps-core-v7/lib/logic/Links/CheckSearch';
/***
* db db d888888b .d8888. d888888b d888888b .d88b. d8888b. d8888b. .d8b. d8b db d88888b db d888888b d8b db d88888b .d88b.
* 88 88 `88' 88' YP `88' `~~88~~' .8P Y8. 88 `8D 88 `8D d8' `8b 888o 88 88' 88 `88' 888o 88 88' .8P Y8.
* Y8 8P 88 `8bo. 88 88 88 88 88oobY' 88oodD' 88ooo88 88V8o 88 88ooooo 88 88 88V8o 88 88ooo 88 88
* `8b d8' 88 `Y8b. 88 88 88 88 88`8b 88~~~ 88~~~88 88 V8o88 88~~~~~ 88 88 88 V8o88 88~~~ 88 88
* `8bd8' .88. db 8D .88. 88 `8b d8' 88 `88. 88 88 88 88 V888 88. 88booo. .88. 88 V888 88 `8b d8'
* YP Y888888P `8888Y' Y888888P YP `Y88P' 88 YD 88 YP YP VP V8P Y88888P Y88888P Y888888P VP V8P YP `Y88P'
*
*
*/
// export function visitorPanelInfo( wpProps: IMinWPVisitorPanelInfo, performance: ILoadPerformanceALVFM ) {
export function visitorPanelInfo(wpProps, repoLinks, bodyText, fromText, loadSummary, debugText) {
const { bannerTitle, documentationLinkDesc, documentationLinkUrl, supportContacts, panelMessageDescription1, panelMessageSupport, panelMessageDocumentation, panelMessageIfYouStill, } = wpProps;
if (!bodyText)
bodyText = 'Add your question or comment here: ';
if (!fromText)
fromText = 'SharePoint Support Team';
if (check4This(Check4.fpsInitRender_Eq_true) === true)
console.log('visitorPanelInfo - wpProps', wpProps);
// text-decoration: underline;
const headingStyles = { fontSize: 'larger', paddingTop: '25px', fontWeight: 'bold' };
const subHeadingStyles = { fontSize: 'normal', paddingLeft: '20px' };
const subHeadingStylesAround = { fontSize: 'normal', padding: '16px 20px 0px 20px' };
const contactStyles = { fontSize: 'normal', padding: '16px 20px 0px 20px' };
const Description1 = !panelMessageDescription1 ? null :
React.createElement("div", { style: subHeadingStyles }, panelMessageDescription1);
const Support = !panelMessageSupport ? null :
React.createElement("div", { style: subHeadingStylesAround }, panelMessageSupport);
const DocumentationMessage = !panelMessageDocumentation ? null :
React.createElement("div", { style: subHeadingStylesAround }, panelMessageDocumentation);
const cardStyles = {
display: 'flex',
flexDirection: 'row',
justifyContent: 'flex-start',
alignItems: 'center',
padding: '5px',
};
const lbreak = '%0D%0A';
const contactList = !supportContacts ? [] : supportContacts.map(contact => {
let pageName = window.location.pathname.substring(window.location.pathname.lastIndexOf("/") + 1);
let mailTemplate = `mailto:${contact.Email}`;
mailTemplate += `?subject=${repoLinks.desc} Webpart Question or Issue on PAGE: ${pageName}`;
mailTemplate += `&body=${bodyText} ${lbreak}${lbreak}${lbreak}`;
mailTemplate += `Page Name: ${pageName}${lbreak}${lbreak}`;
mailTemplate += `Link to page:${lbreak}${window.location.href}${lbreak}${lbreak}`;
mailTemplate += `Best Regards, ${lbreak}${lbreak}`;
mailTemplate += `${fromText}`;
//Fix: https://github.com/mikezimm/ALVFinMan/issues/141
const imageUrl = !contact.imageUrl || (contact.Email && contact.Email.indexOf('.teams.ms') > -1) ? TeamsLogo : contact.imageUrl;
return React.createElement("div", { style: cardStyles },
React.createElement("img", { src: imageUrl, alt: `Picture of ${contact.Title}`, width: 30, height: 30, style: { borderRadius: '50%' } }),
React.createElement("a", { style: { paddingLeft: '20px', paddingRight: '20px' }, href: mailTemplate }, "Email"),
React.createElement("div", { style: { paddingLeft: '20px', paddingRight: '20px' } }, contact.Title));
});
const ContactInfo = contactList.length === 0 ? null : React.createElement("div", { style: contactStyles }, contactList);
let validLink = documentationLinkUrl && documentationLinkUrl.length > 0 &&
(documentationLinkUrl.indexOf('./') === 0 ||
documentationLinkUrl.indexOf('../') === 0 ||
documentationLinkUrl.indexOf('/sites') === 0 ||
documentationLinkUrl.indexOf(window.origin) === 0) ? '' : 'Please Verify Link :(';
const docsLink = !documentationLinkUrl ? null : React.createElement("div", { style: contactStyles },
React.createElement("span", { onClick: () => onLinkClick(documentationLinkUrl), style: { color: 'blue', cursor: 'pointer', paddingRight: '30px' }, title: documentationLinkUrl }, documentationLinkDesc),
React.createElement("span", null, validLink));
// const loadSummary = createPerformanceTableVisitor( performance );
/***
* d8888b. d88888b d888888b db db d8888b. d8b db
* 88 `8D 88' `~~88~~' 88 88 88 `8D 888o 88
* 88oobY' 88ooooo 88 88 88 88oobY' 88V8o 88
* 88`8b 88~~~~~ 88 8 88 88`8b 88 V8o88
* 88 `88. 88. 88 88b d88 88 `88. 88 V888
* 88 YD Y88888P YP ~Y8888P' 88 YD VP V8P
*
*
*/
let panelMessageIfYouStillContent = panelMessageIfYouStill ? panelMessageIfYouStill : ' - please contact the owner of this webpart before submitting an incident.';
return (React.createElement("div", { style: { fontSize: 'larger' } },
React.createElement("h2", null, `Support information for: ${bannerTitle ? bannerTitle : 'This web part'}`),
Description1,
React.createElement("div", { style: headingStyles }, "If the webpart displays a warning"),
React.createElement("div", { style: subHeadingStyles }, " - please notify someone listed below in the contacts section"),
React.createElement("div", { style: headingStyles }, "Before asking for additional support"),
React.createElement("div", { style: subHeadingStyles }, " - please review our support documentation"),
Support,
DocumentationMessage,
docsLink,
React.createElement("div", { style: headingStyles }, "If you still have issues..."),
React.createElement("div", { style: subHeadingStyles },
panelMessageIfYouStillContent,
" "),
React.createElement("div", { style: headingStyles }, "Contact(s) for primary support or issues"),
React.createElement("div", null, ContactInfo),
debugText ? React.createElement("div", null, debugText) : undefined,
React.createElement("div", null, loadSummary)));
}
function onLinkClick(gotoLink) {
window.open(gotoLink, '_none');
}
//# sourceMappingURL=VisitorPanelComponent.js.map