{"version":3,"file":"builder.io-angular.mjs","sources":["../../src/app/modules/builder/polyfills/custom-elements-es5-adapter.ts","../../src/express.tokens.ts","../../src/app/modules/builder/services/builder.service.ts","../../src/app/modules/builder/components/builder-component/builder-component.service.ts","../../src/app/modules/builder/components/builder-content/builder-content.component.ts","../../src/app/modules/builder/components/builder-content/builder-content.component.html","../../src/app/modules/builder/services/builder-content.service.ts","../../src/app/modules/builder/directives/builder-content.directive.ts","../../src/app/modules/builder/components/builder-blocks/builder-blocks.component.ts","../../src/app/modules/builder/components/builder-blocks/builder-blocks.component.html","../../src/app/modules/builder/components/builder-blocks-outlet/builder-blocks-outlet.component.ts","../../src/app/modules/builder/components/builder-blocks-outlet/builder-blocks-outlet.component.html","../../src/app/modules/builder/utils/constants.ts","../../src/app/modules/builder/components/builder-component/builder-component.component.ts","../../src/app/modules/builder/components/builder-component/builder-component.component.html","../../src/app/modules/builder/builder.module.ts","../../src/app/modules/builder/decorators/builder-component.dectorator.ts","../../src/builder.io-angular.ts"],"sourcesContent":["// Modified from @webcomponentsjs but fixed so uglifyjs can run (remove `const` keyword)\n// Original source: https://github.com/webcomponents/custom-elements/blob/master/src/native-shim.js\n// Issue: https://github.com/webcomponents/webcomponentsjs/issues/749\nif (typeof window !== 'undefined') {\n  const anyWindow = window as any;\n  if (\n    !(\n      undefined === anyWindow.Reflect ||\n      undefined === anyWindow.customElements ||\n      anyWindow.customElements.polyfillWrapFlushCallback\n    )\n  ) {\n    try {\n      const ModifiedHTMLElement = HTMLElement;\n      // https://github.com/webcomponents/custom-elements/blame/c078ea4201c82551462ccace1ae91e22b576beb8/src/native-shim.js#L37\n      const wrapperForTheName = {\n        HTMLElement: function HTMLElement() {\n          return Reflect.construct(ModifiedHTMLElement, [], this.constructor);\n        },\n      };\n      anyWindow.HTMLElement = wrapperForTheName['HTMLElement'];\n      HTMLElement.prototype = ModifiedHTMLElement.prototype;\n      HTMLElement.prototype.constructor = HTMLElement;\n      Object.setPrototypeOf(HTMLElement, ModifiedHTMLElement);\n    } catch (e) {}\n  }\n}\n","\nimport { InjectionToken } from '@angular/core';\nimport { Request, Response } from 'express';\n\nexport const REQUEST = new InjectionToken<Request>('REQUEST');\nexport const RESPONSE = new InjectionToken<Response>('RESPONSE');\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { RESPONSE, REQUEST } from '../../../../express.tokens';\nimport { Builder } from '@builder.io/sdk';\nimport { HttpClient } from '@angular/common/http';\nimport { Request, Response } from 'express';\nimport { BuilderContentComponent } from '../components/builder-content/builder-content.component';\n\nexport const BUILDER_API_KEY = 'BUILDER_API_KEY'; // new InjectionToken<string>('BUILDER_API_KEY');\nexport const EXPRESS_REQUEST = 'EXPRESS_REQUEST'; // new InjectionToken<Request>('EXPRESS_REQUEST');\nexport const EXPRESS_RESPONSE = 'EXPRESS_RESPONSE'; // new InjectionToken<Response>('EXPRESS_RESPONSE');\n\n@Injectable()\nexport class BuilderService extends Builder {\n  static componentInstances: { [modelName: string]: BuilderContentComponent | undefined } = {};\n\n  autoTrack = !this.isDevelopment;\n\n  // TODO: set this for QA\n  private get isDevelopment() {\n    // Automatic determining of development environment\n    return (\n      Builder.isIframe ||\n      (Builder.isBrowser && (location.hostname === 'localhost' || location.port !== ''))\n    );\n  }\n\n  constructor(\n    @Optional()\n    @Inject(BUILDER_API_KEY)\n    apiKey: string,\n    @Optional()\n    @Inject(EXPRESS_REQUEST)\n    private expressRequest: Request,\n    @Optional()\n    @Inject(REQUEST)\n    private expressEngineRequest: Request,\n    @Optional()\n    @Inject(EXPRESS_RESPONSE)\n    private expressResponse: Response,\n    @Optional()\n    @Inject(RESPONSE)\n    private expressEngineResponse: Response,\n    @Optional() private http: HttpClient\n  ) {\n    super(apiKey, expressEngineRequest || expressRequest, expressEngineResponse || expressResponse);\n\n    if (this.expressEngineRequest) {\n      this.expressRequest = this.expressEngineRequest;\n    }\n\n    if (this.expressRequest) {\n      this.request = this.expressRequest;\n    }\n\n    if (this.expressEngineResponse) {\n      this.expressResponse = this.expressEngineResponse;\n    }\n\n    if (this.expressResponse) {\n      this.response = this.expressResponse;\n    }\n\n    if (apiKey) {\n      this.apiVersion = 'v3';\n      this.init(apiKey);\n    }\n\n    if (!Builder.isBrowser && !this.request) {\n      console.warn(\n        'No express request set! Builder cannot target appropriately without this, ' +\n          'please contact support@builder.io to learn how to set this as required'\n      );\n    }\n  }\n\n  // (override)\n  requestUrl(url: string) {\n    if (this.http) {\n      return this.http.get(url).toPromise();\n    } else {\n      return super.requestUrl(url);\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BuilderContentComponent } from '../builder-content/builder-content.component';\nimport { BuilderContentDirective } from '../../directives/builder-content.directive';\n\n@Injectable()\nexport class BuilderComponentService {\n  contentComponentInstance: BuilderContentComponent | null = null;\n  contentDirectiveInstance: BuilderContentDirective | null = null;\n}\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  OnDestroy,\n  OnInit,\n  Output,\n  Input,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { Builder, GetContentOptions } from '@builder.io/sdk';\nimport { BuilderService } from '../../services/builder.service';\nimport { BuilderComponentService } from '../builder-component/builder-component.service';\n\n@Component({\n  selector: 'builder-content',\n  templateUrl: './builder-content.component.html',\n  styleUrls: ['./builder-content.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BuilderContentComponent implements OnInit, OnDestroy {\n  constructor(\n    private element: ElementRef,\n    private builderComponentService: BuilderComponentService\n  ) {\n    builderComponentService.contentComponentInstance = this;\n  }\n\n  modelName?: string;\n\n  @Input() useHtml = false;\n  @Input() data: any = {};\n  @Input() hydrate = true;\n  @Input() prerender = true;\n\n  @Input() set content(content) {\n    const currentContent = this._content;\n    this._content = content;\n    const { contentDirectiveInstance } = this.builderComponentService;\n    if (!currentContent && content && contentDirectiveInstance) {\n      if (!contentDirectiveInstance.requesting) {\n        contentDirectiveInstance.reset();\n      }\n    }\n  }\n  get content() {\n    return this._content;\n  }\n  private _content: any;\n\n  findAndRunScripts() {\n    if (!Builder.isBrowser) {\n      return;\n    }\n    const el = this.element.nativeElement;\n\n    if (el) {\n      const scripts = el.getElementsByTagName('script');\n      for (let i = 0; i < scripts.length; i++) {\n        const script = scripts[i];\n        if (script.src) {\n          const newScript = document.createElement('script');\n          newScript.async = true;\n          newScript.src = script.src;\n          document.head.appendChild(newScript);\n        } else {\n          try {\n            new Function(script.innerText)();\n          } catch (error) {\n            console.warn('Builder custom code component error:', error);\n          }\n        }\n      }\n    }\n  }\n\n  @Input() options: GetContentOptions | null = null;\n\n  @Output() contentLoad = new EventEmitter<any>();\n  @Output() contentError = new EventEmitter<any>();\n\n  get editingMode() {\n    return Builder.editingPage;\n  }\n\n  ngOnInit() {\n    const modelName =\n      this.element.nativeElement &&\n      (this.element.nativeElement as HTMLElement).getAttribute &&\n      (this.element.nativeElement as HTMLElement).getAttribute('builder-model');\n    if (modelName) {\n      // FIXME: doesn't work on server!\n      this.modelName = modelName;\n      BuilderService.componentInstances[modelName] = this;\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.modelName) {\n      if (BuilderService.componentInstances[this.modelName] === this) {\n        delete BuilderService.componentInstances[this.modelName];\n      }\n    }\n  }\n}\n","<ng-content> </ng-content>\n","import { Injectable } from '@angular/core';\nimport { BuilderContentComponent } from '../components/builder-content/builder-content.component';\nimport { BuilderContentDirective } from '../directives/builder-content.directive';\n\n@Injectable()\nexport class BuilderContentService {\n  componentInstance: BuilderContentComponent | null = null;\n  directiveInstance: BuilderContentDirective | null = null;\n}\n","import {\n  Directive,\n  EmbeddedViewRef,\n  Input,\n  makeStateKey,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Renderer2,\n  StateKey,\n  TemplateRef,\n  TransferState,\n  ViewContainerRef\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Builder, Subscription as BuilderSubscription } from '@builder.io/sdk';\nimport { Subscription } from 'rxjs';\nimport { BuilderComponentService } from '../components/builder-component/builder-component.service';\nimport { BuilderContentService } from '../services/builder-content.service';\nimport { BuilderService } from '../services/builder.service';\n\n@Directive({\n  selector: '[builderModel]',\n  providers: [BuilderContentService],\n})\nexport class BuilderContentDirective implements OnInit, OnDestroy {\n  private get component() {\n    // return BuilderService.componentInstances[this._context.model as string];\n    return this.builderComponentService.contentComponentInstance;\n  }\n\n  lastContentId: string | null = null;\n  lastUrl: string | null = null;\n\n  private subscriptions = new Subscription();\n\n  private _context: BuilderContentContext = new BuilderContentContext();\n  private _templateRef: TemplateRef<BuilderContentContext> | null = null;\n  private _viewRef: EmbeddedViewRef<BuilderContentContext> | null = null;\n  // private _repeat = false;\n  private match: any;\n\n  private matchId = '';\n\n  private clickTracked = false;\n\n  hydrated = false;\n\n  constructor(\n    private _viewContainer: ViewContainerRef,\n    private renderer: Renderer2,\n    private builder: BuilderService,\n    private builderComponentService: BuilderComponentService,\n    @Optional() private transferState: TransferState,\n    templateRef: TemplateRef<BuilderContentContext>,\n    @Optional() private router?: Router\n  ) {\n    builderComponentService.contentDirectiveInstance = this;\n    this._templateRef = templateRef;\n  }\n\n  // TODO: pass this option down from builder-component\n  @Input() reloadOnRoute = true;\n\n  contentSubscription: BuilderSubscription | null = null;\n\n  stateKey: StateKey<any> | undefined;\n\n  requesting = true;\n\n  reset() {\n    // TODO: listen to any target change? This just updates target?\n\n    // TODO: track last fetched ID and don't replace dom if on new url the content is the same...\n    this.clickTracked = false;\n    this.hydrated = false;\n    // Verify the route didn't result in this component being destroyed\n    this.request();\n  }\n\n  ngOnInit() {\n    Builder.nextTick(() => {\n      this.request();\n    });\n\n    if (this.router) {\n      this.subscriptions.add(\n        this.router.events.subscribe((event) => {\n          // TODO: this doesn't trigger\n          if (event instanceof NavigationEnd) {\n            if (this.reloadOnRoute) {\n              const viewRef = this._viewRef;\n              if (viewRef && viewRef.destroyed) {\n                return;\n              }\n\n              if (this.url !== this.lastUrl) {\n                this.reset();\n              }\n            }\n          }\n        })\n      );\n    }\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.unsubscribe();\n    if (this.contentSubscription) {\n      this.contentSubscription.unsubscribe();\n    }\n  }\n\n  // TODO: have another option for this or get from metadata\n  // @Input()\n  // set modelMultiple(repeat: boolean) {\n  //   this._repeat = repeat;\n  // }\n\n  // @HostListener('click')\n  onClick(event: MouseEvent) {\n    if (this.matchId && !this.hydrated) {\n      const match = this.match;\n      if (this.builder.autoTrack) {\n        this.builder.trackInteraction(\n          this.matchId,\n          match && match.variationId,\n          this.clickTracked,\n          event,\n          { content: match }\n        );\n      }\n      this.clickTracked = true;\n    }\n\n    // TODO: only in editor mode\n    // TODO: put messaging on builder class\n    if (document.body.classList.contains('builder-editing')) {\n      if (this.matchId) {\n        // TODO: get event object and pass mouse coordinages\n        window.parent.postMessage(\n          {\n            type: 'builder.clickContent',\n            data: {\n              id: this.matchId,\n              model: this._context.model,\n            },\n          },\n          '*'\n        );\n      } else {\n        window.parent.postMessage(\n          {\n            type: 'builder.clickModel',\n            data: {\n              model: this._context.model,\n            },\n          },\n          '*'\n        );\n      }\n    }\n  }\n\n  get stateKeyString() {\n    return 'builder:' + this._context.model + ':' + (this.reloadOnRoute ? this.url : '');\n  }\n\n  // TODO: limit?\n  // TODO: context with index, etc\n  @Input()\n  set builderModel(model: string) {\n    if (!model) {\n      return;\n    }\n    this._context.model = model;\n    this._updateView();\n    this.stateKey = makeStateKey(this.stateKeyString);\n    // this.request();\n    const rootNode = this._viewRef!.rootNodes[0];\n    this.renderer.setAttribute(rootNode, 'builder-model', model);\n    this.renderer.setAttribute(rootNode, 'builder-model-name', model.replace(/-/g, ' '));\n    this.renderer.listen(rootNode, 'click', (event: MouseEvent) => this.onClick(event));\n  }\n\n  private get url() {\n    const location = this.builder.getLocation();\n    return location.pathname || ''; // + (location.search || '');\n  }\n\n  // TODO: service for this\n  request() {\n    this.lastUrl = this.url;\n    this.requesting = true;\n\n    if (this.component && !this.component.prerender) {\n      return;\n    }\n\n    const viewRef = this._viewRef;\n    if (viewRef && viewRef.destroyed) {\n      return;\n    }\n\n    let receivedFirstResponse = false;\n    const model = this._context.model as string;\n\n    const options = this.component && this.component.options;\n\n    const initialContent =\n      (this.component && this.component.content) ||\n      (Builder.isBrowser &&\n        // firstEverLoad &&\n        this.transferState &&\n        this.transferState.get(this.stateKeyString as any, null as any));\n\n    // firstEverLoad = false;\n\n    // TODO: if not multipe\n\n    if (this.contentSubscription) {\n      // TODO: cancel a request if one is pending... or set some kind of flag\n      this.contentSubscription.unsubscribe();\n    }\n\n    const hydrate = Builder.isBrowser && this.component && this.component.hydrate;\n\n    const key = Builder.isEditing || !this.reloadOnRoute ? model : `${model}:${this.url}`;\n    const subscription = (this.contentSubscription = this.builder\n      .queueGetContent(model, {\n        initialContent,\n        key,\n        ...options,\n        prerender: true,\n        static: !hydrate,\n      })\n      .subscribe(\n        (result: any[]) => {\n          let match = result[0];\n          // Cancel handling request if new one created or they have been canceled, to avoid race conditions\n          // if multiple routes or other events happen\n          if (this.contentSubscription !== subscription) {\n            if (!receivedFirstResponse) {\n            }\n            return;\n          }\n\n          if (match && match.id === this.lastContentId) {\n            return;\n          }\n\n          this.lastContentId = match && match.id;\n\n          if (this.transferState && !Builder.isBrowser) {\n            this.transferState.set(this.stateKeyString as any, result);\n          }\n          // tslint:disable-next-line:no-non-null-assertion\n          const viewRef = this._viewRef!;\n\n          if (viewRef.destroyed) {\n            this.subscriptions.unsubscribe();\n            if (this.contentSubscription) {\n              this.contentSubscription.unsubscribe();\n            }\n            return;\n          }\n\n          const rootNode = Builder.isBrowser && viewRef.rootNodes[0];\n\n          if (Builder.isBrowser) {\n            if (rootNode) {\n              if (rootNode && rootNode.classList.contains('builder-editor-injected')) {\n                viewRef.detach();\n                return;\n              }\n            }\n          }\n\n          // FIXME: nasty hack to detect secondary updates vs original. Build proper support into JS SDK\n          // if (this._context.loading || result.length > viewRef.context.results.length) {\n          this._context.loading = false;\n          const search = this.builder.getLocation().search || '';\n          // TODO: how handle singleton vs multiple\n          if (!match && search.includes('builder.preview=' + this._context.model)) {\n            match = {\n              id: 'preview',\n              name: 'Preview',\n              data: {},\n            };\n          }\n\n          if (this.component) {\n            this.component.contentLoad.next(match);\n          } else {\n            console.warn('No component!');\n          }\n          if (match) {\n            const rootNode = this._viewRef!.rootNodes[0];\n            this.matchId = match.id;\n            this.renderer.setAttribute(rootNode, 'builder-content-entry-id', match.id);\n            this.match = match;\n            viewRef.context.$implicit = match.data;\n            viewRef.context.meta = match.meta;\n            // viewRef.context.results = result.map(item => ({ ...item.data, $id: item.id }));\n            if (!hydrate && this.builder.autoTrack) {\n              this.builder.trackImpression(match.id, match.variationId, undefined, {\n                content: match,\n              });\n            }\n          }\n          if (!viewRef.destroyed) {\n            viewRef.detectChanges();\n\n            if (\n              this.builderComponentService.contentComponentInstance &&\n              this.builderComponentService.contentComponentInstance.prerender &&\n              Builder.isBrowser &&\n              Builder.isStatic\n            ) {\n              Builder.nextTick(() => {\n                if (this.builderComponentService.contentComponentInstance) {\n                  this.builderComponentService.contentComponentInstance.findAndRunScripts();\n                }\n              });\n            }\n\n            // TODO: it's possible we don't want anything below to run if this has been destroyed\n            if (match && match.data && match.data.animations && Builder.isBrowser && !hydrate) {\n              Builder.nextTick(() => {\n                Builder.animator.bindAnimations(match.data.animations);\n              });\n            }\n          }\n          if (!receivedFirstResponse) {\n            receivedFirstResponse = true;\n          }\n        },\n        (error) => {\n          if (this.component) {\n            this.component.contentError.next(error);\n          } else {\n            console.warn('No component!');\n          }\n          if (!receivedFirstResponse) {\n            // TODO: how to zone error\n            receivedFirstResponse = true;\n          }\n        }\n      ));\n  }\n\n  private _updateView() {\n    if (this._context.model) {\n      this._viewContainer.clear();\n      if (this._templateRef) {\n        this._viewRef = this._viewContainer.createEmbeddedView(this._templateRef, this._context);\n      }\n    }\n  }\n}\n\nexport class BuilderContentContext {\n  $implicit?: any;\n  match?: any;\n  model?: string;\n  loading = true;\n  results: any[] = [];\n  meta?: any;\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { GetContentOptions, Builder } from '@builder.io/sdk';\nimport { BuilderService } from '../../services/builder.service';\n\n@Component({\n  selector: 'builder-blocks',\n  templateUrl: './builder-blocks.component.html',\n  styleUrls: ['./builder-blocks.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BuilderBlocksComponent {\n  @Input() blocks: any;\n\n  @Input() child = false;\n  @Input() prerender = true;\n  @Input() model = '';\n  @Input() key = '';\n\n  @Input() options: GetContentOptions | null = null;\n\n  // @deprecated\n  @Input() field = '';\n\n  @Input() breakpoints: any;\n\n  constructor(private domSanitizer: DomSanitizer, private builder: BuilderService) {}\n\n  private lastInnerHtml = '';\n  private lastInnerHtmlSanitized: SafeHtml | null = null;\n\n  get hasNoChildren() {\n    return !(this.blocks && (this.blocks.length || this.blocks.html));\n  }\n\n  get arrayBlocks() {\n    return Array.isArray(this.blocks);\n  }\n\n  get innerHtml() {\n    const html = this._innerHtml;\n    if (html === this.lastInnerHtml) {\n      return this.lastInnerHtmlSanitized || '';\n    }\n\n    this.lastInnerHtml = html;\n    this.lastInnerHtmlSanitized = this.domSanitizer.bypassSecurityTrustHtml(html);\n\n    return this.lastInnerHtmlSanitized;\n  }\n\n  get _innerHtml() {\n    // TODO: pass options too\n    if (!this.prerender || Builder.isEditing) {\n      return `<builder-component-element prerender=\"false\" ${\n        !this.model ? '' : `name=\"${this.model}\"`\n      }></builder-component-element>`;\n    }\n\n    const elStr = `<builder-component-element prerender=\"false\" ${\n      !this.model ? '' : `name=\"${this.model}\"`\n    }></builder-component-element>`;\n\n    if (this.arrayBlocks || !this.blocks) {\n      return elStr;\n    }\n\n    if (!this.blocks.html) {\n      return elStr;\n    }\n\n    const css = this.blocks.css;\n    let html = this.blocks.html;\n    if (this.breakpoints) {\n      if (this.breakpoints.small) {\n        html = html.replace(/max-width:640/g, `max-width:${this.breakpoints.small}`);\n      }\n      if (this.breakpoints.medium) {\n        html = html.replace(/max-width:991/g, `max-width:${this.breakpoints.medium}`);\n      }\n    }\n\n    if (css) {\n      html = `<style class=\"builder-styles\">${css}</style>` + html;\n    }\n\n    return `<builder-component-element key=\"${this.key || this.model}\" options='${JSON.stringify(\n      this.options || null // TODO: HTML encode\n    )}' prerender=\"false\" rev=\"${this.blocks.rev || ''}\" ${\n      !this.model ? '' : `name=\"${this.model}\"`\n    }>${html as string}</builder-component-element>`;\n  }\n\n  trackByFn(index: number, value: any) {\n    // TODO: possibly json-stable-stringify\n    return value.id || (value.component && value.component.id) || JSON.stringify(value);\n  }\n}\n","<div class=\"builder-blocks builder-blocks-html\">\n  <div [innerHTML]=\"innerHtml\"></div>\n</div>\n","import {\n  Component,\n  Input,\n  ChangeDetectionStrategy,\n  AfterViewInit,\n  OnInit,\n  OnChanges,\n  // ViewContainerRef,\n  // ElementRef,\n  SimpleChanges,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Builder } from '@builder.io/sdk';\n\ninterface BuilderBlocksProps {\n  blocks?: any[];\n  child?: boolean;\n  parentElementId?: string;\n  dataPath?: string;\n}\n\n@Component({\n  selector: 'builder-blocks-outlet',\n  templateUrl: './builder-blocks-outlet.component.html',\n  styleUrls: ['./builder-blocks-outlet.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BuilderBlocksOutletComponent implements AfterViewInit, OnChanges {\n  @Input()\n  builderBlock: any;\n\n  @Input()\n  builderState: any;\n\n  @Input()\n  blocks: any;\n\n  @Input()\n  renderOnChange = true;\n\n  @Input()\n  dataPath: string | undefined;\n\n  lastInnerHtml = '';\n  lastInnerHtmlSanitized?: SafeHtml;\n\n  get options(): BuilderBlocksProps {\n    return {\n      child: true,\n      parentElementId: this.builderBlock.id,\n      blocks: this.blocks,\n      dataPath: this.dataPath,\n    };\n  }\n\n  get key() {\n    return this.builderBlock.id + this.dataPath;\n  }\n\n  get innerHtml() {\n    const html = this._innerHtml;\n    if (html === this.lastInnerHtml) {\n      return this.lastInnerHtmlSanitized || '';\n    }\n\n    this.lastInnerHtml = html;\n    this.lastInnerHtmlSanitized = this.domSanitizer.bypassSecurityTrustHtml(html);\n\n    return this.lastInnerHtmlSanitized;\n  }\n\n  get _innerHtml() {\n    return `<builder-blocks-slot key=\"${this.key}\"></builder-blocks-slot>`;\n  }\n\n  constructor(private domSanitizer: DomSanitizer) {}\n\n  ngAfterViewInit() {\n    if (Builder.isBrowser) {\n      this.triggerstateChange();\n    }\n  }\n\n  async triggerstateChange() {\n    const query = `builder-blocks-slot[key=\"${this.key}\"]`;\n    const element: any = document.querySelector(query);\n    if (element) {\n      await customElements.whenDefined('builder-blocks-slot');\n      element.setProps(this.options, this.builderState);\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.blocks && this.renderOnChange) {\n      this.triggerstateChange();\n    }\n  }\n}\n","<div [innerHTML]=\"innerHtml\"></div>\n","// TODO remove hardcoded version, maybe a release tag?\nexport const ANGULAR_LATEST_VERSION = '2.0.2';\nexport const SCRIPT_ID = 'builder-wc-script';\n","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n  Optional,\n  OnDestroy,\n  OnInit,\n  OnChanges,\n  ViewContainerRef,\n  ElementRef,\n  SimpleChanges,\n} from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { BuilderComponentService } from './builder-component.service';\nimport { GetContentOptions, Builder } from '@builder.io/sdk';\nimport { Subscription, BehaviorSubject } from 'rxjs';\nimport { BuilderService } from '../../services/builder.service';\nimport { ANGULAR_LATEST_VERSION, SCRIPT_ID } from '../../utils/constants';\n\nfunction omit<T extends object>(obj: T, ...values: (keyof T)[]): Partial<T> {\n  const newObject = Object.assign({}, obj);\n  for (const key of values) {\n    delete (newObject as any)[key];\n  }\n  return newObject;\n}\n\nlet wcScriptInserted = false;\nconst NAVIGATION_TIMEOUT_DEFAULT = 1000;\n\nfunction delay<T = any>(duration: number, resolveValue?: T) {\n  return new Promise<T>((resolve) => setTimeout(() => resolve(resolveValue!), duration));\n}\n\nexport interface RouteEvent {\n  /**\n   * Url being routed to\n   */\n  url: string;\n  /**\n   * Html anchor element the href is on that\n   * caused the route\n   */\n  anchorNode: HTMLAnchorElement;\n  /**\n   * Has preventDefault() been called preventing\n   * builder from routing to the clicked URL\n   */\n  defaultPrevented: boolean;\n  /**\n   * Prevents builder from handling routing for you to handle\n   * yourself\n   */\n  preventDefault(): void;\n}\n\n@Component({\n  selector: 'builder-component',\n  templateUrl: './builder-component.component.html',\n  styleUrls: ['./builder-component.component.css'],\n  providers: [BuilderComponentService],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BuilderComponentComponent implements OnDestroy, OnInit, OnChanges {\n  @Input() model: string | undefined /* THIS IS ACTUALLY REQUIRED */;\n\n  @Input() set name(name: string | undefined) {\n    this.model = name;\n  }\n\n  @Input() handleRouting = true;\n  @Input() reloadOnRoute = true;\n\n  @Output() load = new EventEmitter<any>();\n  @Output() route = new EventEmitter<RouteEvent>();\n  @Output() error = new EventEmitter<any>();\n  @Input() content: any = null;\n  @Input() options: GetContentOptions | null = null;\n\n  @Input() data: any = {};\n  @Input() context: any = {};\n  @Input() hydrate = true;\n  @Input() prerender = true;\n\n  // Sometimes user will have slow connection and when we are using Resolver on target route\n  // then, application will be fully reloaded. In that case set it to false to avoid full-reload navigation.\n  @Input() navigationTimeout: number | boolean = NAVIGATION_TIMEOUT_DEFAULT;\n\n  subscriptions = new Subscription();\n\n  visible = new BehaviorSubject(true);\n\n  private get url() {\n    const location = this.builderService.getLocation();\n    return location.pathname || '';\n  }\n\n  get key() {\n    const key = Builder.isEditing || !this.reloadOnRoute ? this.model : `${this.model}:${this.url}`;\n    return key;\n  }\n\n  constructor(\n    private viewContainer: ViewContainerRef,\n    private elementRef: ElementRef,\n    private builderService: BuilderService,\n    @Optional() private router?: Router\n  ) {}\n\n  async ensureWCScriptLoaded() {\n    if (!Builder.isBrowser || wcScriptInserted || document.getElementById(SCRIPT_ID)) {\n      return;\n    }\n    function getQueryParam(url: string, variable: string) {\n      const query = url.split('?')[1] || '';\n      const vars = query.split('&');\n      for (let i = 0; i < vars.length; i++) {\n        const pair = vars[i].split('=');\n        if (decodeURIComponent(pair[0]) === variable) {\n          return decodeURIComponent(pair[1]);\n        }\n      }\n      return null;\n    }\n    const script = document.createElement('script');\n    const wcVersion = getQueryParam(location.href, 'builder.wcVersion') || ANGULAR_LATEST_VERSION;\n    script.id = SCRIPT_ID;\n    // TODO: detect builder.wcVersion and if customEleemnts exists and do\n    // dynamic versions and lite here\n    script.src = `https://cdn.builder.io/js/webcomponents@${\n      wcVersion || 'latest'\n    }/dist/system/angular/builder-webcomponents-async.js`;\n    script.async = true;\n    wcScriptInserted = true;\n    return new Promise((resolve, reject) => {\n      script.addEventListener('load', resolve);\n      script.addEventListener('error', (e) => reject(e.error));\n      document.head.appendChild(script);\n    });\n  }\n\n  async ensureWcLoadedAndUpdate() {\n    await this.ensureWCScriptLoaded();\n    const { onBuilderWcLoad } = window as any;\n    if (onBuilderWcLoad) {\n      onBuilderWcLoad((BuilderWC: any) => {\n        const builder = BuilderWC.builder as Builder;\n        builder.apiKey = this.builderService.apiKey;\n        builder.canTrack = this.builderService.canTrack;\n        builder.setUserAttributes(omit(this.builderService.getUserAttributes(), 'urlPath'));\n        this.builderService.userAttributesChanged.subscribe((attrs) =>\n          builder.setUserAttributes(attrs)\n        );\n        this.triggerstateChange();\n      });\n    }\n  }\n\n  ngOnInit() {\n    if (this.router && this.reloadOnRoute) {\n      // TODO: should the inner function return reloadOnRoute?\n      this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n    }\n\n    if (Builder.isBrowser) {\n      if (this.router) {\n        this.subscriptions.add(\n          this.router.events.subscribe((event) => {\n            if (event instanceof NavigationEnd) {\n              if (this.reloadOnRoute) {\n                // Force reload component\n                this.visible.next(false);\n                Builder.nextTick(() => {\n                  this.visible.next(true);\n                });\n              }\n            }\n          })\n        );\n      }\n      this.subscriptions.add(\n        this.load.subscribe(async (value: any) => {\n          // TODO: this may run constantly when editing - check on this, not\n          // end of world but not ideal for perf\n          this.viewContainer.detach();\n          if (Builder.isEditing || (value && value.data && this.hydrate !== false)) {\n            await this.ensureWcLoadedAndUpdate();\n          }\n        })\n      );\n    }\n\n    if (Builder.isBrowser && (this.hydrate !== false || Builder.isEditing)) {\n      this.ensureWcLoadedAndUpdate();\n    }\n  }\n\n  async triggerstateChange() {\n    const query = `builder-component-element[name=\"${this.model}\"]`;\n    const element: any = document.querySelector(query);\n    if (element) {\n      customElements.whenDefined('builder-component-element').then(() => {\n        element.setState(this.data);\n        element.setContext(this.context);\n      });\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.data) {\n      this.triggerstateChange();\n    }\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.unsubscribe();\n  }\n\n  // TODO: this should be in BuilderBlocks\n  async onClick(event: MouseEvent) {\n    if (!this.handleRouting) {\n      return;\n    }\n\n    if (event.button !== 0 || event.ctrlKey || event.defaultPrevented) {\n      // If this is a non-left click, or the user is holding ctr/cmd, or the url is absolute,\n      // or if the link has a target attribute, don't route on the client and let the default\n      // href property handle the navigation\n      return;\n    }\n\n    const hrefTarget = this.findHrefTarget(event);\n    if (!hrefTarget) {\n      return;\n    }\n\n    // target=\"_blank\" or target=\"_self\" etc\n    if (hrefTarget.target) {\n      return;\n    }\n\n    let href = hrefTarget.getAttribute('href');\n    if (!href) {\n      return;\n    }\n\n    if (href.startsWith('javascript:')) {\n      return;\n    }\n\n    const routeEvent: RouteEvent = {\n      url: href,\n      anchorNode: hrefTarget,\n      preventDefault() {\n        this.defaultPrevented = true;\n      },\n      defaultPrevented: false,\n    };\n    this.route.next(routeEvent);\n\n    if (routeEvent.defaultPrevented) {\n      event.preventDefault();\n      return;\n    }\n\n    if (event.metaKey) {\n      return;\n    }\n\n    if (!this.isRelative(href)) {\n      const converted = this.convertToRelative(href);\n      if (converted) {\n        href = converted;\n      } else {\n        return;\n      }\n    }\n\n    if (!this.router) {\n      return;\n    }\n\n    // Otherwise if this url is relative, navigate on the client\n    event.preventDefault();\n\n    // Attempt to route on the client\n    let success: boolean | null = null;\n    const routePromise = this.router.navigateByUrl(href);\n\n    const useNavigationTimeout = !(\n      typeof this.navigationTimeout === 'boolean' && !this.navigationTimeout\n    );\n    const timeoutPromise = delay(\n      typeof this.navigationTimeout === 'number'\n        ? this.navigationTimeout\n        : NAVIGATION_TIMEOUT_DEFAULT,\n      false\n    );\n\n    try {\n      const promiseRace = useNavigationTimeout ? [timeoutPromise, routePromise] : [routePromise];\n      success = await Promise.race(promiseRace);\n    } finally {\n      // This is in a click handler so it will only run on the client\n      if (success) {\n        // If successful scroll the window to the top\n        window.scrollTo(0, 0);\n      } else {\n        // Otherwise handle the routing with a page refresh on failure. Angular, by deafult\n        // if it fails to load a URL (e.g. if an API request failed when loading it), instead\n        // of navigating to the new page to tell the user that their click did something but\n        // the resulting page has an issue, it instead just silently fails and shows the user\n        // nothing. Lets make sure we route to the new page. In some cases this even brings the\n        // user to a correct and valid page anyway\n        location.href = `${location.protocol}//${location.host}${href}`;\n      }\n    }\n  }\n\n  private isRelative(href: string) {\n    return (\n      !href.match(/^(\\/\\/|https?:\\/\\/)/i) &&\n      // Handle Mailto and Tel links\n      !href.startsWith('tel:') &&\n      !href.startsWith('mailto:') &&\n      // Handle local hash links\n      !href.startsWith('#')\n    );\n  }\n\n  // Attempt to convert an absolute url to relative if possible (aka if the hosts match)\n  private convertToRelative(href: string) {\n    const currentUrl = new URL(location.href);\n    const hrefUrl = new URL(href);\n\n    if (currentUrl.host === hrefUrl.host) {\n      const relativeUrl = hrefUrl.pathname + (hrefUrl.search ? hrefUrl.search : '');\n      return relativeUrl;\n    }\n  }\n\n  private findHrefTarget(event: MouseEvent): HTMLAnchorElement | null {\n    let element = event.target as HTMLElement | null;\n\n    while (element) {\n      if (element instanceof HTMLAnchorElement && element.getAttribute('href')) {\n        return element;\n      }\n\n      if (element === event.currentTarget) {\n        break;\n      }\n\n      element = element.parentElement;\n    }\n\n    return null;\n  }\n}\n","<span *ngIf=\"visible | async\" class=\"builder-component-wrap\">\n  <span *ngIf=\"!prerender\">\n    <builder-blocks\n      field=\"blocks\"\n      [key]=\"key\"\n      [model]=\"model\"\n      (click)=\"onClick($event)\"\n      [prerender]=\"false\"\n      [options]=\"options\"\n    ></builder-blocks>\n  </span>\n  <span *ngIf=\"prerender\">\n    <builder-content\n      [data]=\"data\"\n      [hydrate]=\"hydrate\"\n      [prerender]=\"prerender\"\n      [content]=\"content\"\n      [options]=\"options\"\n      (click)=\"onClick($event)\"\n      (contentLoad)=\"load.next($event)\"\n      (contentError)=\"error.next($event)\"\n      *builderModel=\"model; let content; let loading = loading; let meta = meta;\"\n    >\n      <builder-blocks\n        *ngIf=\"content\"\n        field=\"blocks\"\n        [key]=\"key\"\n        [model]=\"model\"\n        [prerender]=\"prerender\"\n        [options]=\"options\"\n        [blocks]=\"content.blocks || content\"\n        [breakpoints]=\"(content.meta && content.meta.breakpoints) || (meta && meta.breakpoints) || undefined\"\n      ></builder-blocks>\n      <ng-content *ngIf=\"loading\"></ng-content>\n    </builder-content>\n  </span>\n</span>\n","import './polyfills/custom-elements-es5-adapter';\nimport { Builder } from '@builder.io/sdk';\nimport { NgModule, ModuleWithProviders, Injector, Inject, PLATFORM_ID } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { BuilderContentComponent } from './components/builder-content/builder-content.component';\nimport { BuilderContentDirective } from './directives/builder-content.directive';\nimport { BUILDER_API_KEY, BuilderService } from './services/builder.service';\nimport { BuilderContentService } from './services/builder-content.service';\nimport { BuilderBlocksComponent } from './components/builder-blocks/builder-blocks.component';\nimport { BuilderBlocksOutletComponent } from './components/builder-blocks-outlet/builder-blocks-outlet.component';\n\nimport { BuilderComponentComponent } from './components/builder-component/builder-component.component';\nimport { BuilderComponentService } from './components/builder-component/builder-component.service';\n\nBuilder.isStatic = true;\nBuilder.sdkInfo = {\n  name: 'angular',\n  version: '5.0.2',\n};\n\n\nif (typeof window !== 'undefined') {\n  window.parent?.postMessage(\n    {\n      type: 'builder.isAngularGen1Sdk',\n      data: {\n        // @ts-ignore\n        version: '5.0.2',\n      },\n    },\n    '*'\n  );\n}\n\n\nconst directives = [BuilderContentDirective];\n\nconst components = [\n  BuilderContentComponent,\n  BuilderBlocksComponent,\n  BuilderComponentComponent,\n  BuilderBlocksOutletComponent,\n];\n\n@NgModule({\n  imports: [CommonModule],\n  providers: [BuilderService, BuilderContentService, BuilderComponentService],\n  declarations: [components, directives],\n  exports: [components, directives],\n})\nexport class BuilderModule {\n  constructor(injector: Injector, @Inject(PLATFORM_ID) private platformId: string) {\n    if (isPlatformBrowser(platformId)) {\n      // This cannot use a normal import, via https://github.com/angular/angular/issues/24551\n      // Cannot use require, so use import. This otherwise breaks at runtime\n      import('@angular/elements').then(({ createCustomElement }) => {\n        for (const component of Builder.components) {\n          if (\n            component.class &&\n            component.type === 'angular' &&\n            component.tag &&\n            typeof customElements.get(component.tag) === 'undefined'\n          ) {\n            try {\n              const Element = createCustomElement(component.class, { injector });\n              // Register the custom element with the browser.\n              customElements.define(component.tag, Element);\n            } catch (err) {\n              console.warn('Could not make angular element:', component.class);\n            }\n          }\n        }\n      });\n    }\n  }\n\n  public static forRoot(apiKey?: string): ModuleWithProviders<BuilderModule> {\n    return {\n      ngModule: BuilderModule,\n      providers: [\n        {\n          provide: BUILDER_API_KEY,\n          useValue: apiKey,\n        },\n      ],\n    };\n  }\n}\n","import { Builder, Component, Class } from '@builder.io/sdk';\n\nexport interface AngularComponent extends Component {\n  tag: string;\n}\n\nexport function BuilderBlock(options: AngularComponent) {\n  options.type = 'angular';\n\n  return Builder.Component(options);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.BuilderComponentService","i1.BuilderService","i2.BuilderComponentService","i1","i2.BuilderService","i2","i3","i4.BuilderContentComponent","i5.BuilderBlocksComponent","i6.BuilderContentDirective"],"mappings":"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"}