{"version":3,"file":"onepoint-yap-dashboard-widgets-widget-iframe.mjs","sources":["../../../../projects/onepoint-yap/dashboard/widgets/widget-iframe/messaging/iframe-messaging.service.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-iframe/style/css.component.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-iframe/component/widget-iframe.component.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-iframe/component/widget-iframe.component.html","../../../../projects/onepoint-yap/dashboard/widgets/widget-iframe/i18n/en.translations.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-iframe/i18n/fr.translations.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-iframe/widget-iframe.module.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-iframe/onepoint-yap-dashboard-widgets-widget-iframe.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { YapIframeMessageType } from './iframe-message-type.interface';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class IframeMessagingService {\n  message$ = new Subject<YapIframeMessageType>();\n\n  received($event: YapIframeMessageType, window: Window) {\n    $event.relatedWindow = window;\n    this.message$.next($event);\n  }\n\n  post(target: Window, message: any, origin?: string) {\n    const msg = {\n      data: JSON.parse(JSON.stringify(message)),\n      source: '@yap'\n    };\n    if (!!target) {\n      target.postMessage(msg, origin ?? '*');\n    }\n  }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'yap-widget-iframe-css',\n  template: '',\n  styleUrls: ['./_o-widget-iframe.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class YapWidgetIframeCssComponent {}\n","import { Component, ElementRef, ViewChild } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { Store } from '@ngrx/store';\nimport { BaseWidgetComponent, IframeWidgetOptions } from '@onepoint-yap/dashboard';\nimport { combineLatest, fromEvent, map, Observable } from 'rxjs';\nimport { YapIframeMessageType } from '../messaging/iframe-message-type.interface';\nimport { IframeMessagingService } from '../messaging/iframe-messaging.service';\n\n@Component({\n  selector: 'yap-widget-iframe',\n  templateUrl: './widget-iframe.component.html'\n})\nexport class WidgetIframeComponent extends BaseWidgetComponent {\n  options$: Observable<IframeWidgetOptions>;\n  src$: Observable<SafeResourceUrl | undefined>;\n  optionsCopy: IframeWidgetOptions = {};\n  @ViewChild('iframe') iframe?: ElementRef;\n\n  constructor(\n    store: Store<any>,\n    private domSanitizer: DomSanitizer,\n    private iframeMessagingService: IframeMessagingService,\n    el: ElementRef\n  ) {\n    super(store, el);\n    this.options$ = this.manifest$.pipe(map((manifest) => ({ src: '', ...manifest.options } as IframeWidgetOptions)));\n    this.src$ = this.options$.pipe(\n      map((options) =>\n        !!options && !!options.src ? domSanitizer.bypassSecurityTrustResourceUrl(options.src) : undefined\n      )\n    );\n    this.subscriptions.add(\n      this.options$.subscribe((options) => (this.optionsCopy = JSON.parse(JSON.stringify(options))))\n    );\n\n    this.subscriptions.add(\n      combineLatest([fromEvent(window, 'message'), this.options$]).subscribe(([$event, options]) => {\n        const event = $event as YapIframeMessageType;\n        if (event.data.target !== '@yap') {\n          // ignore all non yap formatted requests\n          return;\n        }\n\n        if (!options.src || !options.src.startsWith(event.origin)) {\n          // ignore demands from other domains\n          return;\n        }\n\n        this.iframeMessagingService.received(event, this.iframe?.nativeElement?.contentWindow);\n      })\n    );\n  }\n\n  changeSrc($event: Event) {\n    // @ts-ignore\n    this.optionsCopy.src = $event.currentTarget.value;\n  }\n\n  emitManifest() {\n    this.manifestModified.emit({\n      widgetIndex: this.widgetIndex,\n      manifest: { ...this.manifest, options: this.optionsCopy }\n    });\n  }\n}\n","<yap-widget-iframe-css></yap-widget-iframe-css>\n<div class=\"o-widget--iframe\">\n  <div class=\"o-widget--iframe__settings\">\n    <ng-container *ngIf=\"!(src$ | async)\">\n      <p>{{ '@yap.widget.iframe.defineSrc' | i18n }}</p>\n    </ng-container>\n    <yap-settings [widgetIndex]=\"widgetIndex\" (saveTriggered)=\"emitManifest()\" [open$]=\"open$\" class=\"o-settings\">\n      <div class=\"o-settings__fields\">\n        <div class=\"m-form-label-field\">\n          <label class=\"a-label\" for=\"iframe_src\">{{ '@yap.widget.iframe.label' | i18n }}</label>\n          <input\n            class=\"a-form-field\"\n            id=\"iframe_src\"\n            type=\"text\"\n            [value]=\"optionsCopy.src\"\n            (input)=\"changeSrc($event)\"\n          />\n        </div>\n      </div>\n    </yap-settings>\n  </div>\n  <ng-container *ngIf=\"src$ | async as src\">\n    <iframe [src]=\"src\" #iframe></iframe>\n  </ng-container>\n</div>\n","export const enTranslations = {\n  '@yap': {\n    widget: {\n      iframe: {\n        label: 'Application URL to insert',\n        defineSrc: 'Please define application url using settings'\n      }\n    }\n  }\n};\n","export const frTranslations = {\n  '@yap': {\n    widget: {\n      iframe: {\n        label: \"Url de l'application à intégrer\",\n        defineSrc: \"Veuillez définir l'url de l'application à intégrer\"\n      }\n    }\n  }\n};\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n  BaseWidgetComponent,\n  BaseWidgetModule,\n  YapCoreModule,\n  YapDashboardModule,\n  YapI18nModule,\n  YapI18nService,\n  YapIconModule,\n  YapSelectModule,\n  YapToggleModule\n} from '@onepoint-yap/dashboard';\nimport { YapCheckboxModule } from '@onepoint-yap/dashboard/components/checkbox';\nimport { WidgetIframeComponent } from './component/widget-iframe.component';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { IframeMessagingService } from './messaging/iframe-messaging.service';\nimport { YapWidgetIframeCssComponent } from './style/css.component';\n\n@NgModule({\n  declarations: [WidgetIframeComponent, YapWidgetIframeCssComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    OverlayModule,\n    YapCoreModule,\n    YapDashboardModule,\n    YapSelectModule,\n    YapIconModule,\n    YapCheckboxModule,\n    YapToggleModule,\n    YapI18nModule\n  ],\n  providers: [IframeMessagingService],\n  exports: [WidgetIframeComponent]\n})\nexport class WidgetIframeModule extends BaseWidgetModule {\n  constructor(private yapTranslateService: YapI18nService) {\n    super();\n    this.yapTranslateService.addLangObject('fr', 'widget-iframe', frTranslations);\n    this.yapTranslateService.addLangObject('en', 'widget-iframe', enTranslations);\n  }\n\n  override getComponent() {\n    return WidgetIframeComponent as Type<BaseWidgetComponent>;\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.IframeMessagingService","i6.YapWidgetIframeCssComponent","i1"],"mappings":"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"}