@sitecore-jss/sitecore-jss-angular 23.0.0-canary.15 → 23.0.0-canary.17
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.
|
@@ -16,7 +16,7 @@ export { ClientError, MemoryCacheClient, NativeDataFetcher, constants, debug, en
|
|
|
16
16
|
import { mapButtonToCommand } from '@sitecore-jss/sitecore-jss/editing';
|
|
17
17
|
export { DefaultEditFrameButton, DefaultEditFrameButtons, handleEditorAnchors, isEditorActive, resetEditorChromes } from '@sitecore-jss/sitecore-jss/editing';
|
|
18
18
|
export { GraphQLDictionaryService, RestDictionaryService } from '@sitecore-jss/sitecore-jss/i18n';
|
|
19
|
-
export { DefaultRetryStrategy, GraphQLRequestClient
|
|
19
|
+
export { DefaultRetryStrategy, GraphQLRequestClient } from '@sitecore-jss/sitecore-jss/graphql';
|
|
20
20
|
export { trackingApi } from '@sitecore-jss/sitecore-jss/tracking';
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -1193,11 +1193,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
1193
1193
|
type: Input
|
|
1194
1194
|
}] } });
|
|
1195
1195
|
|
|
1196
|
-
/**
|
|
1197
|
-
* Injection token for the Sitecore Edge configuration.
|
|
1198
|
-
*/
|
|
1199
|
-
const EDGE_CONFIG = new InjectionToken('Sc.edgeConfig');
|
|
1200
|
-
|
|
1201
1196
|
class BaseJssState {
|
|
1202
1197
|
sitecore;
|
|
1203
1198
|
viewBag;
|
|
@@ -1682,5 +1677,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
|
|
|
1682
1677
|
* Generated bundle index. Do not edit.
|
|
1683
1678
|
*/
|
|
1684
1679
|
|
|
1685
|
-
export { BaseJssState, ComponentNameAndType, DYNAMIC_COMPONENT, DateDirective,
|
|
1680
|
+
export { BaseJssState, ComponentNameAndType, DYNAMIC_COMPONENT, DateDirective, EditFrameComponent, FileDirective, GenericLinkDirective, HiddenRenderingComponent, ImageDirective, JssModule, JssStateService, LinkDirective, PlaceholderComponent, PlaceholderLoadingDirective, RenderComponentComponent, RenderEachDirective, RenderEmptyDirective, RichTextDirective, RouterLinkDirective, TextDirective, isRawRendering };
|
|
1686
1681
|
//# sourceMappingURL=sitecore-jss-sitecore-jss-angular.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitecore-jss-sitecore-jss-angular.mjs","sources":["../../src/components/file.directive.ts","../../src/components/base-field.directive.ts","../../src/components/image.directive.ts","../../src/components/link.directive.ts","../../src/components/router-link.directive.ts","../../src/components/generic-link.directive.ts","../../src/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/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/services/shared.token.ts","../../src/services/jss-state.service.ts","../../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 { Directive, ViewContainerRef, EmbeddedViewRef, inject } from '@angular/core';\r\nimport { RenderingField } from './rendering-field';\r\nimport { GenericFieldValue, isFieldValueEmpty } from '@sitecore-jss/sitecore-jss/layout';\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 /**\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","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\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\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 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 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.renderTemplate(attrs);\r\n }\r\n }\r\n\r\n private getImageAttrs(\r\n fieldAttrs: ImageFieldValue,\r\n parsedAttrs: { [attr: string]: unknown },\r\n imageParams: { [param: string]: string | number }\r\n ): { [attr: string]: string } | null {\r\n const combinedAttrs = {\r\n ...fieldAttrs,\r\n ...parsedAttrs,\r\n };\r\n // eslint-disable-next-line prefer-const\r\n let { src, srcSet, 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 {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { LinkField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\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 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.\r\n * The right side of the expression was added to preserve existing functionality\r\n */\r\n protected shouldRender() {\r\n return super.shouldRender() || !!(this.field?.text || this.field?.value?.text);\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 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.renderTemplate(mergedAttrs, linkText);\r\n }\r\n }\r\n\r\n private renderInlineWrapper(editableFirstPart: string, editableLastPart: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-link-wrapper';\r\n span.innerHTML = editableFirstPart + editableLastPart;\r\n\r\n // assign attributes from template to inline wrapper\r\n const attrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n Object.entries(attrs).forEach(([key, attrValue]) => this.updateAttribute(span, key, attrValue));\r\n\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n\r\n private getElementAttrs() {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n view.destroy();\r\n return {};\r\n }\r\n const attrs: { [key: string]: string } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n view.destroy();\r\n return attrs;\r\n }\r\n}\r\n","import { Directive, Input, 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 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, 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 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 { 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 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 ComponentFields,\r\n} from '@sitecore-jss/sitecore-jss/layout';\r\nimport { Observable } 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\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 #view></ng-template>\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 public isLoading = true;\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 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\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 }\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 * 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 const 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 */\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 this.rendering.placeholders![phName] = this.rendering.placeholders![placeholder];\r\n delete this.rendering.placeholders![placeholder];\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 withData.forEach((rendering) => {\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\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 { Directive, Input, OnChanges, SimpleChanges, TemplateRef, inject } from '@angular/core';\r\nimport { DateField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\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 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 return;\r\n }\r\n\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\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 { 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 { 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 {\r\n Directive,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n Renderer2,\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\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 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 return;\r\n }\r\n\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\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 { Directive, Input, OnChanges, SimpleChanges, TemplateRef, inject } from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\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 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 return;\r\n }\r\n\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\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\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 ],\r\n exports: [\r\n FileDirective,\r\n ImageDirective,\r\n DateDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n HiddenRenderingComponent,\r\n PlaceholderLoadingDirective,\r\n RichTextDirective,\r\n TextDirective,\r\n EditFrameComponent,\r\n ],\r\n})\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/base-field.directive.ts","../../src/components/image.directive.ts","../../src/components/link.directive.ts","../../src/components/router-link.directive.ts","../../src/components/generic-link.directive.ts","../../src/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/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/services/jss-state.service.ts","../../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 { Directive, ViewContainerRef, EmbeddedViewRef, inject } from '@angular/core';\r\nimport { RenderingField } from './rendering-field';\r\nimport { GenericFieldValue, isFieldValueEmpty } from '@sitecore-jss/sitecore-jss/layout';\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 /**\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","import {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\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\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 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 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.renderTemplate(attrs);\r\n }\r\n }\r\n\r\n private getImageAttrs(\r\n fieldAttrs: ImageFieldValue,\r\n parsedAttrs: { [attr: string]: unknown },\r\n imageParams: { [param: string]: string | number }\r\n ): { [attr: string]: string } | null {\r\n const combinedAttrs = {\r\n ...fieldAttrs,\r\n ...parsedAttrs,\r\n };\r\n // eslint-disable-next-line prefer-const\r\n let { src, srcSet, 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 {\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2,\r\n SimpleChanges,\r\n TemplateRef,\r\n inject,\r\n} from '@angular/core';\r\nimport { LinkField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\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 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.\r\n * The right side of the expression was added to preserve existing functionality\r\n */\r\n protected shouldRender() {\r\n return super.shouldRender() || !!(this.field?.text || this.field?.value?.text);\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 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.renderTemplate(mergedAttrs, linkText);\r\n }\r\n }\r\n\r\n private renderInlineWrapper(editableFirstPart: string, editableLastPart: string) {\r\n const span: HTMLSpanElement = this.renderer.createElement('span');\r\n span.className = 'sc-link-wrapper';\r\n span.innerHTML = editableFirstPart + editableLastPart;\r\n\r\n // assign attributes from template to inline wrapper\r\n const attrs = {\r\n ...this.getElementAttrs(),\r\n ...this.attrs,\r\n };\r\n Object.entries(attrs).forEach(([key, attrValue]) => this.updateAttribute(span, key, attrValue));\r\n\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n\r\n const parentNode = this.renderer.parentNode(this.elementRef.nativeElement);\r\n this.renderer.insertBefore(parentNode, span, this.elementRef.nativeElement);\r\n\r\n this.inlineRef = span;\r\n }\r\n\r\n private getElementAttrs() {\r\n const view = this.templateRef.createEmbeddedView(null);\r\n const element: Element = view.rootNodes[0];\r\n if (!element) {\r\n view.destroy();\r\n return {};\r\n }\r\n const attrs: { [key: string]: string } = {};\r\n for (let i = 0; i < element.attributes.length; i++) {\r\n const attr = element.attributes.item(i);\r\n if (attr) {\r\n attrs[attr.name] = attr.value;\r\n }\r\n }\r\n view.destroy();\r\n return attrs;\r\n }\r\n}\r\n","import { Directive, Input, 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 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, 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 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 { 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 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 ComponentFields,\r\n} from '@sitecore-jss/sitecore-jss/layout';\r\nimport { Observable } 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\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 #view></ng-template>\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 public isLoading = true;\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 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\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 }\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 * 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 const 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 */\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 this.rendering.placeholders![phName] = this.rendering.placeholders![placeholder];\r\n delete this.rendering.placeholders![placeholder];\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 withData.forEach((rendering) => {\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\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 { Directive, Input, OnChanges, SimpleChanges, TemplateRef, inject } from '@angular/core';\r\nimport { DateField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\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 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 return;\r\n }\r\n\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\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 { 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 {\r\n Directive,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n Renderer2,\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\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 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 return;\r\n }\r\n\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\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 { Directive, Input, OnChanges, SimpleChanges, TemplateRef, inject } from '@angular/core';\r\nimport { TextField } from './rendering-field';\r\nimport { BaseFieldDirective } from './base-field.directive';\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 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 return;\r\n }\r\n\r\n this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\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\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 ],\r\n exports: [\r\n FileDirective,\r\n ImageDirective,\r\n DateDirective,\r\n LinkDirective,\r\n RouterLinkDirective,\r\n GenericLinkDirective,\r\n RenderEachDirective,\r\n RenderEmptyDirective,\r\n RenderComponentComponent,\r\n PlaceholderComponent,\r\n HiddenRenderingComponent,\r\n PlaceholderLoadingDirective,\r\n RichTextDirective,\r\n TextDirective,\r\n EditFrameComponent,\r\n ],\r\n})\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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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { Observable } from 'rxjs';
|
|
|
9
9
|
import * as i1 from '@angular/common';
|
|
10
10
|
export { mediaApi } from '@sitecore-jss/sitecore-jss/media';
|
|
11
11
|
export { DictionaryPhrases, DictionaryService, GraphQLDictionaryService, RestDictionaryService } from '@sitecore-jss/sitecore-jss/i18n';
|
|
12
|
-
export { DefaultRetryStrategy, GraphQLClientError, GraphQLRequestClient, GraphQLRequestClientFactoryConfig, RetryStrategy
|
|
12
|
+
export { DefaultRetryStrategy, GraphQLClientError, GraphQLRequestClient, GraphQLRequestClientFactoryConfig, RetryStrategy } from '@sitecore-jss/sitecore-jss/graphql';
|
|
13
13
|
export { CacheClient, CacheOptions, ClientError, HTMLLink, HttpDataFetcher, HttpResponse, MemoryCacheClient, NativeDataFetcher, NativeDataFetcherConfig, NativeDataFetcherError, NativeDataFetcherResponse, constants, debug, enableDebug } from '@sitecore-jss/sitecore-jss';
|
|
14
14
|
export { isServer } from '@sitecore-jss/sitecore-jss/utils';
|
|
15
15
|
export { CampaignInstance, EventInstance, GoalInstance, OutcomeInstance, PageViewInstance, TrackingRequestOptions, trackingApi } from '@sitecore-jss/sitecore-jss/tracking';
|
|
@@ -354,18 +354,6 @@ declare class EditFrameComponent implements OnChanges {
|
|
|
354
354
|
static ɵcmp: i0.ɵɵComponentDeclaration<EditFrameComponent, "sc-edit-frame,[sc-edit-frame]", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; "title": { "alias": "title"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "parameters": { "alias": "parameters"; "required": false; }; "sitecore": { "alias": "sitecore"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
-
/**
|
|
358
|
-
* Shape of the Sitecore Edge configuration.
|
|
359
|
-
*/
|
|
360
|
-
type EdgeConfigToken = {
|
|
361
|
-
sitecoreEdgeUrl?: string;
|
|
362
|
-
sitecoreEdgeContextId: string;
|
|
363
|
-
};
|
|
364
|
-
/**
|
|
365
|
-
* Injection token for the Sitecore Edge configuration.
|
|
366
|
-
*/
|
|
367
|
-
declare const EDGE_CONFIG: InjectionToken<EdgeConfigToken>;
|
|
368
|
-
|
|
369
357
|
declare class BaseJssState {
|
|
370
358
|
sitecore?: LayoutServiceContextData & {
|
|
371
359
|
route: RouteData | null;
|
|
@@ -509,5 +497,5 @@ declare class JssModule {
|
|
|
509
497
|
static ɵinj: i0.ɵɵInjectorDeclaration<JssModule>;
|
|
510
498
|
}
|
|
511
499
|
|
|
512
|
-
export { BaseJssState, ComponentNameAndType, DYNAMIC_COMPONENT, DateDirective,
|
|
500
|
+
export { BaseJssState, ComponentNameAndType, DYNAMIC_COMPONENT, DateDirective, EditFrameComponent, FileDirective, GenericLinkDirective, HiddenRenderingComponent, ImageDirective, JssModule, JssStateService, LinkDirective, PlaceholderComponent, PlaceholderLoadingDirective, RenderComponentComponent, RenderEachDirective, RenderEmptyDirective, RichTextDirective, RouterLinkDirective, TextDirective, isRawRendering };
|
|
513
501
|
export type { ComponentNameAndModule, FileField, GuardInput, ImageField, ImageFieldValue, JssCanActivate, JssCanActivateFn, JssResolve, LinkField, LinkFieldValue, RenderingField, RichTextField, SxaLinkListFields, SxaTitleFields, TextField };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sitecore-jss/sitecore-jss-angular",
|
|
3
|
-
"version": "23.0.0-canary.
|
|
3
|
+
"version": "23.0.0-canary.17",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "ng-packagr -p ng-package.json",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"rxjs": "~7.8.1"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@sitecore-jss/sitecore-jss": "23.0.0-canary.
|
|
64
|
+
"@sitecore-jss/sitecore-jss": "23.0.0-canary.17"
|
|
65
65
|
},
|
|
66
66
|
"main": "dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs",
|
|
67
67
|
"module": "dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"esm2022": "dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs",
|
|
72
72
|
"fesm2022": "dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs",
|
|
73
73
|
"sideEffects": false,
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "1d50b0a46f153cea0ea93dca2d0b84dd19b9c512",
|
|
75
75
|
"files": [
|
|
76
76
|
"dist",
|
|
77
77
|
"typings",
|