@provoly/dashboard 1.1.10 → 1.1.11

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.
Files changed (39) hide show
  1. package/esm2022/import/components/import.component.mjs +6 -4
  2. package/esm2022/lib/core/components/modal-status/modal-status.component.mjs +3 -3
  3. package/esm2022/lib/core/components/share/access-rights-share/access-rights-share.component.mjs +3 -3
  4. package/esm2022/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.mjs +3 -1
  5. package/esm2022/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.mjs +8 -12
  6. package/esm2022/lib/core/i18n/en.translations.mjs +4 -1
  7. package/esm2022/lib/core/i18n/fr.translations.mjs +4 -1
  8. package/esm2022/lib/core/store/config/config.selectors.mjs +2 -2
  9. package/esm2022/lib/core/store/relation-types/relation-types.selectors.mjs +2 -2
  10. package/esm2022/lib/core/symbol/symbol.service.mjs +4 -4
  11. package/esm2022/lib/dashboard/store/dashboard.selectors.mjs +2 -2
  12. package/esm2022/restitution/components/restitution-list/restitution-list.component.mjs +2 -2
  13. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +3 -4
  14. package/esm2022/widgets/widget-aggregated-chart/style/css.component.mjs +2 -2
  15. package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +3 -3
  16. package/esm2022/widgets/widget-map/component/widget-map-layer.service.mjs +1 -1
  17. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +7 -6
  18. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  19. package/fesm2022/provoly-dashboard-import.mjs +5 -3
  20. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  21. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  22. package/fesm2022/provoly-dashboard-toolbox.mjs +2 -3
  23. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  24. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +2 -2
  25. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  26. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs +2 -2
  27. package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
  28. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +8 -7
  29. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  30. package/fesm2022/provoly-dashboard.mjs +23 -17
  31. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  32. package/lib/core/components/translate-item-to-symbol/translate-item-to-symbol.pipe.d.ts +1 -7
  33. package/lib/core/i18n/en.translations.d.ts +3 -0
  34. package/lib/core/i18n/fr.translations.d.ts +3 -0
  35. package/package.json +49 -49
  36. package/styles/abstracts/_mixins.scss +1 -1
  37. package/styles-theme/abstracts-theme/variables/_variables-typo.scss +5 -5
  38. package/widgets/widget-aggregated-chart/style/_o-widget-chart.scss +1 -1
  39. package/widgets/widget-map/style/_m-layer-legend.scss +7 -0
@@ -82,11 +82,11 @@ class WidgetIframeComponent extends BaseWidgetComponent {
82
82
  });
83
83
  }
84
84
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WidgetIframeComponent, deps: [{ token: i1.Store }, { token: i2.DomSanitizer }, { token: IframeMessagingService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
85
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: WidgetIframeComponent, selector: "pry-widget-iframe", viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-widget-iframe-css></pry-widget-iframe-css>\n<div class=\"o-widget o-widget--iframe\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"iframe_src\">{{ '@pry.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 </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"src$ | async as src\">\n <div [style.height.px]=\"height$ | async\">\n <iframe [src]=\"src\" #iframe></iframe>\n </div>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.SettingsComponent, selector: "pry-settings", inputs: ["widgetIndex", "isDisable", "headerPresent", "open$", "header"], outputs: ["triggerClick", "saveTriggered", "changeTitle"] }, { kind: "component", type: i5.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: PryWidgetIframeCssComponent, selector: "pry-widget-iframe-css" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: WidgetIframeComponent, selector: "pry-widget-iframe", viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<pry-widget-iframe-css></pry-widget-iframe-css>\n<div class=\"o-widget o-widget--iframe\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"iframe_src\">{{ '@pry.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 </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"src$ | async as src\">\n <div [style.height.px]=\"height$ | async\">\n <iframe [src]=\"src\" title=\"Provoly iframe\" #iframe></iframe>\n </div>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.SettingsComponent, selector: "pry-settings", inputs: ["widgetIndex", "isDisable", "headerPresent", "open$", "header"], outputs: ["triggerClick", "saveTriggered", "changeTitle"] }, { kind: "component", type: i5.PryWidgetHeaderComponent, selector: "pry-widget-header", inputs: ["manifest", "openData$", "additionalOptions", "headerOptions", "displayCount", "datasourceIds", "widgetIndex"], outputs: ["manifestModified"] }, { kind: "component", type: PryWidgetIframeCssComponent, selector: "pry-widget-iframe-css" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
86
86
  }
87
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WidgetIframeComponent, decorators: [{
88
88
  type: Component,
89
- args: [{ selector: 'pry-widget-iframe', template: "<pry-widget-iframe-css></pry-widget-iframe-css>\n<div class=\"o-widget o-widget--iframe\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"iframe_src\">{{ '@pry.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 </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"src$ | async as src\">\n <div [style.height.px]=\"height$ | async\">\n <iframe [src]=\"src\" #iframe></iframe>\n </div>\n </ng-container>\n</div>\n" }]
89
+ args: [{ selector: 'pry-widget-iframe', template: "<pry-widget-iframe-css></pry-widget-iframe-css>\n<div class=\"o-widget o-widget--iframe\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"iframe_src\">{{ '@pry.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 </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"src$ | async as src\">\n <div [style.height.px]=\"height$ | async\">\n <iframe [src]=\"src\" title=\"Provoly iframe\" #iframe></iframe>\n </div>\n </ng-container>\n</div>\n" }]
90
90
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.DomSanitizer }, { type: IframeMessagingService }, { type: i0.ElementRef }], propDecorators: { iframe: [{
91
91
  type: ViewChild,
92
92
  args: ['iframe']
@@ -1 +1 @@
1
- {"version":3,"file":"provoly-dashboard-widgets-widget-iframe.mjs","sources":["../../../../projects/provoly/dashboard/widgets/widget-iframe/messaging/iframe-messaging.service.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/style/css.component.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/component/widget-iframe.component.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/component/widget-iframe.component.html","../../../../projects/provoly/dashboard/widgets/widget-iframe/i18n/en.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/widget-iframe.module.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/provoly-dashboard-widgets-widget-iframe.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { PryIframeMessageType } from './iframe-message-type.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IframeMessagingService {\n message$ = new Subject<PryIframeMessageType>();\n\n received($event: PryIframeMessageType, 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: '@pry'\n };\n if (!!target) {\n target.postMessage(msg, origin ?? '*');\n }\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-widget-iframe-css',\n template: '',\n styleUrls: ['./_o-widget-iframe.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryWidgetIframeCssComponent {}\n","import { Component, ElementRef, ViewChild } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { Store } from '@ngrx/store';\nimport { BaseWidgetComponent, IframeWidgetOptions, WIDGET_HEADER_HEIGHT } from '@provoly/dashboard';\nimport { combineLatest, debounceTime, delay, fromEvent, map, Observable } from 'rxjs';\nimport { PryIframeMessageType } from '../messaging/iframe-message-type.interface';\nimport { IframeMessagingService } from '../messaging/iframe-messaging.service';\n\n@Component({\n selector: 'pry-widget-iframe',\n templateUrl: './widget-iframe.component.html'\n})\nexport class WidgetIframeComponent extends BaseWidgetComponent {\n options$: Observable<IframeWidgetOptions>;\n src$: Observable<SafeResourceUrl | undefined>;\n height$: Observable<number>;\n optionsCopy: IframeWidgetOptions = {};\n WIDGET_HEADER_HEIGHT = WIDGET_HEADER_HEIGHT;\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\n this.height$ = combineLatest([this.widgetSize$.pipe(debounceTime(100)), this.displayHeader$]).pipe(\n map(([size, display]) => (size.height ?? 100) - (display ? WIDGET_HEADER_HEIGHT.value : 0)),\n delay(10)\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 PryIframeMessageType;\n if (event.data.target !== '@pry') {\n // ignore all non pry 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","<pry-widget-iframe-css></pry-widget-iframe-css>\n<div class=\"o-widget o-widget--iframe\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"iframe_src\">{{ '@pry.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 </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"src$ | async as src\">\n <div [style.height.px]=\"height$ | async\">\n <iframe [src]=\"src\" #iframe></iframe>\n </div>\n </ng-container>\n</div>\n","export const enTranslations = {\n '@pry': {\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 '@pry': {\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 PryCoreModule,\n PryDashboardModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule,\n PrySelectModule,\n PryToggleModule\n} from '@provoly/dashboard';\nimport { PryCheckboxModule } from '@provoly/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 { PryWidgetIframeCssComponent } from './style/css.component';\n\n@NgModule({\n declarations: [WidgetIframeComponent, PryWidgetIframeCssComponent],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryIconModule,\n PryCheckboxModule,\n PryToggleModule,\n PryI18nModule\n ],\n providers: [IframeMessagingService],\n exports: [WidgetIframeComponent]\n})\nexport class WidgetIframeModule extends BaseWidgetModule {\n constructor(private pryTranslateService: PryI18nService) {\n super();\n this.pryTranslateService.addLangObject('fr', 'widget-iframe', frTranslations);\n this.pryTranslateService.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.PryWidgetIframeCssComponent","i1"],"mappings":"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"}
1
+ {"version":3,"file":"provoly-dashboard-widgets-widget-iframe.mjs","sources":["../../../../projects/provoly/dashboard/widgets/widget-iframe/messaging/iframe-messaging.service.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/style/css.component.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/component/widget-iframe.component.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/component/widget-iframe.component.html","../../../../projects/provoly/dashboard/widgets/widget-iframe/i18n/en.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/i18n/fr.translations.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/widget-iframe.module.ts","../../../../projects/provoly/dashboard/widgets/widget-iframe/provoly-dashboard-widgets-widget-iframe.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { PryIframeMessageType } from './iframe-message-type.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IframeMessagingService {\n message$ = new Subject<PryIframeMessageType>();\n\n received($event: PryIframeMessageType, 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: '@pry'\n };\n if (!!target) {\n target.postMessage(msg, origin ?? '*');\n }\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'pry-widget-iframe-css',\n template: '',\n styleUrls: ['./_o-widget-iframe.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PryWidgetIframeCssComponent {}\n","import { Component, ElementRef, ViewChild } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { Store } from '@ngrx/store';\nimport { BaseWidgetComponent, IframeWidgetOptions, WIDGET_HEADER_HEIGHT } from '@provoly/dashboard';\nimport { combineLatest, debounceTime, delay, fromEvent, map, Observable } from 'rxjs';\nimport { PryIframeMessageType } from '../messaging/iframe-message-type.interface';\nimport { IframeMessagingService } from '../messaging/iframe-messaging.service';\n\n@Component({\n selector: 'pry-widget-iframe',\n templateUrl: './widget-iframe.component.html'\n})\nexport class WidgetIframeComponent extends BaseWidgetComponent {\n options$: Observable<IframeWidgetOptions>;\n src$: Observable<SafeResourceUrl | undefined>;\n height$: Observable<number>;\n optionsCopy: IframeWidgetOptions = {};\n WIDGET_HEADER_HEIGHT = WIDGET_HEADER_HEIGHT;\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\n this.height$ = combineLatest([this.widgetSize$.pipe(debounceTime(100)), this.displayHeader$]).pipe(\n map(([size, display]) => (size.height ?? 100) - (display ? WIDGET_HEADER_HEIGHT.value : 0)),\n delay(10)\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 PryIframeMessageType;\n if (event.data.target !== '@pry') {\n // ignore all non pry 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","<pry-widget-iframe-css></pry-widget-iframe-css>\n<div class=\"o-widget o-widget--iframe\">\n <pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"iframe_src\">{{ '@pry.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 </pry-settings>\n </pry-widget-header>\n <ng-container *ngIf=\"src$ | async as src\">\n <div [style.height.px]=\"height$ | async\">\n <iframe [src]=\"src\" title=\"Provoly iframe\" #iframe></iframe>\n </div>\n </ng-container>\n</div>\n","export const enTranslations = {\n '@pry': {\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 '@pry': {\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 PryCoreModule,\n PryDashboardModule,\n PryI18nModule,\n PryI18nService,\n PryIconModule,\n PrySelectModule,\n PryToggleModule\n} from '@provoly/dashboard';\nimport { PryCheckboxModule } from '@provoly/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 { PryWidgetIframeCssComponent } from './style/css.component';\n\n@NgModule({\n declarations: [WidgetIframeComponent, PryWidgetIframeCssComponent],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PryCoreModule,\n PryDashboardModule,\n PrySelectModule,\n PryIconModule,\n PryCheckboxModule,\n PryToggleModule,\n PryI18nModule\n ],\n providers: [IframeMessagingService],\n exports: [WidgetIframeComponent]\n})\nexport class WidgetIframeModule extends BaseWidgetModule {\n constructor(private pryTranslateService: PryI18nService) {\n super();\n this.pryTranslateService.addLangObject('fr', 'widget-iframe', frTranslations);\n this.pryTranslateService.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.PryWidgetIframeCssComponent","i1"],"mappings":"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"}