UNPKG

@mikezimm/fps-core-v7

Version:

Library of reusable core interfaces, types and constants migrated from fps-library-v2

151 lines (150 loc) 5.82 kB
/** * CodeAnalizerComment: Updated 1 imports on 2024-09-21 23:07:24 * Update:: import { ISimpleLink } to '@mikezimm/fps-core-v7/lib/logic/Links/interfaces/ISimpleLink;' */ // import { CurrentOrigin, CurrentPathname } from "../Strings/getSiteCollectionUrlFromLink"; import { CurrentOrigin, CurrentPathname } from "../../components/molecules/source-props/WindowLocationConstants"; export function getBrowser(validTypes, changeSiteIcon) { let thisBrowser = ""; return thisBrowser; } export function amIOnThisWeb(webUrl) { let result = false; let ImOnThisWeb = getWebUrlFromLink(null, 'abs'); webUrl = getWebUrlFromLink(webUrl, 'abs'); if (ImOnThisWeb == webUrl) { result = true; } return result; } /** * Takes in full url like from a list or library and tries to trim it down to a web url. * Only is able to fix some links to common lists, libraries and system pages * @param SiteLink * @param absoluteOrRelative * @returns */ export function getWebUrlFromLink(SiteLink, absoluteOrRelative) { if (!SiteLink || SiteLink === '') { SiteLink = `${CurrentPathname}`; } else { SiteLink = SiteLink + ''; } //Remove all search parameters first if (SiteLink.toLowerCase().indexOf('?') > 0) { SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('?')); } if (SiteLink.toLowerCase().indexOf('/sitepages/') > 0) { SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/sitepages/')); } if (SiteLink.toLowerCase().indexOf('/documents/') > 0) { SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/documents/')); } if (SiteLink.toLowerCase().indexOf('/siteassets/') > 0) { SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/siteassets/')); } if (SiteLink.toLowerCase().indexOf('/lists/') > 0) { SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/lists/')); } if (SiteLink.toLowerCase().indexOf('/_layouts/') > 0) { SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/_layouts/')); } if (SiteLink.toLowerCase().indexOf('/forms/') > 0) { SiteLink = SiteLink.toLowerCase().substring(0, SiteLink.toLowerCase().indexOf('/forms/')); //Need to take up one more notch SiteLink = SiteLink.substr(0, SiteLink.lastIndexOf('/')); } if (absoluteOrRelative === 'abs') { if (SiteLink.toLowerCase().indexOf('/sites/') === 0) { SiteLink = CurrentOrigin + SiteLink; } } else if (absoluteOrRelative === 'rel') { if (SiteLink.toLowerCase().indexOf(CurrentOrigin) === 0) { SiteLink = SiteLink.substring(CurrentOrigin.length); } } else { alert('whoops.... unexpected paramter in getWebUrlFromLink: absoluteOrRelative = ' + absoluteOrRelative); } return SiteLink; } /** * getUrlVarsAsObject was copied from Pivot Tiles.... and was called getUrlVars THEIR * turns url variables into an object where the keys equal the paramters and the value is the value of the paramter * This was originally from Pivot Tiles * @returns */ export function getUrlVarsAsObject() { if (!location.search || location.search.length === 0) { return []; } const vars = location.search .slice(1) .split('&') .map(p => p.split('=')) .reduce((obj, pair) => { const [key, value] = pair.map(decodeURIComponent); return ({ ...obj, [key]: value }); }, {}); return vars; } /** * getUrlVarsAsStrings was originally: getUrlVars * turns url variables array of strings like `param=value`; * This was originally from Pivot Tiles * @returns */ export function getUrlVarsAsStrings() { if (!location.search || location.search.length === 0) { return []; } const vars = getUrlVarsAsObject(); const params = Object.keys(vars).map(k => { return k + '=' + vars[k]; }); return params; } /** * Returns standard link object with Url and Description * 2025-02-25: NOTE: This does NOT TRIM the PageURL... and SharePoint Url Columns MUST be trimmed to 255 chars. * @returns */ export function getCurrentPageLink() { let PageURL = window.location.href; let PageTitle = PageURL; if (PageTitle.indexOf('?') > 0) { PageTitle = PageTitle.substring(0, PageTitle.indexOf('?')); } //2021-05-10: Removed -1 because page title was missing last character. let PageLink = { 'Url': PageURL, 'Description': PageTitle.substring(PageTitle.lastIndexOf("/") + 1), }; return PageLink; } /** * Returns standard link object with Url and Description * @param TargetList * @param webTitle * @returns */ export function makeListLink(TargetList, webTitle) { let targetList = !TargetList ? null : { 'Url': TargetList.indexOf('http') === 0 ? TargetList : CurrentOrigin + TargetList, 'Description': TargetList.replace(CurrentOrigin, '').replace(webTitle, '').replace(webTitle.toLowerCase(), '').replace('/lists', ''), }; return targetList; } /** * Returns standard link object with Url and Description * @param TargetSite * @param webTitle * @returns */ export function makeSiteLink(TargetSite, webTitle) { let targetSite = !TargetSite ? null : { 'Url': TargetSite && TargetSite.indexOf('http') === 0 ? TargetSite : CurrentOrigin + TargetSite, 'Description': webTitle ? webTitle : TargetSite.replace(CurrentOrigin, ''), }; return targetSite; } //# sourceMappingURL=UrlFunctions.js.map