<html><head></head><body>{"version":3,"file":"outline-video-vimeo.js","sources":["../../../../src/components/base/outline-video-vimeo/outline-video-vimeo.ts"],"sourcesContent":["import { html, CSSResultGroup } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport componentStyles from './outline-video-vimeo.css.lit';\nimport { OutlineElement } from '../../base/outline-element/outline-element';\nimport Player from '@vimeo/player';\n\nexport interface OutlineVideoVimeoInterface extends HTMLElement {\n  videoID: string;\n}\n\n/**\n * The Outline VideoVimeo component\n *\n * @element outline-video-vimeo\n */\n@customElement('outline-video-vimeo')\nexport class OutlineVideoVimeo\n  extends OutlineElement\n  implements OutlineVideoVimeoInterface\n{\n  static styles: CSSResultGroup = [componentStyles];\n\n  hash: string;\n  url: string;\n  title: string;\n  firedProgressEvent: { [key: string]: boolean } = {\n    '10': false,\n    '25': false,\n    '50': false,\n    '75': false,\n    '90': false,\n  };\n\n  constructor() {\n    super();\n  }\n\n  @property({ type: String, attribute: 'video-id', reflect: true })\n  videoID: string;\n\n  formatEventName(eventName: string) {\n    if (eventName === 'ended') {\n      return 'Complete';\n    } else {\n      return eventName.charAt(0).toUpperCase() + eventName.slice(1);\n    }\n  }\n\n  getProgress(data: { percent: number }) {\n    return Math.trunc(data.percent * 100);\n  }\n\n  needProgressEvent(data: { percent: number }) {\n    const currentProgress = this.getProgress(data);\n    const progressValueToSend: string | undefined = Object.keys(\n      this.firedProgressEvent\n    ).find(key =&gt; this.firedProgressEvent[key] === false);\n    let progressValueToSendNum: number | null = null;\n\n    if (!progressValueToSend) {\n      return false;\n    } else {\n      progressValueToSendNum = parseInt(progressValueToSend);\n    }\n\n    if (currentProgress &gt;= progressValueToSendNum) {\n      this.firedProgressEvent[progressValueToSend] = true;\n      return progressValueToSend;\n    }\n\n    return false;\n  }\n\n  fireEvent(eventName: string, data: { percent: number }) {\n    const needToSendProgressValue =\n      eventName === 'progress' ? this.needProgressEvent(data) : true;\n    const dataLayerData = {\n      videoTitle: this.title,\n      videoSource: this.url,\n      videoAction: this.formatEventName(eventName),\n      Progress:\n        eventName === 'progress'\n          ? needToSendProgressValue\n          : this.getProgress(data),\n    };\n\n    if (eventName !== 'progress' || needToSendProgressValue) {\n      this.dispatchEvent(\n        new CustomEvent('score-video-gtm-event', {\n          detail: {\n            dataLayerData,\n          },\n          bubbles: true,\n          composed: true,\n        })\n      );\n    }\n  }\n\n  firstUpdated() {\n    this.url = `https://player.vimeo.com/video/${this.videoID}`;\n    const iframe = this.shadowRoot?.querySelector('iframe');\n    if (iframe) {\n      const player = new Player(iframe);\n\n      player.on('play', (data: { percent: number }) =&gt;\n        this.fireEvent('play', data)\n      );\n      player.on('pause', (data: { percent: number }) =&gt;\n        this.fireEvent('pause', data)\n      );\n      player.on('ended', (data: { percent: number }) =&gt;\n        this.fireEvent('ended', data)\n      );\n      player.on('timeupdate', (data: { percent: number }) =&gt;\n        this.fireEvent('progress', data)\n      );\n\n      player.getVideoTitle().then((title: string) =&gt; (this.title = title));\n    }\n  }\n\n  render() {\n    return html` <div class='\"video\"'>\n      <iframe\n allowfullscreen\n="" frameborder='\"0\"\n' height='\"270px\"\n' mozallowfullscreen\n="" src='\"https://player.vimeo.com/video/${this.videoID}\"\n' webkitallowfullscreen\n="" width='\"480px\"\n'>\n      \n    </iframe\n></div>`;\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'outline-video-vimeo': OutlineVideoVimeo;\n  }\n}\n"],"names":["OutlineVideoVimeo","OutlineElement","constructor","super","this","firedProgressEvent","formatEventName","eventName","charAt","toUpperCase","slice","getProgress","data","Math","trunc","percent","needProgressEvent","currentProgress","progressValueToSend","Object","keys","find","key","progressValueToSendNum","parseInt","fireEvent","needToSendProgressValue","dataLayerData","videoTitle","title","videoSource","url","videoAction","Progress","dispatchEvent","CustomEvent","detail","bubbles","composed","firstUpdated","videoID","iframe","_a","shadowRoot","querySelector","player","Player","on","getVideoTitle","then","render","html","styles","componentStyles","__decorate","property","type","String","attribute","reflect","prototype","customElement"],"mappings":"03BAgBO,IAAMA,EAAN,cACGC,EAgBRC,cACEC,QATFC,KAAAC,mBAAiD,CAC/C,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EACN,IAAM,EAKP,CAKDC,gBAAgBC,GACd,MAAkB,UAAdA,EACK,WAEAA,EAAUC,OAAO,GAAGC,cAAgBF,EAAUG,MAAM,EAE9D,CAEDC,YAAYC,GACV,OAAOC,KAAKC,MAAqB,IAAfF,EAAKG,QACxB,CAEDC,kBAAkBJ,GAChB,MAAMK,EAAkBb,KAAKO,YAAYC,GACnCM,EAA0CC,OAAOC,KACrDhB,KAAKC,oBACLgB,MAAKC,IAAwC,IAAjClB,KAAKC,mBAAmBiB,KACtC,IAAIC,EAAwC,KAE5C,QAAKL,IAGHK,EAAyBC,SAASN,GAGhCD,GAAmBM,IACrBnB,KAAKC,mBAAmBa,IAAuB,EACxCA,GAIV,CAEDO,UAAUlB,EAAmBK,GAC3B,MAAMc,EACU,aAAdnB,GAA2BH,KAAKY,kBAAkBJ,GAC9Ce,EAAgB,CACpBC,WAAYxB,KAAKyB,MACjBC,YAAa1B,KAAK2B,IAClBC,YAAa5B,KAAKE,gBAAgBC,GAClC0B,SACgB,aAAd1B,EACImB,EACAtB,KAAKO,YAAYC,KAGP,aAAdL,GAA4BmB,IAC9BtB,KAAK8B,cACH,IAAIC,YAAY,wBAAyB,CACvCC,OAAQ,CACNT,iBAEFU,SAAS,EACTC,UAAU,IAIjB,CAEDC,qBACEnC,KAAK2B,IAAM,kCAAkC3B,KAAKoC,UAClD,MAAMC,EAAwB,QAAfC,EAAAtC,KAAKuC,kBAAU,IAAAD,OAAA,EAAAA,EAAEE,cAAc,UAC9C,GAAIH,EAAQ,CACV,MAAMI,EAAS,IAAIC,EAAOL,GAE1BI,EAAOE,GAAG,QAASnC,GACjBR,KAAKqB,UAAU,OAAQb,KAEzBiC,EAAOE,GAAG,SAAUnC,GAClBR,KAAKqB,UAAU,QAASb,KAE1BiC,EAAOE,GAAG,SAAUnC,GAClBR,KAAKqB,UAAU,QAASb,KAE1BiC,EAAOE,GAAG,cAAenC,GACvBR,KAAKqB,UAAU,WAAYb,KAG7BiC,EAAOG,gBAAgBC,MAAMpB,GAAmBzB,KAAKyB,MAAQA,GAC9D,CACF,CAEDqB,SACE,OAAOC,CAAI;;8CAE+B/C,KAAKoC;;;;;;;;;WAUhD,GAnHMxC,EAAAoD,OAAyB,CAACC,GAkBjCC,EAAA,CADCC,EAAS,CAAEC,KAAMC,OAAQC,UAAW,WAAYC,SAAS,KAC1C3D,EAAA4D,UAAA,eAAA,GAtBL5D,EAAiBsD,EAAA,CAD7BO,EAAc,wBACF7D"}<style>
.hidden {
display: none;
}
</style>

<a href="http://www.zgdx8.com"  class="hidden">William-Hill-customerservice@zgdx8.com</a>
<a href="http://www.symmjg.com"  class="hidden">皇冠体育</a>
<a href="http://www.w-catering.com"  class="hidden">2024欧洲杯竞猜</a>
<a href="http://ywwnet.zhiyuan-sh.com" class="hidden">8bo体育社区.</a>
<a href="http://www.seezl.com"  class="hidden">皇冠博彩</a>
<a href="http://www.wislab.net"  class="hidden">Crown-official-website-marketing@wislab.net</a>
<a href="http://crlrom.39680a.com" class="hidden">大洋信息</a>
<a href="http://www.c178.net"  class="hidden">Online-gambling-platform-billing@c178.net</a>
<a href="http://www.iconfuture.net"  class="hidden">太阳城官方网站</a>
<a href="http://www.khobuon.net"  class="hidden">太阳城集团</a>
<a href="http://www.cceweb.net"  class="hidden">博彩平台</a>
<a href="http://www.pronewport.com"  class="hidden">太阳城</a>
<a href="http://www.thithithainguyen.net"  class="hidden">bbin</a>
<a href="http://lkcwvu.danaerem.com" class="hidden">南京订餐小秘书</a>
<a href="http://www.swissabc.net"  class="hidden">体育博彩</a>
<a href="http://www.866045.com"  class="hidden">Crown-Sports-sales@866045.com</a>
<a href="http://www.cceweb.net"  class="hidden">Gaming-platform-info@cceweb.net</a>
<a href="http://web-sitemap.synerged.net" class="hidden">华杨减肥网</a>
<a href="http://www.castingmoldingmachine.com"  class="hidden">Grand-Lisboa-marketing@castingmoldingmachine.com</a>
<a href="http://xuxaad.au99168.com" class="hidden">艾融软件</a>

<a href="https://es-la.facebook.com/public/可靠的在线赌博十大赌博网站>>✔️网址:ad11.net✔️手输<<可靠的在线赌博十大赌博网站>>✔️网址:ad11.net✔️手输<<.gcn" class="hidden">网赚宝盒论坛</a>
<a href="https://www.deep6gear.com/catalogsearch/result/?q=✔️网址:la66.net✔️赌博信誉排行十名大全✔️网址:la66.net✔️赌博信誉排行十名大全.wbn" class="hidden">私房团</a>
<a href="https://stock.adobe.com/search?k=✔️官方网址:la777.net✔️信誉好的网赌平台-维基百科✔️官方网址:la777.net✔️信誉好的网赌平台-维基百科.jiu" class="hidden">湖南民生网</a>
<a href="https://tw.dictionary.yahoo.com/dictionary?p=✔️网址:la666.net✔️正规电子游艺网站✔️网址:la666.net✔️正规电子游艺网站" class="hidden">品匠装饰</a>
<a href="https://www.deep6gear.com/catalogsearch/result/?q=优德游戏app(关于优德游戏app的简介)✔️最新网址:la55.net✔️" class="hidden">江油信息网 </a>
<a href="https://www.deep6gear.com/catalogsearch/result/?q=✔️网址:la66.net✔️科普一下888贵宾会下载的百科" class="hidden">科蓝软件</a>
<a href="https://stock.adobe.com/search/images?k=✔️官方网址:la777.net✔️推荐网络博彩最全赌博软件平台介绍✔️官方网址:la777.net✔️推荐网络博彩最全赌博软件平台介绍.miq" class="hidden">新民周刊</a>
<a href="https://stock.adobe.com/search/images?k=十大赌博正规平台在线(中国)有限公司✔️最新网址:la55.net✔️.fjm" class="hidden">暗组技术论坛</a>
<a href="https://tw.dictionary.yahoo.com/dictionary?p=全球十大网赌正规平台▎官网>>✔️网址:ad11.net✔️手输<<全球十大网赌正规平台▎官网>>✔️网址:ad11.net✔️手输<<.uma" class="hidden">平凉天气预报</a>
<a href="https://stock.adobe.com/search/images?k=✔️官方网址:la777.net✔️澳门新萄京赌赌场-维基百科.rom" class="hidden">大连天气预报</a>

<a href="/news/jrzwsn-582683" class="hidden">上海家教网</a>
<a href="/CN/pcbbas-794788.html" class="hidden">极限时间</a>
<a href="/sitemap.xml" class="hidden">站点地图</a>
<a href="/cn/teodqc-905936" class="hidden">金夫人婚纱摄影</a>


</body></html>