{"version":3,"file":"daffodil-design-youtube-player.mjs","sources":["../../../libs/design/youtube-player/src/youtube-player.component.ts","../../../libs/design/youtube-player/src/youtube-player.component.html","../../../libs/design/youtube-player/src/safe-url.pipe.ts","../../../libs/design/youtube-player/src/youtube-player.ts","../../../libs/design/youtube-player/src/daffodil-design-youtube-player.ts"],"sourcesContent":["import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnInit,\n} from '@angular/core';\nimport {\n  DomSanitizer,\n  SafeStyle,\n  SafeUrl,\n} from '@angular/platform-browser';\n\nconst validateProperty = (object: Record<string, any>, prop: string) => {\n  if (object[prop] === null || object[prop] === undefined || object[prop] === '') {\n    throw new Error(`DaffYoutubePlayerComponent must have a defined ${prop} attribute.`);\n  }\n};\n\nconst validateProperties = (object: Record<string, any>, props: string[]) => {\n  const invalidProps = props.filter(prop => {\n    try {\n      validateProperty(object, prop);\n    } catch(e) {\n      return true;\n    }\n    return false;\n  });\n\n  if (invalidProps.length) {\n    throw new Error(`DaffYoutubePlayerComponent must have the ${invalidProps.join(',')} attributes defined.`);\n  }\n};\n\n@Component({\n  selector: 'daff-youtube-player',\n  templateUrl: './youtube-player.component.html',\n  styleUrl: './youtube-player.component.scss',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[style.max-width]': 'maxWidth',\n  },\n})\nexport class DaffYoutubePlayerComponent implements OnInit {\n  /**\n   * The URL of the YouTube video.\n   */\n  @Input() src: SafeUrl;\n\n  /**\n   * The title of the YouTube video.\n   */\n  @Input() title = '';\n\n  private _width: number;\n\n  /**\n   * The width of the player.\n   */\n  @Input()\n  get width(): number {\n    return this._width;\n  }\n  set width(value: number) {\n    this._width = value;\n    validateProperty(this, 'width');\n  }\n\n  private _height: number;\n\n  /**\n   * The height of the player.\n   */\n  @Input()\n  get height(): number {\n    return this._height;\n  }\n  set height(value: number) {\n    this._height = value;\n    validateProperty(this, 'height');\n  }\n\n  constructor(private sanitizer: DomSanitizer) {}\n\n  /**\n   * @docs-private\n   */\n  ngOnInit(): void {\n    validateProperties(this, ['width', 'height']);\n  }\n\n  /**\n   * @docs-private\n   */\n  get _aspectRatio(): SafeStyle {\n    return this.sanitizer.bypassSecurityTrustStyle(this.width + ' / ' + this.height);\n  }\n\n  /**\n   * @docs-private\n   */\n  get maxWidth(): string {\n    return this.width + 'px';\n  }\n}\n","@if (src) {\n  <iframe class=\"daff-youtube-player\"\n    [style.aspectRatio]=\"_aspectRatio\"\n    [src]=\"src\"\n    [title]=\"title\"\n    frameborder=\"0\"\n    allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n    referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>\n}","import {\n  Pipe,\n  PipeTransform,\n} from '@angular/core';\nimport {\n  DomSanitizer,\n  SafeUrl,\n} from '@angular/platform-browser';\n\n@Pipe({\n  name: 'daffYoutubeSafe',\n})\nexport class DaffYoutubeSafePipe implements PipeTransform {\n  constructor(private domSanitizer: DomSanitizer) {}\n  transform(url: string): SafeUrl {\n    return this.domSanitizer.bypassSecurityTrustResourceUrl(url);\n  }\n}\n","import { DaffYoutubeSafePipe } from './safe-url.pipe';\nimport { DaffYoutubePlayerComponent } from './youtube-player.component';\n\n/**\n * @docs-private\n */\nexport const DAFF_YOUTUBE_PLAYER_COMPONENTS = <const> [\n  DaffYoutubePlayerComponent,\n  DaffYoutubeSafePipe,\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}