{"version":3,"file":"magnolia-angular-editor.mjs","sources":["../../../projects/angular-editor/src/components/DefaultFallbackComponent/default-fallback.component.ts","../../../projects/angular-editor/src/shared/computedWithPrev.ts","../../../projects/angular-editor/src/services/editor-context.service.ts","../../../projects/angular-editor/src/components/EditableComment/comment.component.ts","../../../projects/angular-editor/src/shared/AsyncComponentLoader.ts","../../../projects/angular-editor/src/services/component-helper.service.ts","../../../projects/angular-editor/src/directives/dynamic-component-renderer.component.ts","../../../projects/angular-editor/src/services/pending-tasks.service.ts","../../../projects/angular-editor/src/components/EditableComponent/editable-component.component.ts","../../../projects/angular-editor/src/components/EditableArea/editable-area-renderer.component.ts","../../../projects/angular-editor/src/components/EditableArea/editable-area-renderer.component.html","../../../projects/angular-editor/src/components/EditableArea/editable-area.component.ts","../../../projects/angular-editor/src/components/EditableArea/editable-area.component.html","../../../projects/angular-editor/src/components/EditablePage/editable-page.component.ts","../../../projects/angular-editor/src/magnolia.module.ts","../../../projects/angular-editor/src/services/angular-editor.service.ts","../../../projects/angular-editor/src/public-api.ts","../../../projects/angular-editor/src/magnolia-angular-editor.ts"],"sourcesContent":["import { KeyValuePipe } from '@angular/common';\nimport { Component, input } from '@angular/core';\nimport { Constants } from '@magnolia/frontend-helpers-base';\n\n@Component({\n  template: `\n    <div>\n      <div>\n        <strong>\n          <em>Template not found: {{ templateId }}</em>\n        </strong>\n      </div>\n      @for (prop of data() | keyvalue; track prop.key) {\n        <div>{{ prop.key }}: {{ formatValue(prop.value) }}</div>\n      }\n      <p></p>\n    </div>\n  `,\n  standalone: true,\n  imports: [KeyValuePipe],\n})\nexport class DefaultFallbackComponent {\n  metadata = input<Record<string, unknown>>();\n  data = input<Record<string, unknown>>();\n\n  get templateId(): string {\n    return this.metadata()?.[Constants.TEMPLATE_ID_PROP] as string;\n  }\n\n  private trimIfObject(value: string): string {\n    if (value === '[object Object]') {\n      return '[object]';\n    }\n    return value;\n  }\n\n  public formatValue(value: unknown): string {\n    return this.trimIfObject('' + value);\n  }\n}\n","import { computed, CreateComputedOptions } from '@angular/core';\n\nconst computedWithPrev = <T>(\n  computation: (prev?: T | null) => T,\n  options?: CreateComputedOptions<T>\n) => {\n  let previous: T;\n  return computed(() => {\n    const newValue = computation(previous);\n    previous = newValue;\n    return newValue;\n  }, options);\n};\n\nexport default computedWithPrev;\n","import { Injectable, InjectionToken, Type, inject } from '@angular/core';\nimport {\n  ComponentProps,\n  IMagnoliaContext,\n  LoggerService,\n  MgnlTemplateAnnotations,\n} from '@magnolia/frontend-helpers-base';\nimport { DefaultFallbackComponent } from '../components/DefaultFallbackComponent/default-fallback.component';\nimport { AsyncComponentLoader } from '../shared/AsyncComponentLoader';\nimport { ComponentMappings, FallbackComponentConfig } from '../types';\n\nexport type { ComponentProps };\nexport const MAGNOLIA_CONFIG_COMPONENT_MAPPINGS =\n  new InjectionToken<ComponentMappings>('magnolia.config.component_mappings');\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class EditorContextService {\n  /** Component mapping */\n  private componentMappings: ComponentMappings = {};\n  /** Fallback component */\n  private fallbackComponent: FallbackComponentConfig;\n  /** Template annotations */\n  private templateAnnotations: MgnlTemplateAnnotations | null = null;\n  private templateAnnotationsWithSelectedVariants?: MgnlTemplateAnnotations;\n  private magnoliaContext?: IMagnoliaContext;\n\n  constructor() {\n    try {\n      const mapping = inject(MAGNOLIA_CONFIG_COMPONENT_MAPPINGS);\n      if (mapping) {\n        this.$setComponentMapping(mapping);\n      }\n    } catch (error) {\n      if ((console as unknown as Record<string, unknown>).isDebugging) {\n        LoggerService.log((error as object).toString());\n      }\n    }\n  }\n\n  public getComponentByTemplateId(\n    templateId: string\n  ): AsyncComponentLoader | Type<Record<string, unknown>> | null {\n    if (!templateId) {\n      const msg = 'Component content is missing';\n      LoggerService.error(msg);\n      return null;\n    }\n\n    const component = this.componentMappings[templateId];\n    if (!component) {\n      LoggerService.error(`Component with ID ${templateId} is not mapped.`);\n      const fallbackComponent = this.getFallbackComponent();\n      if (fallbackComponent) {\n        (\n          fallbackComponent as unknown as Record<string, unknown>\n        ).isFallbackComponent = true;\n      }\n      return fallbackComponent;\n    }\n    return component as Type<Record<string, unknown>>;\n  }\n\n  public $setComponentMapping(componentMappings: ComponentMappings): void {\n    if (!componentMappings) {\n      LoggerService.error('componentMappings cannot be null');\n      return;\n    }\n    this.componentMappings = componentMappings;\n  }\n\n  public getComponentMapping(): ComponentMappings {\n    return this.componentMappings;\n  }\n\n  public $setFallbackComponent(\n    customFallbackComponent?: FallbackComponentConfig\n  ): void {\n    if (!customFallbackComponent) {\n      return;\n    }\n    this.fallbackComponent = customFallbackComponent;\n  }\n\n  public getFallbackComponent(): Type<Record<string, unknown>> | null {\n    const fallback =\n      typeof this.fallbackComponent === 'function'\n        ? this.fallbackComponent()\n        : this.fallbackComponent;\n    return typeof fallback === 'function'\n      ? (fallback as Type<Record<string, unknown>>)\n      : fallback\n        ? (DefaultFallbackComponent as Type<unknown> as Type<\n            Record<string, unknown>\n          >)\n        : null;\n  }\n\n  public $setTemplateAnnotations(\n    templateAnnotations: MgnlTemplateAnnotations\n  ): void {\n    this.templateAnnotations = templateAnnotations;\n  }\n\n  public getTemplateAnnotations(): MgnlTemplateAnnotations | null {\n    return this.templateAnnotations;\n  }\n\n  public $setMagnoliaContext(magnoliaContext: IMagnoliaContext): void {\n    this.magnoliaContext = magnoliaContext;\n  }\n\n  public getMagnoliaContext(): IMagnoliaContext | undefined {\n    return this.magnoliaContext;\n  }\n\n  public $setTemplateAnnotationsWithSelectedVariants(\n    templateAnnotations?: MgnlTemplateAnnotations\n  ): void {\n    this.templateAnnotationsWithSelectedVariants = templateAnnotations;\n  }\n\n  public getTemplateAnnotationsWithSelectedVariants():\n    | MgnlTemplateAnnotations\n    | undefined {\n    return this.templateAnnotationsWithSelectedVariants;\n  }\n}\n","import {\n  afterNextRender,\n  Component,\n  computed,\n  effect,\n  input,\n  OnDestroy,\n  Renderer2,\n  signal,\n  ViewContainerRef,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { EditorContextService as EditorContextServiceBase } from '@magnolia/frontend-helpers-base';\nimport { EditorContextService } from '../../services/editor-context.service';\nimport { computedWithPrev } from '../../shared';\n\n@Component({\n  selector: 'mgnl-comment',\n  template: '',\n  standalone: true,\n  encapsulation: ViewEncapsulation.None,\n  host: { ngSkipHydration: 'true' }, // Comment is not rendered on the server\n})\nexport class CommentComponent implements OnDestroy {\n  annotation = input<string>();\n  alwaysRender = input<boolean>(false);\n  shouldRefresh = input<boolean>(true);\n  shouldRunOnFrameReady = input<boolean>(false);\n\n  render = computed<boolean>(\n    () =>\n      this.alwaysRender() ||\n      this.editorContext.getMagnoliaContext()?.isMagnoliaEdit ||\n      false\n  );\n  isOnBrowser = signal<boolean>(false);\n  commentNode = computedWithPrev((oldComment?: Comment | null) => {\n    if (!this.render() || !this.isOnBrowser()) {\n      return undefined;\n    }\n    const comment = this.renderer.createComment(this.annotation() as string);\n    this.renderer.insertBefore(\n      this.vcRef.element.nativeElement.parentElement,\n      comment,\n      this.vcRef.element.nativeElement\n    );\n    if (oldComment) {\n      oldComment.remove();\n    }\n    return comment;\n  });\n\n  constructor(\n    private vcRef: ViewContainerRef,\n    private editorContext: EditorContextService,\n    private renderer: Renderer2\n  ) {\n    afterNextRender(() => {\n      this.isOnBrowser.set(true);\n    });\n    effect(() => {\n      if (!this.commentNode()) {\n        return;\n      }\n      if (this.shouldRefresh()) {\n        EditorContextServiceBase.refresh();\n        if (this.shouldRunOnFrameReady()) {\n          EditorContextServiceBase.onFrameReady();\n        }\n      }\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.commentNode()?.remove();\n  }\n}\n","import { Type } from '@angular/core';\n\nexport class AsyncComponentLoader {\n  constructor(private loadFunc: () => Promise<Type<unknown>>) {}\n\n  load() {\n    return this.loadFunc();\n  }\n}\n","import {\n  ComponentRef,\n  Injectable,\n  reflectComponentType,\n  Type,\n} from '@angular/core';\nimport {\n  Constants,\n  LoggerService,\n  MgnlContent,\n} from '@magnolia/frontend-helpers-base';\nimport { AsyncComponentLoader } from '../shared/AsyncComponentLoader';\nimport { EditorContextService } from './editor-context.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ComponentHelperService {\n  constructor(private editorContext: EditorContextService) {}\n\n  async getComponentClass(\n    componentContent: MgnlContent\n  ): Promise<Type<Record<string, unknown>> | undefined> {\n    const componentMappings = this.editorContext.getComponentMapping();\n    const emptyComponent = undefined;\n    if (!componentContent) {\n      const errorMsg = `Component content is null or undefined`;\n      LoggerService.error(errorMsg);\n      return emptyComponent;\n    }\n\n    if (!componentContent[Constants.TEMPLATE_ID_PROP]) {\n      const errorMsg = `Component content is missing`;\n      LoggerService.error(errorMsg);\n      return emptyComponent;\n    }\n\n    if (!componentMappings) {\n      const errorMsg = `Component mappings is null or undefined`;\n      LoggerService.error(errorMsg);\n      return emptyComponent;\n    }\n\n    const componentClassLoader = this.editorContext.getComponentByTemplateId(\n      componentContent[Constants.TEMPLATE_ID_PROP] as string\n    );\n    if (componentClassLoader instanceof AsyncComponentLoader) {\n      return (await componentClassLoader.load()) as Type<\n        Record<string, unknown>\n      >;\n    } else {\n      return componentClassLoader || undefined;\n    }\n  }\n\n  public setComponentInstanceProperties(\n    componentRef: ComponentRef<unknown>,\n    props: Record<string, unknown>\n  ): void {\n    const mirror = reflectComponentType(componentRef.componentType);\n    Object.entries(props).map(([key, value]) => {\n      if (mirror?.inputs.some(input => input.propName === key)) {\n        componentRef.setInput(key, value);\n      } else {\n        const instance = componentRef.instance as Record<string, unknown>;\n        instance[key] = value;\n      }\n    });\n  }\n\n  getHtmlAttributes(\n    element: HTMLElement,\n    excludes: string[] = []\n  ): Record<string, string> {\n    return Array.from(element.attributes).reduce(\n      (acc, attr) => {\n        if (\n          this.isExcluded(attr.name, excludes) ||\n          attr.name.startsWith('ng-reflect-')\n        ) {\n          return acc;\n        }\n        acc[attr.name] = attr.value;\n        return acc;\n      },\n      {} as Record<string, string>\n    );\n  }\n\n  public getAreaComponents(areaContent: MgnlContent): MgnlContent[] {\n    const results: MgnlContent[] = [];\n\n    if (areaContent) {\n      const components = areaContent['@nodes'];\n      components?.forEach(nodeName => {\n        const value = areaContent[nodeName];\n        if (\n          value &&\n          typeof value === 'object' &&\n          '@nodeType' in value &&\n          value['@nodeType'] === 'mgnl:component'\n        ) {\n          results.push(value as MgnlContent);\n        }\n      });\n    }\n    return results;\n  }\n\n  private isExcluded(str: string, excludesRegex: string[]): boolean {\n    return excludesRegex.some(\n      regex => regex == str || new RegExp(regex).test(str)\n    );\n  }\n}\n","import {\n  ComponentRef,\n  DestroyRef,\n  Directive,\n  Renderer2,\n  Type,\n  ViewContainerRef,\n  effect,\n  inject,\n  input,\n} from '@angular/core';\nimport { ComponentHelperService } from '../services/component-helper.service';\n@Directive({\n  selector: '[dynamic-component-renderer]',\n  standalone: true,\n})\nexport class DynamicComponentRendererDirective {\n  constructor(\n    private vcRef: ViewContainerRef,\n    private componentHelperService: ComponentHelperService,\n    private renderer: Renderer2\n  ) {\n    const destroyRef = inject(DestroyRef);\n    destroyRef.onDestroy(() => {\n      this.onDestroy();\n    });\n    effect(() => {\n      this.loadComponent();\n    });\n  }\n\n  componentClass = input<Type<unknown>>();\n  props = input<Record<string, unknown>>();\n  attrs = input<Record<string, string>>();\n\n  private componentRef?: ComponentRef<unknown>;\n\n  onDestroy(): void {\n    this.componentRef?.destroy();\n    this.componentRef = undefined;\n  }\n\n  private loadComponent() {\n    // Get the view container and set content\n    this.vcRef.clear();\n    if (!this.componentClass()) {\n      return;\n    }\n    this.componentRef = this.vcRef.createComponent(\n      this.componentClass() as Type<unknown>\n    );\n    const attrs = this.attrs() || {};\n    const htmlElement: HTMLElement = this.componentRef.location.nativeElement;\n    const childElements: HTMLElement[] = Array.from(\n      htmlElement.children\n    ) as HTMLElement[];\n\n    const inheritChild: HTMLElement =\n      childElements.find(element => element.hasAttribute('bind-attrs')) ||\n      (htmlElement.firstChild as HTMLElement);\n    Object.entries(attrs).forEach(([key, value]) => {\n      this.renderer.setAttribute(inheritChild, key, value);\n    });\n    this.componentHelperService.setComponentInstanceProperties(\n      this.componentRef,\n      this.props() || {}\n    );\n  }\n}\n","import * as angularCore from '@angular/core';\nimport { Injectable, Type, inject } from '@angular/core';\n\n// TODO: remove when Angular 18 is no longer supported\n// Angular 18 and older versions of Angular use different names for the pending tasks API\n// so we need to dynamically get the correct type for the pending tasks API. For Angular 19 and newer\n// versions we can just use the PendingTasks type, thus we can remove this function and TPendingTasks type.\ntype TPendingTasks = {\n  add(): () => void;\n  run?: <T>(fn: () => Promise<T>) => Promise<T>;\n};\n\nfunction getPendingTasks(): Type<TPendingTasks> | undefined {\n  const aC = angularCore as Record<string, unknown>;\n  const _pendingTasks =\n    aC.PendingTasks || // Angular 19\n    aC.ExperimentalPendingTasks; // Angular 18\n  return _pendingTasks as Type<TPendingTasks> | undefined;\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PendingTasksService {\n  private pendingTasks: TPendingTasks;\n  constructor() {\n    const typeT = getPendingTasks();\n    if (typeT) {\n      this.pendingTasks = inject(typeT);\n    }\n  }\n  add(): () => void {\n    return this.pendingTasks.add();\n  }\n  run<T>(fn: () => Promise<T>): Promise<T> {\n    if (this.pendingTasks.run) {\n      return this.pendingTasks.run(fn);\n    } else {\n      const p = this.add();\n      return fn().finally(p);\n    }\n  }\n}\n","import {\n  Component,\n  computed,\n  effect,\n  ElementRef,\n  input,\n  signal,\n  Type,\n  ViewEncapsulation,\n} from '@angular/core';\nimport {\n  Constants,\n  ContentRendererService,\n  MgnlContent,\n  PersonalizationService,\n  TemplateAnnotationsService,\n} from '@magnolia/frontend-helpers-base';\nimport { DynamicComponentRendererDirective } from '../../directives/dynamic-component-renderer.component';\nimport { ComponentHelperService } from '../../services/component-helper.service';\nimport { EditorContextService } from '../../services/editor-context.service';\nimport { PendingTasksService } from '../../services/pending-tasks.service';\nimport { CommentComponent } from '../EditableComment/comment.component';\n\n@Component({\n  selector: 'editable-component',\n  template: `\n    @if (annotation()) {\n      <mgnl-comment [annotation]=\"annotation()\"></mgnl-comment>\n    }\n    <ng-container\n      dynamic-component-renderer\n      [componentClass]=\"componentClass()\"\n      [props]=\"props()\"\n      [attrs]=\"attrs()\"\n    ></ng-container>\n    @if (annotation()) {\n      <mgnl-comment [annotation]=\"endComment\"></mgnl-comment>\n    }\n  `,\n  standalone: true,\n  encapsulation: ViewEncapsulation.None,\n  imports: [CommentComponent, DynamicComponentRendererDirective],\n})\nexport class EditableComponent {\n  content = input.required<MgnlContent>();\n  index = input<number>(0);\n\n  componentClass = signal<Type<Record<string, unknown>> | undefined>(undefined);\n  props = computed<Record<string, unknown>>(() =>\n    ContentRendererService.buildComponentProperties(\n      this.renderingContent() as MgnlContent,\n      undefined,\n      this.index() || 0,\n      false\n    )\n  );\n  templateAnnotations = computed(() =>\n    this.editorContext.getTemplateAnnotationsWithSelectedVariants()\n  );\n  annotation = computed(() => {\n    const templateId = this.content ? this.content()['@path'] : undefined;\n    if (templateId) {\n      return this.templateAnnotations()?.[templateId];\n    }\n    return;\n  });\n  attrs = computed<Record<string, string>>(() =>\n    this.componentHelperService.getHtmlAttributes(this.elementRef.nativeElement)\n  );\n\n  constructor(\n    private editorContext: EditorContextService,\n    private componentHelperService: ComponentHelperService,\n    private pendingTasksService: PendingTasksService,\n    private elementRef: ElementRef\n  ) {\n    effect(() => {\n      this.pendingTasksService.run(async () => {\n        const componentRef =\n          await this.componentHelperService.getComponentClass(\n            this.renderingContent() as MgnlContent\n          );\n        this.componentClass.set(componentRef);\n      });\n    });\n  }\n\n  renderingContent = computed<MgnlContent | null>(() => {\n    const templateAnnotations = this.templateAnnotations() || {};\n    const variantContent = PersonalizationService.getSelectedVariant(\n      this.content(),\n      templateAnnotations\n    );\n    return TemplateAnnotationsService.generateMissingAreas(\n      variantContent,\n      templateAnnotations\n    ) as MgnlContent;\n  });\n\n  get endComment() {\n    return Constants.END_COMPONENT_COMMENT;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  computed,\n  Directive,\n  effect,\n  ElementRef,\n  inject,\n  input,\n  TemplateRef,\n  viewChildren,\n} from '@angular/core';\n\n@Directive({\n  selector: '[elementType]',\n  standalone: true,\n})\nexport class ElementTypeDirective {\n  elementType = input<string>();\n  readonly templateRef = inject(TemplateRef);\n}\n\n@Component({\n  selector: 'editable-area-renderer',\n  templateUrl: './editable-area-renderer.component.html',\n  imports: [CommonModule, ElementTypeDirective],\n  standalone: true,\n})\nexport class EditableAreaRenderer {\n  constructor(private elementRef: ElementRef) {\n    this.init();\n  }\n\n  elementType = input<string>('div');\n  attrs = input<Record<string, string>>();\n\n  templateRefs = viewChildren(ElementTypeDirective);\n  templateRef = computed<TemplateRef<unknown> | null>(\n    () =>\n      this.templateRefs().find(ref => ref.elementType() === this.elementType())\n        ?.templateRef || null\n  );\n\n  private init() {\n    effect(() => {\n      const element: Element = this.elementRef.nativeElement;\n      const wrapper: HTMLElement | null = element.querySelector(\n        this.elementType() || 'div'\n      );\n      if (wrapper) {\n        this.setAttrs(wrapper);\n      }\n    });\n  }\n\n  setAttrs(element: Element) {\n    Object.entries(this.attrs() || {}).forEach(([key, value]) => {\n      element.setAttribute(key, value);\n    });\n  }\n}\n","<ng-container *ngTemplateOutlet=\"templateRef()\"> </ng-container>\n\n<ng-template #contentProjection>\n  <ng-content></ng-content>\n</ng-template>\n<ng-template [elementType]=\"'ul'\" #templateRefUl>\n  <ul>\n    <ng-container *ngTemplateOutlet=\"contentProjection\"></ng-container>\n  </ul>\n</ng-template>\n<ng-template [elementType]=\"'ol'\" #templateRefOl>\n  <ol>\n    <ng-container *ngTemplateOutlet=\"contentProjection\"></ng-container>\n  </ol>\n</ng-template>\n<ng-template [elementType]=\"'section'\" #templateRefSection>\n  <section>\n    <ng-container *ngTemplateOutlet=\"contentProjection\"></ng-container>\n  </section>\n</ng-template>\n<ng-template [elementType]=\"'div'\" #templateRefDiv>\n  <div>\n    <ng-container *ngTemplateOutlet=\"contentProjection\"></ng-container>\n  </div>\n</ng-template>\n<ng-template [elementType]=\"'p'\" #templateRefP>\n  <p>\n    <ng-container *ngTemplateOutlet=\"contentProjection\"></ng-container>\n  </p>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  computed,\n  ElementRef,\n  input,\n  TemplateRef,\n  viewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { Constants, MgnlContent } from '@magnolia/frontend-helpers-base';\nimport { ComponentHelperService } from '../../services/component-helper.service';\nimport { EditorContextService } from '../../services/editor-context.service';\nimport { CommentComponent } from '../EditableComment/comment.component';\nimport { EditableComponent } from '../EditableComponent/editable-component.component';\nimport { EditableAreaRenderer } from './editable-area-renderer.component';\n\n@Component({\n  selector: 'editable-area, [editable-area]',\n  templateUrl: './editable-area.component.html',\n  standalone: true,\n  encapsulation: ViewEncapsulation.None,\n  imports: [\n    CommonModule,\n    CommentComponent,\n    EditableComponent,\n    EditableAreaRenderer,\n  ],\n})\nexport class EditableArea {\n  constructor(\n    public editorContext: EditorContextService,\n    public elementRef: ElementRef,\n    public componentHelperService: ComponentHelperService\n  ) {}\n\n  content = input.required<MgnlContent>();\n  customView = input<TemplateRef<unknown>>();\n  /**\n   * Supported types: `ul`, `ol`, `section`, `div`, `p`\n   */\n  elementType = input<string>('div');\n  isDirective = computed(() => {\n    return this.elementRef.nativeElement.hasAttribute('editable-area');\n  });\n\n  components = computed<MgnlContent[]>(() => {\n    return this.componentHelperService.getAreaComponents(this.content());\n  });\n  areaContext = computed<Record<string, unknown>>(() => {\n    return {\n      $implicit: this.content(),\n      components: this.components(),\n    };\n  });\n  attrs = computed<Record<string, string>>(() =>\n    this.componentHelperService.getHtmlAttributes(this.elementRef.nativeElement)\n  );\n  customViewContent =\n    viewChild.required<TemplateRef<unknown>>('customViewContent');\n  contentProjection =\n    viewChild.required<TemplateRef<unknown>>('contentProjection');\n  defaultView = viewChild.required<TemplateRef<unknown>>('defaultView');\n\n  templateRef = computed(() => {\n    if (this.customView()) {\n      return this.customViewContent();\n    }\n    const view = this.contentProjection().createEmbeddedView({});\n    if (view.rootNodes.length > 0) {\n      return this.contentProjection();\n    }\n    return this.defaultView();\n  });\n\n  annotation = computed(() => {\n    const templateId = this.content() ? this.content()['@path'] : undefined;\n    if (templateId) {\n      return this.editorContext.getTemplateAnnotationsWithSelectedVariants()?.[\n        templateId\n      ];\n    }\n    return;\n  });\n\n  get endComment() {\n    return Constants.END_AREA_COMMENT;\n  }\n}\n","@if (annotation()) {\n  <mgnl-comment [annotation]=\"annotation()\"></mgnl-comment>\n}\n@if (isDirective()) {\n  <ng-container [ngTemplateOutlet]=\"templateRef()\"> </ng-container>\n} @else {\n  <editable-area-renderer [elementType]=\"elementType()\" [attrs]=\"attrs()\">\n    <ng-container [ngTemplateOutlet]=\"templateRef()\"> </ng-container>\n  </editable-area-renderer>\n}\n@if (annotation()) {\n  <mgnl-comment [annotation]=\"endComment\"></mgnl-comment>\n}\n<ng-template #customViewContent>\n  <ng-container\n    *ngTemplateOutlet=\"customView() || null; context: areaContext()\"\n  ></ng-container>\n</ng-template>\n\n<ng-template #contentProjection>\n  <ng-content></ng-content>\n</ng-template>\n\n<ng-template #defaultView>\n  @for (component of components(); track component['@path']; let idx = $index) {\n    <editable-component\n      [content]=\"component\"\n      [index]=\"idx\"\n    ></editable-component>\n  }\n</ng-template>\n","import {\n  Component,\n  ElementRef,\n  Type,\n  ViewEncapsulation,\n  afterNextRender,\n  computed,\n  effect,\n  input,\n  signal,\n} from '@angular/core';\nimport {\n  ContentRendererService,\n  IMagnoliaContext,\n  MgnlContent,\n  MgnlTemplateAnnotations,\n  PageEditorBridge,\n  PersonalizationService,\n} from '@magnolia/frontend-helpers-base';\nimport { DynamicComponentRendererDirective } from '../../directives/dynamic-component-renderer.component';\nimport { ComponentHelperService } from '../../services/component-helper.service';\nimport { EditorContextService } from '../../services/editor-context.service';\nimport { PendingTasksService } from '../../services/pending-tasks.service';\nimport { MagnoliaConfig } from '../../types';\nimport { CommentComponent } from '../EditableComment/comment.component';\n\n@Component({\n  selector: 'editable-page',\n  template: `\n    @if (annotation()) {\n      <mgnl-comment\n        [alwaysRender]=\"!!magnoliaContext()?.isMagnolia\"\n        [shouldRunOnFrameReady]=\"true\"\n        [shouldRefresh]=\"true\"\n        [annotation]=\"annotation()\"\n      ></mgnl-comment>\n    }\n    <ng-container\n      dynamic-component-renderer\n      [componentClass]=\"componentClass()\"\n      [props]=\"props()\"\n      [attrs]=\"attrs()\"\n    ></ng-container>\n  `,\n  standalone: true,\n  encapsulation: ViewEncapsulation.None,\n  imports: [CommentComponent, DynamicComponentRendererDirective],\n})\nexport class EditablePage {\n  constructor(\n    private editorContext: EditorContextService,\n    private componentHelperService: ComponentHelperService,\n    private pendingTasksService: PendingTasksService,\n    private elementRef: ElementRef\n  ) {\n    this.init();\n  }\n  content = input.required<MgnlContent>();\n  magnoliaContext = input<IMagnoliaContext>();\n  templateAnnotations = input<MgnlTemplateAnnotations | null>();\n  config = input.required<MagnoliaConfig>();\n\n  listeners: { [key: string]: (() => void)[] } = {};\n  private renderingData = computed(() => {\n    const selectedComponentVariants =\n      this.magnoliaContext()?.searchParams?.['selectedComponentVariants'];\n    return PersonalizationService.getRenderContent(\n      this.content(),\n      this.templateAnnotations(),\n      JSON.parse(selectedComponentVariants || '{}')\n    );\n  });\n  renderingContent = computed<MgnlContent | null | undefined>(\n    () => this.renderingData().content\n  );\n  renderingTemplateAnnotations = computed<\n    MgnlTemplateAnnotations | null | undefined\n  >(() => {\n    this.editorContext.$setTemplateAnnotationsWithSelectedVariants(\n      this.renderingData().templateAnnotations || undefined\n    );\n    return this.renderingData().templateAnnotations;\n  });\n  componentClass = signal<Type<unknown> | undefined>(undefined);\n  props = computed<Record<string, unknown> | undefined>(() => {\n    return ContentRendererService.buildComponentProperties(\n      this.renderingContent() as MgnlContent,\n      undefined,\n      0,\n      false\n    );\n  });\n  attrs = computed<Record<string, string> | undefined>(() => {\n    return this.componentHelperService.getHtmlAttributes(\n      this.elementRef.nativeElement\n    );\n  });\n  annotation = computed<string | undefined>(() => {\n    const path = this.content()['@path'] || undefined;\n    if (path) {\n      return this.renderingTemplateAnnotations()?.[path];\n    }\n    return;\n  });\n\n  private init() {\n    effect(() => {\n      this.editorContext.$setComponentMapping(this.config().componentMappings);\n      this.editorContext.$setFallbackComponent(this.config().fallbackComponent);\n    });\n    effect(() => {\n      if (this.renderingContent()) {\n        this.pendingTasksService.run(async () => {\n          const componentRef =\n            await this.componentHelperService.getComponentClass(\n              this.renderingContent() as MgnlContent\n            );\n          this.componentClass.set(componentRef);\n        });\n      }\n      if (this.magnoliaContext()) {\n        this.editorContext.$setMagnoliaContext(\n          this.magnoliaContext() as IMagnoliaContext\n        );\n      }\n    });\n    afterNextRender(() => {\n      if (this.magnoliaContext()?.isMagnoliaEdit) {\n        PageEditorBridge.initialVariantsHandler(this.listeners);\n        PageEditorBridge.init(this.listeners);\n      }\n    });\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// Services\nimport { EditorContextService } from './services/editor-context.service';\n// Components\nimport { DefaultFallbackComponent } from './components/DefaultFallbackComponent/default-fallback.component';\nimport { EditableArea } from './components/EditableArea/editable-area.component';\nimport { CommentComponent } from './components/EditableComment/comment.component';\nimport { EditableComponent } from './components/EditableComponent/editable-component.component';\nimport { EditablePage } from './components/EditablePage/editable-page.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    DefaultFallbackComponent,\n    EditablePage,\n    EditableComponent,\n    EditableArea,\n    CommentComponent,\n  ],\n  providers: [EditorContextService],\n  exports: [\n    DefaultFallbackComponent,\n    EditableArea,\n    EditableComponent,\n    EditablePage,\n    CommentComponent,\n  ],\n})\nexport class MagnoliaModule {}\n","// @deprecated use component.service instead\n\nimport {\n  ComponentRef,\n  Injectable,\n  reflectComponentType,\n  Type,\n} from '@angular/core';\nimport {\n  ComponentProps,\n  Constants,\n  ContentRendererService,\n  LoggerService,\n  MgnlContent,\n} from '@magnolia/frontend-helpers-base';\nimport { AsyncComponentLoader } from '../shared/AsyncComponentLoader';\nimport { EditorContextService } from './editor-context.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class AngularEditorService {\n  constructor(private editorContext: EditorContextService) {\n    LoggerService.warn(\n      'This class is deprecated. Use ComponentHelperService instead.'\n    );\n  }\n\n  async getComponentClass(\n    content: MgnlContent\n  ): Promise<Type<Record<string, unknown>> | undefined> {\n    if (!content || !content[Constants.TEMPLATE_ID_PROP]) {\n      return undefined;\n    }\n    const componentClassLoader = this.editorContext.getComponentByTemplateId(\n      content[Constants.TEMPLATE_ID_PROP] as string\n    );\n    if (componentClassLoader instanceof AsyncComponentLoader) {\n      return (await componentClassLoader.load()) as Type<\n        Record<string, unknown>\n      >;\n    } else {\n      return componentClassLoader || undefined;\n    }\n  }\n\n  // @deprecated use ContentRendererService.buildComponentProperties directly\n  public getComponentProperties(\n    componentContent: MgnlContent,\n    index: number,\n    isFallbackComponent: boolean\n  ): ComponentProps {\n    return ContentRendererService.buildComponentProperties(\n      componentContent,\n      undefined,\n      index,\n      isFallbackComponent\n    );\n  }\n\n  public setComponentInstanceProperties(\n    componentRef: ComponentRef<unknown>,\n    props: Record<string, unknown>\n  ): void {\n    const mirror = reflectComponentType(componentRef.componentType);\n    Object.entries(props).map(([key, value]) => {\n      if (mirror?.inputs.some(input => input.propName === key)) {\n        componentRef.setInput(key, value);\n      } else {\n        const instance = componentRef.instance as Record<string, unknown>;\n        instance[key] = value;\n      }\n    });\n  }\n\n  getHtmlAttributes(\n    element: HTMLElement,\n    excludes: string[] = []\n  ): Record<string, string> {\n    return Array.from(element.attributes).reduce(\n      (acc, attr) => {\n        if (\n          this.isExcluded(attr.name, excludes) ||\n          attr.name.startsWith('ng-reflect-')\n        ) {\n          return acc;\n        }\n        acc[attr.name] = attr.value;\n        return acc;\n      },\n      {} as Record<string, string>\n    );\n  }\n\n  public getAreaComponents(areaContent: MgnlContent): MgnlContent[] {\n    const results: MgnlContent[] = [];\n\n    if (areaContent) {\n      const components = areaContent['@nodes'];\n      components?.forEach(nodeName => {\n        const value = areaContent[nodeName];\n        if (\n          value &&\n          typeof value === 'object' &&\n          '@nodeType' in value &&\n          value['@nodeType'] === 'mgnl:component'\n        ) {\n          results.push(value as MgnlContent);\n        }\n      });\n    }\n    return results;\n  }\n\n  private isExcluded(str: string, excludesRegex: string[]): boolean {\n    return excludesRegex.some(\n      regex => regex == str || new RegExp(regex).test(str)\n    );\n  }\n}\n","/*\n * Public API Surface of angular-editor\n */\n\nexport * from './components/DefaultFallbackComponent/default-fallback.component';\nexport * from './components/EditableArea/editable-area.component';\nexport * from './components/EditableComment/comment.component';\nexport * from './components/EditableComponent/editable-component.component';\nexport * from './components/EditablePage/editable-page.component';\nexport * from './directives/dynamic-component-renderer.component';\nexport * from './magnolia.module';\nexport * from './services/editor-context.service';\nexport * from './services/pending-tasks.service';\nexport * from './shared/AsyncComponentLoader';\n\nexport type {\n  ComponentMappings,\n  FallbackComponentConfig,\n  MagnoliaConfig,\n} from './types';\n\n// @deprecated use types directly from @magnolia/frontend-helpers-base\nexport type {\n  IMagnoliaContext,\n  MgnlContent,\n  MgnlTemplateAnnotations,\n} from '@magnolia/frontend-helpers-base';\n\n// @deprecated\nexport * from './services/angular-editor.service';\n\n// @deprecated only export TEMPLATE_ID_PROP for backward compatible\nimport { Constants } from '@magnolia/frontend-helpers-base';\nexport const constants = { TEMPLATE_ID_PROP: Constants.TEMPLATE_ID_PROP };\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EditorContextServiceBase","i1.EditorContextService","i1.ComponentHelperService","angularCore","i2.ComponentHelperService","i3.PendingTasksService"],"mappings":"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"}