@sitecore-jss/sitecore-jss-angular 21.3.0 → 21.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"sitecore-jss-sitecore-jss-angular.mjs","sources":["../../src/components/file.directive.ts","../../src/components/image.directive.ts","../../src/components/link.directive.ts","../../src/components/router-link.directive.ts","../../src/components/generic-link.directive.ts","../../src/components/hidden-rendering.component.ts","../../src/components/placeholder-loading.directive.ts","../../src/components/placeholder.token.ts","../../src/components/render-each.directive.ts","../../src/components/render-empty.directive.ts","../../src/components/rendering.ts","../../src/components/raw.component.ts","../../src/jss-component-factory.service.ts","../../src/components/placeholder.component.ts","../../src/components/render-component.component.ts","../../src/components/date.directive.ts","../../src/components/editframe.component.ts","../../src/components/rich-text.directive.ts","../../src/components/text.directive.ts","../../src/utils.ts","../../src/components/data-resolver-factory.ts","../../src/components/guard-resolver-factory.ts","../../src/components/missing-component.component.ts","../../src/lib.module.ts","../../src/sitecore-jss-sitecore-jss-angular.ts"],"sourcesContent":["import {\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { FileField } from './rendering-field';\r\n\r\n/**\r\n * File fields cannot be managed via the EE. We never output \"editable.\"\r\n */\r\n@Directive({ selector: '[scFile]' })\r\nexport class FileDirective implements OnChanges {\r\n @Input('scFile') field: FileField;\r\n\r\n private viewRef: EmbeddedViewRef<unknown>;\r\n\r\n constructor(private viewContainer: ViewContainerRef, private templateRef: TemplateRef<unknown>) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.field) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n\r\n if (!field || (!field.value && !field.src)) {\r\n return;\r\n }\r\n\r\n const file = field.src ? field : field.value;\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (!file) return;\r\n\r\n node.href = file.src;\r\n if (node.innerHTML === '') {\r\n node.innerHTML = file.title || file.displayName;\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { mediaApi } from '@sitecore-jss/sitecore-jss/media';\r\nimport { ImageField, ImageFieldValue } from './rendering-field';\r\n\r\n@Directive({ selector: '[scImage]' })\r\nexport class ImageDirective implements OnChanges {\r\n @Input('scImage') field: ImageField | '';\r\n\r\n @Input('scImageEditable') editable = true;\r\n\r\n /**\r\n * Custom regexp that finds media URL prefix that will be replaced by `/-/jssmedia` or `/~/jssmedia`.\r\n * @example\r\n * /\\/([-~]{1})assets\\//i\r\n * /-assets/website -> /-/jssmedia/website\r\n * /~assets/website -> /~/jssmedia/website\r\n */\r\n @Input('scImageMediaUrlPrefix') mediaUrlPrefix?: RegExp;\r\n\r\n @Input('scImageUrlParams') urlParams: { [param: string]: string | number } = {};\r\n\r\n @Input('scImageAttrs') attrs: { [param: string]: unknown } = {};\r\n\r\n private inlineRef: HTMLSpanElement | null = null;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<unknown>,\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable || changes.urlParams || changes.attrs) {\r\n this.viewContainer.clear();\r\n if (this.inlineRef) {\r\n this.inlineRef.remove();\r\n this.inlineRef = null;\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const overrideAttrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n const media = this.field;\r\n\r\n if (!media || (!media.editable && !media.value && !media.src)) {\r\n return;\r\n }\r\n\r\n let attrs: { [attr: string]: string } | null = {};\r\n\r\n // we likely have an experience editor value, should be a string\r\n if (this.editable && media.editable) {\r\n const foundImg = mediaApi.findEditorImageTag(media.editable);\r\n if (!foundImg) {\r\n return this.renderInlineWrapper(media.editable);\r\n }\r\n attrs = this.getImageAttrs(foundImg.attrs, overrideAttrs, this.urlParams);\r\n if (!attrs) {\r\n return this.renderInlineWrapper(media.editable);\r\n }\r\n const tempImg: HTMLImageElement = this.renderer.createElement('img');\r\n Object.entries(attrs).forEach(([key, attrValue]: [string, string]) =>\r\n tempImg.setAttribute(key, attrValue)\r\n );\r\n const editableMarkup = media.editable.replace(foundImg.imgTag, tempImg.outerHTML);\r\n return this.renderInlineWrapper(editableMarkup);\r\n }\r\n\r\n // some wise-guy/gal is passing in a 'raw' image object value\r\n const img = media.src ? media : media.value;\r\n if (!img) {\r\n return null;\r\n }\r\n\r\n attrs = this.getImageAttrs(img, overrideAttrs, this.urlParams);\r\n if (attrs) {\r\n this.renderTemplate(attrs);\r\n }\r\n }\r\n\r\n private getImageAttrs(\r\n fieldAttrs: ImageFieldValue,\r\n parsedAttrs: { [attr: string]: unknown },\r\n imageParams: { [param: string]: string | number }\r\n ): { [attr: string]: string } | null {\r\n const combinedAttrs = {\r\n ...fieldAttrs,\r\n ...parsedAttrs,\r\n };\r\n // eslint-disable-next-line prefer-const\r\n let { src, srcSet, ...otherAttrs } = combinedAttrs;\r\n if (!src) {\r\n return null;\r\n }\r\n const newAttrs: { [attr: string]: string } = {\r\n ...(otherAttrs as { [key: string]: string }),\r\n };\r\n // update image URL for jss handler and image rendering params\r\n src = mediaApi.updateImageUrl(src, imageParams, this.mediaUrlPrefix);\r\n if (srcSet) {\r\n // replace with HTML-formatted srcset, including updated image URLs\r\n newAttrs.srcSet = mediaApi.getSrcSet(src, srcSet, imageParams, this.mediaUrlPrefix);\r\n } else {\r\n newAttrs.src = src;\r\n }\r\n return newAttrs;\r\n }\r\n\r\n private renderTemplate(imageProps: { [prop: string]: string }) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(imageProps).forEach(([key, imgPropVal]: [string, string]) =>\r\n this.renderer.setAttribute(node, key, imgPropVal)\r\n );\r\n });\r\n }\r\n\r\n private getElementAttrs(): { [key: string]: string } {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n view.destroy();\r\n return {};\r\n }\r\n const attrs: { [key: string]: string } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n view.destroy();\r\n return attrs;\r\n }\r\n\r\n private renderInlineWrapper(editable: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-image-wrapper';\r\n span.innerHTML = editable;\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n parentNode.removeChild(this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scLink]' })\r\nexport class LinkDirective implements OnChanges {\r\n @Input('scLinkEditable') editable = true;\r\n\r\n @Input('scLinkAttrs') attrs: { [attr: string]: string } = {};\r\n\r\n @Input('scLink') field: LinkField;\r\n\r\n private inlineRef: HTMLSpanElement | null = null;\r\n\r\n constructor(\r\n protected viewContainer: ViewContainerRef,\r\n protected templateRef: TemplateRef<unknown>,\r\n protected renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable || changes.attrs) {\r\n this.viewContainer.clear();\r\n if (this.inlineRef) {\r\n this.inlineRef.remove();\r\n this.inlineRef = null;\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n protected renderTemplate(props: { [prop: string]: unknown }, linkText?: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]) => {\r\n this.updateAttribute(node, key, propValue);\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n\r\n protected updateAttribute(node: HTMLElement, key: string, propValue?: unknown) {\r\n if (typeof propValue !== 'string' || !propValue || propValue === '') {\r\n return;\r\n }\r\n\r\n if (key === 'href') {\r\n const isInvalidLink = !propValue || /^https?:\\/\\/$/.test(propValue);\r\n\r\n if (isInvalidLink) {\r\n if (!(node as HTMLLinkElement).href) {\r\n return;\r\n }\r\n\r\n propValue = (node as HTMLLinkElement).href as string;\r\n }\r\n this.renderer.setAttribute(node, key, propValue as string);\r\n } else if (key === 'class' && node.className !== '') {\r\n this.renderer.setAttribute(node, key, `${node.className} ${propValue}`);\r\n } else {\r\n this.renderer.setAttribute(node, key, propValue);\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n if (this.editable && field && field.editableFirstPart && field.editableLastPart) {\r\n this.renderInlineWrapper(field.editableFirstPart, field.editableLastPart);\r\n } else if (field && (field.href || field.value)) {\r\n const props = field.href ? field : field.value;\r\n\r\n const linkText = field.text || field.value?.text || field.href || field.value?.href;\r\n const anchor = props?.anchor ? `#${props.anchor}` : '';\r\n const href = `${props?.href}${anchor}`;\r\n\r\n const mergedAttrs = { ...props, ...this.attrs, href };\r\n\r\n delete mergedAttrs.anchor;\r\n\r\n this.renderTemplate(mergedAttrs, linkText);\r\n }\r\n }\r\n\r\n private renderInlineWrapper(editableFirstPart: string, editableLastPart: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-link-wrapper';\r\n span.innerHTML = editableFirstPart + editableLastPart;\r\n\r\n // assign attributes from template to inline wrapper\r\n const attrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n Object.entries(attrs).forEach(([key, attrValue]) => this.updateAttribute(span, key, attrValue));\r\n\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n\r\n private getElementAttrs() {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n view.destroy();\r\n return {};\r\n }\r\n const attrs: { [key: string]: string } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n view.destroy();\r\n return attrs;\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n Renderer2,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LinkDirective } from './link.directive';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scRouterLink]' })\r\nexport class RouterLinkDirective extends LinkDirective {\r\n @Input('scRouterLinkEditable') editable = true;\r\n\r\n @Input('scRouterLinkAttrs') attrs: { [attr: string]: string } = {};\r\n\r\n @Input('scRouterLink') field: LinkField;\r\n\r\n constructor(\r\n viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<unknown>,\r\n renderer: Renderer2,\r\n elementRef: ElementRef,\r\n private router: Router\r\n ) {\r\n super(viewContainer, templateRef, renderer, elementRef);\r\n }\r\n\r\n protected renderTemplate(props: { [prop: string]: string }, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]) => {\r\n this.updateAttribute(node, key, propValue);\r\n\r\n if (key === 'href') {\r\n this.renderer.listen(node, 'click', (event) => {\r\n this.router.navigateByUrl(propValue);\r\n\r\n // shouldn't prevent default if the link includes a fragment\r\n if (!propValue.includes('#')) {\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n Renderer2,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Router, NavigationExtras } from '@angular/router';\r\nimport { isAbsoluteUrl } from '@sitecore-jss/sitecore-jss/utils';\r\nimport { LinkDirective } from './link.directive';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scGenericLink]' })\r\nexport class GenericLinkDirective extends LinkDirective {\r\n @Input('scGenericLinkEditable') editable = true;\r\n\r\n @Input('scGenericLinkAttrs') attrs: { [key: string]: string } = {};\r\n\r\n @Input('scGenericLink') field: LinkField;\r\n\r\n @Input('scGenericLinkExtras') extras?: NavigationExtras;\r\n\r\n constructor(\r\n viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<unknown>,\r\n renderer: Renderer2,\r\n elementRef: ElementRef,\r\n private router: Router\r\n ) {\r\n super(viewContainer, templateRef, renderer, elementRef);\r\n }\r\n\r\n protected renderTemplate(props: { [key: string]: string }, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]: [string, string]) => {\r\n if (key === 'href' && !isAbsoluteUrl(propValue)) {\r\n const fragments = propValue.split('#');\r\n const url = fragments[0];\r\n const anchor = fragments[1];\r\n const urlTree = this.router.createUrlTree([url], {\r\n fragment: anchor,\r\n ...this.extras,\r\n });\r\n this.updateAttribute(node, key, this.router.serializeUrl(urlTree));\r\n this.renderer.listen(node, 'click', (event) => {\r\n this.router.navigate([url], {\r\n fragment: anchor,\r\n ...this.extras,\r\n });\r\n\r\n // shouldn't prevent default if the link includes a fragment\r\n if (!anchor) {\r\n event.preventDefault();\r\n }\r\n });\r\n } else {\r\n this.updateAttribute(node, key, propValue);\r\n }\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, HostBinding } from '@angular/core';\r\n@Component({\r\n selector: 'sc-hidden-rendering',\r\n template: '',\r\n})\r\nexport class HiddenRenderingComponent {\r\n @HostBinding('style') get style() {\r\n return 'background-image: linear-gradient(45deg, #ffffff 25%, #dcdcdc 25%, #dcdcdc 50%, #ffffff 50%, #ffffff 75%, #dcdcdc 75%, #dcdcdc 100%); background-size: 3px 3px; display: block; height: 100px;';\r\n }\r\n}\r\n\r\nexport const HIDDEN_RENDERING_NAME = 'Hidden Rendering';\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[scPlaceholderLoading]',\r\n})\r\nexport class PlaceholderLoadingDirective {\r\n constructor(public templateRef: TemplateRef<unknown>) {}\r\n}\r\n","import { InjectionToken, Type } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Data, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ComponentFactoryResult } from '../jss-component-factory.service';\r\nimport { ComponentRendering } from '../public_api';\r\n\r\n/** Registers a statically loaded component */\r\nexport class ComponentNameAndType {\r\n name: string;\r\n type: Type<unknown>;\r\n\r\n canActivate?:\r\n | JssCanActivate\r\n | Type<JssCanActivate>\r\n | JssCanActivateFn\r\n | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;\r\n resolve?: { [key: string]: JssResolve<unknown> | Type<JssResolve<unknown>> };\r\n}\r\n\r\n/** Registers a lazily loaded component by name and module to lazy load when it's needed */\r\nexport interface ComponentNameAndModule {\r\n /** Name of the component */\r\n path: string;\r\n /**\r\n * Dynamic import of the component,\r\n * e.g. () => import('./path/to/lazyloadedcomponent.module').then(m => m.LazyLoadedComponentModuleExportName)\r\n */\r\n loadChildren: () => Promise<Type<unknown>>;\r\n canActivate?:\r\n | JssCanActivate\r\n | JssCanActivateFn\r\n | Type<JssCanActivate>\r\n | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;\r\n resolve?: { [key: string]: JssResolve<unknown> | Type<JssResolve<unknown>> };\r\n}\r\n\r\n/**\r\n * @param {unknown} object\r\n */\r\nexport function instanceOfComponentNameAndType(object: unknown): object is ComponentNameAndType {\r\n return typeof object === 'object' && object !== null && 'type' in object;\r\n}\r\n\r\n/**\r\n * @param {unknown} object\r\n */\r\nexport function instanceOfComponentNameAndModule(\r\n object: unknown\r\n): object is ComponentNameAndModule {\r\n return typeof object === 'object' && object !== null && 'module' in object;\r\n}\r\n\r\nexport const PLACEHOLDER_COMPONENTS = new InjectionToken<ComponentNameAndType[]>(\r\n 'Sc.placeholder.components'\r\n);\r\nexport const PLACEHOLDER_LAZY_COMPONENTS = new InjectionToken<ComponentNameAndType[]>(\r\n 'Sc.placeholder.lazyComponents'\r\n);\r\nexport const PLACEHOLDER_MISSING_COMPONENT_COMPONENT = new InjectionToken<Type<unknown>>(\r\n 'Sc.placeholder.missingComponentComponent'\r\n);\r\nexport const PLACEHOLDER_HIDDEN_RENDERING_COMPONENT = new InjectionToken<Type<unknown>>(\r\n 'Sc.placeholder.hiddenRenderingComponent'\r\n);\r\nexport const DYNAMIC_COMPONENT = new InjectionToken<Type<unknown> | { [s: string]: unknown }>(\r\n 'Sc.placeholder.dynamicComponent'\r\n);\r\n\r\nexport type GuardResolver = (result: ComponentFactoryResult[]) => Promise<ComponentFactoryResult[]>;\r\n\r\nexport const GUARD_RESOLVER = new InjectionToken<GuardResolver>('Sc.placeholder.guardResolver');\r\n\r\nexport type DataResolver = (\r\n result: ComponentFactoryResult[]\r\n) => Promise<Array<{ factory: ComponentFactoryResult; data: Data }>>;\r\n\r\nexport const DATA_RESOLVER = new InjectionToken<DataResolver>('Sc.placeholder.dataResolver');\r\n\r\nexport interface GuardInput {\r\n activatedRoute: ActivatedRouteSnapshot;\r\n routerState: RouterStateSnapshot;\r\n rendering: ComponentRendering;\r\n}\r\n\r\nexport interface JssCanActivateFn {\r\n (input: GuardInput):\r\n | Observable<boolean | UrlTree | string | string[]>\r\n | Promise<boolean | UrlTree | string | string[]>\r\n | boolean\r\n | UrlTree\r\n | string\r\n | string[];\r\n}\r\n\r\nexport interface JssCanActivate {\r\n canActivate: JssCanActivateFn;\r\n}\r\n\r\nexport interface JssResolve<T> {\r\n resolve(input: GuardInput): Observable<T> | Promise<T> | T;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[renderEach]',\r\n})\r\nexport class RenderEachDirective {\r\n constructor(public templateRef: TemplateRef<unknown>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[renderEmpty]',\r\n})\r\nexport class RenderEmptyDirective {\r\n constructor(public templateRef: TemplateRef<unknown>) {}\r\n}\r\n","import { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\n\r\n/**\r\n * @param {HtmlElementRendering | ComponentRendering} rendering\r\n */\r\nexport function isRawRendering(\r\n rendering: HtmlElementRendering | ComponentRendering\r\n): rendering is HtmlElementRendering {\r\n return (\r\n !(rendering as ComponentRendering).componentName &&\r\n (rendering as HtmlElementRendering).name !== undefined\r\n );\r\n}\r\n","import { Component, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\n\r\n@Component({\r\n selector: 'sc-raw',\r\n template: '',\r\n})\r\nexport class RawComponent implements OnInit {\r\n @Input() rendering: HtmlElementRendering;\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {}\r\n\r\n ngOnInit() {\r\n const el = this.renderer.createElement(this.rendering.name);\r\n const contents = this.renderer.createText(this.rendering.contents || '');\r\n const attributes = this.rendering.attributes;\r\n for (const attr in attributes) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (attributes.hasOwnProperty(attr)) {\r\n const value = attributes[attr];\r\n this.renderer.setAttribute(el, attr, value || '');\r\n }\r\n }\r\n\r\n this.renderer.appendChild(el, contents);\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, el, this.elementRef.nativeElement);\r\n parentNode.removeChild(this.elementRef.nativeElement);\r\n }\r\n}\r\n","import { Inject, Injectable, Injector, Type, createNgModule } from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport {\r\n ComponentNameAndModule,\r\n ComponentNameAndType,\r\n DYNAMIC_COMPONENT,\r\n JssCanActivate,\r\n JssCanActivateFn,\r\n JssResolve,\r\n PLACEHOLDER_COMPONENTS,\r\n PLACEHOLDER_LAZY_COMPONENTS,\r\n} from './components/placeholder.token';\r\nimport { RawComponent } from './components/raw.component';\r\nimport { isRawRendering } from './components/rendering';\r\n\r\nexport interface ComponentFactoryResult {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n componentImplementation?: Type<any>;\r\n componentDefinition: ComponentRendering | HtmlElementRendering;\r\n canActivate?:\r\n | JssCanActivate\r\n | Type<JssCanActivate>\r\n | JssCanActivateFn\r\n | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;\r\n resolve?: { [key: string]: JssResolve<any> | Type<JssResolve<any>> };\r\n}\r\n\r\n@Injectable()\r\nexport class JssComponentFactoryService {\r\n private componentMap: Map<string, ComponentNameAndType>;\r\n private lazyComponentMap: Map<string, ComponentNameAndModule>;\r\n\r\n constructor(\r\n private injector: Injector,\r\n @Inject(PLACEHOLDER_COMPONENTS) private components: ComponentNameAndType[],\r\n @Inject(PLACEHOLDER_LAZY_COMPONENTS) private lazyComponents: ComponentNameAndModule[]\r\n ) {\r\n this.componentMap = new Map();\r\n this.lazyComponentMap = new Map();\r\n\r\n this.components.forEach((c) => this.componentMap.set(c.name, c));\r\n\r\n if (this.lazyComponents) {\r\n this.lazyComponents.forEach((c) => this.lazyComponentMap.set(c.path, c));\r\n }\r\n }\r\n\r\n getComponent(component: ComponentRendering): Promise<ComponentFactoryResult> {\r\n const loadedComponent = this.componentMap.get(component.componentName);\r\n\r\n if (loadedComponent) {\r\n return Promise.resolve({\r\n componentDefinition: component,\r\n componentImplementation: loadedComponent.type,\r\n canActivate: loadedComponent.canActivate,\r\n resolve: loadedComponent.resolve,\r\n });\r\n }\r\n\r\n const lazyComponent = this.lazyComponentMap.get(component.componentName);\r\n\r\n if (lazyComponent) {\r\n return lazyComponent.loadChildren().then((lazyChild) => {\r\n let componentType = null;\r\n const moduleRef = createNgModule(lazyChild, this.injector);\r\n const dynamicComponentType = moduleRef.injector.get(DYNAMIC_COMPONENT);\r\n if (!dynamicComponentType) {\r\n throw new Error(\r\n `JssComponentFactoryService: Lazy load module for component \"${lazyComponent.path}\" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`\r\n );\r\n }\r\n\r\n if (component.componentName in dynamicComponentType) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n componentType = (dynamicComponentType as { [s: string]: any })[component.componentName];\r\n } else {\r\n if (typeof dynamicComponentType === 'function') {\r\n componentType = dynamicComponentType;\r\n } else {\r\n throw new Error(\r\n `JssComponentFactoryService: Lazy load module for component \"${lazyComponent.path}\" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`\r\n );\r\n }\r\n }\r\n\r\n return {\r\n componentDefinition: component,\r\n componentImplementation: componentType,\r\n canActivate: lazyComponent.canActivate,\r\n resolve: lazyComponent.resolve,\r\n };\r\n });\r\n }\r\n\r\n return Promise.resolve({\r\n componentDefinition: component,\r\n });\r\n }\r\n\r\n getComponents(\r\n components: Array<ComponentRendering | HtmlElementRendering>\r\n ): Promise<ComponentFactoryResult[]> {\r\n // acquire all components and keep them in order while handling their potential async-ness\r\n return Promise.all(\r\n components.map((component) =>\r\n isRawRendering(component) ? this.getRawComponent(component) : this.getComponent(component)\r\n )\r\n );\r\n }\r\n\r\n private getRawComponent(component: HtmlElementRendering): Promise<ComponentFactoryResult> {\r\n return Promise.resolve({\r\n componentImplementation: RawComponent,\r\n componentDefinition: component,\r\n });\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\r\nimport { isPlatformServer } from '@angular/common';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n Renderer2,\r\n SimpleChanges,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Data, UrlTree, Router } from '@angular/router';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { Observable } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport {\r\n ComponentFactoryResult,\r\n JssComponentFactoryService,\r\n} from '../jss-component-factory.service';\r\nimport { HIDDEN_RENDERING_NAME } from './hidden-rendering.component';\r\nimport { PlaceholderLoadingDirective } from './placeholder-loading.directive';\r\nimport {\r\n DataResolver,\r\n DATA_RESOLVER,\r\n GuardResolver,\r\n GUARD_RESOLVER,\r\n PLACEHOLDER_HIDDEN_RENDERING_COMPONENT,\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT,\r\n} from './placeholder.token';\r\nimport { RenderEachDirective } from './render-each.directive';\r\nimport { RenderEmptyDirective } from './render-empty.directive';\r\nimport { isRawRendering } from './rendering';\r\n\r\n/**\r\n * @param {ComponentRendering} rendering\r\n * @param {string} name\r\n */\r\nfunction getPlaceholder(rendering: ComponentRendering, name: string) {\r\n if (rendering && rendering.placeholders && Object.keys(rendering.placeholders).length > 0) {\r\n return rendering.placeholders[name];\r\n }\r\n return null;\r\n}\r\n\r\nexport interface FactoryWithData {\r\n factory: ComponentFactoryResult;\r\n data?: Data;\r\n}\r\n\r\n@Component({\r\n selector: 'sc-placeholder,[sc-placeholder]',\r\n template: `\r\n <ng-template\r\n *ngIf=\"isLoading\"\r\n [ngTemplateOutlet]=\"placeholderLoading?.templateRef\"\r\n ></ng-template>\r\n <ng-template #view></ng-template>\r\n `,\r\n})\r\nexport class PlaceholderComponent implements OnInit, OnChanges, DoCheck, OnDestroy {\r\n @Input() name?: string;\r\n @Input() rendering: ComponentRendering;\r\n @Input() renderings?: Array<ComponentRendering | HtmlElementRendering>;\r\n @Input() outputs: { [k: string]: (eventType: unknown) => void };\r\n @Input() clientOnly = false;\r\n\r\n @Output() loaded = new EventEmitter<string | undefined>();\r\n\r\n @ContentChild(RenderEachDirective, { static: true }) renderEachTemplate: RenderEachDirective;\r\n @ContentChild(RenderEmptyDirective, { static: true }) renderEmptyTemplate: RenderEmptyDirective;\r\n @ContentChild(PlaceholderLoadingDirective, { static: true })\r\n placeholderLoading?: PlaceholderLoadingDirective;\r\n\r\n @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n\r\n public isLoading = true;\r\n\r\n private _inputs: { [key: string]: unknown };\r\n private _differ: KeyValueDiffer<string, unknown>;\r\n private _componentInstances: { [prop: string]: unknown }[] = [];\r\n private destroyed = false;\r\n private parentStyleAttribute = '';\r\n\r\n constructor(\r\n private differs: KeyValueDiffers,\r\n private componentFactory: JssComponentFactoryService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private router: Router,\r\n @Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT)\r\n private missingComponentComponent: Type<unknown>,\r\n @Inject(PLACEHOLDER_HIDDEN_RENDERING_COMPONENT) private hiddenRenderingComponent: Type<unknown>,\r\n @Inject(GUARD_RESOLVER) private guardResolver: GuardResolver,\r\n @Inject(DATA_RESOLVER) private dataResolver: DataResolver,\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n @Inject(PLATFORM_ID) private platformId: Object\r\n ) {}\r\n\r\n @Input()\r\n set inputs(value: { [key: string]: unknown }) {\r\n this._inputs = value;\r\n if (!this._differ && value) {\r\n this._differ = this.differs.find(value).create();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n // just to ensure the element exists\r\n const elem = this.elementRef.nativeElement;\r\n\r\n if (elem) {\r\n const attributes: NamedNodeMap = elem.attributes;\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr: Attr | null = attributes.item(i);\r\n if (attr && attr.name.indexOf('_ngcontent') !== -1) {\r\n this.parentStyleAttribute = attr.name;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed = true;\r\n this._componentInstances = [];\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.rendering || changes.renderings) {\r\n this._render();\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n if (!this._differ || !this._inputs || this._componentInstances.length === 0) {\r\n return;\r\n }\r\n\r\n const changes = this._differ.diff(this._inputs);\r\n if (!changes) {\r\n return;\r\n }\r\n const updates: { [key: string]: unknown } = {};\r\n changes.forEachRemovedItem((change) => (updates[change.key] = null));\r\n changes.forEachAddedItem((change) => (updates[change.key] = change.currentValue));\r\n changes.forEachChangedItem((change) => (updates[change.key] = change.currentValue));\r\n this._componentInstances.forEach((componentInstance) =>\r\n this._setComponentInputs(componentInstance, updates)\r\n );\r\n }\r\n\r\n private _setComponentInputs(\r\n componentInstance: { [key: string]: unknown },\r\n inputs: { [key: string]: unknown }\r\n ) {\r\n Object.entries(inputs).forEach(\r\n ([input, inputValue]) => (componentInstance[input] = inputValue)\r\n );\r\n }\r\n\r\n private _subscribeComponentOutputs(\r\n componentInstance: { [key: string]: unknown },\r\n outputs: { [k: string]: (eventType: unknown) => void }\r\n ) {\r\n Object.keys(outputs)\r\n .filter(\r\n (output) => componentInstance[output] && componentInstance[output] instanceof Observable\r\n )\r\n .forEach((output) =>\r\n (componentInstance[output] as Observable<unknown>)\r\n .pipe(takeWhile(() => !this.destroyed))\r\n .subscribe(outputs[output])\r\n );\r\n }\r\n\r\n private async _render() {\r\n if (this.clientOnly && isPlatformServer(this.platformId)) {\r\n return;\r\n }\r\n\r\n this._componentInstances = [];\r\n this.view.clear();\r\n\r\n if (!this.rendering && !this.renderings) {\r\n return;\r\n }\r\n\r\n if (!this.name && !this.renderings) {\r\n console.warn(\r\n 'Placeholder name was not specified, and explicit renderings array was not passed. Placeholder requires either name and rendering, or renderings.'\r\n );\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n const placeholder = this.renderings || getPlaceholder(this.rendering, this.name || '');\r\n\r\n if (!placeholder) {\r\n console.warn(\r\n `Placeholder '${this.name}' was not found in the current rendering data`,\r\n JSON.stringify(this.rendering, null, 2)\r\n );\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n // if the placeholder is empty (contains only raw renderings), then we may need to use the empty template if it's defined\r\n const placeholderIsEmpty = placeholder.every(\r\n (rendering: ComponentRendering | HtmlElementRendering) => isRawRendering(rendering)\r\n );\r\n\r\n if (this.renderEmptyTemplate && placeholderIsEmpty) {\r\n this.view.createEmbeddedView(this.renderEmptyTemplate.templateRef, {\r\n renderings: placeholder,\r\n });\r\n this.isLoading = false;\r\n } else {\r\n const factories = await this.componentFactory.getComponents(placeholder);\r\n\r\n try {\r\n const nonGuarded = await this.guardResolver(factories);\r\n const withData = await this.dataResolver(nonGuarded);\r\n\r\n withData.forEach((rendering, index) => {\r\n if (this.renderEachTemplate && !isRawRendering(rendering.factory.componentDefinition)) {\r\n this._renderTemplatedComponent(rendering.factory.componentDefinition, index);\r\n } else {\r\n this._renderEmbeddedComponent(rendering.factory, rendering.data, index);\r\n }\r\n });\r\n\r\n this.isLoading = false;\r\n this.changeDetectorRef.markForCheck();\r\n this.loaded.emit(this.name);\r\n } catch (e) {\r\n this.isLoading = false;\r\n if (e instanceof UrlTree) {\r\n this.router.navigateByUrl(e);\r\n } else if (typeof e === 'string') {\r\n this.router.navigate([e]);\r\n } else if (Array.isArray(e)) {\r\n this.router.navigate(e);\r\n } else {\r\n throw e;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _renderTemplatedComponent(\r\n rendering: ComponentRendering | HtmlElementRendering,\r\n index: number\r\n ) {\r\n // the render-each template takes care of all component mapping etc\r\n // generally using <sc-render-component> which is about like _renderEmbeddedComponent()\r\n // as a separate component\r\n this.view.createEmbeddedView(this.renderEachTemplate.templateRef, {\r\n rendering,\r\n index,\r\n });\r\n }\r\n\r\n private _renderEmbeddedComponent(rendering: ComponentFactoryResult, data: Data, index: number) {\r\n if (\r\n (rendering.componentDefinition as ComponentRendering).componentName === HIDDEN_RENDERING_NAME\r\n ) {\r\n rendering.componentImplementation = this.hiddenRenderingComponent;\r\n }\r\n\r\n if (!rendering.componentImplementation) {\r\n const componentName = (rendering.componentDefinition as ComponentRendering).componentName;\r\n console.error(\r\n `Placeholder ${this.name} contains unknown component ${componentName}.`,\r\n `Ensure component is mapped, like:\r\n JssModule.withComponents([\r\n { name: '${componentName}', type: ${componentName}Component }\r\n ])`\r\n );\r\n\r\n rendering.componentImplementation = this.missingComponentComponent;\r\n }\r\n // apply the parent style attribute _ngcontent\r\n // work-around for https://github.com/angular/angular/issues/12215\r\n const createdComponentRef = this.view.createComponent(rendering.componentImplementation, {\r\n index: index,\r\n });\r\n if (this.parentStyleAttribute) {\r\n this.renderer.setAttribute(\r\n createdComponentRef.location.nativeElement,\r\n this.parentStyleAttribute,\r\n ''\r\n );\r\n }\r\n\r\n const componentInstance = createdComponentRef.instance;\r\n componentInstance.rendering = rendering.componentDefinition;\r\n componentInstance.data = data;\r\n\r\n if (this._inputs) {\r\n this._setComponentInputs(componentInstance, this._inputs);\r\n }\r\n if (this.outputs) {\r\n this._subscribeComponentOutputs(componentInstance, this.outputs);\r\n }\r\n this._componentInstances.push(componentInstance);\r\n }\r\n}\r\n","import {\r\n Component,\r\n Inject,\r\n Input,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n OnChanges,\r\n SimpleChanges,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { Observable } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport {\r\n ComponentFactoryResult,\r\n JssComponentFactoryService,\r\n} from '../jss-component-factory.service';\r\nimport { PLACEHOLDER_MISSING_COMPONENT_COMPONENT } from './placeholder.token';\r\nimport { RawComponent } from './raw.component';\r\nimport { isRawRendering } from './rendering';\r\n\r\n/**\r\n * Renders a single JSS component given a rendering definition.\r\n * Useful inside templated placeholders.\r\n */\r\n@Component({\r\n selector: 'sc-render-component',\r\n template: `\r\n <ng-template #view></ng-template>\r\n `,\r\n})\r\nexport class RenderComponentComponent implements OnChanges {\r\n @Input() rendering: ComponentRendering | HtmlElementRendering;\r\n @Input() outputs: { [k: string]: (eventType: unknown) => void };\r\n @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n\r\n private _inputs: { [key: string]: unknown };\r\n private _differ: KeyValueDiffer<string, unknown>;\r\n private destroyed = false;\r\n\r\n constructor(\r\n private differs: KeyValueDiffers,\r\n private componentFactory: JssComponentFactoryService,\r\n @Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT)\r\n private missingComponentComponent: Type<{ [key: string]: unknown }>\r\n ) {}\r\n\r\n @Input()\r\n set inputs(value: { [key: string]: unknown }) {\r\n this._inputs = value;\r\n if (!this._differ && value) {\r\n this._differ = this.differs.find(value).create();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.rendering) {\r\n this._render();\r\n }\r\n }\r\n\r\n private _setComponentInputs(\r\n componentInstance: { [key: string]: unknown },\r\n inputs: { [key: string]: unknown }\r\n ) {\r\n Object.entries(inputs).forEach(\r\n ([input, inputValue]) =>\r\n ((componentInstance as { [prop: string]: unknown })[input] = inputValue)\r\n );\r\n }\r\n\r\n private _subscribeComponentOutputs(\r\n componentInstance: { [key: string]: unknown },\r\n outputs: { [k: string]: (eventType: unknown) => void }\r\n ) {\r\n Object.keys(outputs)\r\n .filter(\r\n (output) => componentInstance[output] && componentInstance[output] instanceof Observable\r\n )\r\n .forEach((output) =>\r\n (componentInstance[output] as Observable<unknown>)\r\n .pipe(takeWhile(() => !this.destroyed))\r\n .subscribe(outputs[output])\r\n );\r\n }\r\n\r\n private _render() {\r\n this.view.clear();\r\n\r\n if (!this.rendering) {\r\n return;\r\n }\r\n\r\n const resolveComponent: Promise<ComponentFactoryResult> = isRawRendering(this.rendering)\r\n ? Promise.resolve({\r\n componentImplementation: RawComponent,\r\n componentDefinition: this.rendering,\r\n })\r\n : this.componentFactory.getComponent(this.rendering);\r\n\r\n resolveComponent.then((rendering) => {\r\n if (!rendering.componentImplementation) {\r\n const componentName = (rendering.componentDefinition as ComponentRendering).componentName;\r\n console.error(\r\n `Attempted to render unknown component ${componentName}.`,\r\n `Ensure component is mapped, like:\r\n JssModule.withComponents([\r\n { name: '${componentName}', type: ${componentName}Component }\r\n ])`\r\n );\r\n\r\n rendering.componentImplementation = this.missingComponentComponent;\r\n }\r\n\r\n const componentInstance = this.view.createComponent(rendering.componentImplementation)\r\n .instance;\r\n componentInstance.rendering = rendering.componentDefinition;\r\n if (this._inputs) {\r\n this._setComponentInputs(componentInstance, this._inputs);\r\n }\r\n if (this.outputs) {\r\n this._subscribeComponentOutputs(componentInstance, this.outputs);\r\n }\r\n });\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport {\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { DateField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scDate]',\r\n})\r\nexport class DateDirective implements OnChanges {\r\n @Input('scDateFormat') format?: string;\r\n\r\n @Input('scDateTimezone') timezone?: string;\r\n\r\n @Input('scDateLocale') locale?: string;\r\n\r\n @Input('scDateEditable') editable = true;\r\n\r\n @Input('scDate') field: DateField;\r\n\r\n private viewRef: EmbeddedViewRef<unknown>;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<unknown>,\r\n private datePipe: DatePipe\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.format) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n const html = field.editable && this.editable ? field.editable : field.value;\r\n const setDangerously = field.editable && this.editable;\r\n\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (setDangerously) {\r\n node.innerHTML = html;\r\n } else {\r\n node.textContent = this.datePipe.transform(html, this.format, this.timezone, this.locale);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\nimport {\r\n EditFrameDataSource,\r\n ChromeCommand,\r\n EditButtonTypes,\r\n mapButtonToCommand,\r\n} from '@sitecore-jss/sitecore-jss/utils';\r\nimport { LayoutServiceContextData, RouteData } from '@sitecore-jss/sitecore-jss/layout';\r\n\r\n@Component({\r\n selector: 'sc-edit-frame,[sc-edit-frame]',\r\n template: `\r\n <ng-template #childContent>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n <div\r\n *ngIf=\"isEditing; else elseBlock\"\r\n [class]=\"frameProps.class\"\r\n [attr.sc_item]=\"frameProps.sc_item\"\r\n >\r\n <span class=\"scChromeData\">{{ chromeData }}</span>\r\n <ng-container *ngTemplateOutlet=\"childContent\"></ng-container>\r\n </div>\r\n <ng-template #elseBlock>\r\n <ng-container *ngTemplateOutlet=\"childContent\"></ng-container>\r\n </ng-template>\r\n `,\r\n})\r\nexport class EditFrameComponent implements OnChanges {\r\n @Input() dataSource: EditFrameDataSource;\r\n\r\n @Input() buttons: EditButtonTypes[];\r\n\r\n @Input() title: string;\r\n\r\n @Input() tooltip: string;\r\n\r\n @Input() cssClass: string;\r\n\r\n @Input() parameters: Record<string, string | number | boolean | undefined | null>;\r\n\r\n @Input() sitecore: LayoutServiceContextData & {\r\n route: RouteData<unknown> | null;\r\n };\r\n\r\n isEditing = false;\r\n frameProps: Record<string, unknown> = {};\r\n chromeData = '';\r\n\r\n ngOnChanges() {\r\n this.isEditing = this.sitecore.context.pageEditing || false;\r\n if (!this.isEditing) {\r\n return;\r\n }\r\n\r\n this.frameProps.class = 'scLooseFrameZone';\r\n if (this.cssClass) {\r\n this.frameProps.class = `${this.frameProps.class} ${this.cssClass}`;\r\n }\r\n\r\n // item uri for edit frame target\r\n if (this.dataSource) {\r\n const route = this.sitecore.route;\r\n const databaseName = this.dataSource.databaseName || route?.databaseName;\r\n const language = this.dataSource.language || this.sitecore.context.language;\r\n this.frameProps.sc_item = `sitecore://${databaseName}/${this.dataSource.itemId}?lang=${language}`;\r\n }\r\n\r\n this.chromeData = this.buildChromeData();\r\n }\r\n\r\n buildChromeData() {\r\n const chromeData: Record<string, unknown> = {\r\n displayName: this.title,\r\n expandedDisplayName: this.tooltip,\r\n };\r\n\r\n if (this.dataSource) {\r\n chromeData.contextItemUri = this.frameProps.sc_item;\r\n }\r\n\r\n chromeData.commands = this.buttons?.map(\r\n (value): ChromeCommand => {\r\n return mapButtonToCommand(value, this.dataSource?.itemId, this.parameters);\r\n }\r\n );\r\n\r\n return JSON.stringify(chromeData);\r\n }\r\n}\r\n","import {\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { isAbsoluteUrl } from '@sitecore-jss/sitecore-jss/utils';\r\nimport { RichTextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scRichText]',\r\n})\r\nexport class RichTextDirective implements OnChanges {\r\n @Input('scRichTextEditable') editable = true;\r\n\r\n @Input('scRichText') field: RichTextField;\r\n\r\n private viewRef: EmbeddedViewRef<unknown>;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<unknown>,\r\n private renderer: Renderer2,\r\n private router: Router\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n const html = field.editable && this.editable ? field.editable : field.value;\r\n this.viewRef.rootNodes.forEach((node) => {\r\n node.innerHTML = html;\r\n\r\n if (!node.querySelectorAll) {\r\n return;\r\n }\r\n\r\n const links: NodeListOf<HTMLLinkElement> = node.querySelectorAll('a[href]');\r\n const linksArray: Array<HTMLLinkElement> = [].slice.call(links);\r\n\r\n linksArray.forEach((link) => {\r\n const href = link.getAttribute('href');\r\n const target = link.getAttribute('target');\r\n\r\n if (!href || isAbsoluteUrl(href) || target === '_blank' || target === '_top') {\r\n return;\r\n }\r\n\r\n this.renderer.listen(link, 'click', (event) => {\r\n this.router.navigateByUrl(href);\r\n event.preventDefault();\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scText]',\r\n})\r\nexport class TextDirective implements OnChanges {\r\n @Input('scTextEditable') editable = true;\r\n\r\n @Input('scTextEncode') encode = true;\r\n\r\n @Input('scText') field: TextField;\r\n\r\n private viewRef: EmbeddedViewRef<unknown>;\r\n\r\n constructor(private viewContainer: ViewContainerRef, private templateRef: TemplateRef<unknown>) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable || changes.encode) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n let editable = this.editable;\r\n\r\n if (!field || (!field.editable && (field.value === undefined || field.value === ''))) {\r\n return;\r\n }\r\n\r\n // can't use editable value if we want to output unencoded\r\n if (!this.encode) {\r\n editable = false;\r\n }\r\n\r\n const html = field.editable && editable ? field.editable : field.value;\r\n const setDangerously = (field.editable && editable) || !this.encode;\r\n\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (setDangerously) {\r\n node.innerHTML = html;\r\n } else {\r\n node.textContent = html;\r\n }\r\n });\r\n }\r\n}\r\n","import { ɵisObservable as isObservable, ɵisPromise as isPromise } from '@angular/core';\r\nimport { from, Observable, of } from 'rxjs';\r\n\r\nexport type InnerType<T> = T extends Promise<infer P> ? P : T extends Observable<infer O> ? O : T;\r\n\r\n/**\r\n * @param {T} value\r\n * @returns {Promise | Observable | any} resolved value\r\n */\r\nexport function wrapIntoObservable<T>(value: T): Observable<InnerType<T>> {\r\n if (isObservable(value)) {\r\n return value;\r\n }\r\n\r\n if (isPromise(value)) {\r\n return from(Promise.resolve(value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return of(value) as any;\r\n}\r\n","import { Injector, Type } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { take } from 'rxjs/operators';\r\nimport { ComponentFactoryResult } from '../jss-component-factory.service';\r\nimport { wrapIntoObservable } from '../utils';\r\nimport { JssResolve } from './placeholder.token';\r\nimport { lastValueFrom } from 'rxjs';\r\n\r\n/**\r\n * @param {Injector} injector\r\n * @param {ActivatedRoute} activatedRoute\r\n * @param {Router} router\r\n * @returns resolved data\r\n */\r\nexport function dataResolverFactory(\r\n injector: Injector,\r\n activatedRoute: ActivatedRoute,\r\n router: Router\r\n) {\r\n /**\r\n * @param {JssResolve<unknown> | Type<JssResolve<unknown>>} resolver\r\n * @returns resolver instance\r\n */\r\n function getResolverInstance(resolver: JssResolve<unknown> | Type<JssResolve<unknown>>) {\r\n return 'resolve' in resolver ? resolver : injector.get(resolver);\r\n }\r\n\r\n /**\r\n * @param {ComponentFactoryResult} factory\r\n * @returns {Array<[string, JssResolve<unknown>]>} resolver instances\r\n */\r\n function collectResolverInstances(\r\n factory: ComponentFactoryResult\r\n ): Array<[string, JssResolve<unknown>]> {\r\n if (factory.resolve) {\r\n const resolve = factory.resolve;\r\n return Object.keys(factory.resolve).map((key): [string, JssResolve<unknown>] => [\r\n key,\r\n getResolverInstance(resolve[key]),\r\n ]);\r\n }\r\n\r\n return [];\r\n }\r\n\r\n /**\r\n * @param {JssResolve<unknown>} resolver\r\n * @param {ComponentFactoryResult} factory\r\n * @returns data\r\n */\r\n function _resolveData(resolver: JssResolve<unknown>, factory: ComponentFactoryResult) {\r\n const data = resolver.resolve({\r\n activatedRoute: activatedRoute.snapshot,\r\n routerState: router.routerState.snapshot,\r\n rendering: factory.componentDefinition as ComponentRendering,\r\n });\r\n const data$ = wrapIntoObservable(data);\r\n\r\n return lastValueFrom(data$.pipe(take(1)));\r\n }\r\n\r\n return function resolveData(factories: ComponentFactoryResult[]) {\r\n return Promise.all(\r\n factories.map((factory) => {\r\n const resolvers = collectResolverInstances(factory);\r\n const pendingData = resolvers.map(([key, resolver]) =>\r\n _resolveData(resolver, factory).then((data): [string, any] => [key, data])\r\n );\r\n\r\n return Promise.all(pendingData)\r\n .then((allData) =>\r\n allData.reduce<Record<string, any>>((acc, [key, data]) => {\r\n acc[key] = data;\r\n return acc;\r\n }, {})\r\n )\r\n .then((data) => ({ factory, data }));\r\n })\r\n );\r\n };\r\n}\r\n","import { Injector, Type } from '@angular/core';\r\nimport { ActivatedRoute, Router, UrlTree } from '@angular/router';\r\nimport { take, mergeMap } from 'rxjs/operators';\r\nimport { ComponentFactoryResult } from '../jss-component-factory.service';\r\nimport { wrapIntoObservable } from '../utils';\r\nimport { JssCanActivate, JssCanActivateFn } from './placeholder.token';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { throwError, of, lastValueFrom } from 'rxjs';\r\n\r\n/**\r\n * @param {boolean | string | string[] | UrlTree} value\r\n * @returns instance of value\r\n */\r\nfunction isRedirectValue(\r\n value: boolean | string | string[] | UrlTree\r\n): value is string | string[] | UrlTree {\r\n return value instanceof UrlTree || typeof value === 'string' || Array.isArray(value);\r\n}\r\n\r\n/**\r\n * Resolves components based on provided guards\r\n * @param {Injector} injector\r\n * @param {ActivatedRoute} activatedRoute\r\n * @param {Router} router\r\n * @returns {(factories: ComponentFactoryResult[]) => Promise<ComponentFactoryResult[]>} factory\r\n */\r\nexport function guardResolverFactory(\r\n injector: Injector,\r\n activatedRoute: ActivatedRoute,\r\n router: Router\r\n) {\r\n /**\r\n * @param {JssCanActivate | Type<JssCanActivate> | JssCanActivateFn} guard\r\n * @returns resolved guard\r\n */\r\n function getGuardInstance(\r\n guard: JssCanActivate | Type<JssCanActivate> | JssCanActivateFn\r\n ): JssCanActivate | JssCanActivateFn {\r\n if ('canActivate' in guard) {\r\n return guard;\r\n }\r\n\r\n try {\r\n // Class is provided\r\n return injector.get(guard);\r\n } catch {\r\n // Function is provided\r\n return guard as JssCanActivateFn;\r\n }\r\n }\r\n\r\n /**\r\n * @param {ComponentFactoryResult} factory\r\n * @returns {(JssCanActivate | JssCanActivateFn)[]} guard instances\r\n */\r\n function collectGuardInstances(\r\n factory: ComponentFactoryResult\r\n ): (JssCanActivate | JssCanActivateFn)[] {\r\n if (factory.canActivate) {\r\n return Array.isArray(factory.canActivate)\r\n ? factory.canActivate.map(getGuardInstance)\r\n : [getGuardInstance(factory.canActivate)];\r\n }\r\n\r\n return [];\r\n }\r\n\r\n /**\r\n *\r\n * @param {JssCanActivate | JssCanActivateFn} guard\r\n * @param {ComponentFactoryResult} factory\r\n * @returns canActivate\r\n */\r\n function resolveGuard(guard: JssCanActivate | JssCanActivateFn, factory: ComponentFactoryResult) {\r\n const canActivate = 'canActivate' in guard ? guard.canActivate : guard;\r\n const guardValue = canActivate({\r\n activatedRoute: activatedRoute.snapshot,\r\n routerState: router.routerState.snapshot,\r\n rendering: factory.componentDefinition as ComponentRendering,\r\n });\r\n\r\n const canActivate$ = wrapIntoObservable(guardValue);\r\n\r\n return lastValueFrom(\r\n canActivate$.pipe(\r\n take(1),\r\n mergeMap((value) => {\r\n if (isRedirectValue(value)) {\r\n return throwError(() => new Error(value.toString()));\r\n } else {\r\n return of(value);\r\n }\r\n })\r\n )\r\n );\r\n }\r\n\r\n return function resolveGuards(factories: ComponentFactoryResult[]) {\r\n const resolved = factories.map((factory) => {\r\n const guards = collectGuardInstances(factory);\r\n const pending = guards.map((guard) => resolveGuard(guard, factory));\r\n return Promise.all(pending)\r\n .then((canActive) => canActive.every((v) => v))\r\n .then((canActivate) => ({\r\n factory,\r\n canActivate,\r\n }));\r\n });\r\n\r\n return Promise.all(resolved).then((mapped) =>\r\n mapped.filter((m) => m.canActivate).map((m) => m.factory)\r\n );\r\n };\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss/layout';\r\n\r\n@Component({\r\n selector: 'sc-missing-component',\r\n template: `\r\n <div\r\n style=\"background: darkorange; outline: 5px solid orange; padding: 10px; color: white; max-width: 500px;\"\r\n >\r\n <h2>{{ rendering.componentName }}</h2>\r\n <p>JSS component is missing Angular component implementation.</p>\r\n </div>\r\n `,\r\n})\r\nexport class MissingComponentComponent {\r\n @Input() rendering: ComponentRendering;\r\n}\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { Injector, ModuleWithProviders, NgModule, Provider, Type } from '@angular/core';\r\nimport { ActivatedRoute, Router, ROUTES } from '@angular/router';\r\nimport { dataResolverFactory } from './components/data-resolver-factory';\r\nimport { DateDirective } from './components/date.directive';\r\nimport { FileDirective } from './components/file.directive';\r\nimport { GenericLinkDirective } from './components/generic-link.directive';\r\nimport { guardResolverFactory } from './components/guard-resolver-factory';\r\nimport { ImageDirective } from './components/image.directive';\r\nimport { LinkDirective } from './components/link.directive';\r\nimport { MissingComponentComponent } from './components/missing-component.component';\r\nimport { HiddenRenderingComponent } from './components/hidden-rendering.component';\r\nimport { PlaceholderLoadingDirective } from './components/placeholder-loading.directive';\r\nimport { PlaceholderComponent } from './components/placeholder.component';\r\nimport { EditFrameComponent } from './components/editframe.component';\r\nimport {\r\n ComponentNameAndModule,\r\n ComponentNameAndType,\r\n DATA_RESOLVER,\r\n DYNAMIC_COMPONENT,\r\n GUARD_RESOLVER,\r\n PLACEHOLDER_COMPONENTS,\r\n PLACEHOLDER_LAZY_COMPONENTS,\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT,\r\n PLACEHOLDER_HIDDEN_RENDERING_COMPONENT,\r\n} from './components/placeholder.token';\r\nimport { RawComponent } from './components/raw.component';\r\nimport { RenderComponentComponent } from './components/render-component.component';\r\nimport { RenderEachDirective } from './components/render-each.directive';\r\nimport { RenderEmptyDirective } from './components/render-empty.directive';\r\nimport { RichTextDirective } from './components/rich-text.directive';\r\nimport { RouterLinkDirective } from './components/router-link.directive';\r\nimport { TextDirective } from './components/text.directive';\r\nimport { JssComponentFactoryService } from './jss-component-factory.service';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [\r\n FileDirective,\r\n ImageDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n DateDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n PlaceholderLoadingDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n RawComponent,\r\n RichTextDirective,\r\n TextDirective,\r\n MissingComponentComponent,\r\n HiddenRenderingComponent,\r\n EditFrameComponent,\r\n ],\r\n exports: [\r\n FileDirective,\r\n ImageDirective,\r\n DateDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n HiddenRenderingComponent,\r\n PlaceholderLoadingDirective,\r\n RichTextDirective,\r\n TextDirective,\r\n EditFrameComponent,\r\n ],\r\n entryComponents: [RawComponent, MissingComponentComponent],\r\n})\r\nexport class JssModule {\r\n /**\r\n * Instantiates the JSS module with no component factory.\r\n * Useful for using it from libraries. Most of the time you'd want withComponents()\r\n * @returns {ModuleWithProviders<JssModule>} module\r\n */\r\n static forRoot(): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n DatePipe,\r\n JssComponentFactoryService,\r\n {\r\n provide: GUARD_RESOLVER,\r\n useFactory: guardResolverFactory,\r\n deps: [Injector, ActivatedRoute, Router],\r\n },\r\n {\r\n provide: DATA_RESOLVER,\r\n useFactory: dataResolverFactory,\r\n deps: [Injector, ActivatedRoute, Router],\r\n },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Instantiates a module for a lazy-loaded JSS component\r\n * @param {Type<unknown>} component\r\n * @returns {ModuleWithProviders<JssModule>} module\r\n */\r\n static forChild(component: Type<unknown>): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n { provide: ROUTES, useValue: [], multi: true },\r\n { provide: DYNAMIC_COMPONENT, useValue: component },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Instantiates the JSS module and specifies the mapping from component name to component implementation.\r\n * Appropriate when defining the set of JSS components that your app is aware of.\r\n * @param {ComponentNameAndType[]} components\r\n * @param {ComponentNameAndModule[]} [lazyComponents]\r\n * @returns {ModuleWithProviders<JssModule>} module\r\n */\r\n static withComponents(\r\n components: ComponentNameAndType[],\r\n lazyComponents?: ComponentNameAndModule[]\r\n ): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n { provide: PLACEHOLDER_COMPONENTS, useValue: components },\r\n { provide: PLACEHOLDER_LAZY_COMPONENTS, useValue: lazyComponents || [] },\r\n { provide: ROUTES, useValue: lazyComponents || [], multi: true },\r\n { provide: PLACEHOLDER_MISSING_COMPONENT_COMPONENT, useValue: MissingComponentComponent },\r\n { provide: PLACEHOLDER_HIDDEN_RENDERING_COMPONENT, useValue: HiddenRenderingComponent },\r\n ...(JssModule.forRoot().providers as Provider[]),\r\n ],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.JssComponentFactoryService","i2","i3","i1","isObservable","isPromise"],"mappings":"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"}
1
+ {"version":3,"file":"sitecore-jss-sitecore-jss-angular.mjs","sources":["../../src/components/file.directive.ts","../../src/components/image.directive.ts","../../src/components/link.directive.ts","../../src/components/router-link.directive.ts","../../src/components/generic-link.directive.ts","../../src/components/hidden-rendering.component.ts","../../src/components/placeholder-loading.directive.ts","../../src/components/placeholder.token.ts","../../src/components/render-each.directive.ts","../../src/components/render-empty.directive.ts","../../src/components/rendering.ts","../../src/components/raw.component.ts","../../src/jss-component-factory.service.ts","../../src/components/placeholder.component.ts","../../src/components/render-component.component.ts","../../src/components/date.directive.ts","../../src/components/editframe.component.ts","../../src/components/rich-text.directive.ts","../../src/components/text.directive.ts","../../src/utils.ts","../../src/components/data-resolver-factory.ts","../../src/components/guard-resolver-factory.ts","../../src/components/missing-component.component.ts","../../src/lib.module.ts","../../src/sitecore-jss-sitecore-jss-angular.ts"],"sourcesContent":["import {\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { FileField } from './rendering-field';\r\n\r\n/**\r\n * File fields cannot be managed via the EE. We never output \"editable.\"\r\n */\r\n@Directive({ selector: '[scFile]' })\r\nexport class FileDirective implements OnChanges {\r\n @Input('scFile') field: FileField;\r\n\r\n private viewRef: EmbeddedViewRef<unknown>;\r\n\r\n constructor(private viewContainer: ViewContainerRef, private templateRef: TemplateRef<unknown>) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.field) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n\r\n if (!field || (!field.value && !field.src)) {\r\n return;\r\n }\r\n\r\n const file = field.src ? field : field.value;\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (!file) return;\r\n\r\n node.href = file.src;\r\n if (node.innerHTML === '') {\r\n node.innerHTML = file.title || file.displayName;\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { mediaApi } from '@sitecore-jss/sitecore-jss/media';\r\nimport { ImageField, ImageFieldValue } from './rendering-field';\r\n\r\n@Directive({ selector: '[scImage]' })\r\nexport class ImageDirective implements OnChanges {\r\n @Input('scImage') field: ImageField | '';\r\n\r\n @Input('scImageEditable') editable = true;\r\n\r\n /**\r\n * Custom regexp that finds media URL prefix that will be replaced by `/-/jssmedia` or `/~/jssmedia`.\r\n * @example\r\n * /\\/([-~]{1})assets\\//i\r\n * /-assets/website -> /-/jssmedia/website\r\n * /~assets/website -> /~/jssmedia/website\r\n */\r\n @Input('scImageMediaUrlPrefix') mediaUrlPrefix?: RegExp;\r\n\r\n @Input('scImageUrlParams') urlParams: { [param: string]: string | number } = {};\r\n\r\n @Input('scImageAttrs') attrs: { [param: string]: unknown } = {};\r\n\r\n private inlineRef: HTMLSpanElement | null = null;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<unknown>,\r\n private renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable || changes.urlParams || changes.attrs) {\r\n this.viewContainer.clear();\r\n if (this.inlineRef) {\r\n this.inlineRef.remove();\r\n this.inlineRef = null;\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const overrideAttrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n const media = this.field;\r\n\r\n if (!media || (!media.editable && !media.value && !media.src)) {\r\n return;\r\n }\r\n\r\n let attrs: { [attr: string]: string } | null = {};\r\n\r\n // we likely have an experience editor value, should be a string\r\n if (this.editable && media.editable) {\r\n const foundImg = mediaApi.findEditorImageTag(media.editable);\r\n if (!foundImg) {\r\n return this.renderInlineWrapper(media.editable);\r\n }\r\n attrs = this.getImageAttrs(foundImg.attrs, overrideAttrs, this.urlParams);\r\n if (!attrs) {\r\n return this.renderInlineWrapper(media.editable);\r\n }\r\n const tempImg: HTMLImageElement = this.renderer.createElement('img');\r\n Object.entries(attrs).forEach(([key, attrValue]: [string, string]) =>\r\n tempImg.setAttribute(key, attrValue)\r\n );\r\n const editableMarkup = media.editable.replace(foundImg.imgTag, tempImg.outerHTML);\r\n return this.renderInlineWrapper(editableMarkup);\r\n }\r\n\r\n // some wise-guy/gal is passing in a 'raw' image object value\r\n const img = media.src ? media : media.value;\r\n if (!img) {\r\n return null;\r\n }\r\n\r\n attrs = this.getImageAttrs(img, overrideAttrs, this.urlParams);\r\n if (attrs) {\r\n this.renderTemplate(attrs);\r\n }\r\n }\r\n\r\n private getImageAttrs(\r\n fieldAttrs: ImageFieldValue,\r\n parsedAttrs: { [attr: string]: unknown },\r\n imageParams: { [param: string]: string | number }\r\n ): { [attr: string]: string } | null {\r\n const combinedAttrs = {\r\n ...fieldAttrs,\r\n ...parsedAttrs,\r\n };\r\n // eslint-disable-next-line prefer-const\r\n let { src, srcSet, ...otherAttrs } = combinedAttrs;\r\n if (!src) {\r\n return null;\r\n }\r\n const newAttrs: { [attr: string]: string } = {\r\n ...(otherAttrs as { [key: string]: string }),\r\n };\r\n // update image URL for jss handler and image rendering params\r\n src = mediaApi.updateImageUrl(src, imageParams, this.mediaUrlPrefix);\r\n if (srcSet) {\r\n // replace with HTML-formatted srcset, including updated image URLs\r\n newAttrs.srcSet = mediaApi.getSrcSet(src, srcSet, imageParams, this.mediaUrlPrefix);\r\n } else {\r\n newAttrs.src = src;\r\n }\r\n return newAttrs;\r\n }\r\n\r\n private renderTemplate(imageProps: { [prop: string]: string }) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(imageProps).forEach(([key, imgPropVal]: [string, string]) =>\r\n this.renderer.setAttribute(node, key, imgPropVal)\r\n );\r\n });\r\n }\r\n\r\n private getElementAttrs(): { [key: string]: string } {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n view.destroy();\r\n return {};\r\n }\r\n const attrs: { [key: string]: string } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n view.destroy();\r\n return attrs;\r\n }\r\n\r\n private renderInlineWrapper(editable: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-image-wrapper';\r\n span.innerHTML = editable;\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n parentNode.removeChild(this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scLink]' })\r\nexport class LinkDirective implements OnChanges {\r\n @Input('scLinkEditable') editable = true;\r\n\r\n @Input('scLinkAttrs') attrs: { [attr: string]: string } = {};\r\n\r\n @Input('scLink') field: LinkField;\r\n\r\n private inlineRef: HTMLSpanElement | null = null;\r\n\r\n constructor(\r\n protected viewContainer: ViewContainerRef,\r\n protected templateRef: TemplateRef<unknown>,\r\n protected renderer: Renderer2,\r\n private elementRef: ElementRef\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable || changes.attrs) {\r\n this.viewContainer.clear();\r\n if (this.inlineRef) {\r\n this.inlineRef.remove();\r\n this.inlineRef = null;\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n protected renderTemplate(props: { [prop: string]: unknown }, linkText?: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]) => {\r\n this.updateAttribute(node, key, propValue);\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n\r\n protected updateAttribute(node: HTMLElement, key: string, propValue?: unknown) {\r\n if (typeof propValue !== 'string' || !propValue || propValue === '') {\r\n return;\r\n }\r\n\r\n if (key === 'href') {\r\n const isInvalidLink = !propValue || /^https?:\\/\\/$/.test(propValue);\r\n\r\n if (isInvalidLink) {\r\n if (!(node as HTMLLinkElement).href) {\r\n return;\r\n }\r\n\r\n propValue = (node as HTMLLinkElement).href as string;\r\n }\r\n this.renderer.setAttribute(node, key, propValue as string);\r\n } else if (key === 'class' && node.className !== '') {\r\n this.renderer.setAttribute(node, key, `${node.className} ${propValue}`);\r\n } else {\r\n this.renderer.setAttribute(node, key, propValue);\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n if (this.editable && field && field.editableFirstPart && field.editableLastPart) {\r\n this.renderInlineWrapper(field.editableFirstPart, field.editableLastPart);\r\n } else if (field && (field.href || field.value)) {\r\n const props = field.href ? field : field.value;\r\n\r\n const linkText = field.text || field.value?.text || field.href || field.value?.href;\r\n const anchor = props?.anchor ? `#${props.anchor}` : '';\r\n const href = `${props?.href}${anchor}`;\r\n\r\n const mergedAttrs = { ...props, ...this.attrs, href };\r\n\r\n delete mergedAttrs.anchor;\r\n\r\n this.renderTemplate(mergedAttrs, linkText);\r\n }\r\n }\r\n\r\n private renderInlineWrapper(editableFirstPart: string, editableLastPart: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-link-wrapper';\r\n span.innerHTML = editableFirstPart + editableLastPart;\r\n\r\n // assign attributes from template to inline wrapper\r\n const attrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n Object.entries(attrs).forEach(([key, attrValue]) => this.updateAttribute(span, key, attrValue));\r\n\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n\r\n private getElementAttrs() {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n view.destroy();\r\n return {};\r\n }\r\n const attrs: { [key: string]: string } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n view.destroy();\r\n return attrs;\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n Renderer2,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { LinkDirective } from './link.directive';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scRouterLink]' })\r\nexport class RouterLinkDirective extends LinkDirective {\r\n @Input('scRouterLinkEditable') editable = true;\r\n\r\n @Input('scRouterLinkAttrs') attrs: { [attr: string]: string } = {};\r\n\r\n @Input('scRouterLink') declare field: LinkField;\r\n\r\n constructor(\r\n viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<unknown>,\r\n renderer: Renderer2,\r\n elementRef: ElementRef,\r\n private router: Router\r\n ) {\r\n super(viewContainer, templateRef, renderer, elementRef);\r\n }\r\n\r\n protected renderTemplate(props: { [prop: string]: string }, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]) => {\r\n this.updateAttribute(node, key, propValue);\r\n\r\n if (key === 'href') {\r\n this.renderer.listen(node, 'click', (event) => {\r\n this.router.navigateByUrl(propValue);\r\n\r\n // shouldn't prevent default if the link includes a fragment\r\n if (!propValue.includes('#')) {\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n Renderer2,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Router, NavigationExtras } from '@angular/router';\r\nimport { isAbsoluteUrl } from '@sitecore-jss/sitecore-jss/utils';\r\nimport { LinkDirective } from './link.directive';\r\nimport { LinkField } from './rendering-field';\r\n\r\n@Directive({ selector: '[scGenericLink]' })\r\nexport class GenericLinkDirective extends LinkDirective {\r\n @Input('scGenericLinkEditable') editable = true;\r\n\r\n @Input('scGenericLinkAttrs') attrs: { [key: string]: string } = {};\r\n\r\n @Input('scGenericLink') declare field: LinkField;\r\n\r\n @Input('scGenericLinkExtras') extras?: NavigationExtras;\r\n\r\n constructor(\r\n viewContainer: ViewContainerRef,\r\n templateRef: TemplateRef<unknown>,\r\n renderer: Renderer2,\r\n elementRef: ElementRef,\r\n private router: Router\r\n ) {\r\n super(viewContainer, templateRef, renderer, elementRef);\r\n }\r\n\r\n protected renderTemplate(props: { [key: string]: string }, linkText: string) {\r\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n viewRef.rootNodes.forEach((node) => {\r\n Object.entries(props).forEach(([key, propValue]: [string, string]) => {\r\n if (key === 'href' && !isAbsoluteUrl(propValue)) {\r\n const fragments = propValue.split('#');\r\n const url = fragments[0];\r\n const anchor = fragments[1];\r\n const urlTree = this.router.createUrlTree([url], {\r\n fragment: anchor,\r\n ...this.extras,\r\n });\r\n this.updateAttribute(node, key, this.router.serializeUrl(urlTree));\r\n this.renderer.listen(node, 'click', (event) => {\r\n this.router.navigate([url], {\r\n fragment: anchor,\r\n ...this.extras,\r\n });\r\n\r\n // shouldn't prevent default if the link includes a fragment\r\n if (!anchor) {\r\n event.preventDefault();\r\n }\r\n });\r\n } else {\r\n this.updateAttribute(node, key, propValue);\r\n }\r\n });\r\n\r\n if (node.childNodes && node.childNodes.length === 0 && linkText) {\r\n node.textContent = linkText;\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, HostBinding } from '@angular/core';\r\n@Component({\r\n selector: 'sc-hidden-rendering',\r\n template: '',\r\n})\r\nexport class HiddenRenderingComponent {\r\n @HostBinding('style') get style() {\r\n return 'background-image: linear-gradient(45deg, #ffffff 25%, #dcdcdc 25%, #dcdcdc 50%, #ffffff 50%, #ffffff 75%, #dcdcdc 75%, #dcdcdc 100%); background-size: 3px 3px; display: block; height: 100px;';\r\n }\r\n}\r\n\r\nexport const HIDDEN_RENDERING_NAME = 'Hidden Rendering';\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[scPlaceholderLoading]',\r\n})\r\nexport class PlaceholderLoadingDirective {\r\n constructor(public templateRef: TemplateRef<unknown>) {}\r\n}\r\n","import { InjectionToken, Type } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Data, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ComponentFactoryResult } from '../jss-component-factory.service';\r\nimport { ComponentRendering } from '../public_api';\r\n\r\n/** Registers a statically loaded component */\r\nexport class ComponentNameAndType {\r\n name: string;\r\n type: Type<unknown>;\r\n\r\n canActivate?:\r\n | JssCanActivate\r\n | Type<JssCanActivate>\r\n | JssCanActivateFn\r\n | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;\r\n resolve?: { [key: string]: JssResolve<unknown> | Type<JssResolve<unknown>> };\r\n}\r\n\r\n/** Registers a lazily loaded component by name and module to lazy load when it's needed */\r\nexport interface ComponentNameAndModule {\r\n /** Name of the component */\r\n path: string;\r\n /**\r\n * Dynamic import of the component,\r\n * e.g. () => import('./path/to/lazyloadedcomponent.module').then(m => m.LazyLoadedComponentModuleExportName)\r\n */\r\n loadChildren: () => Promise<Type<unknown>>;\r\n canActivate?:\r\n | JssCanActivate\r\n | JssCanActivateFn\r\n | Type<JssCanActivate>\r\n | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;\r\n resolve?: { [key: string]: JssResolve<unknown> | Type<JssResolve<unknown>> };\r\n}\r\n\r\n/**\r\n * @param {unknown} object\r\n */\r\nexport function instanceOfComponentNameAndType(object: unknown): object is ComponentNameAndType {\r\n return typeof object === 'object' && object !== null && 'type' in object;\r\n}\r\n\r\n/**\r\n * @param {unknown} object\r\n */\r\nexport function instanceOfComponentNameAndModule(\r\n object: unknown\r\n): object is ComponentNameAndModule {\r\n return typeof object === 'object' && object !== null && 'module' in object;\r\n}\r\n\r\nexport const PLACEHOLDER_COMPONENTS = new InjectionToken<ComponentNameAndType[]>(\r\n 'Sc.placeholder.components'\r\n);\r\nexport const PLACEHOLDER_LAZY_COMPONENTS = new InjectionToken<ComponentNameAndType[]>(\r\n 'Sc.placeholder.lazyComponents'\r\n);\r\nexport const PLACEHOLDER_MISSING_COMPONENT_COMPONENT = new InjectionToken<Type<unknown>>(\r\n 'Sc.placeholder.missingComponentComponent'\r\n);\r\nexport const PLACEHOLDER_HIDDEN_RENDERING_COMPONENT = new InjectionToken<Type<unknown>>(\r\n 'Sc.placeholder.hiddenRenderingComponent'\r\n);\r\nexport const DYNAMIC_COMPONENT = new InjectionToken<Type<unknown> | { [s: string]: unknown }>(\r\n 'Sc.placeholder.dynamicComponent'\r\n);\r\n\r\nexport type GuardResolver = (result: ComponentFactoryResult[]) => Promise<ComponentFactoryResult[]>;\r\n\r\nexport const GUARD_RESOLVER = new InjectionToken<GuardResolver>('Sc.placeholder.guardResolver');\r\n\r\nexport type DataResolver = (\r\n result: ComponentFactoryResult[]\r\n) => Promise<Array<{ factory: ComponentFactoryResult; data: Data }>>;\r\n\r\nexport const DATA_RESOLVER = new InjectionToken<DataResolver>('Sc.placeholder.dataResolver');\r\n\r\nexport interface GuardInput {\r\n activatedRoute: ActivatedRouteSnapshot;\r\n routerState: RouterStateSnapshot;\r\n rendering: ComponentRendering;\r\n}\r\n\r\nexport interface JssCanActivateFn {\r\n (input: GuardInput):\r\n | Observable<boolean | UrlTree | string | string[]>\r\n | Promise<boolean | UrlTree | string | string[]>\r\n | boolean\r\n | UrlTree\r\n | string\r\n | string[];\r\n}\r\n\r\nexport interface JssCanActivate {\r\n canActivate: JssCanActivateFn;\r\n}\r\n\r\nexport interface JssResolve<T> {\r\n resolve(input: GuardInput): Observable<T> | Promise<T> | T;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[renderEach]',\r\n})\r\nexport class RenderEachDirective {\r\n constructor(public templateRef: TemplateRef<unknown>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[renderEmpty]',\r\n})\r\nexport class RenderEmptyDirective {\r\n constructor(public templateRef: TemplateRef<unknown>) {}\r\n}\r\n","import { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\n\r\n/**\r\n * @param {HtmlElementRendering | ComponentRendering} rendering\r\n */\r\nexport function isRawRendering(\r\n rendering: HtmlElementRendering | ComponentRendering\r\n): rendering is HtmlElementRendering {\r\n return (\r\n !(rendering as ComponentRendering).componentName &&\r\n (rendering as HtmlElementRendering).name !== undefined\r\n );\r\n}\r\n","import { Component, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\n\r\n@Component({\r\n selector: 'sc-raw',\r\n template: '',\r\n})\r\nexport class RawComponent implements OnInit {\r\n @Input() rendering: HtmlElementRendering;\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {}\r\n\r\n ngOnInit() {\r\n const el = this.renderer.createElement(this.rendering.name);\r\n const contents = this.renderer.createText(this.rendering.contents || '');\r\n const attributes = this.rendering.attributes;\r\n for (const attr in attributes) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (attributes.hasOwnProperty(attr)) {\r\n const value = attributes[attr];\r\n this.renderer.setAttribute(el, attr, value || '');\r\n }\r\n }\r\n\r\n this.renderer.appendChild(el, contents);\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, el, this.elementRef.nativeElement);\r\n parentNode.removeChild(this.elementRef.nativeElement);\r\n }\r\n}\r\n","import { Inject, Injectable, Injector, Type, createNgModule } from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport {\r\n ComponentNameAndModule,\r\n ComponentNameAndType,\r\n DYNAMIC_COMPONENT,\r\n JssCanActivate,\r\n JssCanActivateFn,\r\n JssResolve,\r\n PLACEHOLDER_COMPONENTS,\r\n PLACEHOLDER_LAZY_COMPONENTS,\r\n} from './components/placeholder.token';\r\nimport { RawComponent } from './components/raw.component';\r\nimport { isRawRendering } from './components/rendering';\r\n\r\nexport interface ComponentFactoryResult {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n componentImplementation?: Type<any>;\r\n componentDefinition: ComponentRendering | HtmlElementRendering;\r\n canActivate?:\r\n | JssCanActivate\r\n | Type<JssCanActivate>\r\n | JssCanActivateFn\r\n | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;\r\n resolve?: { [key: string]: JssResolve<any> | Type<JssResolve<any>> };\r\n}\r\n\r\n@Injectable()\r\nexport class JssComponentFactoryService {\r\n private componentMap: Map<string, ComponentNameAndType>;\r\n private lazyComponentMap: Map<string, ComponentNameAndModule>;\r\n\r\n constructor(\r\n private injector: Injector,\r\n @Inject(PLACEHOLDER_COMPONENTS) private components: ComponentNameAndType[],\r\n @Inject(PLACEHOLDER_LAZY_COMPONENTS) private lazyComponents: ComponentNameAndModule[]\r\n ) {\r\n this.componentMap = new Map();\r\n this.lazyComponentMap = new Map();\r\n\r\n this.components.forEach((c) => this.componentMap.set(c.name, c));\r\n\r\n if (this.lazyComponents) {\r\n this.lazyComponents.forEach((c) => this.lazyComponentMap.set(c.path, c));\r\n }\r\n }\r\n\r\n getComponent(component: ComponentRendering): Promise<ComponentFactoryResult> {\r\n const loadedComponent = this.componentMap.get(component.componentName);\r\n\r\n if (loadedComponent) {\r\n return Promise.resolve({\r\n componentDefinition: component,\r\n componentImplementation: loadedComponent.type,\r\n canActivate: loadedComponent.canActivate,\r\n resolve: loadedComponent.resolve,\r\n });\r\n }\r\n\r\n const lazyComponent = this.lazyComponentMap.get(component.componentName);\r\n\r\n if (lazyComponent) {\r\n return lazyComponent.loadChildren().then((lazyChild) => {\r\n let componentType = null;\r\n const moduleRef = createNgModule(lazyChild, this.injector);\r\n const dynamicComponentType = moduleRef.injector.get(DYNAMIC_COMPONENT);\r\n if (!dynamicComponentType) {\r\n throw new Error(\r\n `JssComponentFactoryService: Lazy load module for component \"${lazyComponent.path}\" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`\r\n );\r\n }\r\n\r\n if (component.componentName in dynamicComponentType) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n componentType = (dynamicComponentType as { [s: string]: any })[component.componentName];\r\n } else {\r\n if (typeof dynamicComponentType === 'function') {\r\n componentType = dynamicComponentType;\r\n } else {\r\n throw new Error(\r\n `JssComponentFactoryService: Lazy load module for component \"${lazyComponent.path}\" missing DYNAMIC_COMPONENT provider. Missing JssModule.forChild()?`\r\n );\r\n }\r\n }\r\n\r\n return {\r\n componentDefinition: component,\r\n componentImplementation: componentType,\r\n canActivate: lazyComponent.canActivate,\r\n resolve: lazyComponent.resolve,\r\n };\r\n });\r\n }\r\n\r\n return Promise.resolve({\r\n componentDefinition: component,\r\n });\r\n }\r\n\r\n getComponents(\r\n components: Array<ComponentRendering | HtmlElementRendering>\r\n ): Promise<ComponentFactoryResult[]> {\r\n // acquire all components and keep them in order while handling their potential async-ness\r\n return Promise.all(\r\n components.map((component) =>\r\n isRawRendering(component) ? this.getRawComponent(component) : this.getComponent(component)\r\n )\r\n );\r\n }\r\n\r\n private getRawComponent(component: HtmlElementRendering): Promise<ComponentFactoryResult> {\r\n return Promise.resolve({\r\n componentImplementation: RawComponent,\r\n componentDefinition: component,\r\n });\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/no-conflicting-lifecycle */\r\nimport { isPlatformServer } from '@angular/common';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n DoCheck,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n Renderer2,\r\n SimpleChanges,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Data, UrlTree, Router } from '@angular/router';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { Observable } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport {\r\n ComponentFactoryResult,\r\n JssComponentFactoryService,\r\n} from '../jss-component-factory.service';\r\nimport { HIDDEN_RENDERING_NAME } from './hidden-rendering.component';\r\nimport { PlaceholderLoadingDirective } from './placeholder-loading.directive';\r\nimport {\r\n DataResolver,\r\n DATA_RESOLVER,\r\n GuardResolver,\r\n GUARD_RESOLVER,\r\n PLACEHOLDER_HIDDEN_RENDERING_COMPONENT,\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT,\r\n} from './placeholder.token';\r\nimport { RenderEachDirective } from './render-each.directive';\r\nimport { RenderEmptyDirective } from './render-empty.directive';\r\nimport { isRawRendering } from './rendering';\r\n\r\n/**\r\n * @param {ComponentRendering} rendering\r\n * @param {string} name\r\n */\r\nfunction getPlaceholder(rendering: ComponentRendering, name: string) {\r\n if (rendering && rendering.placeholders && Object.keys(rendering.placeholders).length > 0) {\r\n return rendering.placeholders[name];\r\n }\r\n return null;\r\n}\r\n\r\nexport interface FactoryWithData {\r\n factory: ComponentFactoryResult;\r\n data?: Data;\r\n}\r\n\r\n@Component({\r\n selector: 'sc-placeholder,[sc-placeholder]',\r\n template: `\r\n <ng-template\r\n *ngIf=\"isLoading\"\r\n [ngTemplateOutlet]=\"placeholderLoading?.templateRef\"\r\n ></ng-template>\r\n <ng-template #view></ng-template>\r\n `,\r\n})\r\nexport class PlaceholderComponent implements OnInit, OnChanges, DoCheck, OnDestroy {\r\n @Input() name?: string;\r\n @Input() rendering: ComponentRendering;\r\n @Input() renderings?: Array<ComponentRendering | HtmlElementRendering>;\r\n @Input() outputs: { [k: string]: (eventType: unknown) => void };\r\n @Input() clientOnly = false;\r\n\r\n @Output() loaded = new EventEmitter<string | undefined>();\r\n\r\n @ContentChild(RenderEachDirective, { static: true }) renderEachTemplate: RenderEachDirective;\r\n @ContentChild(RenderEmptyDirective, { static: true }) renderEmptyTemplate: RenderEmptyDirective;\r\n @ContentChild(PlaceholderLoadingDirective, { static: true })\r\n placeholderLoading?: PlaceholderLoadingDirective;\r\n\r\n @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n\r\n public isLoading = true;\r\n\r\n private _inputs: { [key: string]: unknown };\r\n private _differ: KeyValueDiffer<string, unknown>;\r\n private _componentInstances: { [prop: string]: unknown }[] = [];\r\n private destroyed = false;\r\n private parentStyleAttribute = '';\r\n\r\n constructor(\r\n private differs: KeyValueDiffers,\r\n private componentFactory: JssComponentFactoryService,\r\n private changeDetectorRef: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2,\r\n private router: Router,\r\n @Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT)\r\n private missingComponentComponent: Type<unknown>,\r\n @Inject(PLACEHOLDER_HIDDEN_RENDERING_COMPONENT) private hiddenRenderingComponent: Type<unknown>,\r\n @Inject(GUARD_RESOLVER) private guardResolver: GuardResolver,\r\n @Inject(DATA_RESOLVER) private dataResolver: DataResolver,\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n @Inject(PLATFORM_ID) private platformId: Object\r\n ) {}\r\n\r\n @Input()\r\n set inputs(value: { [key: string]: unknown }) {\r\n this._inputs = value;\r\n if (!this._differ && value) {\r\n this._differ = this.differs.find(value).create();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n // just to ensure the element exists\r\n const elem = this.elementRef.nativeElement;\r\n\r\n if (elem) {\r\n const attributes: NamedNodeMap = elem.attributes;\r\n for (let i = 0; i < attributes.length; i++) {\r\n const attr: Attr | null = attributes.item(i);\r\n if (attr && attr.name.indexOf('_ngcontent') !== -1) {\r\n this.parentStyleAttribute = attr.name;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed = true;\r\n this._componentInstances = [];\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.rendering || changes.renderings) {\r\n this._render();\r\n }\r\n }\r\n\r\n ngDoCheck() {\r\n if (!this._differ || !this._inputs || this._componentInstances.length === 0) {\r\n return;\r\n }\r\n\r\n const changes = this._differ.diff(this._inputs);\r\n if (!changes) {\r\n return;\r\n }\r\n const updates: { [key: string]: unknown } = {};\r\n changes.forEachRemovedItem((change) => (updates[change.key] = null));\r\n changes.forEachAddedItem((change) => (updates[change.key] = change.currentValue));\r\n changes.forEachChangedItem((change) => (updates[change.key] = change.currentValue));\r\n this._componentInstances.forEach((componentInstance) =>\r\n this._setComponentInputs(componentInstance, updates)\r\n );\r\n }\r\n\r\n private _setComponentInputs(\r\n componentInstance: { [key: string]: unknown },\r\n inputs: { [key: string]: unknown }\r\n ) {\r\n Object.entries(inputs).forEach(\r\n ([input, inputValue]) => (componentInstance[input] = inputValue)\r\n );\r\n }\r\n\r\n private _subscribeComponentOutputs(\r\n componentInstance: { [key: string]: unknown },\r\n outputs: { [k: string]: (eventType: unknown) => void }\r\n ) {\r\n Object.keys(outputs)\r\n .filter(\r\n (output) => componentInstance[output] && componentInstance[output] instanceof Observable\r\n )\r\n .forEach((output) =>\r\n (componentInstance[output] as Observable<unknown>)\r\n .pipe(takeWhile(() => !this.destroyed))\r\n .subscribe(outputs[output])\r\n );\r\n }\r\n\r\n private async _render() {\r\n if (this.clientOnly && isPlatformServer(this.platformId)) {\r\n return;\r\n }\r\n\r\n this._componentInstances = [];\r\n this.view.clear();\r\n\r\n if (!this.rendering && !this.renderings) {\r\n return;\r\n }\r\n\r\n if (!this.name && !this.renderings) {\r\n console.warn(\r\n 'Placeholder name was not specified, and explicit renderings array was not passed. Placeholder requires either name and rendering, or renderings.'\r\n );\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n const placeholder = this.renderings || getPlaceholder(this.rendering, this.name || '');\r\n\r\n if (!placeholder) {\r\n console.warn(\r\n `Placeholder '${this.name}' was not found in the current rendering data`,\r\n JSON.stringify(this.rendering, null, 2)\r\n );\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n // if the placeholder is empty (contains only raw renderings), then we may need to use the empty template if it's defined\r\n const placeholderIsEmpty = placeholder.every(\r\n (rendering: ComponentRendering | HtmlElementRendering) => isRawRendering(rendering)\r\n );\r\n\r\n if (this.renderEmptyTemplate && placeholderIsEmpty) {\r\n this.view.createEmbeddedView(this.renderEmptyTemplate.templateRef, {\r\n renderings: placeholder,\r\n });\r\n this.isLoading = false;\r\n } else {\r\n const factories = await this.componentFactory.getComponents(placeholder);\r\n\r\n try {\r\n const nonGuarded = await this.guardResolver(factories);\r\n const withData = await this.dataResolver(nonGuarded);\r\n\r\n withData.forEach((rendering, index) => {\r\n if (this.renderEachTemplate && !isRawRendering(rendering.factory.componentDefinition)) {\r\n this._renderTemplatedComponent(rendering.factory.componentDefinition, index);\r\n } else {\r\n this._renderEmbeddedComponent(rendering.factory, rendering.data, index);\r\n }\r\n });\r\n\r\n this.isLoading = false;\r\n this.changeDetectorRef.markForCheck();\r\n this.loaded.emit(this.name);\r\n } catch (e) {\r\n this.isLoading = false;\r\n if (e instanceof UrlTree) {\r\n this.router.navigateByUrl(e);\r\n } else if (typeof e === 'string') {\r\n this.router.navigate([e]);\r\n } else if (Array.isArray(e)) {\r\n this.router.navigate(e);\r\n } else {\r\n throw e;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _renderTemplatedComponent(\r\n rendering: ComponentRendering | HtmlElementRendering,\r\n index: number\r\n ) {\r\n // the render-each template takes care of all component mapping etc\r\n // generally using <sc-render-component> which is about like _renderEmbeddedComponent()\r\n // as a separate component\r\n this.view.createEmbeddedView(this.renderEachTemplate.templateRef, {\r\n rendering,\r\n index,\r\n });\r\n }\r\n\r\n private _renderEmbeddedComponent(rendering: ComponentFactoryResult, data: Data, index: number) {\r\n if (\r\n (rendering.componentDefinition as ComponentRendering).componentName === HIDDEN_RENDERING_NAME\r\n ) {\r\n rendering.componentImplementation = this.hiddenRenderingComponent;\r\n }\r\n\r\n if (!rendering.componentImplementation) {\r\n const componentName = (rendering.componentDefinition as ComponentRendering).componentName;\r\n console.error(\r\n `Placeholder ${this.name} contains unknown component ${componentName}.`,\r\n `Ensure component is mapped, like:\r\n JssModule.withComponents([\r\n { name: '${componentName}', type: ${componentName}Component }\r\n ])`\r\n );\r\n\r\n rendering.componentImplementation = this.missingComponentComponent;\r\n }\r\n // apply the parent style attribute _ngcontent\r\n // work-around for https://github.com/angular/angular/issues/12215\r\n const createdComponentRef = this.view.createComponent(rendering.componentImplementation, {\r\n index: index,\r\n });\r\n if (this.parentStyleAttribute) {\r\n this.renderer.setAttribute(\r\n createdComponentRef.location.nativeElement,\r\n this.parentStyleAttribute,\r\n ''\r\n );\r\n }\r\n\r\n const componentInstance = createdComponentRef.instance;\r\n componentInstance.rendering = rendering.componentDefinition;\r\n componentInstance.data = data;\r\n\r\n if (this._inputs) {\r\n this._setComponentInputs(componentInstance, this._inputs);\r\n }\r\n if (this.outputs) {\r\n this._subscribeComponentOutputs(componentInstance, this.outputs);\r\n }\r\n this._componentInstances.push(componentInstance);\r\n }\r\n}\r\n","import {\r\n Component,\r\n Inject,\r\n Input,\r\n KeyValueDiffer,\r\n KeyValueDiffers,\r\n OnChanges,\r\n SimpleChanges,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { Observable } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport {\r\n ComponentFactoryResult,\r\n JssComponentFactoryService,\r\n} from '../jss-component-factory.service';\r\nimport { PLACEHOLDER_MISSING_COMPONENT_COMPONENT } from './placeholder.token';\r\nimport { RawComponent } from './raw.component';\r\nimport { isRawRendering } from './rendering';\r\n\r\n/**\r\n * Renders a single JSS component given a rendering definition.\r\n * Useful inside templated placeholders.\r\n */\r\n@Component({\r\n selector: 'sc-render-component',\r\n template: `\r\n <ng-template #view></ng-template>\r\n `,\r\n})\r\nexport class RenderComponentComponent implements OnChanges {\r\n @Input() rendering: ComponentRendering | HtmlElementRendering;\r\n @Input() outputs: { [k: string]: (eventType: unknown) => void };\r\n @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n\r\n private _inputs: { [key: string]: unknown };\r\n private _differ: KeyValueDiffer<string, unknown>;\r\n private destroyed = false;\r\n\r\n constructor(\r\n private differs: KeyValueDiffers,\r\n private componentFactory: JssComponentFactoryService,\r\n @Inject(PLACEHOLDER_MISSING_COMPONENT_COMPONENT)\r\n private missingComponentComponent: Type<{ [key: string]: unknown }>\r\n ) {}\r\n\r\n @Input()\r\n set inputs(value: { [key: string]: unknown }) {\r\n this._inputs = value;\r\n if (!this._differ && value) {\r\n this._differ = this.differs.find(value).create();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.rendering) {\r\n this._render();\r\n }\r\n }\r\n\r\n private _setComponentInputs(\r\n componentInstance: { [key: string]: unknown },\r\n inputs: { [key: string]: unknown }\r\n ) {\r\n Object.entries(inputs).forEach(\r\n ([input, inputValue]) =>\r\n ((componentInstance as { [prop: string]: unknown })[input] = inputValue)\r\n );\r\n }\r\n\r\n private _subscribeComponentOutputs(\r\n componentInstance: { [key: string]: unknown },\r\n outputs: { [k: string]: (eventType: unknown) => void }\r\n ) {\r\n Object.keys(outputs)\r\n .filter(\r\n (output) => componentInstance[output] && componentInstance[output] instanceof Observable\r\n )\r\n .forEach((output) =>\r\n (componentInstance[output] as Observable<unknown>)\r\n .pipe(takeWhile(() => !this.destroyed))\r\n .subscribe(outputs[output])\r\n );\r\n }\r\n\r\n private _render() {\r\n this.view.clear();\r\n\r\n if (!this.rendering) {\r\n return;\r\n }\r\n\r\n const resolveComponent: Promise<ComponentFactoryResult> = isRawRendering(this.rendering)\r\n ? Promise.resolve({\r\n componentImplementation: RawComponent,\r\n componentDefinition: this.rendering,\r\n })\r\n : this.componentFactory.getComponent(this.rendering);\r\n\r\n resolveComponent.then((rendering) => {\r\n if (!rendering.componentImplementation) {\r\n const componentName = (rendering.componentDefinition as ComponentRendering).componentName;\r\n console.error(\r\n `Attempted to render unknown component ${componentName}.`,\r\n `Ensure component is mapped, like:\r\n JssModule.withComponents([\r\n { name: '${componentName}', type: ${componentName}Component }\r\n ])`\r\n );\r\n\r\n rendering.componentImplementation = this.missingComponentComponent;\r\n }\r\n\r\n const componentInstance = this.view.createComponent(rendering.componentImplementation)\r\n .instance;\r\n componentInstance.rendering = rendering.componentDefinition;\r\n if (this._inputs) {\r\n this._setComponentInputs(componentInstance, this._inputs);\r\n }\r\n if (this.outputs) {\r\n this._subscribeComponentOutputs(componentInstance, this.outputs);\r\n }\r\n });\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport {\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { DateField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scDate]',\r\n})\r\nexport class DateDirective implements OnChanges {\r\n @Input('scDateFormat') format?: string;\r\n\r\n @Input('scDateTimezone') timezone?: string;\r\n\r\n @Input('scDateLocale') locale?: string;\r\n\r\n @Input('scDateEditable') editable = true;\r\n\r\n @Input('scDate') field: DateField;\r\n\r\n private viewRef: EmbeddedViewRef<unknown>;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<unknown>,\r\n private datePipe: DatePipe\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.format) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n const html = field.editable && this.editable ? field.editable : field.value;\r\n const setDangerously = field.editable && this.editable;\r\n\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (setDangerously) {\r\n node.innerHTML = html;\r\n } else {\r\n node.textContent = this.datePipe.transform(html, this.format, this.timezone, this.locale);\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\nimport {\r\n EditFrameDataSource,\r\n ChromeCommand,\r\n EditButtonTypes,\r\n mapButtonToCommand,\r\n} from '@sitecore-jss/sitecore-jss/utils';\r\nimport { LayoutServiceContextData, RouteData } from '@sitecore-jss/sitecore-jss/layout';\r\n\r\n@Component({\r\n selector: 'sc-edit-frame,[sc-edit-frame]',\r\n template: `\r\n <ng-template #childContent>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n <div\r\n *ngIf=\"isEditing; else elseBlock\"\r\n [class]=\"frameProps.class\"\r\n [attr.sc_item]=\"frameProps.sc_item\"\r\n >\r\n <span class=\"scChromeData\">{{ chromeData }}</span>\r\n <ng-container *ngTemplateOutlet=\"childContent\"></ng-container>\r\n </div>\r\n <ng-template #elseBlock>\r\n <ng-container *ngTemplateOutlet=\"childContent\"></ng-container>\r\n </ng-template>\r\n `,\r\n})\r\nexport class EditFrameComponent implements OnChanges {\r\n @Input() dataSource: EditFrameDataSource;\r\n\r\n @Input() buttons: EditButtonTypes[];\r\n\r\n @Input() title: string;\r\n\r\n @Input() tooltip: string;\r\n\r\n @Input() cssClass: string;\r\n\r\n @Input() parameters: Record<string, string | number | boolean | undefined | null>;\r\n\r\n @Input() sitecore: LayoutServiceContextData & {\r\n route: RouteData<unknown> | null;\r\n };\r\n\r\n isEditing = false;\r\n frameProps: Record<string, unknown> = {};\r\n chromeData = '';\r\n\r\n ngOnChanges() {\r\n this.isEditing = this.sitecore.context.pageEditing || false;\r\n if (!this.isEditing) {\r\n return;\r\n }\r\n\r\n this.frameProps.class = 'scLooseFrameZone';\r\n if (this.cssClass) {\r\n this.frameProps.class = `${this.frameProps.class} ${this.cssClass}`;\r\n }\r\n\r\n // item uri for edit frame target\r\n if (this.dataSource) {\r\n const route = this.sitecore.route;\r\n const databaseName = this.dataSource.databaseName || route?.databaseName;\r\n const language = this.dataSource.language || this.sitecore.context.language;\r\n this.frameProps.sc_item = `sitecore://${databaseName}/${this.dataSource.itemId}?lang=${language}`;\r\n }\r\n\r\n this.chromeData = this.buildChromeData();\r\n }\r\n\r\n buildChromeData() {\r\n const chromeData: Record<string, unknown> = {\r\n displayName: this.title,\r\n expandedDisplayName: this.tooltip,\r\n };\r\n\r\n if (this.dataSource) {\r\n chromeData.contextItemUri = this.frameProps.sc_item;\r\n }\r\n\r\n chromeData.commands = this.buttons?.map(\r\n (value): ChromeCommand => {\r\n return mapButtonToCommand(value, this.dataSource?.itemId, this.parameters);\r\n }\r\n );\r\n\r\n return JSON.stringify(chromeData);\r\n }\r\n}\r\n","import {\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { isAbsoluteUrl } from '@sitecore-jss/sitecore-jss/utils';\r\nimport { RichTextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scRichText]',\r\n})\r\nexport class RichTextDirective implements OnChanges {\r\n @Input('scRichTextEditable') editable = true;\r\n\r\n @Input('scRichText') field: RichTextField;\r\n\r\n private viewRef: EmbeddedViewRef<unknown>;\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<unknown>,\r\n private renderer: Renderer2,\r\n private router: Router\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n if (!field || (!field.editable && !field.value)) {\r\n return;\r\n }\r\n\r\n const html = field.editable && this.editable ? field.editable : field.value;\r\n this.viewRef.rootNodes.forEach((node) => {\r\n node.innerHTML = html;\r\n\r\n if (!node.querySelectorAll) {\r\n return;\r\n }\r\n\r\n const links: NodeListOf<HTMLLinkElement> = node.querySelectorAll('a[href]');\r\n const linksArray: Array<HTMLLinkElement> = [].slice.call(links);\r\n\r\n linksArray.forEach((link) => {\r\n const href = link.getAttribute('href');\r\n const target = link.getAttribute('target');\r\n\r\n if (!href || isAbsoluteUrl(href) || target === '_blank' || target === '_top') {\r\n return;\r\n }\r\n\r\n this.renderer.listen(link, 'click', (event) => {\r\n this.router.navigateByUrl(href);\r\n event.preventDefault();\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","import {\r\n Directive,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\n\r\n@Directive({\r\n selector: '[scText]',\r\n})\r\nexport class TextDirective implements OnChanges {\r\n @Input('scTextEditable') editable = true;\r\n\r\n @Input('scTextEncode') encode = true;\r\n\r\n @Input('scText') field: TextField;\r\n\r\n private viewRef: EmbeddedViewRef<unknown>;\r\n\r\n constructor(private viewContainer: ViewContainerRef, private templateRef: TemplateRef<unknown>) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable || changes.encode) {\r\n if (!this.viewRef) {\r\n this.viewContainer.clear();\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n const field = this.field;\r\n let editable = this.editable;\r\n\r\n if (!field || (!field.editable && (field.value === undefined || field.value === ''))) {\r\n return;\r\n }\r\n\r\n // can't use editable value if we want to output unencoded\r\n if (!this.encode) {\r\n editable = false;\r\n }\r\n\r\n const html = field.editable && editable ? field.editable : field.value;\r\n const setDangerously = (field.editable && editable) || !this.encode;\r\n\r\n this.viewRef.rootNodes.forEach((node) => {\r\n if (setDangerously) {\r\n node.innerHTML = html;\r\n } else {\r\n node.textContent = html;\r\n }\r\n });\r\n }\r\n}\r\n","import { ɵisObservable as isObservable, ɵisPromise as isPromise } from '@angular/core';\r\nimport { from, Observable, of } from 'rxjs';\r\n\r\nexport type InnerType<T> = T extends Promise<infer P> ? P : T extends Observable<infer O> ? O : T;\r\n\r\n/**\r\n * @param {T} value\r\n * @returns {Promise | Observable | any} resolved value\r\n */\r\nexport function wrapIntoObservable<T>(value: T): Observable<InnerType<T>> {\r\n if (isObservable(value)) {\r\n return value;\r\n }\r\n\r\n if (isPromise(value)) {\r\n return from(Promise.resolve(value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return of(value) as any;\r\n}\r\n","import { Injector, Type } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { take } from 'rxjs/operators';\r\nimport { ComponentFactoryResult } from '../jss-component-factory.service';\r\nimport { wrapIntoObservable } from '../utils';\r\nimport { JssResolve } from './placeholder.token';\r\nimport { lastValueFrom } from 'rxjs';\r\n\r\n/**\r\n * @param {Injector} injector\r\n * @param {ActivatedRoute} activatedRoute\r\n * @param {Router} router\r\n * @returns resolved data\r\n */\r\nexport function dataResolverFactory(\r\n injector: Injector,\r\n activatedRoute: ActivatedRoute,\r\n router: Router\r\n) {\r\n /**\r\n * @param {JssResolve<unknown> | Type<JssResolve<unknown>>} resolver\r\n * @returns resolver instance\r\n */\r\n function getResolverInstance(resolver: JssResolve<unknown> | Type<JssResolve<unknown>>) {\r\n return 'resolve' in resolver ? resolver : injector.get(resolver);\r\n }\r\n\r\n /**\r\n * @param {ComponentFactoryResult} factory\r\n * @returns {Array<[string, JssResolve<unknown>]>} resolver instances\r\n */\r\n function collectResolverInstances(\r\n factory: ComponentFactoryResult\r\n ): Array<[string, JssResolve<unknown>]> {\r\n if (factory.resolve) {\r\n const resolve = factory.resolve;\r\n return Object.keys(factory.resolve).map((key): [string, JssResolve<unknown>] => [\r\n key,\r\n getResolverInstance(resolve[key]),\r\n ]);\r\n }\r\n\r\n return [];\r\n }\r\n\r\n /**\r\n * @param {JssResolve<unknown>} resolver\r\n * @param {ComponentFactoryResult} factory\r\n * @returns data\r\n */\r\n function _resolveData(resolver: JssResolve<unknown>, factory: ComponentFactoryResult) {\r\n const data = resolver.resolve({\r\n activatedRoute: activatedRoute.snapshot,\r\n routerState: router.routerState.snapshot,\r\n rendering: factory.componentDefinition as ComponentRendering,\r\n });\r\n const data$ = wrapIntoObservable(data);\r\n\r\n return lastValueFrom(data$.pipe(take(1)));\r\n }\r\n\r\n return function resolveData(factories: ComponentFactoryResult[]) {\r\n return Promise.all(\r\n factories.map((factory) => {\r\n const resolvers = collectResolverInstances(factory);\r\n const pendingData = resolvers.map(([key, resolver]) =>\r\n _resolveData(resolver, factory).then((data): [string, any] => [key, data])\r\n );\r\n\r\n return Promise.all(pendingData)\r\n .then((allData) =>\r\n allData.reduce<Record<string, any>>((acc, [key, data]) => {\r\n acc[key] = data;\r\n return acc;\r\n }, {})\r\n )\r\n .then((data) => ({ factory, data }));\r\n })\r\n );\r\n };\r\n}\r\n","import { Injector, Type } from '@angular/core';\r\nimport { ActivatedRoute, Router, UrlTree } from '@angular/router';\r\nimport { take, mergeMap } from 'rxjs/operators';\r\nimport { ComponentFactoryResult } from '../jss-component-factory.service';\r\nimport { wrapIntoObservable } from '../utils';\r\nimport { JssCanActivate, JssCanActivateFn } from './placeholder.token';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { throwError, of, lastValueFrom } from 'rxjs';\r\n\r\n/**\r\n * @param {boolean | string | string[] | UrlTree} value\r\n * @returns instance of value\r\n */\r\nfunction isRedirectValue(\r\n value: boolean | string | string[] | UrlTree\r\n): value is string | string[] | UrlTree {\r\n return value instanceof UrlTree || typeof value === 'string' || Array.isArray(value);\r\n}\r\n\r\n/**\r\n * Resolves components based on provided guards\r\n * @param {Injector} injector\r\n * @param {ActivatedRoute} activatedRoute\r\n * @param {Router} router\r\n * @returns {(factories: ComponentFactoryResult[]) => Promise<ComponentFactoryResult[]>} factory\r\n */\r\nexport function guardResolverFactory(\r\n injector: Injector,\r\n activatedRoute: ActivatedRoute,\r\n router: Router\r\n) {\r\n /**\r\n * @param {JssCanActivate | Type<JssCanActivate> | JssCanActivateFn} guard\r\n * @returns resolved guard\r\n */\r\n function getGuardInstance(\r\n guard: JssCanActivate | Type<JssCanActivate> | JssCanActivateFn\r\n ): JssCanActivate | JssCanActivateFn {\r\n if ('canActivate' in guard) {\r\n return guard;\r\n }\r\n\r\n try {\r\n // Class is provided\r\n return injector.get(guard);\r\n } catch {\r\n // Function is provided\r\n return guard as JssCanActivateFn;\r\n }\r\n }\r\n\r\n /**\r\n * @param {ComponentFactoryResult} factory\r\n * @returns {(JssCanActivate | JssCanActivateFn)[]} guard instances\r\n */\r\n function collectGuardInstances(\r\n factory: ComponentFactoryResult\r\n ): (JssCanActivate | JssCanActivateFn)[] {\r\n if (factory.canActivate) {\r\n return Array.isArray(factory.canActivate)\r\n ? factory.canActivate.map(getGuardInstance)\r\n : [getGuardInstance(factory.canActivate)];\r\n }\r\n\r\n return [];\r\n }\r\n\r\n /**\r\n *\r\n * @param {JssCanActivate | JssCanActivateFn} guard\r\n * @param {ComponentFactoryResult} factory\r\n * @returns canActivate\r\n */\r\n function resolveGuard(guard: JssCanActivate | JssCanActivateFn, factory: ComponentFactoryResult) {\r\n const canActivate = 'canActivate' in guard ? guard.canActivate : guard;\r\n const guardValue = canActivate({\r\n activatedRoute: activatedRoute.snapshot,\r\n routerState: router.routerState.snapshot,\r\n rendering: factory.componentDefinition as ComponentRendering,\r\n });\r\n\r\n const canActivate$ = wrapIntoObservable(guardValue);\r\n\r\n return lastValueFrom(\r\n canActivate$.pipe(\r\n take(1),\r\n mergeMap((value) => {\r\n if (isRedirectValue(value)) {\r\n return throwError(() => new Error(value.toString()));\r\n } else {\r\n return of(value);\r\n }\r\n })\r\n )\r\n );\r\n }\r\n\r\n return function resolveGuards(factories: ComponentFactoryResult[]) {\r\n const resolved = factories.map((factory) => {\r\n const guards = collectGuardInstances(factory);\r\n const pending = guards.map((guard) => resolveGuard(guard, factory));\r\n return Promise.all(pending)\r\n .then((canActive) => canActive.every((v) => v))\r\n .then((canActivate) => ({\r\n factory,\r\n canActivate,\r\n }));\r\n });\r\n\r\n return Promise.all(resolved).then((mapped) =>\r\n mapped.filter((m) => m.canActivate).map((m) => m.factory)\r\n );\r\n };\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss/layout';\r\n\r\n@Component({\r\n selector: 'sc-missing-component',\r\n template: `\r\n <div\r\n style=\"background: darkorange; outline: 5px solid orange; padding: 10px; color: white; max-width: 500px;\"\r\n >\r\n <h2>{{ rendering.componentName }}</h2>\r\n <p>JSS component is missing Angular component implementation.</p>\r\n </div>\r\n `,\r\n})\r\nexport class MissingComponentComponent {\r\n @Input() rendering: ComponentRendering;\r\n}\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { Injector, ModuleWithProviders, NgModule, Provider, Type } from '@angular/core';\r\nimport { ActivatedRoute, Router, ROUTES } from '@angular/router';\r\nimport { dataResolverFactory } from './components/data-resolver-factory';\r\nimport { DateDirective } from './components/date.directive';\r\nimport { FileDirective } from './components/file.directive';\r\nimport { GenericLinkDirective } from './components/generic-link.directive';\r\nimport { guardResolverFactory } from './components/guard-resolver-factory';\r\nimport { ImageDirective } from './components/image.directive';\r\nimport { LinkDirective } from './components/link.directive';\r\nimport { MissingComponentComponent } from './components/missing-component.component';\r\nimport { HiddenRenderingComponent } from './components/hidden-rendering.component';\r\nimport { PlaceholderLoadingDirective } from './components/placeholder-loading.directive';\r\nimport { PlaceholderComponent } from './components/placeholder.component';\r\nimport { EditFrameComponent } from './components/editframe.component';\r\nimport {\r\n ComponentNameAndModule,\r\n ComponentNameAndType,\r\n DATA_RESOLVER,\r\n DYNAMIC_COMPONENT,\r\n GUARD_RESOLVER,\r\n PLACEHOLDER_COMPONENTS,\r\n PLACEHOLDER_LAZY_COMPONENTS,\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT,\r\n PLACEHOLDER_HIDDEN_RENDERING_COMPONENT,\r\n} from './components/placeholder.token';\r\nimport { RawComponent } from './components/raw.component';\r\nimport { RenderComponentComponent } from './components/render-component.component';\r\nimport { RenderEachDirective } from './components/render-each.directive';\r\nimport { RenderEmptyDirective } from './components/render-empty.directive';\r\nimport { RichTextDirective } from './components/rich-text.directive';\r\nimport { RouterLinkDirective } from './components/router-link.directive';\r\nimport { TextDirective } from './components/text.directive';\r\nimport { JssComponentFactoryService } from './jss-component-factory.service';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [\r\n FileDirective,\r\n ImageDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n DateDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n PlaceholderLoadingDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n RawComponent,\r\n RichTextDirective,\r\n TextDirective,\r\n MissingComponentComponent,\r\n HiddenRenderingComponent,\r\n EditFrameComponent,\r\n ],\r\n exports: [\r\n FileDirective,\r\n ImageDirective,\r\n DateDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n HiddenRenderingComponent,\r\n PlaceholderLoadingDirective,\r\n RichTextDirective,\r\n TextDirective,\r\n EditFrameComponent,\r\n ],\r\n entryComponents: [RawComponent, MissingComponentComponent],\r\n})\r\nexport class JssModule {\r\n /**\r\n * Instantiates the JSS module with no component factory.\r\n * Useful for using it from libraries. Most of the time you'd want withComponents()\r\n * @returns {ModuleWithProviders<JssModule>} module\r\n */\r\n static forRoot(): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n DatePipe,\r\n JssComponentFactoryService,\r\n {\r\n provide: GUARD_RESOLVER,\r\n useFactory: guardResolverFactory,\r\n deps: [Injector, ActivatedRoute, Router],\r\n },\r\n {\r\n provide: DATA_RESOLVER,\r\n useFactory: dataResolverFactory,\r\n deps: [Injector, ActivatedRoute, Router],\r\n },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Instantiates a module for a lazy-loaded JSS component\r\n * @param {Type<unknown>} component\r\n * @returns {ModuleWithProviders<JssModule>} module\r\n */\r\n static forChild(component: Type<unknown>): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n { provide: ROUTES, useValue: [], multi: true },\r\n { provide: DYNAMIC_COMPONENT, useValue: component },\r\n ],\r\n };\r\n }\r\n\r\n /**\r\n * Instantiates the JSS module and specifies the mapping from component name to component implementation.\r\n * Appropriate when defining the set of JSS components that your app is aware of.\r\n * @param {ComponentNameAndType[]} components\r\n * @param {ComponentNameAndModule[]} [lazyComponents]\r\n * @returns {ModuleWithProviders<JssModule>} module\r\n */\r\n static withComponents(\r\n components: ComponentNameAndType[],\r\n lazyComponents?: ComponentNameAndModule[]\r\n ): ModuleWithProviders<JssModule> {\r\n return {\r\n ngModule: JssModule,\r\n providers: [\r\n { provide: PLACEHOLDER_COMPONENTS, useValue: components },\r\n { provide: PLACEHOLDER_LAZY_COMPONENTS, useValue: lazyComponents || [] },\r\n { provide: ROUTES, useValue: lazyComponents || [], multi: true },\r\n { provide: PLACEHOLDER_MISSING_COMPONENT_COMPONENT, useValue: MissingComponentComponent },\r\n { provide: PLACEHOLDER_HIDDEN_RENDERING_COMPONENT, useValue: HiddenRenderingComponent },\r\n ...(JssModule.forRoot().providers as Provider[]),\r\n ],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.JssComponentFactoryService","i2","i3","i1","isObservable","isPromise"],"mappings":"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"}