From a1c4cae92d0da2d48714165f2d19586abcb30992 Mon Sep 17 00:00:00 2001 From: Patrik Hellgren Date: Fri, 20 Dec 2024 02:23:23 +0100 Subject: [PATCH 1/3] Fix for Mgt disambiguation --- search-parts/src/components/DocumentCardComponent.tsx | 4 ++-- search-parts/src/components/PersonaComponent.tsx | 8 ++++---- .../src/services/templateService/ITemplateService.ts | 1 + .../src/services/templateService/TemplateService.ts | 9 ++++++++- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/search-parts/src/components/DocumentCardComponent.tsx b/search-parts/src/components/DocumentCardComponent.tsx index 31927cee..55dddcc1 100644 --- a/search-parts/src/components/DocumentCardComponent.tsx +++ b/search-parts/src/components/DocumentCardComponent.tsx @@ -229,7 +229,7 @@ export class DocumentCardComponent extends React.Component {processedProps.location && !this.props.isCompact ? -
: null +
: null } {processedProps.tags && !this.props.isCompact ? -
: null +
: null } {processedProps.author ? {imageInitials} : ; }, onRenderPrimaryText: (props: IPersonaProps) => { - return
; + return
; }, onRenderSecondaryText: (props: IPersonaProps) => { - return
; + return
; }, onRenderTertiaryText: (props: IPersonaProps) => { - return
; + return
; }, onRenderOptionalText: (props: IPersonaProps) => { - return
; + return
; } }; diff --git a/search-parts/src/services/templateService/ITemplateService.ts b/search-parts/src/services/templateService/ITemplateService.ts index 1f9a029c..eb1c0fe0 100644 --- a/search-parts/src/services/templateService/ITemplateService.ts +++ b/search-parts/src/services/templateService/ITemplateService.ts @@ -24,4 +24,5 @@ export interface ITemplateService { registerResultTypes(resultTypes: IDataResultType[]): Promise; replaceDisambiguatedMgtElementNames(template: Document): void; legacyStyleParser(style: HTMLStyleElement, elementPrefixId: string): string; + applyDisambiguatedMgtPrefixIfNeeded(elementName: string): string; } \ No newline at end of file diff --git a/search-parts/src/services/templateService/TemplateService.ts b/search-parts/src/services/templateService/TemplateService.ts index 2acec3f5..295264df 100644 --- a/search-parts/src/services/templateService/TemplateService.ts +++ b/search-parts/src/services/templateService/TemplateService.ts @@ -243,6 +243,12 @@ export class TemplateService implements ITemplateService { }); } + public applyDisambiguatedMgtPrefixIfNeeded(elementName: string): string { + const prefix = this.MgtCustomElementHelper.prefix; + const regex = new RegExp(`mgt-(?!${prefix.slice(4)})`, 'g'); + return elementName?.replace(regex, `${prefix}-`); + } + /** * Gets the template HTML markup in the full template content * @param templateContent the full template content @@ -1020,7 +1026,8 @@ export class TemplateService implements ITemplateService { text = text.replace(//g, "").replace(/<\/c0\>/g, "").replace(//g, "…"); // We use Markdown here to render HTML and use web components - const rawHtml = this._markdownIt.render(text).replace(/\</g, '<').replace(/\>/g, '>'); + let rawHtml = this._markdownIt.render(text).replace(/\</g, '<').replace(/\>/g, '>'); + rawHtml = this.applyDisambiguatedMgtPrefixIfNeeded(rawHtml); result.outputHtml = domPurify.sanitize(rawHtml); result.didProcess = true; }; From d1befec2f0e461c4068be0ef72d272dd71de32f3 Mon Sep 17 00:00:00 2001 From: Patrik Hellgren Date: Fri, 20 Dec 2024 02:41:22 +0100 Subject: [PATCH 2/3] Change handling of disambiguation in style tags --- search-parts/src/components/DetailsListComponent.tsx | 2 +- .../src/controls/TemplateRenderer/TemplateRenderer.tsx | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/search-parts/src/components/DetailsListComponent.tsx b/search-parts/src/components/DetailsListComponent.tsx index 5cc40760..ff1a06e7 100644 --- a/search-parts/src/components/DetailsListComponent.tsx +++ b/search-parts/src/components/DetailsListComponent.tsx @@ -416,7 +416,7 @@ export class DetailsListComponent extends React.Component { - allStyles[index] = style.replace(/mgt-/g, `${this.props.templateService.MgtCustomElementHelper.prefix}-`); + allStyles[index] = this.props.templateService.MgtCustomElementHelper.applyDisambiguatedMgtPrefixIfNeeded(style); }); } diff --git a/search-parts/src/controls/TemplateRenderer/TemplateRenderer.tsx b/search-parts/src/controls/TemplateRenderer/TemplateRenderer.tsx index 596cbcec..07598760 100644 --- a/search-parts/src/controls/TemplateRenderer/TemplateRenderer.tsx +++ b/search-parts/src/controls/TemplateRenderer/TemplateRenderer.tsx @@ -81,8 +81,6 @@ export class TemplateRenderer extends React.Component tags from Handlebars template content and prefix all CSS rules by the Web Part instance ID to isolate styles const styleElements = templateAsHtml.getElementsByTagName("style"); - // let styles: string[] = []; - // debugger; const allStyles = []; if (styleElements.length > 0) { @@ -110,7 +108,7 @@ export class TemplateRenderer extends React.Component { - allStyles[index] = style.replace(/mgt-/g, `${this.props.templateService.MgtCustomElementHelper.prefix}-`); + allStyles[index] = this.props.templateService.applyDisambiguatedMgtPrefixIfNeeded(style); }); } From 2508afa0963e3a90c9b7889451cf4e06e3e40622 Mon Sep 17 00:00:00 2001 From: Patrik Hellgren Date: Fri, 20 Dec 2024 02:45:30 +0100 Subject: [PATCH 3/3] Correct call for diambiguation --- search-parts/src/components/DetailsListComponent.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-parts/src/components/DetailsListComponent.tsx b/search-parts/src/components/DetailsListComponent.tsx index ff1a06e7..37c4ba74 100644 --- a/search-parts/src/components/DetailsListComponent.tsx +++ b/search-parts/src/components/DetailsListComponent.tsx @@ -416,7 +416,7 @@ export class DetailsListComponent extends React.Component { - allStyles[index] = this.props.templateService.MgtCustomElementHelper.applyDisambiguatedMgtPrefixIfNeeded(style); + allStyles[index] = this.props.templateService.applyDisambiguatedMgtPrefixIfNeeded(style); }); }