@sitecore-jss/sitecore-jss-angular 22.12.2-canary.1 → 22.12.3
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.
- package/LICENSE.txt +202 -202
- package/README.md +10 -10
- package/angular.json +47 -47
- package/dist/README.md +10 -10
- package/dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs +2 -2
- package/dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs.map +1 -1
- package/ng-package.json +13 -13
- package/package.json +3 -3
- package/tsconfig.json +10 -10
- package/tsconfig.spec.json +18 -18
- package/typings/README.md +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitecore-jss-sitecore-jss-angular.mjs","sources":["../../src/components/file.directive.ts","../../src/components/field-metadata-marker.component.ts","../../src/components/base-field.directive.ts","../../src/components/default-empty-image-field-editing-placeholder.component.ts","../../src/components/image.directive.ts","../../src/components/default-empty-text-field-editing-placeholder.component.ts","../../src/components/link.directive.ts","../../src/components/router-link.directive.ts","../../src/components/generic-link.directive.ts","../../src/services/jss-can-activate-error.ts","../../src/services/placeholder.token.ts","../../src/components/raw.component.ts","../../src/components/rendering.ts","../../src/services/jss-component-factory.service.ts","../../src/components/placeholder-loading.directive.ts","../../src/components/render-each.directive.ts","../../src/components/render-empty.directive.ts","../../src/services/jss-state.service.ts","../../src/components/placeholder.component.ts","../../src/components/hidden-rendering.component.ts","../../src/components/render-component.component.ts","../../src/components/date.directive.ts","../../src/components/editframe.component.ts","../../src/components/editing-scripts.component.ts","../../src/services/shared.token.ts","../../src/components/form.component.ts","../../src/components/form.component.html","../../src/components/rich-text.directive.ts","../../src/components/text.directive.ts","../../src/utils.ts","../../src/services/data-resolver-factory.ts","../../src/services/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 inject,\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 private viewContainer = inject(ViewContainerRef);\r\n private templateRef = inject(TemplateRef);\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 { Component, HostBinding, Input } from '@angular/core';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n/**\r\n * Component that renders a field' metadata chrome element.\r\n */\r\n@Component({\r\n selector: 'code[scFieldMetadataMarker]',\r\n template: '{{ metadataString }}',\r\n host: {\r\n '[attr.type]': '\"text/sitecore\"',\r\n '[attr.chrometype]': '\"field\"',\r\n '[class]': '\"scpm\"',\r\n },\r\n})\r\nexport class FieldMetadataMarkerComponent {\r\n @Input()\r\n metadata?: any;\r\n\r\n @HostBinding('attr.kind')\r\n @Input()\r\n kind: MetadataKind = MetadataKind.Open;\r\n\r\n get metadataString(): string {\r\n return this.metadata ? JSON.stringify(this.metadata) : '';\r\n }\r\n}\r\n","import {\r\n Directive,\r\n Type,\r\n ViewContainerRef,\r\n EmbeddedViewRef,\r\n TemplateRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { RenderingField } from './rendering-field';\r\nimport { GenericFieldValue, isFieldValueEmpty } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { FieldMetadataMarkerComponent } from './field-metadata-marker.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n/**\r\n * Base class that contains common functionality for the field directives.\r\n */\r\n@Directive()\r\nexport abstract class BaseFieldDirective {\r\n protected viewContainer = inject(ViewContainerRef);\r\n protected viewRef: EmbeddedViewRef<unknown>;\r\n protected abstract field: RenderingField<GenericFieldValue>;\r\n protected abstract editable: boolean;\r\n /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n protected abstract emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected abstract defaultFieldEditingComponent: Type<unknown>;\r\n\r\n /**\r\n * Determines if directive should render the field as is\r\n * Returns true if we are in edit mode 'chromes' (field.editable is present) or field is not empty\r\n */\r\n protected shouldRender() {\r\n return !!this.field?.editable || !isFieldValueEmpty(this.field);\r\n }\r\n\r\n /**\r\n * Renders the empty field markup which is required by Pages in editMode 'metadata' in case field is empty.\r\n */\r\n protected renderEmpty() {\r\n if (this.field?.metadata && this.editable) {\r\n this.renderMetadata(MetadataKind.Open);\r\n if (this.emptyFieldEditingTemplate) {\r\n this.viewContainer.createEmbeddedView(this.emptyFieldEditingTemplate);\r\n } else {\r\n this.viewContainer.createComponent(this.defaultFieldEditingComponent);\r\n }\r\n this.renderMetadata(MetadataKind.Close);\r\n }\r\n }\r\n\r\n /**\r\n * Renders a metadata chrome marker for the field. Required by Pages in editMode 'metadata'.\r\n * @param {string} kind - 'open' or 'close' to indicate the start or end of the metadata chrome\r\n */\r\n protected renderMetadata(kind: MetadataKind) {\r\n if (this.field?.metadata && this.editable) {\r\n const metadataChrome = this.viewContainer.createComponent(FieldMetadataMarkerComponent);\r\n metadataChrome.setInput('kind', kind);\r\n if (kind === MetadataKind.Open) {\r\n metadataChrome.setInput('metadata', this.field.metadata);\r\n }\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * Default component that will be rendered in pages when image field is empty.\r\n */\r\n@Component({\r\n selector: '[sc-default-empty-image-field-editing-placeholder]',\r\n template: `\r\n <img\r\n alt=\"\"\r\n src='data:image/svg+xml,%3Csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 240 240\" style=\"enable-background:new 0 0 240 240;\" xml:space=\"preserve\"%3E%3Cstyle type=\"text/css\"%3E .st0%7Bfill:none;%7D .st1%7Bfill:%23969696;%7D .st2%7Bfill:%23FFFFFF;%7D .st3%7Bfill:%23FFFFFF;stroke:%23FFFFFF;stroke-width:0.75;stroke-miterlimit:10;%7D%0A%3C/style%3E%3Cg%3E%3Crect class=\"st0\" width=\"240\" height=\"240\"/%3E%3Cg%3E%3Cg%3E%3Crect x=\"20\" y=\"20\" class=\"st1\" width=\"200\" height=\"200\"/%3E%3C/g%3E%3Cg%3E%3Ccircle class=\"st2\" cx=\"174\" cy=\"67\" r=\"14\"/%3E%3Cpath class=\"st2\" d=\"M174,54c7.17,0,13,5.83,13,13s-5.83,13-13,13s-13-5.83-13-13S166.83,54,174,54 M174,52 c-8.28,0-15,6.72-15,15s6.72,15,15,15s15-6.72,15-15S182.28,52,174,52L174,52z\"/%3E%3C/g%3E%3Cpolyline class=\"st3\" points=\"29.5,179.25 81.32,122.25 95.41,137.75 137.23,91.75 209.5,179.75 \"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E'\r\n class=\"scEmptyImage\"\r\n />\r\n `,\r\n styles: [\r\n `\r\n :host {\r\n min-width: 48px;\r\n min-height: 48px;\r\n max-width: 400px;\r\n max-height: 400px;\r\n cursor: pointer;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class DefaultEmptyImageFieldEditingComponent {}\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 Type,\r\n inject,\r\n} from '@angular/core';\r\nimport { mediaApi } from '@sitecore-jss/sitecore-jss/media';\r\nimport { ImageField, ImageFieldValue } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyImageFieldEditingComponent } from './default-empty-image-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({ selector: '[scImage]' })\r\nexport class ImageDirective extends BaseFieldDirective 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scImageEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyImageFieldEditingComponent;\r\n\r\n private inlineRef: HTMLSpanElement | null = null;\r\n private templateRef = inject(TemplateRef);\r\n private renderer = inject(Renderer2);\r\n private elementRef = inject(ElementRef);\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 if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\r\n const overrideAttrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n const media = this.field;\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.renderMetadata(MetadataKind.Open);\r\n this.renderTemplate(attrs);\r\n this.renderMetadata(MetadataKind.Close);\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, style, ...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\r\n if (style) {\r\n newAttrs.style = Object.entries(style as Record<string, unknown>)\r\n .map(([propName, value]) => `${propName}:${value}`)\r\n .join(';');\r\n }\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 { Component } from '@angular/core';\r\n\r\n/**\r\n * Default component that will be rendered in pages when field is empty; applies for text, richtext, date and link fields.\r\n */\r\n@Component({\r\n selector: '<span>[sc-default-empty-text-field-editing-placeholder]</span>',\r\n template: '[No text in field]',\r\n})\r\nexport class DefaultEmptyFieldEditingComponent {}\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 Type,\r\n inject,\r\n} from '@angular/core';\r\nimport { LinkField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyFieldEditingComponent } from './default-empty-text-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({ selector: '[scLink]' })\r\nexport class LinkDirective extends BaseFieldDirective 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scLinkEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyFieldEditingComponent;\r\n protected templateRef = inject(TemplateRef);\r\n protected renderer = inject(Renderer2);\r\n\r\n private inlineRef: HTMLSpanElement | null = null;\r\n private elementRef = inject(ElementRef);\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 /**\r\n * Determines if directive should render the field as is\r\n * Returns true if we are in edit mode 'chromes' (field.editable is present) or field is not empty\r\n * or link field text is present and we are not in edit mode 'metadata'\r\n * The right side of the expression was added to preserve existing functionality\r\n */\r\n protected shouldRender() {\r\n return (\r\n super.shouldRender() ||\r\n !!((this.field?.text || this.field?.value?.text) && !this.field?.metadata)\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 {\r\n if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\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 this.renderMetadata(MetadataKind.Open);\r\n this.renderTemplate(mergedAttrs, linkText);\r\n this.renderMetadata(MetadataKind.Close);\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 { Directive, Input, TemplateRef, inject } 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scRouterLinkEmptyFieldEditingTemplate') declare emptyFieldEditingTemplate: TemplateRef<\r\n unknown\r\n >;\r\n private router = inject(Router);\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 { Directive, Input, TemplateRef, inject } 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scGenericLinkEmptyFieldEditingTemplate') declare emptyFieldEditingTemplate: TemplateRef<\r\n unknown\r\n >;\r\n private router = inject(Router);\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 { RedirectCommand, UrlTree } from '@angular/router';\r\n\r\n/**\r\n * Error thrown when a JssCanActivate guard returns a redirect value.\r\n * The redirect value will be used to redirect the user to a different route.\r\n */\r\nexport class JssCanActivateRedirectError extends Error {\r\n constructor(\r\n public message: string,\r\n public redirectValue: string | string[] | UrlTree | RedirectCommand\r\n ) {\r\n super(message);\r\n this.name = 'JssCanActivateRedirectError';\r\n }\r\n}\r\n","import { InjectionToken, Type } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Data,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n RedirectCommand,\r\n Router,\r\n} 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 router: Router;\r\n}\r\n\r\nexport interface JssCanActivateFn {\r\n (input: GuardInput):\r\n | Observable<boolean | UrlTree | RedirectCommand | string | string[]>\r\n | Promise<boolean | UrlTree | RedirectCommand | string | string[]>\r\n | boolean\r\n | UrlTree\r\n | RedirectCommand\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 { Component, ElementRef, Input, OnInit, Renderer2, inject } 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 private renderer = inject(Renderer2);\r\n private elementRef = inject(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 { 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 { createNgModule, Injectable, Injector, NgModuleRef, Type, inject } 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 './placeholder.token';\r\nimport { RawComponent } from '../components/raw.component';\r\nimport { isRawRendering } from '../components/rendering';\r\n\r\nexport interface ComponentFactoryResult {\r\n componentImplementation?: Type<any>;\r\n componentDefinition: ComponentRendering | HtmlElementRendering;\r\n componentModuleRef?: NgModuleRef<unknown>;\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 private injector = inject(Injector);\r\n private components = inject<ComponentNameAndType[]>(PLACEHOLDER_COMPONENTS);\r\n private lazyComponents = inject<ComponentNameAndModule[]>(PLACEHOLDER_LAZY_COMPONENTS);\r\n\r\n constructor() {\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: this.applySXAParams(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 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: this.applySXAParams(component),\r\n componentImplementation: componentType,\r\n componentModuleRef: moduleRef,\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 private applySXAParams(rendering: ComponentRendering) {\r\n // Provide aggregated SXA styles on params 'styles'\r\n const styles = [];\r\n if (rendering.params?.GridParameters) {\r\n styles.push(rendering.params.GridParameters.trim());\r\n }\r\n if (rendering.params?.Styles) {\r\n styles.push(rendering.params.Styles.trim());\r\n }\r\n if (rendering.params && styles.length > 0) {\r\n rendering.params.styles = styles.join(' ');\r\n }\r\n return rendering;\r\n }\r\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[scPlaceholderLoading]',\r\n})\r\nexport class PlaceholderLoadingDirective {\r\n public templateRef = inject(TemplateRef);\r\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[renderEach]',\r\n})\r\nexport class RenderEachDirective {\r\n public templateRef = inject(TemplateRef);\r\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[renderEmpty]',\r\n})\r\nexport class RenderEmptyDirective {\r\n public templateRef = inject(TemplateRef);\r\n}\r\n","import { Injectable, TransferState, inject } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { LayoutServiceContextData, RouteData } from '../public_api';\r\n\r\nexport class BaseJssState {\r\n sitecore?: LayoutServiceContextData & {\r\n route: RouteData | null;\r\n };\r\n viewBag?: { [key: string]: unknown };\r\n}\r\n\r\n/**\r\n * The service that is used to store and retrieve the current state of the app.\r\n * Referenced by the SDK to get the current state of the app.\r\n */\r\n@Injectable()\r\nexport class JssStateService<State extends BaseJssState = BaseJssState> {\r\n protected transferState = inject(TransferState);\r\n private _state: BehaviorSubject<State>;\r\n\r\n constructor() {\r\n this._state = new BehaviorSubject<State>({} as State);\r\n }\r\n\r\n /**\r\n * Observable JSS state to subscribe to\r\n */\r\n get state(): Observable<State> {\r\n return this._state.asObservable();\r\n }\r\n\r\n /**\r\n * The 'here and now' state value, usable without subscribing\r\n */\r\n get stateValue() {\r\n return this._state.value;\r\n }\r\n\r\n /**\r\n * Set new JSS state\r\n * @param {JssState} newState new state\r\n */\r\n setState(newState: State) {\r\n this._state.next(newState);\r\n }\r\n}\r\n","import { CommonModule, 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 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 TemplateRef,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { Data, RedirectCommand, Router, UrlTree } from '@angular/router';\r\nimport {\r\n ComponentRendering,\r\n HtmlElementRendering,\r\n EditMode,\r\n ComponentFields,\r\n} from '@sitecore-jss/sitecore-jss/layout';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport { JssCanActivateRedirectError } from '../services/jss-can-activate-error';\r\nimport {\r\n ComponentFactoryResult,\r\n JssComponentFactoryService,\r\n} from '../services/jss-component-factory.service';\r\nimport {\r\n DATA_RESOLVER,\r\n GUARD_RESOLVER,\r\n PLACEHOLDER_HIDDEN_RENDERING_COMPONENT,\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT,\r\n} from '../services/placeholder.token';\r\nimport { constants } from '@sitecore-jss/sitecore-jss';\r\nimport {\r\n isDynamicPlaceholder,\r\n getDynamicPlaceholderPattern,\r\n} from '@sitecore-jss/sitecore-jss/layout';\r\nimport { PlaceholderLoadingDirective } from './placeholder-loading.directive';\r\nimport { RenderEachDirective } from './render-each.directive';\r\nimport { RenderEmptyDirective } from './render-empty.directive';\r\nimport { isRawRendering } from './rendering';\r\nimport { JssStateService } from '../services/jss-state.service';\r\nimport { MetadataKind, DEFAULT_PLACEHOLDER_UID } from '@sitecore-jss/sitecore-jss/editing';\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 @if (isLoading) {\r\n <ng-template [ngTemplateOutlet]=\"placeholderLoading?.templateRef\"></ng-template>\r\n }\r\n <ng-template\r\n #metadataCodeBlock\r\n let-kind=\"kind\"\r\n let-type=\"chromeType\"\r\n let-renderingId=\"renderingId\"\r\n >\r\n <code\r\n [attr.kind]=\"kind\"\r\n type=\"text/sitecore\"\r\n [attr.chrometype]=\"type\"\r\n class=\"scpm\"\r\n [attr.id]=\"getCodeBlockId(kind, renderingId)\"\r\n ></code\r\n ></ng-template>\r\n\r\n @if (metadataMode && metadataCodeBlock) {\r\n <ng-container\r\n *ngTemplateOutlet=\"metadataCodeBlock; context: { kind: 'open', chromeType: 'placeholder' }\"\r\n >\r\n </ng-container>\r\n }\r\n\r\n <ng-template #view></ng-template>\r\n\r\n @if (metadataMode && metadataCodeBlock) {\r\n <ng-container\r\n *ngTemplateOutlet=\"metadataCodeBlock; context: { kind: 'close', chromeType: 'placeholder' }\"\r\n >\r\n </ng-container>\r\n }\r\n `,\r\n imports: [CommonModule],\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 @Output() failed = new EventEmitter<Error>();\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 @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n @ViewChild('metadataCodeBlock', { read: TemplateRef }) private metadataNode: TemplateRef<unknown>;\r\n public isLoading = true;\r\n metadataMode: boolean;\r\n chromeType: string;\r\n private _inputs: { [key: string]: unknown };\r\n private _differ: KeyValueDiffer<string, unknown>;\r\n private _componentInstances: { [prop: string]: unknown }[] = [];\r\n private placeholderData?: (ComponentRendering<ComponentFields> | HtmlElementRendering)[];\r\n private destroyed = false;\r\n private parentStyleAttribute = '';\r\n private contextSubscription: Subscription;\r\n private differs = inject(KeyValueDiffers);\r\n private componentFactory = inject(JssComponentFactoryService);\r\n private changeDetectorRef = inject(ChangeDetectorRef);\r\n private elementRef = inject(ElementRef);\r\n private renderer = inject(Renderer2);\r\n private router = inject(Router);\r\n private missingComponentComponent = inject<Type<unknown>>(\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT\r\n );\r\n private hiddenRenderingComponent = inject<Type<unknown>>(PLACEHOLDER_HIDDEN_RENDERING_COMPONENT);\r\n private guardResolver = inject(GUARD_RESOLVER);\r\n private dataResolver = inject(DATA_RESOLVER);\r\n private platformId = inject<object>(PLATFORM_ID);\r\n private jssState = inject(JssStateService);\r\n\r\n constructor() {\r\n this.contextSubscription = this.jssState.state.subscribe(({ sitecore }) => {\r\n this.metadataMode = sitecore?.context.editMode === EditMode.Metadata;\r\n });\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 this.chromeType = this.name ? 'placeholder' : 'rendering';\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 this.placeholderData = this.renderings || this.getPlaceholder() || [];\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed = true;\r\n this._componentInstances = [];\r\n if (this.contextSubscription) {\r\n this.contextSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.chromeType = changes.name ? 'placeholder' : 'rendering';\r\n if (changes.rendering || changes.renderings) {\r\n this.placeholderData = this.renderings || this.getPlaceholder() || [];\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 /**\r\n * Gets id for Metadata code blocks, in specific format\r\n * Metadata code blocks will wrap be added around placeholder content and each rendering component\r\n * to allow for editing integration in Pages.\r\n * @param {string} kind code block type (\"open\" or \"close\"). \"open\" is added before an element, and \"close\" added after one.\r\n * @param {string?} renderingId rendering uid to apply as id to code block\r\n * @returns {string} formatted id value for code HTML node\r\n */\r\n getCodeBlockId = (kind: string, renderingId?: string): string | undefined => {\r\n if (this.rendering && kind === MetadataKind.Open) {\r\n const placeholderName = this.name;\r\n const id = renderingId || this.rendering?.uid;\r\n if (!renderingId && placeholderName) {\r\n let phId = '';\r\n for (const placeholder of Object.keys(this.rendering.placeholders || [])) {\r\n if (placeholderName === placeholder) {\r\n phId = id\r\n ? `${placeholderName}_${id}`\r\n : `${placeholderName}_${DEFAULT_PLACEHOLDER_UID}`;\r\n break;\r\n }\r\n // Check if the placeholder is a dynamic placeholder\r\n if (isDynamicPlaceholder(placeholder)) {\r\n const pattern = getDynamicPlaceholderPattern(placeholder);\r\n // Check if the placeholder matches the dynamic placeholder pattern\r\n if (pattern.test(placeholderName)) {\r\n phId = id ? `${placeholder}_${id}` : `${placeholder}_${DEFAULT_PLACEHOLDER_UID}`;\r\n break;\r\n }\r\n }\r\n }\r\n return phId;\r\n } else {\r\n return id;\r\n }\r\n }\r\n return undefined;\r\n };\r\n\r\n /**\r\n * Get renderings/components to be rendered for current placeholder name\r\n * Can modify the inner placeholders collection to adjust to using SXA dynamic placeholders\r\n * @returns {ComponentRendering<ComponentFields> | HtmlElementRendering[] | null} List of renderings to be rendered\r\n */\r\n private getPlaceholder() {\r\n let phName = this.name?.slice() || '';\r\n /**\r\n * Process (SXA) dynamic placeholders\r\n * Find and replace the matching dynamic placeholder e.g 'nameOfContainer-{*}' with the requested e.g. 'nameOfContainer-1'.\r\n * For Metadata EditMode, we need to keep the raw placeholder name in place.\r\n */\r\n this.rendering?.placeholders &&\r\n Object.keys(this.rendering.placeholders).forEach((placeholder) => {\r\n const patternPlaceholder = isDynamicPlaceholder(placeholder)\r\n ? getDynamicPlaceholderPattern(placeholder)\r\n : null;\r\n if (patternPlaceholder && patternPlaceholder.test(phName)) {\r\n if (this.metadataMode) {\r\n phName = placeholder;\r\n } else {\r\n this.rendering.placeholders![phName] = this.rendering.placeholders![placeholder];\r\n delete this.rendering.placeholders![placeholder];\r\n }\r\n }\r\n });\r\n\r\n if (\r\n this.rendering &&\r\n this.rendering.placeholders &&\r\n Object.keys(this.rendering.placeholders).length > 0\r\n ) {\r\n return this.rendering.placeholders[phName];\r\n }\r\n return null;\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.placeholderData;\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 try {\r\n const nonGuarded = await this.guardResolver(factories);\r\n const withData = await this.dataResolver(nonGuarded);\r\n // not using index to ensure code blocks are rendered at correct positions\r\n withData.forEach((rendering) => {\r\n this.metadataMode &&\r\n this.view.createEmbeddedView(this.metadataNode, {\r\n kind: MetadataKind.Open,\r\n chromeType: 'rendering',\r\n renderingId: (rendering.factory.componentDefinition as ComponentRendering)?.uid,\r\n });\r\n\r\n if (this.renderEachTemplate && !isRawRendering(rendering.factory.componentDefinition)) {\r\n this._renderTemplatedComponent(rendering.factory.componentDefinition);\r\n } else {\r\n this._renderEmbeddedComponent(rendering.factory, rendering.data);\r\n }\r\n\r\n this.metadataMode &&\r\n this.view.createEmbeddedView(this.metadataNode, {\r\n kind: MetadataKind.Close,\r\n chromeType: 'rendering',\r\n renderingId: (rendering.factory.componentDefinition as ComponentRendering)?.uid,\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 JssCanActivateRedirectError) {\r\n const redirectValue = e.redirectValue;\r\n if (redirectValue instanceof RedirectCommand) {\r\n this.router.navigateByUrl(redirectValue.redirectTo);\r\n } else if (redirectValue instanceof UrlTree) {\r\n this.router.navigateByUrl(redirectValue);\r\n } else if (typeof redirectValue === 'string') {\r\n this.router.navigate([redirectValue]);\r\n } else {\r\n this.router.navigate(redirectValue);\r\n }\r\n } else {\r\n this.failed.emit(e as Error);\r\n console.warn(\r\n `Placeholder '${this.name}' was not able to render with the current rendering data and error`,\r\n JSON.stringify(this.rendering, null, 2),\r\n e\r\n );\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _renderTemplatedComponent(rendering: ComponentRendering | HtmlElementRendering) {\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 });\r\n }\r\n\r\n private _renderEmbeddedComponent(rendering: ComponentFactoryResult, data: Data) {\r\n if (\r\n (rendering.componentDefinition as ComponentRendering).componentName ===\r\n constants.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 ngModuleRef: rendering.componentModuleRef,\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 { Component, HostBinding } from '@angular/core';\r\n@Component({\r\n selector: 'sc-hidden-rendering',\r\n template: 'The component is hidden',\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: flex; justify-content: center; align-items: center; padding: 30px; color: #aaa;';\r\n }\r\n}\r\n","import {\r\n Component,\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 inject,\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 '../services/jss-component-factory.service';\r\nimport { PLACEHOLDER_MISSING_COMPONENT_COMPONENT } from '../services/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 private differs = inject(KeyValueDiffers);\r\n private componentFactory = inject(JssComponentFactoryService);\r\n private missingComponentComponent = inject<Type<{ [key: string]: unknown }>>(\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT\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 Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n Type,\r\n inject,\r\n} from '@angular/core';\r\nimport { DateField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyFieldEditingComponent } from './default-empty-text-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({\r\n selector: '[scDate]',\r\n})\r\nexport class DateDirective extends BaseFieldDirective 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scDateEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyFieldEditingComponent;\r\n private templateRef = inject(TemplateRef);\r\n private datePipe = inject(DatePipe);\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.format) {\r\n this.viewContainer.clear();\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\r\n this.renderMetadata(MetadataKind.Open);\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.renderMetadata(MetadataKind.Close);\r\n\r\n const field = this.field;\r\n\r\n const html = field.editable && this.editable ? field.editable : field.value;\r\n const setDangerously = field.editable && this.editable;\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 { CommonModule } from '@angular/common';\r\nimport { 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/editing';\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 @if (isEditing) {\r\n <div [class]=\"frameProps.class\" [attr.sc_item]=\"frameProps.sc_item\">\r\n <span class=\"scChromeData\">{{ chromeData }}</span>\r\n <ng-container *ngTemplateOutlet=\"childContent\"></ng-container>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"childContent\"></ng-container>\r\n }\r\n `,\r\n imports: [CommonModule],\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 { Component, OnInit, Renderer2, inject } from '@angular/core';\r\nimport { getJssPagesClientData } from '@sitecore-jss/sitecore-jss/editing';\r\nimport { JssStateService } from '../services/jss-state.service';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { EditMode, LayoutServicePageState } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { isServer } from '@sitecore-jss/sitecore-jss/utils';\r\n\r\n/**\r\n * Component that renders editing scripts and client data for the current page in Sitecore Editor.\r\n * Only renders scripts when Metadata mode is used.\r\n */\r\n@Component({\r\n selector: 'sc-editing-scripts',\r\n template: '',\r\n})\r\nexport class EditingScriptsComponent implements OnInit {\r\n private renderer = inject(Renderer2);\r\n private stateService = inject(JssStateService);\r\n private document = inject(DOCUMENT);\r\n\r\n ngOnInit(): void {\r\n const state = this.stateService.stateValue;\r\n const { pageState, editMode, clientData, clientScripts } = state.sitecore?.context || {};\r\n\r\n // Don't render anything if not in editing mode or not server side\r\n if (\r\n pageState === LayoutServicePageState.Normal ||\r\n pageState === LayoutServicePageState.Preview ||\r\n !isServer()\r\n ) {\r\n return;\r\n }\r\n\r\n if (editMode === EditMode.Metadata) {\r\n const jssClientData = { ...clientData, ...getJssPagesClientData() };\r\n clientScripts?.forEach((src: string) => {\r\n const scriptElement = this.renderer.createElement('script');\r\n scriptElement.src = src;\r\n this.renderer.appendChild(this.document.body, scriptElement);\r\n });\r\n\r\n Object.keys(jssClientData).forEach((id: string) => {\r\n const scriptElement = this.renderer.createElement('script');\r\n scriptElement.id = id;\r\n scriptElement.type = 'application/json';\r\n scriptElement.innerHTML = JSON.stringify(jssClientData[id]);\r\n this.renderer.appendChild(this.document.body, scriptElement);\r\n });\r\n }\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * Shape of the Sitecore Edge configuration.\r\n */\r\nexport type EdgeConfigToken = {\r\n sitecoreEdgeUrl?: string;\r\n sitecoreEdgeContextId: string;\r\n};\r\n\r\n/**\r\n * Injection token for the Sitecore Edge configuration.\r\n */\r\nexport const EDGE_CONFIG = new InjectionToken<EdgeConfigToken>('Sc.edgeConfig');\r\n","import { ComponentRendering, LayoutServicePageState } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { form, debug } from '@sitecore-jss/sitecore-jss';\r\nimport {\r\n Component,\r\n OnInit,\r\n Input,\r\n ElementRef,\r\n PLATFORM_ID,\r\n OnDestroy,\r\n inject,\r\n} from '@angular/core';\r\nimport { EDGE_CONFIG, EdgeConfigToken } from '../services/shared.token';\r\nimport { JssStateService } from '../services/jss-state.service';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { Subscription } from 'rxjs';\r\n\r\nlet { executeScriptElements, loadForm, subscribeToFormSubmitEvent } = form;\r\n\r\n/**\r\n * Mock function to replace the form module functions for `testing` purposes.\r\n * @param {any} formModule - The form module to mock\r\n */\r\nexport const mockFormModule = (formModule: any) => {\r\n executeScriptElements = formModule.executeScriptElements;\r\n loadForm = formModule.loadForm;\r\n subscribeToFormSubmitEvent = formModule.subscribeToFormSubmitEvent;\r\n};\r\n\r\n/**\r\n * Shape of the Form component rendering data.\r\n * FormId is the rendering parameter that specifies the ID of the Sitecore Form to render.\r\n */\r\nexport type FormRendering = {\r\n params: {\r\n FormId: string;\r\n styles?: string;\r\n };\r\n} & ComponentRendering;\r\n\r\n/**\r\n * A component that renders a Sitecore Form.\r\n * It fetches the form markup from the Sitecore Edge service and renders it in the component's template.\r\n */\r\n@Component({\r\n selector: 'app-form',\r\n templateUrl: './form.component.html',\r\n})\r\nexport class FormComponent implements OnInit, OnDestroy {\r\n /**\r\n * The rendering data for the component\r\n */\r\n @Input() rendering: FormRendering;\r\n\r\n hasError = false;\r\n\r\n isEditing = false;\r\n\r\n private contextSubscription: Subscription;\r\n private edgeConfig = inject<EdgeConfigToken>(EDGE_CONFIG);\r\n private platformId = inject<{ [key: string]: unknown }>(PLATFORM_ID);\r\n private elRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private jssState = inject(JssStateService);\r\n\r\n ngOnInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.loadForm();\r\n\r\n this.contextSubscription = this.jssState.state.subscribe(({ sitecore }) => {\r\n this.isEditing = sitecore?.context.pageState !== LayoutServicePageState.Normal;\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.contextSubscription) {\r\n this.contextSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Fetches the form markup from the Sitecore Edge service and renders it in the component's template.\r\n */\r\n async loadForm() {\r\n const { sitecoreEdgeContextId, sitecoreEdgeUrl } = this.edgeConfig;\r\n\r\n try {\r\n const content = await loadForm(\r\n sitecoreEdgeContextId,\r\n this.rendering.params.FormId,\r\n sitecoreEdgeUrl\r\n );\r\n\r\n this.elRef.nativeElement.innerHTML = content;\r\n this.elRef.nativeElement.className = this.rendering.params?.styles?.trimEnd() || '';\r\n this.elRef.nativeElement.id = this.rendering.params?.RenderingIdentifier || '';\r\n\r\n const form = this.elRef.nativeElement.querySelector('form');\r\n\r\n if (!form) {\r\n debug.form(\r\n `Form '${this.rendering.params.FormId}' was not able to render since form element was not found`\r\n );\r\n return;\r\n }\r\n\r\n executeScriptElements(this.elRef.nativeElement);\r\n\r\n if (!this.isEditing) {\r\n subscribeToFormSubmitEvent(form, this.rendering.uid);\r\n }\r\n } catch {\r\n this.hasError = true;\r\n }\r\n }\r\n}\r\n","@if (isEditing) {\n @if (!rendering.params.FormId) {\n <div\n style=\"background: darkorange; outline: 5px solid orange; padding: 10px; color: white; max-width: 500px;\"\n >\n <h2>{{ rendering.componentName }}</h2>\n <p>JSS component is missing FormId rendering parameter.</p>\n </div>\n }\n @if (hasError) {\n <div class=\"sc-jss-placeholder-error\">There was a problem loading this section</div>\n }\n}\n","import {\r\n Directive,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n Renderer2,\r\n Type,\r\n inject,\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\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyFieldEditingComponent } from './default-empty-text-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({\r\n selector: '[scRichText]',\r\n})\r\nexport class RichTextDirective extends BaseFieldDirective implements OnChanges {\r\n @Input('scRichTextEditable') editable = true;\r\n\r\n @Input('scRichText') field: RichTextField;\r\n\r\n /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scRichTextEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyFieldEditingComponent;\r\n private templateRef = inject(TemplateRef);\r\n private renderer = inject(Renderer2);\r\n private router = inject(Router);\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable) {\r\n this.viewContainer.clear();\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\r\n this.renderMetadata(MetadataKind.Open);\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.renderMetadata(MetadataKind.Close);\r\n\r\n const field = this.field;\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 Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n Type,\r\n inject,\r\n} from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyFieldEditingComponent } from './default-empty-text-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({\r\n selector: '[scText]',\r\n})\r\nexport class TextDirective extends BaseFieldDirective 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scTextEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyFieldEditingComponent;\r\n private templateRef = inject(TemplateRef);\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable || changes.encode) {\r\n this.viewContainer.clear();\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\r\n this.renderMetadata(MetadataKind.Open);\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.renderMetadata(MetadataKind.Close);\r\n\r\n const field = this.field;\r\n let editable = this.editable;\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 { ɵisPromise as isPromise } from '@angular/core';\r\nimport { from, Observable, isObservable, of } from 'rxjs';\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 | Promise<T> | Observable<T>): Observable<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\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 router,\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, RedirectCommand, Router, UrlTree } from '@angular/router';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { lastValueFrom, of } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\nimport { ComponentFactoryResult } from './jss-component-factory.service';\r\nimport { wrapIntoObservable } from '../utils';\r\nimport { JssCanActivateRedirectError } from './jss-can-activate-error';\r\nimport { JssCanActivate, JssCanActivateFn } from './placeholder.token';\r\n\r\n/**\r\n * @param {boolean | string | string[] | UrlTree | RedirectCommand} value\r\n * @returns instance of value\r\n */\r\nfunction isRedirectValue(\r\n value: boolean | string | string[] | UrlTree | RedirectCommand\r\n): value is string | string[] | UrlTree | RedirectCommand {\r\n return (\r\n value instanceof UrlTree ||\r\n value instanceof RedirectCommand ||\r\n typeof value === 'string' ||\r\n Array.isArray(value)\r\n );\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.bind(guard) : 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 router,\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 let message;\r\n\r\n if (value instanceof RedirectCommand) {\r\n message = value.redirectTo;\r\n } else {\r\n message = value;\r\n }\r\n\r\n throw new JssCanActivateRedirectError(\r\n `Value: '${message.toString()}' is a redirect value`,\r\n value\r\n );\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 './services/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 './services/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 './services/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 './services/jss-component-factory.service';\r\nimport { JssStateService } from './services/jss-state.service';\r\nimport { EditingScriptsComponent } from './components/editing-scripts.component';\r\nimport { FormComponent } from './components/form.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FileDirective,\r\n ImageDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n TextDirective,\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 MissingComponentComponent,\r\n HiddenRenderingComponent,\r\n EditFrameComponent,\r\n EditingScriptsComponent,\r\n FormComponent,\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 EditingScriptsComponent,\r\n FormComponent,\r\n ],\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 JssStateService,\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(s)\r\n * @param {Type<unknown> | Record<string, Type<unknown>> } value - component or map of components\r\n * @returns {ModuleWithProviders<JssModule>} module\r\n */\r\n static forChild(\r\n value: Type<unknown> | { [key: string]: Type<unknown> }\r\n ): 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: value },\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":["isPromise"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sitecore-jss-sitecore-jss-angular.mjs","sources":["../../src/components/file.directive.ts","../../src/components/field-metadata-marker.component.ts","../../src/components/base-field.directive.ts","../../src/components/default-empty-image-field-editing-placeholder.component.ts","../../src/components/image.directive.ts","../../src/components/default-empty-text-field-editing-placeholder.component.ts","../../src/components/link.directive.ts","../../src/components/router-link.directive.ts","../../src/components/generic-link.directive.ts","../../src/services/jss-can-activate-error.ts","../../src/services/placeholder.token.ts","../../src/components/raw.component.ts","../../src/components/rendering.ts","../../src/services/jss-component-factory.service.ts","../../src/components/placeholder-loading.directive.ts","../../src/components/render-each.directive.ts","../../src/components/render-empty.directive.ts","../../src/services/jss-state.service.ts","../../src/components/placeholder.component.ts","../../src/components/hidden-rendering.component.ts","../../src/components/render-component.component.ts","../../src/components/date.directive.ts","../../src/components/editframe.component.ts","../../src/components/editing-scripts.component.ts","../../src/services/shared.token.ts","../../src/components/form.component.ts","../../src/components/form.component.html","../../src/components/rich-text.directive.ts","../../src/components/text.directive.ts","../../src/utils.ts","../../src/services/data-resolver-factory.ts","../../src/services/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 inject,\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 private viewContainer = inject(ViewContainerRef);\r\n private templateRef = inject(TemplateRef);\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 { Component, HostBinding, Input } from '@angular/core';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n/**\r\n * Component that renders a field' metadata chrome element.\r\n */\r\n@Component({\r\n selector: 'code[scFieldMetadataMarker]',\r\n template: '{{ metadataString }}',\r\n host: {\r\n '[attr.type]': '\"text/sitecore\"',\r\n '[attr.chrometype]': '\"field\"',\r\n '[class]': '\"scpm\"',\r\n },\r\n})\r\nexport class FieldMetadataMarkerComponent {\r\n @Input()\r\n metadata?: any;\r\n\r\n @HostBinding('attr.kind')\r\n @Input()\r\n kind: MetadataKind = MetadataKind.Open;\r\n\r\n get metadataString(): string {\r\n return this.metadata ? JSON.stringify(this.metadata) : '';\r\n }\r\n}\r\n","import {\r\n Directive,\r\n Type,\r\n ViewContainerRef,\r\n EmbeddedViewRef,\r\n TemplateRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { RenderingField } from './rendering-field';\r\nimport { GenericFieldValue, isFieldValueEmpty } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { FieldMetadataMarkerComponent } from './field-metadata-marker.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n/**\r\n * Base class that contains common functionality for the field directives.\r\n */\r\n@Directive()\r\nexport abstract class BaseFieldDirective {\r\n protected viewContainer = inject(ViewContainerRef);\r\n protected viewRef: EmbeddedViewRef<unknown>;\r\n protected abstract field: RenderingField<GenericFieldValue>;\r\n protected abstract editable: boolean;\r\n /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n protected abstract emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected abstract defaultFieldEditingComponent: Type<unknown>;\r\n\r\n /**\r\n * Determines if directive should render the field as is\r\n * Returns true if we are in edit mode 'chromes' (field.editable is present) or field is not empty\r\n */\r\n protected shouldRender() {\r\n return !!this.field?.editable || !isFieldValueEmpty(this.field);\r\n }\r\n\r\n /**\r\n * Renders the empty field markup which is required by Pages in editMode 'metadata' in case field is empty.\r\n */\r\n protected renderEmpty() {\r\n if (this.field?.metadata && this.editable) {\r\n this.renderMetadata(MetadataKind.Open);\r\n if (this.emptyFieldEditingTemplate) {\r\n this.viewContainer.createEmbeddedView(this.emptyFieldEditingTemplate);\r\n } else {\r\n this.viewContainer.createComponent(this.defaultFieldEditingComponent);\r\n }\r\n this.renderMetadata(MetadataKind.Close);\r\n }\r\n }\r\n\r\n /**\r\n * Renders a metadata chrome marker for the field. Required by Pages in editMode 'metadata'.\r\n * @param {string} kind - 'open' or 'close' to indicate the start or end of the metadata chrome\r\n */\r\n protected renderMetadata(kind: MetadataKind) {\r\n if (this.field?.metadata && this.editable) {\r\n const metadataChrome = this.viewContainer.createComponent(FieldMetadataMarkerComponent);\r\n metadataChrome.setInput('kind', kind);\r\n if (kind === MetadataKind.Open) {\r\n metadataChrome.setInput('metadata', this.field.metadata);\r\n }\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n/**\r\n * Default component that will be rendered in pages when image field is empty.\r\n */\r\n@Component({\r\n selector: '[sc-default-empty-image-field-editing-placeholder]',\r\n template: `\r\n <img\r\n alt=\"\"\r\n src='data:image/svg+xml,%3Csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 240 240\" style=\"enable-background:new 0 0 240 240;\" xml:space=\"preserve\"%3E%3Cstyle type=\"text/css\"%3E .st0%7Bfill:none;%7D .st1%7Bfill:%23969696;%7D .st2%7Bfill:%23FFFFFF;%7D .st3%7Bfill:%23FFFFFF;stroke:%23FFFFFF;stroke-width:0.75;stroke-miterlimit:10;%7D%0A%3C/style%3E%3Cg%3E%3Crect class=\"st0\" width=\"240\" height=\"240\"/%3E%3Cg%3E%3Cg%3E%3Crect x=\"20\" y=\"20\" class=\"st1\" width=\"200\" height=\"200\"/%3E%3C/g%3E%3Cg%3E%3Ccircle class=\"st2\" cx=\"174\" cy=\"67\" r=\"14\"/%3E%3Cpath class=\"st2\" d=\"M174,54c7.17,0,13,5.83,13,13s-5.83,13-13,13s-13-5.83-13-13S166.83,54,174,54 M174,52 c-8.28,0-15,6.72-15,15s6.72,15,15,15s15-6.72,15-15S182.28,52,174,52L174,52z\"/%3E%3C/g%3E%3Cpolyline class=\"st3\" points=\"29.5,179.25 81.32,122.25 95.41,137.75 137.23,91.75 209.5,179.75 \"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E'\r\n class=\"scEmptyImage\"\r\n />\r\n `,\r\n styles: [\r\n `\r\n :host {\r\n min-width: 48px;\r\n min-height: 48px;\r\n max-width: 400px;\r\n max-height: 400px;\r\n cursor: pointer;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class DefaultEmptyImageFieldEditingComponent {}\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 Type,\r\n inject,\r\n} from '@angular/core';\r\nimport { mediaApi } from '@sitecore-jss/sitecore-jss/media';\r\nimport { ImageField, ImageFieldValue } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyImageFieldEditingComponent } from './default-empty-image-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({ selector: '[scImage]' })\r\nexport class ImageDirective extends BaseFieldDirective 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scImageEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyImageFieldEditingComponent;\r\n\r\n private inlineRef: HTMLSpanElement | null = null;\r\n private templateRef = inject(TemplateRef);\r\n private renderer = inject(Renderer2);\r\n private elementRef = inject(ElementRef);\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 if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\r\n const overrideAttrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n const media = this.field;\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.renderMetadata(MetadataKind.Open);\r\n this.renderTemplate(attrs);\r\n this.renderMetadata(MetadataKind.Close);\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, style, ...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\r\n if (style) {\r\n newAttrs.style = Object.entries(style as Record<string, unknown>)\r\n .map(([propName, value]) => `${propName}:${value}`)\r\n .join(';');\r\n }\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 { Component } from '@angular/core';\r\n\r\n/**\r\n * Default component that will be rendered in pages when field is empty; applies for text, richtext, date and link fields.\r\n */\r\n@Component({\r\n selector: '<span>[sc-default-empty-text-field-editing-placeholder]</span>',\r\n template: '[No text in field]',\r\n})\r\nexport class DefaultEmptyFieldEditingComponent {}\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 Type,\r\n inject,\r\n} from '@angular/core';\r\nimport { LinkField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyFieldEditingComponent } from './default-empty-text-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({ selector: '[scLink]' })\r\nexport class LinkDirective extends BaseFieldDirective 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scLinkEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyFieldEditingComponent;\r\n protected templateRef = inject(TemplateRef);\r\n protected renderer = inject(Renderer2);\r\n\r\n private inlineRef: HTMLSpanElement | null = null;\r\n private elementRef = inject(ElementRef);\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 /**\r\n * Determines if directive should render the field as is\r\n * Returns true if we are in edit mode 'chromes' (field.editable is present) or field is not empty\r\n * or link field text is present and we are not in edit mode 'metadata'\r\n * The right side of the expression was added to preserve existing functionality\r\n */\r\n protected shouldRender() {\r\n return (\r\n super.shouldRender() ||\r\n !!((this.field?.text || this.field?.value?.text) && !this.field?.metadata)\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 {\r\n if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\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 this.renderMetadata(MetadataKind.Open);\r\n this.renderTemplate(mergedAttrs, linkText);\r\n this.renderMetadata(MetadataKind.Close);\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 { Directive, Input, TemplateRef, inject } 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scRouterLinkEmptyFieldEditingTemplate') declare emptyFieldEditingTemplate: TemplateRef<\r\n unknown\r\n >;\r\n private router = inject(Router);\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 { Directive, Input, TemplateRef, inject } 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scGenericLinkEmptyFieldEditingTemplate') declare emptyFieldEditingTemplate: TemplateRef<\r\n unknown\r\n >;\r\n private router = inject(Router);\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 { RedirectCommand, UrlTree } from '@angular/router';\r\n\r\n/**\r\n * Error thrown when a JssCanActivate guard returns a redirect value.\r\n * The redirect value will be used to redirect the user to a different route.\r\n */\r\nexport class JssCanActivateRedirectError extends Error {\r\n constructor(\r\n public message: string,\r\n public redirectValue: string | string[] | UrlTree | RedirectCommand\r\n ) {\r\n super(message);\r\n this.name = 'JssCanActivateRedirectError';\r\n }\r\n}\r\n","import { InjectionToken, Type } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Data,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n RedirectCommand,\r\n Router,\r\n} 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 router: Router;\r\n}\r\n\r\nexport interface JssCanActivateFn {\r\n (input: GuardInput):\r\n | Observable<boolean | UrlTree | RedirectCommand | string | string[]>\r\n | Promise<boolean | UrlTree | RedirectCommand | string | string[]>\r\n | boolean\r\n | UrlTree\r\n | RedirectCommand\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 { Component, ElementRef, Input, OnInit, Renderer2, inject } 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 private renderer = inject(Renderer2);\r\n private elementRef = inject(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 { 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 { createNgModule, Injectable, Injector, NgModuleRef, Type, inject } 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 './placeholder.token';\r\nimport { RawComponent } from '../components/raw.component';\r\nimport { isRawRendering } from '../components/rendering';\r\n\r\nexport interface ComponentFactoryResult {\r\n componentImplementation?: Type<any>;\r\n componentDefinition: ComponentRendering | HtmlElementRendering;\r\n componentModuleRef?: NgModuleRef<unknown>;\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 private injector = inject(Injector);\r\n private components = inject<ComponentNameAndType[]>(PLACEHOLDER_COMPONENTS);\r\n private lazyComponents = inject<ComponentNameAndModule[]>(PLACEHOLDER_LAZY_COMPONENTS);\r\n\r\n constructor() {\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: this.applySXAParams(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 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: this.applySXAParams(component),\r\n componentImplementation: componentType,\r\n componentModuleRef: moduleRef,\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 private applySXAParams(rendering: ComponentRendering) {\r\n // Provide aggregated SXA styles on params 'styles'\r\n const styles = [];\r\n if (rendering.params?.GridParameters) {\r\n styles.push(rendering.params.GridParameters.trim());\r\n }\r\n if (rendering.params?.Styles) {\r\n styles.push(rendering.params.Styles.trim());\r\n }\r\n if (rendering.params && styles.length > 0) {\r\n rendering.params.styles = styles.join(' ');\r\n }\r\n return rendering;\r\n }\r\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[scPlaceholderLoading]',\r\n})\r\nexport class PlaceholderLoadingDirective {\r\n public templateRef = inject(TemplateRef);\r\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[renderEach]',\r\n})\r\nexport class RenderEachDirective {\r\n public templateRef = inject(TemplateRef);\r\n}\r\n","import { Directive, TemplateRef, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[renderEmpty]',\r\n})\r\nexport class RenderEmptyDirective {\r\n public templateRef = inject(TemplateRef);\r\n}\r\n","import { Injectable, TransferState, inject } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { LayoutServiceContextData, RouteData } from '../public_api';\r\n\r\nexport class BaseJssState {\r\n sitecore?: LayoutServiceContextData & {\r\n route: RouteData | null;\r\n };\r\n viewBag?: { [key: string]: unknown };\r\n}\r\n\r\n/**\r\n * The service that is used to store and retrieve the current state of the app.\r\n * Referenced by the SDK to get the current state of the app.\r\n */\r\n@Injectable()\r\nexport class JssStateService<State extends BaseJssState = BaseJssState> {\r\n protected transferState = inject(TransferState);\r\n private _state: BehaviorSubject<State>;\r\n\r\n constructor() {\r\n this._state = new BehaviorSubject<State>({} as State);\r\n }\r\n\r\n /**\r\n * Observable JSS state to subscribe to\r\n */\r\n get state(): Observable<State> {\r\n return this._state.asObservable();\r\n }\r\n\r\n /**\r\n * The 'here and now' state value, usable without subscribing\r\n */\r\n get stateValue() {\r\n return this._state.value;\r\n }\r\n\r\n /**\r\n * Set new JSS state\r\n * @param {JssState} newState new state\r\n */\r\n setState(newState: State) {\r\n this._state.next(newState);\r\n }\r\n}\r\n","import { CommonModule, 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 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 TemplateRef,\r\n Type,\r\n ViewChild,\r\n ViewContainerRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { Data, RedirectCommand, Router, UrlTree } from '@angular/router';\r\nimport {\r\n ComponentRendering,\r\n HtmlElementRendering,\r\n EditMode,\r\n ComponentFields,\r\n} from '@sitecore-jss/sitecore-jss/layout';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { takeWhile } from 'rxjs/operators';\r\nimport { JssCanActivateRedirectError } from '../services/jss-can-activate-error';\r\nimport {\r\n ComponentFactoryResult,\r\n JssComponentFactoryService,\r\n} from '../services/jss-component-factory.service';\r\nimport {\r\n DATA_RESOLVER,\r\n GUARD_RESOLVER,\r\n PLACEHOLDER_HIDDEN_RENDERING_COMPONENT,\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT,\r\n} from '../services/placeholder.token';\r\nimport { constants } from '@sitecore-jss/sitecore-jss';\r\nimport {\r\n isDynamicPlaceholder,\r\n getDynamicPlaceholderPattern,\r\n} from '@sitecore-jss/sitecore-jss/layout';\r\nimport { PlaceholderLoadingDirective } from './placeholder-loading.directive';\r\nimport { RenderEachDirective } from './render-each.directive';\r\nimport { RenderEmptyDirective } from './render-empty.directive';\r\nimport { isRawRendering } from './rendering';\r\nimport { JssStateService } from '../services/jss-state.service';\r\nimport { MetadataKind, DEFAULT_PLACEHOLDER_UID } from '@sitecore-jss/sitecore-jss/editing';\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 @if (isLoading) {\r\n <ng-template [ngTemplateOutlet]=\"placeholderLoading?.templateRef\"></ng-template>\r\n }\r\n <ng-template\r\n #metadataCodeBlock\r\n let-kind=\"kind\"\r\n let-type=\"chromeType\"\r\n let-renderingId=\"renderingId\"\r\n >\r\n <code\r\n [attr.kind]=\"kind\"\r\n type=\"text/sitecore\"\r\n [attr.chrometype]=\"type\"\r\n class=\"scpm\"\r\n [attr.id]=\"getCodeBlockId(kind, renderingId)\"\r\n ></code\r\n ></ng-template>\r\n\r\n @if (metadataMode && metadataCodeBlock) {\r\n <ng-container\r\n *ngTemplateOutlet=\"metadataCodeBlock; context: { kind: 'open', chromeType: 'placeholder' }\"\r\n >\r\n </ng-container>\r\n }\r\n\r\n <ng-template #view></ng-template>\r\n\r\n @if (metadataMode && metadataCodeBlock) {\r\n <ng-container\r\n *ngTemplateOutlet=\"metadataCodeBlock; context: { kind: 'close', chromeType: 'placeholder' }\"\r\n >\r\n </ng-container>\r\n }\r\n `,\r\n imports: [CommonModule],\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 @Output() failed = new EventEmitter<Error>();\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 @ViewChild('view', { read: ViewContainerRef, static: true }) private view: ViewContainerRef;\r\n @ViewChild('metadataCodeBlock', { read: TemplateRef }) private metadataNode: TemplateRef<unknown>;\r\n public isLoading = true;\r\n metadataMode: boolean;\r\n chromeType: string;\r\n private _inputs: { [key: string]: unknown };\r\n private _differ: KeyValueDiffer<string, unknown>;\r\n private _componentInstances: { [prop: string]: unknown }[] = [];\r\n private placeholderData?: (ComponentRendering<ComponentFields> | HtmlElementRendering)[];\r\n private destroyed = false;\r\n private parentStyleAttribute = '';\r\n private contextSubscription: Subscription;\r\n private differs = inject(KeyValueDiffers);\r\n private componentFactory = inject(JssComponentFactoryService);\r\n private changeDetectorRef = inject(ChangeDetectorRef);\r\n private elementRef = inject(ElementRef);\r\n private renderer = inject(Renderer2);\r\n private router = inject(Router);\r\n private missingComponentComponent = inject<Type<unknown>>(\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT\r\n );\r\n private hiddenRenderingComponent = inject<Type<unknown>>(PLACEHOLDER_HIDDEN_RENDERING_COMPONENT);\r\n private guardResolver = inject(GUARD_RESOLVER);\r\n private dataResolver = inject(DATA_RESOLVER);\r\n private platformId = inject<object>(PLATFORM_ID);\r\n private jssState = inject(JssStateService);\r\n\r\n constructor() {\r\n this.contextSubscription = this.jssState.state.subscribe(({ sitecore }) => {\r\n this.metadataMode = sitecore?.context.editMode === EditMode.Metadata;\r\n });\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 this.chromeType = this.name ? 'placeholder' : 'rendering';\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 this.placeholderData = this.renderings || this.getPlaceholder() || [];\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroyed = true;\r\n this._componentInstances = [];\r\n if (this.contextSubscription) {\r\n this.contextSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.chromeType = changes.name ? 'placeholder' : 'rendering';\r\n if (changes.rendering || changes.renderings) {\r\n this.placeholderData = this.renderings || this.getPlaceholder() || [];\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 /**\r\n * Gets id for Metadata code blocks, in specific format\r\n * Metadata code blocks will wrap be added around placeholder content and each rendering component\r\n * to allow for editing integration in Pages.\r\n * @param {string} kind code block type (\"open\" or \"close\"). \"open\" is added before an element, and \"close\" added after one.\r\n * @param {string?} renderingId rendering uid to apply as id to code block\r\n * @returns {string} formatted id value for code HTML node\r\n */\r\n getCodeBlockId = (kind: string, renderingId?: string): string | undefined => {\r\n if (this.rendering && kind === MetadataKind.Open) {\r\n const placeholderName = this.name;\r\n const id = renderingId || this.rendering?.uid;\r\n if (!renderingId && placeholderName) {\r\n let phId = '';\r\n for (const placeholder of Object.keys(this.rendering.placeholders || [])) {\r\n if (placeholderName === placeholder) {\r\n phId = id\r\n ? `${placeholderName}_${id}`\r\n : `${placeholderName}_${DEFAULT_PLACEHOLDER_UID}`;\r\n break;\r\n }\r\n // Check if the placeholder is a dynamic placeholder\r\n if (isDynamicPlaceholder(placeholder)) {\r\n const pattern = getDynamicPlaceholderPattern(placeholder);\r\n // Check if the placeholder matches the dynamic placeholder pattern\r\n if (pattern.test(placeholderName)) {\r\n phId = id ? `${placeholder}_${id}` : `${placeholder}_${DEFAULT_PLACEHOLDER_UID}`;\r\n break;\r\n }\r\n }\r\n }\r\n return phId;\r\n } else {\r\n return id;\r\n }\r\n }\r\n return undefined;\r\n };\r\n\r\n /**\r\n * Get renderings/components to be rendered for current placeholder name\r\n * Can modify the inner placeholders collection to adjust to using SXA dynamic placeholders\r\n * @returns {ComponentRendering<ComponentFields> | HtmlElementRendering[] | null} List of renderings to be rendered\r\n */\r\n private getPlaceholder() {\r\n let phName = this.name?.slice() || '';\r\n /**\r\n * Process (SXA) dynamic placeholders\r\n * Find and replace the matching dynamic placeholder e.g 'nameOfContainer-{*}' with the requested e.g. 'nameOfContainer-1'.\r\n * For Metadata EditMode, we need to keep the raw placeholder name in place.\r\n */\r\n this.rendering?.placeholders &&\r\n Object.keys(this.rendering.placeholders).forEach((placeholder) => {\r\n const patternPlaceholder = isDynamicPlaceholder(placeholder)\r\n ? getDynamicPlaceholderPattern(placeholder)\r\n : null;\r\n if (patternPlaceholder && patternPlaceholder.test(phName)) {\r\n if (this.metadataMode) {\r\n phName = placeholder;\r\n } else {\r\n this.rendering.placeholders![phName] = this.rendering.placeholders![placeholder];\r\n delete this.rendering.placeholders![placeholder];\r\n }\r\n }\r\n });\r\n\r\n if (\r\n this.rendering &&\r\n this.rendering.placeholders &&\r\n Object.keys(this.rendering.placeholders).length > 0\r\n ) {\r\n return this.rendering.placeholders[phName];\r\n }\r\n return null;\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.placeholderData;\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 try {\r\n const nonGuarded = await this.guardResolver(factories);\r\n const withData = await this.dataResolver(nonGuarded);\r\n // not using index to ensure code blocks are rendered at correct positions\r\n withData.forEach((rendering) => {\r\n this.metadataMode &&\r\n this.view.createEmbeddedView(this.metadataNode, {\r\n kind: MetadataKind.Open,\r\n chromeType: 'rendering',\r\n renderingId: (rendering.factory.componentDefinition as ComponentRendering)?.uid,\r\n });\r\n\r\n if (this.renderEachTemplate && !isRawRendering(rendering.factory.componentDefinition)) {\r\n this._renderTemplatedComponent(rendering.factory.componentDefinition);\r\n } else {\r\n this._renderEmbeddedComponent(rendering.factory, rendering.data);\r\n }\r\n\r\n this.metadataMode &&\r\n this.view.createEmbeddedView(this.metadataNode, {\r\n kind: MetadataKind.Close,\r\n chromeType: 'rendering',\r\n renderingId: (rendering.factory.componentDefinition as ComponentRendering)?.uid,\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 JssCanActivateRedirectError) {\r\n const redirectValue = e.redirectValue;\r\n if (redirectValue instanceof RedirectCommand) {\r\n this.router.navigateByUrl(redirectValue.redirectTo);\r\n } else if (redirectValue instanceof UrlTree) {\r\n this.router.navigateByUrl(redirectValue);\r\n } else if (typeof redirectValue === 'string') {\r\n this.router.navigate([redirectValue]);\r\n } else {\r\n this.router.navigate(redirectValue);\r\n }\r\n } else {\r\n this.failed.emit(e as Error);\r\n console.warn(\r\n `Placeholder '${this.name}' was not able to render with the current rendering data and error`,\r\n JSON.stringify(this.rendering, null, 2),\r\n e\r\n );\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _renderTemplatedComponent(rendering: ComponentRendering | HtmlElementRendering) {\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 });\r\n }\r\n\r\n private _renderEmbeddedComponent(rendering: ComponentFactoryResult, data: Data) {\r\n if (\r\n (rendering.componentDefinition as ComponentRendering).componentName ===\r\n constants.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 ngModuleRef: rendering.componentModuleRef,\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 { Component, HostBinding } from '@angular/core';\r\n@Component({\r\n selector: 'sc-hidden-rendering',\r\n template: 'The component is hidden',\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: flex; justify-content: center; align-items: center; padding: 30px; color: #aaa;';\r\n }\r\n}\r\n","import {\r\n Component,\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 inject,\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 '../services/jss-component-factory.service';\r\nimport { PLACEHOLDER_MISSING_COMPONENT_COMPONENT } from '../services/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 private differs = inject(KeyValueDiffers);\r\n private componentFactory = inject(JssComponentFactoryService);\r\n private missingComponentComponent = inject<Type<{ [key: string]: unknown }>>(\r\n PLACEHOLDER_MISSING_COMPONENT_COMPONENT\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 Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n Type,\r\n inject,\r\n} from '@angular/core';\r\nimport { DateField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyFieldEditingComponent } from './default-empty-text-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({\r\n selector: '[scDate]',\r\n})\r\nexport class DateDirective extends BaseFieldDirective 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scDateEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyFieldEditingComponent;\r\n private templateRef = inject(TemplateRef);\r\n private datePipe = inject(DatePipe);\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.format) {\r\n this.viewContainer.clear();\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\r\n this.renderMetadata(MetadataKind.Open);\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.renderMetadata(MetadataKind.Close);\r\n\r\n const field = this.field;\r\n\r\n const html = field.editable && this.editable ? field.editable : field.value;\r\n const setDangerously = field.editable && this.editable;\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 { CommonModule } from '@angular/common';\r\nimport { 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/editing';\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 @if (isEditing) {\r\n <div [class]=\"frameProps.class\" [attr.sc_item]=\"frameProps.sc_item\">\r\n <span class=\"scChromeData\">{{ chromeData }}</span>\r\n <ng-container *ngTemplateOutlet=\"childContent\"></ng-container>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"childContent\"></ng-container>\r\n }\r\n `,\r\n imports: [CommonModule],\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 { Component, OnInit, Renderer2, inject } from '@angular/core';\r\nimport { getJssPagesClientData } from '@sitecore-jss/sitecore-jss/editing';\r\nimport { JssStateService } from '../services/jss-state.service';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { EditMode, LayoutServicePageState } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { isServer } from '@sitecore-jss/sitecore-jss/utils';\r\n\r\n/**\r\n * Component that renders editing scripts and client data for the current page in Sitecore Editor.\r\n * Only renders scripts when Metadata mode is used.\r\n */\r\n@Component({\r\n selector: 'sc-editing-scripts',\r\n template: '',\r\n})\r\nexport class EditingScriptsComponent implements OnInit {\r\n private renderer = inject(Renderer2);\r\n private stateService = inject(JssStateService);\r\n private document = inject(DOCUMENT);\r\n\r\n ngOnInit(): void {\r\n const state = this.stateService.stateValue;\r\n const { pageState, editMode, clientData, clientScripts } = state.sitecore?.context || {};\r\n\r\n // Don't render anything if not in editing mode or not server side\r\n if (\r\n pageState === LayoutServicePageState.Normal ||\r\n pageState === LayoutServicePageState.Preview ||\r\n !isServer()\r\n ) {\r\n return;\r\n }\r\n\r\n if (editMode === EditMode.Metadata) {\r\n const jssClientData = { ...clientData, ...getJssPagesClientData() };\r\n clientScripts?.forEach((src: string) => {\r\n const scriptElement = this.renderer.createElement('script');\r\n scriptElement.src = src;\r\n this.renderer.appendChild(this.document.body, scriptElement);\r\n });\r\n\r\n Object.keys(jssClientData).forEach((id: string) => {\r\n const scriptElement = this.renderer.createElement('script');\r\n scriptElement.id = id;\r\n scriptElement.type = 'application/json';\r\n scriptElement.innerHTML = JSON.stringify(jssClientData[id]);\r\n this.renderer.appendChild(this.document.body, scriptElement);\r\n });\r\n }\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * Shape of the Sitecore Edge configuration.\r\n */\r\nexport type EdgeConfigToken = {\r\n sitecoreEdgeUrl?: string;\r\n sitecoreEdgeContextId: string;\r\n};\r\n\r\n/**\r\n * Injection token for the Sitecore Edge configuration.\r\n */\r\nexport const EDGE_CONFIG = new InjectionToken<EdgeConfigToken>('Sc.edgeConfig');\r\n","import { ComponentRendering, LayoutServicePageState } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { form, debug } from '@sitecore-jss/sitecore-jss';\r\nimport {\r\n Component,\r\n OnInit,\r\n Input,\r\n ElementRef,\r\n PLATFORM_ID,\r\n OnDestroy,\r\n inject,\r\n} from '@angular/core';\r\nimport { EDGE_CONFIG, EdgeConfigToken } from '../services/shared.token';\r\nimport { JssStateService } from '../services/jss-state.service';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { Subscription } from 'rxjs';\r\n\r\nlet { executeScriptElements, loadForm, subscribeToFormSubmitEvent } = form;\r\n\r\n/**\r\n * Mock function to replace the form module functions for `testing` purposes.\r\n * @param {any} formModule - The form module to mock\r\n */\r\nexport const mockFormModule = (formModule: any) => {\r\n executeScriptElements = formModule.executeScriptElements;\r\n loadForm = formModule.loadForm;\r\n subscribeToFormSubmitEvent = formModule.subscribeToFormSubmitEvent;\r\n};\r\n\r\n/**\r\n * Shape of the Form component rendering data.\r\n * FormId is the rendering parameter that specifies the ID of the Sitecore Form to render.\r\n */\r\nexport type FormRendering = {\r\n params: {\r\n FormId: string;\r\n styles?: string;\r\n };\r\n} & ComponentRendering;\r\n\r\n/**\r\n * A component that renders a Sitecore Form.\r\n * It fetches the form markup from the Sitecore Edge service and renders it in the component's template.\r\n */\r\n@Component({\r\n selector: 'app-form',\r\n templateUrl: './form.component.html',\r\n})\r\nexport class FormComponent implements OnInit, OnDestroy {\r\n /**\r\n * The rendering data for the component\r\n */\r\n @Input() rendering: FormRendering;\r\n\r\n hasError = false;\r\n\r\n isEditing = false;\r\n\r\n private contextSubscription: Subscription;\r\n private edgeConfig = inject<EdgeConfigToken>(EDGE_CONFIG);\r\n private platformId = inject<{ [key: string]: unknown }>(PLATFORM_ID);\r\n private elRef = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private jssState = inject(JssStateService);\r\n\r\n ngOnInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.loadForm();\r\n\r\n this.contextSubscription = this.jssState.state.subscribe(({ sitecore }) => {\r\n this.isEditing = sitecore?.context.pageState !== LayoutServicePageState.Normal;\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.contextSubscription) {\r\n this.contextSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Fetches the form markup from the Sitecore Edge service and renders it in the component's template.\r\n */\r\n async loadForm() {\r\n const { sitecoreEdgeContextId, sitecoreEdgeUrl } = this.edgeConfig;\r\n\r\n try {\r\n const content = await loadForm(\r\n sitecoreEdgeContextId,\r\n this.rendering.params.FormId,\r\n sitecoreEdgeUrl\r\n );\r\n\r\n this.elRef.nativeElement.innerHTML = content;\r\n this.elRef.nativeElement.className = this.rendering.params?.styles?.trimEnd() || '';\r\n this.elRef.nativeElement.id = this.rendering.params?.RenderingIdentifier || '';\r\n\r\n const form = this.elRef.nativeElement.querySelector('form');\r\n\r\n if (!form) {\r\n debug.form(\r\n `Form '${this.rendering.params.FormId}' was not able to render since form element was not found`\r\n );\r\n return;\r\n }\r\n\r\n executeScriptElements(this.elRef.nativeElement);\r\n\r\n if (!this.isEditing) {\r\n subscribeToFormSubmitEvent(form, this.rendering.uid);\r\n }\r\n } catch {\r\n this.hasError = true;\r\n }\r\n }\r\n}\r\n","@if (isEditing) {\r\n @if (!rendering.params.FormId) {\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 FormId rendering parameter.</p>\r\n </div>\r\n }\r\n @if (hasError) {\r\n <div class=\"sc-jss-placeholder-error\">There was a problem loading this section</div>\r\n }\r\n}\r\n","import {\r\n Directive,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n Renderer2,\r\n Type,\r\n inject,\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\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyFieldEditingComponent } from './default-empty-text-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({\r\n selector: '[scRichText]',\r\n})\r\nexport class RichTextDirective extends BaseFieldDirective implements OnChanges {\r\n @Input('scRichTextEditable') editable = true;\r\n\r\n @Input('scRichText') field: RichTextField;\r\n\r\n /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scRichTextEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyFieldEditingComponent;\r\n private templateRef = inject(TemplateRef);\r\n private renderer = inject(Renderer2);\r\n private router = inject(Router);\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable) {\r\n this.viewContainer.clear();\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\r\n this.renderMetadata(MetadataKind.Open);\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.renderMetadata(MetadataKind.Close);\r\n\r\n const field = this.field;\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 Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n Type,\r\n inject,\r\n} from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\r\nimport { DefaultEmptyFieldEditingComponent } from './default-empty-text-field-editing-placeholder.component';\r\nimport { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';\r\n\r\n@Directive({\r\n selector: '[scText]',\r\n})\r\nexport class TextDirective extends BaseFieldDirective 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 /**\r\n * Custom template to render in Pages in Metadata edit mode if field value is empty\r\n */\r\n @Input('scTextEmptyFieldEditingTemplate') emptyFieldEditingTemplate: TemplateRef<unknown>;\r\n\r\n /**\r\n * Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided\r\n */\r\n protected defaultFieldEditingComponent: Type<unknown> = DefaultEmptyFieldEditingComponent;\r\n private templateRef = inject(TemplateRef);\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.field || changes.editable || changes.encode) {\r\n this.viewContainer.clear();\r\n\r\n this.updateView();\r\n }\r\n }\r\n\r\n private updateView() {\r\n if (!this.shouldRender()) {\r\n super.renderEmpty();\r\n return;\r\n }\r\n\r\n this.renderMetadata(MetadataKind.Open);\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.renderMetadata(MetadataKind.Close);\r\n\r\n const field = this.field;\r\n let editable = this.editable;\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 { ɵisPromise as isPromise } from '@angular/core';\r\nimport { from, Observable, isObservable, of } from 'rxjs';\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 | Promise<T> | Observable<T>): Observable<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\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 router,\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, RedirectCommand, Router, UrlTree } from '@angular/router';\r\nimport { ComponentRendering } from '@sitecore-jss/sitecore-jss/layout';\r\nimport { lastValueFrom, of } from 'rxjs';\r\nimport { mergeMap, take } from 'rxjs/operators';\r\nimport { ComponentFactoryResult } from './jss-component-factory.service';\r\nimport { wrapIntoObservable } from '../utils';\r\nimport { JssCanActivateRedirectError } from './jss-can-activate-error';\r\nimport { JssCanActivate, JssCanActivateFn } from './placeholder.token';\r\n\r\n/**\r\n * @param {boolean | string | string[] | UrlTree | RedirectCommand} value\r\n * @returns instance of value\r\n */\r\nfunction isRedirectValue(\r\n value: boolean | string | string[] | UrlTree | RedirectCommand\r\n): value is string | string[] | UrlTree | RedirectCommand {\r\n return (\r\n value instanceof UrlTree ||\r\n value instanceof RedirectCommand ||\r\n typeof value === 'string' ||\r\n Array.isArray(value)\r\n );\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.bind(guard) : 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 router,\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 let message;\r\n\r\n if (value instanceof RedirectCommand) {\r\n message = value.redirectTo;\r\n } else {\r\n message = value;\r\n }\r\n\r\n throw new JssCanActivateRedirectError(\r\n `Value: '${message.toString()}' is a redirect value`,\r\n value\r\n );\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 './services/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 './services/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 './services/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 './services/jss-component-factory.service';\r\nimport { JssStateService } from './services/jss-state.service';\r\nimport { EditingScriptsComponent } from './components/editing-scripts.component';\r\nimport { FormComponent } from './components/form.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FileDirective,\r\n ImageDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n TextDirective,\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 MissingComponentComponent,\r\n HiddenRenderingComponent,\r\n EditFrameComponent,\r\n EditingScriptsComponent,\r\n FormComponent,\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 EditingScriptsComponent,\r\n FormComponent,\r\n ],\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 JssStateService,\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(s)\r\n * @param {Type<unknown> | Record<string, Type<unknown>> } value - component or map of components\r\n * @returns {ModuleWithProviders<JssModule>} module\r\n */\r\n static forChild(\r\n value: Type<unknown> | { [key: string]: Type<unknown> }\r\n ): 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: value },\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":["isPromise"],"mappings":"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"}
|