{"version":3,"file":"iframe-resizer-angular.mjs","sources":["../../../../lib/src/lib/typings/index.ts","../../../../lib/src/lib/iframe-resizer.directive.ts","../../../../lib/src/public-api.ts","../../../../lib/src/iframe-resizer-angular.ts"],"sourcesContent":["/**\n * @fileoverview Declare module @iframe-resizer/core for use in Angular\n */\n\n\ndeclare module '@iframe-resizer/core';","import { Directive, EventEmitter, Input, Output, ElementRef } from '@angular/core';\n\nimport connectResizer from '@iframe-resizer/core'\n\nexport type iframeResizerObject = {\n  moveToAnchor: (anchor: string) => void\n  resize: () => void\n  sendMessage: (message: string, targetOrigin?: string) => void,\n}\n\ntype iframeResizerObjectPrivateMethods = {\n  disconnect: () => void\n}\ntype iframeResizerObjectPrivate = \n  iframeResizerObject &\n  iframeResizerObjectPrivateMethods\n\nexport interface iframeResizerElement extends HTMLIFrameElement {\n  iFrameResizer: iframeResizerObject\n}\n\nexport  type iframeResizerOptions = {\n  bodyBackground?: string | null\n  bodyMargin?: string | number | null\n  bodyPadding?: string | number | null\n  checkOrigin?: boolean | string[]\n  direction?: 'vertical' | 'horizontal' | 'none'\n  inPageLinks?: boolean\n  license: string\n  offsetSize?: number\n  scrolling?: boolean | 'omit'\n  tolerance?: number\n  warningTimeout?: number\n}\n\n\n@Directive({\n  selector: '[iframe-resizer]',\n  standalone: true\n})\nexport class IframeResizerDirective {\n\n  private resizer?: iframeResizerObjectPrivate;\n\n  // @Output() onReadyTest = new EventEmitter<iframeResizerElement>();\n\n  @Output() onReady = new EventEmitter<iframeResizerElement>();\n  @Output() onClose = new EventEmitter<iframeResizerElement>();\n  @Output() onMessage = new EventEmitter<{ iframe: iframeResizerElement, message:string }>();\n  @Output() onMouseEnter = new EventEmitter<{ iframe: iframeResizerElement, height:number, width:number, type:string }>();\n  @Output() onMouseLeave = new EventEmitter<{ iframe: iframeResizerElement, height:number, width:number, type:string }>();\n  @Output() onResized = new EventEmitter<{ iframe: iframeResizerElement, height:number, width:number, type:string }>();\n  @Output() onScroll = new EventEmitter<{ iframe: iframeResizerElement, top:number, left:number }>();\n  \n  get iframeResizer():iframeResizerObject|undefined {\n    return this.resizer\n  }\n\n  @Input() options:iframeResizerOptions = {\n    license: \"\"\n  }\n  \n  @Input() debug:boolean = false;\n\n  constructor(private elementRef: ElementRef) {\n    if (this.debug) console.debug(\"[IframeResizerDirective].constructor\");\n  }\n\n\n  ngOnInit() {\n\n  }\n\n  \n  ngAfterViewInit(): void {\n  \n    this.resizer = connectResizer({ \n      ...this.options, \n      waitForLoad: true,\n        \n      onClose: (iframeID: any) => {\n        console.warn(\n          `[iframe-resizer/angular][${this.elementRef.nativeElement?.id}] Close event ignored, to remove the iframe update your Angular component.`\n        )\n        return false\n      },\n    \n      onMessage: (event:{iframe:iframeResizerElement, message:string} ) =>\n        this.onMessage.next(event),\n      \n      onMouseEnter: (event:{iframe:iframeResizerElement, height:number, width:number, type:string } ) =>\n        this.onMouseEnter.next(event),\n      \n      onMouseLeave: (event:{iframe:iframeResizerElement, height:number, width:number, type:string } ) =>\n         this.onMouseLeave.next(event),\n      \n      onReady: (iframe: iframeResizerElement) => \n        this.onReady.next(iframe),\n      \n      onResized: (event:{iframe:iframeResizerElement, height:number, width:number, type:string } ) =>\n        this.onResized.next(event),\n      \n      onScroll: (event:{iframe:iframeResizerElement,top:number, left:number  } ) =>\n        this.onScroll.next(event),\n    })(this.elementRef.nativeElement); \n    \n  }\n\n  ngOnDestroy() {\n    if (this.debug) console.debug(\"ngOnDestroy\");\n\n    this.resizer?.disconnect();\n  }\n\n\n\n  // parent methods \n  public resize() {\n    this.resizer?.resize();\n  }\n  public moveToAnchor (anchor:string) {\n    this.resizer?.moveToAnchor(anchor);\n  }\n\n  public sendMessage(message:string, targetOrigin?:string) {\n    this.resizer?.sendMessage(message, targetOrigin)\n  }\n\n\n\n}\n","/*\n * Public API Surface of @iframe-resizer/angular\n */\n\n\nimport './lib/typings/index';\n\nexport * from './lib/iframe-resizer.directive';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}