UNPKG

@mikezimm/fps-core-v7

Version:

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

72 lines (71 loc) 3.91 kB
/** * CodeAnalizerComment: Updated 1 imports on 2024-09-21 23:07:24 * Update:: import { WebPartContextCopy_15_2 } to '@mikezimm/fps-core-v7/lib/types/@msft/1.15.2/WebPartContext;' */ import { makeid } from "./guids"; export const HandleBarReplacements = { Pages: ['{{PageId}}'], Lists: ['{{ListTitle}}', '{{ListId}}', '{{ListUrl}}'], Users: ['{{UserName}}', '{{UserLogin}}', '{{UserEmail}}'], Webs: ['{{WebTitle}}', '{{WebUrl}}', '{{SiteId}}'], Sites: ['{{SiteTitle}}', '{{SiteUrl}}', '{{SiteId}}'], }; /** * Replaces HandleBar style strings with known replacements from context * * Used first in PageInfo converting web part prop input in relatedItems heading, web, ListTitle and restFilter * * @param str * @param context * @returns */ export function replaceHandleBars(str, context) { if (!str) { return ''; } else { if (str.indexOf('{{') === -1 || str.indexOf('}}') === -1) { return str; } else { let newStr = str.replace(/{{PageId}}/gi, `${context.pageContext.listItem ? context.pageContext.listItem.id.toFixed() : '{{PageId}}'}`); if (str.indexOf('{{List') > -1) { newStr = newStr.replace(/{{ListTitle}}/gi, `${context.pageContext.list ? context.pageContext.list.title : '{{ListTitle}}'}`); newStr = newStr.replace(/{{ListId}}/gi, `${context.pageContext.list ? context.pageContext.list.id : '{{ListId}}'}`); newStr = newStr.replace(/{{ListUrl}}/gi, `${context.pageContext.list ? context.pageContext.list.serverRelativeUrl : '{{ListUrl}}'}`); } if (str.indexOf('{{User') > -1) { newStr = newStr.replace(/{{UserName}}/gi, `${context.pageContext.user.displayName}`); // 2025-03-18: Added for consistency with Network Builder replaceHasFromForm newStr = newStr.replace(/{{UserTitle}}/gi, `${context.pageContext.user.displayName}`); newStr = newStr.replace(/{{UserLogin}}/gi, `${context.pageContext.user.loginName}`); newStr = newStr.replace(/{{UserEmail}}/gi, `${context.pageContext.user.email}`); newStr = newStr.replace(/{{UserId}}/gi, `${context.pageContext.legacyPageContext.userId}`); } if (str.indexOf('{{Web') > -1) { newStr = newStr.replace(/{{WebTitle}}/gi, `${context.pageContext.web.title}`); newStr = newStr.replace(/{{WebUrl}}/gi, `${context.pageContext.web.serverRelativeUrl}`); newStr = newStr.replace(/{{WebId}}/gi, `${context.pageContext.web.id}`); } if (str.indexOf('{{Site') > -1) { newStr = newStr.replace(/{{SiteTitle}}/gi, `${context.pageContext.web.title}`); newStr = newStr.replace(/{{SiteUrl}}/gi, `${context.pageContext.web.serverRelativeUrl}`); newStr = newStr.replace(/{{SiteId}}/gi, `${context.pageContext.web.id}`); } if (str.indexOf('{{DepartmentId') > -1) { newStr = newStr.replace(/{{DepartmentId}}/gi, `${context.pageContext.legacyPageContext.departmentId}`); } if (str.indexOf('{{makeid') > -1) { newStr = newStr.replace(/{{makeid}}/gi, makeid(5)); } let now = new Date(); newStr = newStr.replace(/{{Now}}/gi, `${now.toLocaleString()}`); newStr = newStr.replace(/{{Today}}/gi, `${now.toLocaleDateString()}`); // 2025-03-18: Added for consistency with Network Builder replaceHasFromForm newStr = newStr.replace(/{{UTCTime}}/gi, `${now.toUTCString()}`); newStr = newStr.replace(/{{IsoTime}}/gi, `${now.toISOString()}`); return newStr; } } } //# sourceMappingURL=handleBarsContext.js.map