@hopeplayer/core 1.0.17 → 1.1.0

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 (80) hide show
  1. package/dist/HopePlayerElement.d.ts +4 -0
  2. package/dist/HopePlayerElement.d.ts.map +1 -1
  3. package/dist/chunks/{adTriggers-4SueRFgK.js → adTriggers-DXmtF4t2.js} +112 -117
  4. package/dist/chunks/adTriggers-DXmtF4t2.js.map +1 -0
  5. package/dist/chunks/{ads-DPL7m9PV.js → ads-BZYADoen.js} +2 -2
  6. package/dist/chunks/{ads-DPL7m9PV.js.map → ads-BZYADoen.js.map} +1 -1
  7. package/dist/chunks/{cast-DCAT2agI.js → cast-BGgfNj37.js} +70 -66
  8. package/dist/chunks/cast-BGgfNj37.js.map +1 -0
  9. package/dist/chunks/hls-DAtZkTUi.js +45 -0
  10. package/dist/chunks/{hls-BOHE_fg_.js.map → hls-DAtZkTUi.js.map} +1 -1
  11. package/dist/chunks/hlsLight-CCe_8eOw.js +28 -0
  12. package/dist/chunks/hlsLight-CCe_8eOw.js.map +1 -0
  13. package/dist/chunks/{markers-DE4O8xbw.js → markers-u2bpLu30.js} +2 -2
  14. package/dist/chunks/{markers-DE4O8xbw.js.map → markers-u2bpLu30.js.map} +1 -1
  15. package/dist/chunks/{player-C886oKP-.js → player-B_e_Nnvb.js} +510 -435
  16. package/dist/chunks/player-B_e_Nnvb.js.map +1 -0
  17. package/dist/chunks/{playlist-CI3mRZjo.js → playlist-ClnEXcRy.js} +24 -24
  18. package/dist/chunks/playlist-ClnEXcRy.js.map +1 -0
  19. package/dist/chunks/{qrResume-BNy8XCp_.js → qrResume-DXwD3oSA.js} +29 -30
  20. package/dist/chunks/{qrResume-BNy8XCp_.js.map → qrResume-DXwD3oSA.js.map} +1 -1
  21. package/dist/chunks/{redirectScreen-CJ3q9OX4.js → redirectScreen-DZwpVYWk.js} +2 -2
  22. package/dist/chunks/{redirectScreen-CJ3q9OX4.js.map → redirectScreen-DZwpVYWk.js.map} +1 -1
  23. package/dist/chunks/{rewardedUnlock-EyGMB9PK.js → rewardedUnlock-DoRVfTlV.js} +2 -2
  24. package/dist/chunks/{rewardedUnlock-EyGMB9PK.js.map → rewardedUnlock-DoRVfTlV.js.map} +1 -1
  25. package/dist/chunks/seekWhenReady-Clzne3-S.js +32 -0
  26. package/dist/chunks/seekWhenReady-Clzne3-S.js.map +1 -0
  27. package/dist/chunks/{segments-C2HKU6XK.js → segments-DERcwNUG.js} +2 -2
  28. package/dist/chunks/{segments-C2HKU6XK.js.map → segments-DERcwNUG.js.map} +1 -1
  29. package/dist/chunks/skipSegments-XjblXCGo.js +122 -0
  30. package/dist/chunks/skipSegments-XjblXCGo.js.map +1 -0
  31. package/dist/chunks/{sponsorship-DyFwGmEb.js → sponsorship-BT21uwN5.js} +36 -41
  32. package/dist/chunks/sponsorship-BT21uwN5.js.map +1 -0
  33. package/dist/chunks/{spriteThumbnails-D0NQ5CCp.js → spriteThumbnails-y_JaE9LE.js} +2 -2
  34. package/dist/chunks/{spriteThumbnails-D0NQ5CCp.js.map → spriteThumbnails-y_JaE9LE.js.map} +1 -1
  35. package/dist/chunks/{story-D5Got6-6.js → story-UpOGg7Ch.js} +27 -15
  36. package/dist/chunks/story-UpOGg7Ch.js.map +1 -0
  37. package/dist/chunks/trackingPixel-D2wxdCEz.js +20 -0
  38. package/dist/chunks/trackingPixel-D2wxdCEz.js.map +1 -0
  39. package/dist/controls/SeekBar.d.ts.map +1 -1
  40. package/dist/controls/SettingsMenu.d.ts +16 -0
  41. package/dist/controls/SettingsMenu.d.ts.map +1 -1
  42. package/dist/hls/SourceManager.d.ts +2 -0
  43. package/dist/hls/SourceManager.d.ts.map +1 -1
  44. package/dist/hope-player.js +1 -1
  45. package/dist/i18n/locales/en.d.ts.map +1 -1
  46. package/dist/i18n/locales/tr.d.ts.map +1 -1
  47. package/dist/i18n/types.d.ts +5 -0
  48. package/dist/i18n/types.d.ts.map +1 -1
  49. package/dist/keyboard/KeyboardController.d.ts.map +1 -1
  50. package/dist/plugins/ad-triggers/AdTriggers.d.ts.map +1 -1
  51. package/dist/plugins/cast/CastController.d.ts.map +1 -1
  52. package/dist/plugins/playlist/PlaylistRunner.d.ts.map +1 -1
  53. package/dist/plugins/qr-resume/QrResume.d.ts.map +1 -1
  54. package/dist/plugins/shared/seekWhenReady.d.ts +22 -0
  55. package/dist/plugins/shared/seekWhenReady.d.ts.map +1 -0
  56. package/dist/plugins/shared/trackingPixel.d.ts +8 -0
  57. package/dist/plugins/shared/trackingPixel.d.ts.map +1 -0
  58. package/dist/plugins/skip-segments/SkipSegments.d.ts +40 -0
  59. package/dist/plugins/skip-segments/SkipSegments.d.ts.map +1 -0
  60. package/dist/plugins/skip-segments/index.d.ts +6 -0
  61. package/dist/plugins/skip-segments/index.d.ts.map +1 -0
  62. package/dist/plugins/sponsorship/SponsorshipLayer.d.ts.map +1 -1
  63. package/dist/plugins/story/HopeStory.d.ts +2 -0
  64. package/dist/plugins/story/HopeStory.d.ts.map +1 -1
  65. package/dist/screens/ErrorScreen.d.ts +7 -0
  66. package/dist/screens/ErrorScreen.d.ts.map +1 -1
  67. package/dist/types/index.d.ts +60 -0
  68. package/dist/types/index.d.ts.map +1 -1
  69. package/dist/utils/media-error.d.ts +10 -0
  70. package/dist/utils/media-error.d.ts.map +1 -0
  71. package/dist/utils/seek-by.d.ts +8 -0
  72. package/dist/utils/seek-by.d.ts.map +1 -1
  73. package/package.json +2 -1
  74. package/dist/chunks/adTriggers-4SueRFgK.js.map +0 -1
  75. package/dist/chunks/cast-DCAT2agI.js.map +0 -1
  76. package/dist/chunks/hls-BOHE_fg_.js +0 -24791
  77. package/dist/chunks/player-C886oKP-.js.map +0 -1
  78. package/dist/chunks/playlist-CI3mRZjo.js.map +0 -1
  79. package/dist/chunks/sponsorship-DyFwGmEb.js.map +0 -1
  80. package/dist/chunks/story-D5Got6-6.js.map +0 -1
@@ -87,6 +87,8 @@ export declare class HopePlayerElement extends HTMLElement {
87
87
  private geoChecker;
88
88
  private redirectScreen;
89
89
  private redirectKey;
90
+ private skipSegments;
91
+ private skipSegmentsKey;
90
92
  private qrResume;
91
93
  private pauseAd;
92
94
  private adTriggers;
@@ -271,6 +273,8 @@ export declare class HopePlayerElement extends HTMLElement {
271
273
  private get isChromeFullyHidden();
272
274
  private readonly onPlay;
273
275
  private readonly onPause;
276
+ private readonly onEnded;
277
+ private readonly onRateChange;
274
278
  private readonly onPointerDownFocus;
275
279
  private readonly onVideoPressStart;
276
280
  private readonly onVideoPressEnd;
@@ -1 +1 @@
1
- {"version":3,"file":"HopePlayerElement.d.ts","sourceRoot":"","sources":["../src/HopePlayerElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HopePlayerElement.d.ts","sourceRoot":"","sources":["../src/HopePlayerElement.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgC,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC/E,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAuC,KAAK,kBAAkB,EAA+C,MAAM,qBAAqB,CAAC;AAyBhJ,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA+C5C,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,QAAmB,CAAC;AAiCpD,gHAAgH;AAChH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,4CAA4C;IAC5C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,0GAA0G;IAC1G,OAAO,CAAC,UAAU,CAA8B;IAChD,2GAA2G;IAC3G,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,oFAAoF;IACpF,OAAO,CAAC,iBAAiB,CAA+C;IACxE,6CAA6C;IAC7C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,UAAU,CAA2B;IAC7C,yEAAyE;IACzE,OAAO,CAAC,YAAY,CAAS;IAC7B,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,2GAA2G;IAC3G,OAAO,CAAC,eAAe,CAAW;IAClC,4DAA4D;IAC5D,OAAO,CAAC,WAAW,CAA4B;IAC/C,oGAAoG;IACpG,OAAO,CAAC,cAAc,CAAK;IAC3B,kFAAkF;IAClF,OAAO,CAAC,kBAAkB,CAA+B;IACzD,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAA2B;IAC7C,mHAAmH;IACnH,OAAO,CAAC,WAAW,CAAoF;IACvG,OAAO,CAAC,cAAc,CAA4D;IAClF,OAAO,CAAC,WAAW,CAAiE;IACpF,+FAA+F;IAC/F,oFAAoF;IACpF,OAAO,CAAC,cAAc,CAA0B;IAChD,mGAAmG;IACnG,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,WAAW,CAAK;IACxB,0FAA0F;IAC1F,OAAO,CAAC,eAAe,CAAS;IAChC,2GAA2G;IAC3G,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,iBAAiB,CAAM;IAC/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAAM;IAC3B,mFAAmF;IACnF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAA+B;IACrD,kGAAkG;IAClG,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,cAAc,CAAuB;IAC7C,2FAA2F;IAC3F,OAAO,CAAC,aAAa,CAAiD;IACtE,6HAA6H;IAC7H,OAAO,CAAC,kBAAkB,CAAS;IACnC,kCAAkC;IAClC,OAAO,CAAC,YAAY,CAAuB;IAC3C,kHAAkH;IAClH,OAAO,CAAC,YAAY,CAA0C;IAC9D,qFAAqF;IACrF,OAAO,CAAC,aAAa,CAAqC;IAC1D,oEAAoE;IACpE,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,WAAW,CAA8E;IACjG;;;OAGG;IACH,OAAO,CAAC,sBAAsB,CAAkC;IAChE,OAAO,CAAC,sBAAsB,CAAS;IACvC;;;OAGG;IACH,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAA8C;IACpE;;;OAGG;IACH,OAAO,CAAC,UAAU,CAA8D;IAChF;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,WAAW,CAA8C;IACjE,qEAAqE;IACrE,OAAO,CAAC,iBAAiB,CAA+C;IACxE,gIAAgI;IAChI,OAAO,CAAC,mBAAmB,CAAS;IACpC,uFAAuF;IACvF,OAAO,CAAC,iBAAiB,CAAS;IAClC,mEAAmE;IACnE,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAK;IACtB,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgD;IACrE,6HAA6H;IAC7H,OAAO,CAAC,UAAU,CAAQ;;IAqJ1B,iBAAiB,IAAI,IAAI;IAkEzB,oBAAoB,IAAI,IAAI;IAgF5B,4FAA4F;IAC5F,WAAW,IAAI,OAAO;IAItB,wBAAwB,IAAI,IAAI;IAIhC,IAAI,OAAO,IAAI,iBAAiB,CAE/B;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,iBAAiB,EAWnC;IAED,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,KAAK,IAAI,IAAI;IAIb,gHAAgH;IAChH,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED,kCAAkC;IAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,SAAuB;IAE9C,oGAAoG;IACpG,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,mFAAmF;IAC7E,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAQnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAY3B;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG9B;IAEF;;;OAGG;IACH,cAAc,IAAI,IAAI;IAItB,6HAA6H;IACvH,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAEjC;IAEF,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAY5B;IAEF,8GAA8G;IAC9G,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,CAEpB;IAED,kNAAkN;IAClN,YAAY,IAAI,IAAI;IAIpB,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAEnC;IAED,iBAAiB,IAAI,IAAI;IAIzB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,gBAAgB;YAoBV,YAAY;IAgF1B,6FAA6F;YAC/E,uBAAuB;YAoDvB,YAAY;IAsS1B,oGAAoG;IACpG,OAAO,CAAC,eAAe;IAkCvB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB,2FAA2F;IAC3F,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAkBjC;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAW3B;IAEF,sGAAsG;IACtG,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAexC;IAEF,+GAA+G;IAC/G,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAelC;IAEF,qJAAqJ;IACrJ,OAAO,CAAC,sBAAsB;IAgD9B,6HAA6H;IAC7H,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,yBAAyB;IAUjC,yFAAyF;IACzF,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;IAItB,4FAA4F;IAC5F,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,qBAAqB;IAgB7B,sGAAsG;IACtG,kBAAkB,IAAI,MAAM,GAAG,IAAI;IAenC,gHAAgH;IAChH,OAAO,CAAC,kBAAkB;YAmBZ,mBAAmB;IAsCjC;;;OAGG;IACH,OAAO,CAAC,UAAU;YAMJ,SAAS;IAkCvB,uHAAuH;IACvH,OAAO,CAAC,SAAS;YAsDH,eAAe;YA4Bf,gBAAgB;IAwB9B,uEAAuE;YACzD,mBAAmB;IAWjC,wIAAwI;IACxI,OAAO,CAAC,kBAAkB;IAe1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;YAwBZ,mBAAmB;IAuBjC,iGAAiG;YACnF,WAAW;IAQzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAqCjC;IAIF,mHAAmH;IACnH,OAAO,KAAK,QAAQ,GAMnB;IAED,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAIjC;IAEF;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2C;IAC1E,OAAO,KAAK,eAAe,GAE1B;IACD,OAAO,KAAK,mBAAmB,GAG9B;IAED,OAAO,CAAC,QAAQ,CAAC,MAAM,CASrB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAUtB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAEtB;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAMjC;IAEF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAMhC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CA4B9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAgCxB,qGAAqG;IACrG,OAAO,CAAC,cAAc;IAMtB,uGAAuG;IACvG,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAEjC;IAEF,OAAO,CAAC,UAAU;IAIlB,+GAA+G;IAC/G,OAAO,CAAC,gBAAgB;IAYxB,iHAAiH;IACjH,OAAO,CAAC,kBAAkB;IAI1B;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,QAAQ,GAAG,SAAoB,GAAG,IAAI;IAgBrE,gGAAgG;IAChG,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IA0BhC,yIAAyI;IACzI,cAAc,IAAI,IAAI;IAMtB,aAAa,IAAI,IAAI;IAMrB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAY5B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;IAEF,uIAAuI;IACvI,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,UAAU;IAMlB,wGAAwG;YAC1F,cAAc;IAoC5B,yFAAyF;IACzF,OAAO,CAAC,cAAc;IAqDtB,8GAA8G;IAC9G,OAAO,CAAC,mBAAmB;IAU3B,wFAAwF;IACxF,OAAO,CAAC,iBAAiB;IAMzB,+GAA+G;IAC/G,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAW/B;CACL"}
@@ -1,45 +1,46 @@
1
1
  var T = Object.defineProperty;
2
- var x = (a, e, t) => e in a ? T(a, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[e] = t;
3
- var c = (a, e, t) => x(a, typeof e != "symbol" ? e + "" : e, t);
2
+ var x = (l, e, t) => e in l ? T(l, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : l[e] = t;
3
+ var c = (l, e, t) => x(l, typeof e != "symbol" ? e + "" : e, t);
4
+ import { f as b } from "./trackingPixel-D2wxdCEz.js";
4
5
  import { l as L } from "./gpt-CGXHTG_H.js";
5
6
  const C = 5e3, F = 8e3, P = 30, U = ["none", "full", "center", "top", "bottom", "top-left", "top-right", "bottom-left", "bottom-right"], N = ["time", "interval", "percent", "fullscreen", "fullscreenExit", "start", "pause", "resume", "ended"], R = 1.5;
6
- let M = 0;
7
- function D(a) {
8
- if (typeof a != "string" || !a.trim()) return null;
7
+ let D = 0;
8
+ function M(l) {
9
+ if (typeof l != "string" || !l.trim()) return null;
9
10
  try {
10
- const e = new URL(a, document.baseURI);
11
+ const e = new URL(l, document.baseURI);
11
12
  return e.protocol === "https:" || e.protocol === "http:" ? e.href : null;
12
13
  } catch {
13
14
  return null;
14
15
  }
15
16
  }
16
- const p = (a, e, t) => typeof a == "number" && Number.isFinite(a) ? Math.min(t, Math.max(e, a)) : void 0, k = (a) => typeof a == "string" ? a.slice(0, 200) : typeof a == "number" && Number.isFinite(a) || typeof a == "boolean" ? String(a) : null;
17
- function y(a) {
17
+ const p = (l, e, t) => typeof l == "number" && Number.isFinite(l) ? Math.min(t, Math.max(e, l)) : void 0, k = (l) => typeof l == "string" ? l.slice(0, 200) : typeof l == "number" && Number.isFinite(l) || typeof l == "boolean" ? String(l) : null;
18
+ function y(l) {
18
19
  let e;
19
- if (typeof a == "string") {
20
- if (!a.trim()) return;
21
- e = [...new URLSearchParams(a.trim().replace(/^\?/, "")).entries()].map(([s, i]) => [s, i.includes(",") ? i.split(",") : i]);
22
- } else if (a && typeof a == "object" && !Array.isArray(a))
23
- e = Object.entries(a);
20
+ if (typeof l == "string") {
21
+ if (!l.trim()) return;
22
+ e = [...new URLSearchParams(l.trim().replace(/^\?/, "")).entries()].map(([s, i]) => [s, i.includes(",") ? i.split(",") : i]);
23
+ } else if (l && typeof l == "object" && !Array.isArray(l))
24
+ e = Object.entries(l);
24
25
  else
25
26
  return;
26
27
  const t = {};
27
28
  for (const [s, i] of e.slice(0, 50))
28
29
  if (/^[\w.-]{1,40}$/.test(s))
29
30
  if (Array.isArray(i)) {
30
- const r = i.map(k).filter((l) => l !== null && l !== "").slice(0, 30);
31
- r.length && (t[s] = r);
31
+ const n = i.map(k).filter((a) => a !== null && a !== "").slice(0, 30);
32
+ n.length && (t[s] = n);
32
33
  } else {
33
- const r = k(i);
34
- r !== null && r !== "" && (t[s] = r);
34
+ const n = k(i);
35
+ n !== null && n !== "" && (t[s] = n);
35
36
  }
36
37
  return Object.keys(t).length ? t : void 0;
37
38
  }
38
- function O(a) {
39
- if (!a || typeof a != "object") return null;
40
- const e = a, t = e.type;
39
+ function O(l) {
40
+ if (!l || typeof l != "object") return null;
41
+ const e = l, t = e.type;
41
42
  if (!N.includes(t)) return null;
42
- const s = (i, r, l) => (Array.isArray(i) ? i : [i]).map((o) => p(o, r, l)).filter((o) => o !== void 0).slice(0, 50);
43
+ const s = (i, n, a) => (Array.isArray(i) ? i : [i]).map((o) => p(o, n, a)).filter((o) => o !== void 0).slice(0, 50);
43
44
  if (t === "time") {
44
45
  const i = s(e.at, 0, 86400);
45
46
  return i.length ? { type: t, at: i } : null;
@@ -54,56 +55,50 @@ function O(a) {
54
55
  }
55
56
  return { type: t, delay: p(e.delay, 0, 600) };
56
57
  }
57
- function b(a) {
58
+ function S(l) {
58
59
  var o, d, h;
59
- if (!a || typeof a != "object") return null;
60
- const e = a;
60
+ if (!l || typeof l != "object") return null;
61
+ const e = l;
61
62
  if (e.active !== !0 || !Array.isArray(e.rules)) return null;
62
63
  const t = Date.now(), s = e.validFrom ? Date.parse(e.validFrom) : NaN, i = e.validUntil ? Date.parse(e.validUntil) : NaN;
63
64
  if (Number.isFinite(s) && t < s || Number.isFinite(i) && t > i) return null;
64
- const r = (u) => Array.isArray(u) ? u.map(D).filter((n) => !!n).slice(0, 10) : [], l = [];
65
+ const n = (u) => Array.isArray(u) ? u.map(M).filter((r) => !!r).slice(0, 10) : [], a = [];
65
66
  for (const u of e.rules.slice(0, 20)) {
66
67
  if (!u || typeof u != "object") continue;
67
- const n = u;
68
- if (typeof n.adUnitPath != "string" || !/^\/\d+(?:[,/][\w.\-/]*)?$/.test(n.adUnitPath)) continue;
69
- const f = (Array.isArray(n.triggers) ? n.triggers : []).map(O).filter((v) => !!v).slice(0, 20);
68
+ const r = u;
69
+ if (typeof r.adUnitPath != "string" || !/^\/\d+(?:[,/][\w.\-/]*)?$/.test(r.adUnitPath)) continue;
70
+ const f = (Array.isArray(r.triggers) ? r.triggers : []).map(O).filter((v) => !!v).slice(0, 20);
70
71
  if (!f.length) continue;
71
- const g = Array.isArray(n.size) && n.size.length === 2 ? [p(n.size[0], 1, 4e3), p(n.size[1], 1, 4e3)] : null, m = U.includes(n.layout) ? n.layout : "none";
72
- l.push({
73
- id: typeof n.id == "string" ? n.id.slice(0, 80) : void 0,
74
- adUnitPath: n.adUnitPath,
75
- mode: n.mode === "fullscreen" || n.mode === "normal" ? n.mode : "any",
72
+ const g = Array.isArray(r.size) && r.size.length === 2 ? [p(r.size[0], 1, 4e3), p(r.size[1], 1, 4e3)] : null, m = U.includes(r.layout) ? r.layout : "none";
73
+ a.push({
74
+ id: typeof r.id == "string" ? r.id.slice(0, 80) : void 0,
75
+ adUnitPath: r.adUnitPath,
76
+ mode: r.mode === "fullscreen" || r.mode === "normal" ? r.mode : "any",
76
77
  triggers: f,
77
- targeting: y(n.targeting),
78
+ targeting: y(r.targeting),
78
79
  // API'lerde yaygın `cust_params` yazımı da kabul edilir.
79
- custParams: y(n.custParams ?? n.cust_params),
80
+ custParams: y(r.custParams ?? r.cust_params),
80
81
  layout: m,
81
82
  size: g && g[0] && g[1] ? [g[0], g[1]] : void 0,
82
- backdrop: typeof n.backdrop == "boolean" ? n.backdrop : m === "full",
83
- pauseContent: n.pauseContent === !0,
84
- closeButton: n.closeButton !== !1,
85
- closeDelay: p(n.closeDelay, 0, 120) ?? 0,
86
- duration: p(n.duration, 1, 3600),
87
- label: n.label === !1 ? !1 : typeof n.label == "string" ? n.label.slice(0, 40) : void 0,
88
- maxShows: p(n.maxShows, 1, 1e3),
89
- minGapSeconds: p(n.minGapSeconds, 0, 86400),
90
- minPlayerWidth: p(n.minPlayerWidth, 0, 4e3),
91
- tracking: { impression: r((o = n.tracking) == null ? void 0 : o.impression), close: r((d = n.tracking) == null ? void 0 : d.close), empty: r((h = n.tracking) == null ? void 0 : h.empty) }
83
+ backdrop: typeof r.backdrop == "boolean" ? r.backdrop : m === "full",
84
+ pauseContent: r.pauseContent === !0,
85
+ closeButton: r.closeButton !== !1,
86
+ closeDelay: p(r.closeDelay, 0, 120) ?? 0,
87
+ duration: p(r.duration, 1, 3600),
88
+ label: r.label === !1 ? !1 : typeof r.label == "string" ? r.label.slice(0, 40) : void 0,
89
+ maxShows: p(r.maxShows, 1, 1e3),
90
+ minGapSeconds: p(r.minGapSeconds, 0, 86400),
91
+ minPlayerWidth: p(r.minPlayerWidth, 0, 4e3),
92
+ tracking: { impression: n((o = r.tracking) == null ? void 0 : o.impression), close: n((d = r.tracking) == null ? void 0 : d.close), empty: n((h = r.tracking) == null ? void 0 : h.empty) }
92
93
  });
93
94
  }
94
- return l.length ? {
95
+ return a.length ? {
95
96
  active: !0,
96
97
  id: typeof e.id == "string" ? e.id.slice(0, 120) : void 0,
97
98
  minGapSeconds: p(e.minGapSeconds, 0, 86400) ?? P,
98
- rules: l
99
+ rules: a
99
100
  } : null;
100
101
  }
101
- function S(a) {
102
- for (const e of a ?? []) {
103
- const t = new Image();
104
- t.referrerPolicy = "no-referrer-when-downgrade", t.src = e;
105
- }
106
- }
107
102
  class $ {
108
103
  constructor(e, t) {
109
104
  c(this, "options");
@@ -111,7 +106,7 @@ class $ {
111
106
  c(this, "loaded", !1);
112
107
  c(this, "googletag", null);
113
108
  c(this, "showing", null);
114
- c(this, "instance", ++M);
109
+ c(this, "instance", ++D);
115
110
  c(this, "seq", 0);
116
111
  c(this, "requestSeq", 0);
117
112
  c(this, "destroyed", !1);
@@ -172,13 +167,13 @@ class $ {
172
167
  this.lastPos = t;
173
168
  const i = this.config;
174
169
  if (!i || e.paused || e.seeking || this.isLive() || this.ctx.isBlocked() || t <= s || t - s > R) return;
175
- const r = e.duration;
170
+ const n = e.duration;
176
171
  i.rules.forEach(
177
- (l, o) => l.triggers.forEach((d, h) => {
172
+ (a, o) => a.triggers.forEach((d, h) => {
178
173
  if (!(d.type !== "time" && d.type !== "percent"))
179
174
  for (const u of d.at) {
180
- const n = d.type === "percent" ? Number.isFinite(r) && r > 0 ? r * u / 100 : NaN : u, f = `${o}:${h}:${u}`;
181
- s < n && n <= t && !this.fired.has(f) && (this.fired.add(f), this.showRule(o, d.type));
175
+ const r = d.type === "percent" ? Number.isFinite(n) && n > 0 ? n * u / 100 : NaN : u, f = `${o}:${h}:${u}`;
176
+ s < r && r <= t && !this.fired.has(f) && (this.fired.add(f), this.showRule(o, d.type));
182
177
  }
183
178
  })
184
179
  );
@@ -190,18 +185,18 @@ class $ {
190
185
  this.lastTick = e;
191
186
  const s = this.ctx.videoEl, i = this.config;
192
187
  if (!i || s.paused || s.ended || document.hidden || this.ctx.isBlocked() || (o = this.showing) != null && o.filled) return;
193
- const r = this.watchedMs / 1e3;
188
+ const n = this.watchedMs / 1e3;
194
189
  this.watchedMs += t;
195
- const l = this.watchedMs / 1e3;
190
+ const a = this.watchedMs / 1e3;
196
191
  i.rules.forEach(
197
- (d, h) => d.triggers.forEach((u, n) => {
192
+ (d, h) => d.triggers.forEach((u, r) => {
198
193
  if (u.type === "interval") {
199
- const f = u.startAfter ?? u.every, g = Math.floor((l - f) / u.every);
200
- l >= f && f + g * u.every > r && this.showRule(h, "interval");
194
+ const f = u.startAfter ?? u.every, g = Math.floor((a - f) / u.every);
195
+ a >= f && f + g * u.every > n && this.showRule(h, "interval");
201
196
  } else if (u.type === "time" && this.isLive())
202
197
  for (const f of u.at) {
203
- const g = `${h}:${n}:${f}:live`;
204
- r < f && f <= l && !this.fired.has(g) && (this.fired.add(g), this.showRule(h, "time"));
198
+ const g = `${h}:${r}:${f}:live`;
199
+ n < f && f <= a && !this.fired.has(g) && (this.fired.add(g), this.showRule(h, "time"));
205
200
  }
206
201
  })
207
202
  );
@@ -231,23 +226,23 @@ class $ {
231
226
  async load() {
232
227
  const e = ++this.requestSeq;
233
228
  if (!this.options.endpoint) {
234
- this.apply(b(this.options.config));
229
+ this.apply(S(this.options.config));
235
230
  return;
236
231
  }
237
232
  const t = typeof AbortController < "u" ? new AbortController() : null, s = setTimeout(() => t == null ? void 0 : t.abort(), this.options.timeoutMs ?? C);
238
233
  let i = "";
239
234
  try {
240
- const r = new URL(this.options.endpoint, document.baseURI);
241
- for (const [d, h] of Object.entries(this.options.params ?? {})) r.searchParams.set(d, h);
242
- i = r.href;
243
- const l = await fetch(i, { ...this.options.fetchInit, signal: t == null ? void 0 : t.signal });
244
- if (!l.ok) throw new Error(`HTTP ${l.status}`);
245
- const o = await l.json();
235
+ const n = new URL(this.options.endpoint, document.baseURI);
236
+ for (const [d, h] of Object.entries(this.options.params ?? {})) n.searchParams.set(d, h);
237
+ i = n.href;
238
+ const a = await fetch(i, { ...this.options.fetchInit, signal: t == null ? void 0 : t.signal });
239
+ if (!a.ok) throw new Error(`HTTP ${a.status}`);
240
+ const o = await a.json();
246
241
  if (this.destroyed || e !== this.requestSeq) return;
247
- this.apply(b(o));
248
- } catch (r) {
242
+ this.apply(S(o));
243
+ } catch (n) {
249
244
  if (this.destroyed || e !== this.requestSeq) return;
250
- this.ctx.log({ message: `Ad triggers API failed: ${String(r)}`, details: { url: i } }), !this.config && this.options.config && this.apply(b(this.options.config));
245
+ this.ctx.log({ message: `Ad triggers API failed: ${String(n)}`, details: { url: i } }), !this.config && this.options.config && this.apply(S(this.options.config));
251
246
  } finally {
252
247
  clearTimeout(s);
253
248
  }
@@ -263,16 +258,16 @@ class $ {
263
258
  trigger(e) {
264
259
  const t = this.config;
265
260
  t && t.rules.forEach((s, i) => {
266
- const r = s.triggers.find((d) => d.type === e);
267
- if (!r) return;
268
- const l = (r.delay ?? 0) * 1e3;
269
- if (l <= 0) {
261
+ const n = s.triggers.find((d) => d.type === e);
262
+ if (!n) return;
263
+ const a = (n.delay ?? 0) * 1e3;
264
+ if (a <= 0) {
270
265
  this.showRule(i, e);
271
266
  return;
272
267
  }
273
268
  const o = setTimeout(() => {
274
269
  this.delayed = this.delayed.filter((d) => d.timer !== o), this.showRule(i, e);
275
- }, l);
270
+ }, a);
276
271
  this.delayed.push({ type: e, timer: o });
277
272
  });
278
273
  }
@@ -285,35 +280,35 @@ class $ {
285
280
  var d, h;
286
281
  const s = (d = this.config) == null ? void 0 : d.rules[e];
287
282
  if (!s || this.destroyed) return;
288
- const i = this.ctx.videoEl, r = this.ctx.isFullscreen(), l = (u) => this.ctx.log({ message: `Ad trigger skipped (${u})`, details: { rule: s.id, trigger: t } });
289
- if (this.showing && !(this.showing.filled && this.showing.rule.layout === "none")) return l("another ad is showing");
290
- if (this.ctx.isBlocked()) return l("video ad / intro screen");
291
- if (document.hidden) return l("tab hidden");
292
- if (this.ctx.isNativeFullscreen()) return l("native iOS fullscreen");
293
- if (s.mode === "fullscreen" && !r) return l("not fullscreen");
294
- if (s.mode === "normal" && r) return l("fullscreen");
283
+ const i = this.ctx.videoEl, n = this.ctx.isFullscreen(), a = (u) => this.ctx.log({ message: `Ad trigger skipped (${u})`, details: { rule: s.id, trigger: t } });
284
+ if (this.showing && !(this.showing.filled && this.showing.rule.layout === "none")) return a("another ad is showing");
285
+ if (this.ctx.isBlocked()) return a("video ad / intro screen");
286
+ if (document.hidden) return a("tab hidden");
287
+ if (this.ctx.isNativeFullscreen()) return a("native iOS fullscreen");
288
+ if (s.mode === "fullscreen" && !n) return a("not fullscreen");
289
+ if (s.mode === "normal" && n) return a("fullscreen");
295
290
  if (t === "pause" && (!i.paused || i.ended) || t === "ended" && !i.ended || ["time", "percent", "interval", "start", "resume"].includes(t) && i.paused) return;
296
- if (s.minPlayerWidth && this.ctx.overlayEl.getBoundingClientRect().width < s.minPlayerWidth) return l("player too narrow");
291
+ if (s.minPlayerWidth && this.ctx.overlayEl.getBoundingClientRect().width < s.minPlayerWidth) return a("player too narrow");
297
292
  const o = Date.now();
298
- if (s.maxShows && (this.shows.get(e) ?? 0) >= s.maxShows) return l("maxShows");
299
- if (s.minGapSeconds && o - (this.lastShownAt.get(e) ?? 0) < s.minGapSeconds * 1e3) return l("rule minGapSeconds");
300
- if (o - this.lastAnyAt < (((h = this.config) == null ? void 0 : h.minGapSeconds) ?? P) * 1e3) return l("minGapSeconds");
301
- this.showing && this.close("replaced"), this.lastAnyAt = o, this.lastShownAt.set(e, o), this.request(e, s, t, r);
293
+ if (s.maxShows && (this.shows.get(e) ?? 0) >= s.maxShows) return a("maxShows");
294
+ if (s.minGapSeconds && o - (this.lastShownAt.get(e) ?? 0) < s.minGapSeconds * 1e3) return a("rule minGapSeconds");
295
+ if (o - this.lastAnyAt < (((h = this.config) == null ? void 0 : h.minGapSeconds) ?? P) * 1e3) return a("minGapSeconds");
296
+ this.showing && this.close("replaced"), this.lastAnyAt = o, this.lastShownAt.set(e, o), this.request(e, s, t, n);
302
297
  }
303
298
  async request(e, t, s, i) {
304
- const r = ++this.seq, l = `hp-adtrigger-${this.instance}`, o = this.buildBox(t, l), d = document.createElement("div");
305
- d.id = `hp-adtrigger-${this.instance}-${r}`, d.slot = l;
299
+ const n = ++this.seq, a = `hp-adtrigger-${this.instance}`, o = this.buildBox(t, a), d = document.createElement("div");
300
+ d.id = `hp-adtrigger-${this.instance}-${n}`, d.slot = a;
306
301
  const h = { rule: t, trigger: s, box: o, adHost: d, slot: null, filled: !1, pausedContent: !1, timers: [] };
307
302
  this.showing = h, this.ctx.overlayEl.appendChild(o), this.ctx.hostEl.appendChild(d);
308
- const u = { rule: t.id, trigger: s, adUnitPath: t.adUnitPath }, n = (g) => {
303
+ const u = { rule: t.id, trigger: s, adUnitPath: t.adUnitPath }, r = (g) => {
309
304
  var m;
310
- this.showing === h && (this.ctx.log({ message: `Ad trigger: no ad (${g})`, details: { ...u } }), S((m = t.tracking) == null ? void 0 : m.empty), this.ctx.hostEl.dispatchEvent(new CustomEvent("hp:adtriggerempty", { detail: u })), this.teardown(h));
305
+ this.showing === h && (this.ctx.log({ message: `Ad trigger: no ad (${g})`, details: { ...u } }), b((m = t.tracking) == null ? void 0 : m.empty), this.ctx.hostEl.dispatchEvent(new CustomEvent("hp:adtriggerempty", { detail: u })), this.teardown(h));
311
306
  };
312
- h.timers.push(setTimeout(() => !h.filled && n("timeout"), this.options.renderTimeoutMs ?? F));
307
+ h.timers.push(setTimeout(() => !h.filled && r("timeout"), this.options.renderTimeoutMs ?? F));
313
308
  try {
314
309
  this.googletag ?? (this.googletag = await L());
315
310
  } catch (g) {
316
- n(String(g));
311
+ r(String(g));
317
312
  return;
318
313
  }
319
314
  if (this.showing !== h) return;
@@ -322,7 +317,7 @@ class $ {
322
317
  if (this.showing !== h) return;
323
318
  const g = f.defineOutOfPageSlot(t.adUnitPath, d.id);
324
319
  if (!g) {
325
- n("slot could not be defined");
320
+ r("slot could not be defined");
326
321
  return;
327
322
  }
328
323
  h.slot = g, g.addService(f.pubads());
@@ -339,7 +334,7 @@ class $ {
339
334
  h.custParams = m;
340
335
  const v = (w) => {
341
336
  var E, A;
342
- w.slot === g && ((A = (E = f.pubads()).removeEventListener) == null || A.call(E, "slotRenderEnded", v), w.isEmpty ? n("empty") : this.reveal(e, h, i));
337
+ w.slot === g && ((A = (E = f.pubads()).removeEventListener) == null || A.call(E, "slotRenderEnded", v), w.isEmpty ? r("empty") : this.reveal(e, h, i));
343
338
  };
344
339
  f.pubads().addEventListener("slotRenderEnded", v), f.enableServices(), f.display(d.id), f.pubads().isInitialLoadDisabled() && f.pubads().refresh([g]);
345
340
  });
@@ -349,17 +344,17 @@ class $ {
349
344
  s.className = "hp-adtrigger", s.setAttribute("part", "ad-trigger");
350
345
  const i = e.layout === "none";
351
346
  s.setAttribute("data-layout", e.layout ?? "none"), s.toggleAttribute("data-backdrop", !!e.backdrop);
352
- const r = document.createElement("div");
353
- if (r.className = "hp-adtrigger-frame", e.size && e.layout !== "full" && (r.style.setProperty("--hp-adtrigger-w", `${e.size[0]}px`), r.style.setProperty("--hp-adtrigger-h", `${e.size[1]}px`), r.setAttribute("data-sized", "")), e.label !== !1 && !i) {
347
+ const n = document.createElement("div");
348
+ if (n.className = "hp-adtrigger-frame", e.size && e.layout !== "full" && (n.style.setProperty("--hp-adtrigger-w", `${e.size[0]}px`), n.style.setProperty("--hp-adtrigger-h", `${e.size[1]}px`), n.setAttribute("data-sized", "")), e.label !== !1 && !i) {
354
349
  const o = document.createElement("span");
355
- o.className = "hp-adtrigger-label", o.textContent = e.label || this.ctx.i18n.adTriggerLabel, r.appendChild(o);
350
+ o.className = "hp-adtrigger-label", o.textContent = e.label || this.ctx.i18n.adTriggerLabel, n.appendChild(o);
356
351
  }
357
- const l = document.createElement("slot");
358
- if (l.name = t, r.appendChild(l), e.closeButton !== !1 && !i) {
352
+ const a = document.createElement("slot");
353
+ if (a.name = t, n.appendChild(a), e.closeButton !== !1 && !i) {
359
354
  const o = document.createElement("button");
360
- o.type = "button", o.className = "hp-adtrigger-close", o.setAttribute("part", "ad-trigger-close"), o.setAttribute("aria-label", this.ctx.i18n.pauseAdClose), o.hidden = !0, o.innerHTML = '<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6L6 18"/></svg>', o.addEventListener("click", () => this.close("user")), r.appendChild(o);
355
+ o.type = "button", o.className = "hp-adtrigger-close", o.setAttribute("part", "ad-trigger-close"), o.setAttribute("aria-label", this.ctx.i18n.pauseAdClose), o.hidden = !0, o.innerHTML = '<svg viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6L6 18"/></svg>', o.addEventListener("click", () => this.close("user")), n.appendChild(o);
361
356
  }
362
- s.appendChild(r);
357
+ s.appendChild(n);
363
358
  for (const o of ["pointerdown", "click", "dblclick"]) s.addEventListener(o, (d) => d.stopPropagation());
364
359
  return s;
365
360
  }
@@ -372,10 +367,10 @@ class $ {
372
367
  d && Object.assign(d.style, { width: "100%", height: "100%", border: "0" }), Object.assign(t.adHost.style, { width: "100%", height: "100%" });
373
368
  }
374
369
  t.box.setAttribute("data-open", "");
375
- const r = t.box.querySelector(".hp-adtrigger-close");
376
- r && t.timers.push(setTimeout(() => r.hidden = !1, (i.closeDelay ?? 0) * 1e3)), i.duration && t.timers.push(setTimeout(() => this.close("timeout"), i.duration * 1e3));
377
- const l = this.ctx.videoEl;
378
- i.pauseContent && !l.paused && (t.pausedContent = !0, this.selfPause = !0, l.pause()), S((o = i.tracking) == null ? void 0 : o.impression), this.ctx.hostEl.dispatchEvent(
370
+ const n = t.box.querySelector(".hp-adtrigger-close");
371
+ n && !i.closeDelay ? n.hidden = !1 : n && t.timers.push(setTimeout(() => n.hidden = !1, i.closeDelay * 1e3)), i.duration && t.timers.push(setTimeout(() => this.close("timeout"), i.duration * 1e3));
372
+ const a = this.ctx.videoEl;
373
+ i.pauseContent && !a.paused && (t.pausedContent = !0, this.selfPause = !0, a.pause()), b((o = i.tracking) == null ? void 0 : o.impression), this.ctx.hostEl.dispatchEvent(
379
374
  new CustomEvent("hp:adtriggershow", { detail: { rule: i.id, trigger: t.trigger, adUnitPath: i.adUnitPath, fullscreen: s, custParams: t.custParams ?? {} } })
380
375
  );
381
376
  }
@@ -385,7 +380,7 @@ class $ {
385
380
  const t = this.showing;
386
381
  if (!t) return;
387
382
  const s = t.filled;
388
- this.teardown(t), s && (S((i = t.rule.tracking) == null ? void 0 : i.close), this.ctx.hostEl.dispatchEvent(new CustomEvent("hp:adtriggerclose", { detail: { rule: t.rule.id, reason: e } })), t.pausedContent && e !== "content" && e !== "ad" && this.ctx.videoEl.play().catch(() => {
383
+ this.teardown(t), s && (b((i = t.rule.tracking) == null ? void 0 : i.close), this.ctx.hostEl.dispatchEvent(new CustomEvent("hp:adtriggerclose", { detail: { rule: t.rule.id, reason: e } })), t.pausedContent && e !== "content" && e !== "ad" && this.ctx.videoEl.play().catch(() => {
389
384
  }));
390
385
  }
391
386
  teardown(e) {
@@ -404,12 +399,12 @@ class $ {
404
399
  e.removeEventListener("timeupdate", this.onTimeUpdate), e.removeEventListener("seeked", this.onSeeked), e.removeEventListener("playing", this.onPlaying), e.removeEventListener("pause", this.onPause), e.removeEventListener("ended", this.onEnded), e.removeEventListener("loadstart", this.onLoadStart), e.removeEventListener("webkitbeginfullscreen", this.onFullscreenChange), e.removeEventListener("webkitendfullscreen", this.onFullscreenChange), document.removeEventListener("fullscreenchange", this.onFullscreenChange), document.removeEventListener("webkitfullscreenchange", this.onFullscreenChange), this.ctx.hostEl.removeEventListener("hp:adstart", this.onVideoAdStart);
405
400
  }
406
401
  }
407
- function I(a, e) {
408
- return new $(a, e);
402
+ function G(l, e) {
403
+ return new $(l, e);
409
404
  }
410
405
  export {
411
406
  $ as AdTriggers,
412
- I as installAdTriggers,
413
- b as normalizeAdTriggers
407
+ G as installAdTriggers,
408
+ S as normalizeAdTriggers
414
409
  };
415
- //# sourceMappingURL=adTriggers-4SueRFgK.js.map
410
+ //# sourceMappingURL=adTriggers-DXmtF4t2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adTriggers-DXmtF4t2.js","sources":["../../src/plugins/ad-triggers/AdTriggers.ts","../../src/plugins/ad-triggers/index.ts"],"sourcesContent":["import type { AdTrigger, AdTriggerLayout, AdTriggerRule, AdTriggersConfig, AdTriggersOptions } from '../../types';\nimport type { HopeLocaleStrings } from '../../i18n/types';\nimport { firePixels as fire } from '../shared/trackingPixel';\nimport { loadGpt, type GoogleTag, type GptSlot, type GptSlotRenderEndedEvent } from '../pause-ad/loadGpt';\n\nexport interface AdTriggersContext {\n /** Light DOM sahibi: GPT reklam div'ini id ile bulabilsin diye div buraya eklenir (tam ekranda da görünür). */\n hostEl: HTMLElement;\n videoEl: HTMLVideoElement;\n /** Reklam kutusunun ekleneceği alan (video alanı). */\n overlayEl: HTMLElement;\n i18n: HopeLocaleStrings;\n log(entry: { message: string; fatal?: boolean; details?: Record<string, string | number | boolean | undefined> }): void;\n /** Video reklamı (IMA) oynuyor ya da giriş ekranı (geri sayım / geo) açık — bu sırada istenmez. */\n isBlocked(): boolean;\n isFullscreen(): boolean;\n /** iPhone'un kendi video tam ekranı — player katmanları orada görünmez, reklam istenmez. */\n isNativeFullscreen(): boolean;\n /** İçerik kimliği — kalite değişimi / yedek kaynak aynı içerik sayılır; değişince sayaçlar sıfırlanır. */\n contentKey(): string;\n}\n\nconst DEFAULT_TIMEOUT_MS = 5000;\nconst DEFAULT_RENDER_TIMEOUT_MS = 8000;\nconst DEFAULT_GLOBAL_GAP_S = 30;\nconst LAYOUTS: AdTriggerLayout[] = ['none', 'full', 'center', 'top', 'bottom', 'top-left', 'top-right', 'bottom-left', 'bottom-right'];\nconst TRIGGER_TYPES = ['time', 'interval', 'percent', 'fullscreen', 'fullscreenExit', 'start', 'pause', 'resume', 'ended'] as const;\n/** Doğal ilerleme sayılan en büyük timeupdate adımı (sn) — daha büyük sıçrama ileri sarmadır, aradaki anlar atlanır. */\nconst MAX_NATURAL_STEP_S = 1.5;\nlet instanceCount = 0;\n\nfunction safeUrl(value: unknown): string | null {\n if (typeof value !== 'string' || !value.trim()) return null;\n try {\n const u = new URL(value, document.baseURI);\n return u.protocol === 'https:' || u.protocol === 'http:' ? u.href : null;\n } catch {\n return null;\n }\n}\n\nconst num = (n: unknown, min: number, max: number): number | undefined =>\n typeof n === 'number' && Number.isFinite(n) ? Math.min(max, Math.max(min, n)) : undefined;\n\ntype KeyValues = Record<string, string | string[]>;\nconst prim = (v: unknown): string | null =>\n typeof v === 'string' ? v.slice(0, 200) : typeof v === 'number' && Number.isFinite(v) ? String(v) : typeof v === 'boolean' ? String(v) : null;\n\n/**\n * Ad Manager key-value'ları (GPT slot hedeflemesi = VAST tag'lerindeki `cust_params`): JSON nesnesi\n * `{ \"kategori\": \"spor\", \"etiket\": [\"mac\", \"ozet\"], \"sezon\": 2026 }` ya da `\"kategori=spor&etiket=mac,ozet\"` metni.\n * Sayı / boolean metne çevrilir; geçersiz anahtar ve değerler atılır.\n */\nexport function parseCustParams(raw: unknown): KeyValues | undefined {\n let entries: Array<[string, unknown]>;\n if (typeof raw === 'string') {\n if (!raw.trim()) return undefined;\n entries = [...new URLSearchParams(raw.trim().replace(/^\\?/, '')).entries()].map(([k, v]) => [k, v.includes(',') ? v.split(',') : v]);\n } else if (raw && typeof raw === 'object' && !Array.isArray(raw)) {\n entries = Object.entries(raw as Record<string, unknown>);\n } else {\n return undefined;\n }\n const out: KeyValues = {};\n for (const [k, v] of entries.slice(0, 50)) {\n if (!/^[\\w.-]{1,40}$/.test(k)) continue;\n if (Array.isArray(v)) {\n const list = v.map(prim).filter((x): x is string => x !== null && x !== '').slice(0, 30);\n if (list.length) out[k] = list;\n } else {\n const one = prim(v);\n if (one !== null && one !== '') out[k] = one;\n }\n }\n return Object.keys(out).length ? out : undefined;\n}\n\nfunction normalizeTrigger(raw: unknown): AdTrigger | null {\n if (!raw || typeof raw !== 'object') return null;\n const t = raw as Record<string, unknown>;\n const type = t.type as (typeof TRIGGER_TYPES)[number];\n if (!TRIGGER_TYPES.includes(type)) return null;\n const list = (v: unknown, min: number, max: number): number[] =>\n (Array.isArray(v) ? v : [v]).map((x) => num(x, min, max)).filter((x): x is number => x !== undefined).slice(0, 50);\n if (type === 'time') {\n const at = list(t.at, 0, 86_400);\n return at.length ? { type, at } : null;\n }\n if (type === 'percent') {\n const at = list(t.at, 1, 99);\n return at.length ? { type, at } : null;\n }\n if (type === 'interval') {\n const every = num(t.every, 10, 86_400);\n return every ? { type, every, startAfter: num(t.startAfter, 0, 86_400) } : null;\n }\n return { type, delay: num(t.delay, 0, 600) };\n}\n\n/** API yanıtını doğrular, geçersiz kural/tetikleyicileri atar; modül kapalıysa ya da geçerli kural yoksa null. */\nexport function normalizeAdTriggers(raw: unknown): AdTriggersConfig | null {\n if (!raw || typeof raw !== 'object') return null;\n const r = raw as Partial<AdTriggersConfig>;\n if (r.active !== true || !Array.isArray(r.rules)) return null;\n const now = Date.now();\n const from = r.validFrom ? Date.parse(r.validFrom) : NaN;\n const until = r.validUntil ? Date.parse(r.validUntil) : NaN;\n if ((Number.isFinite(from) && now < from) || (Number.isFinite(until) && now > until)) return null;\n const urls = (list: unknown): string[] => (Array.isArray(list) ? list.map(safeUrl).filter((u): u is string => !!u).slice(0, 10) : []);\n const rules: AdTriggerRule[] = [];\n for (const raw of r.rules.slice(0, 20)) {\n if (!raw || typeof raw !== 'object') continue;\n const x = raw as Partial<AdTriggerRule>;\n // Reklam birimi yolu: \"/ağ kodu/birim/...\" biçimi.\n if (typeof x.adUnitPath !== 'string' || !/^\\/\\d+(?:[,/][\\w.\\-/]*)?$/.test(x.adUnitPath)) continue;\n const triggers = (Array.isArray(x.triggers) ? x.triggers : []).map(normalizeTrigger).filter((t): t is AdTrigger => !!t).slice(0, 20);\n if (!triggers.length) continue;\n const size = Array.isArray(x.size) && x.size.length === 2 ? [num(x.size[0], 1, 4000), num(x.size[1], 1, 4000)] : null;\n const layout = LAYOUTS.includes(x.layout as AdTriggerLayout) ? x.layout! : 'none';\n rules.push({\n id: typeof x.id === 'string' ? x.id.slice(0, 80) : undefined,\n adUnitPath: x.adUnitPath,\n mode: x.mode === 'fullscreen' || x.mode === 'normal' ? x.mode : 'any',\n triggers,\n targeting: parseCustParams(x.targeting),\n // API'lerde yaygın `cust_params` yazımı da kabul edilir.\n custParams: parseCustParams(x.custParams ?? (x as { cust_params?: unknown }).cust_params),\n layout,\n size: size && size[0] && size[1] ? [size[0], size[1]] : undefined,\n backdrop: typeof x.backdrop === 'boolean' ? x.backdrop : layout === 'full',\n pauseContent: x.pauseContent === true,\n closeButton: x.closeButton !== false,\n closeDelay: num(x.closeDelay, 0, 120) ?? 0,\n duration: num(x.duration, 1, 3600),\n label: x.label === false ? false : typeof x.label === 'string' ? x.label.slice(0, 40) : undefined,\n maxShows: num(x.maxShows, 1, 1000),\n minGapSeconds: num(x.minGapSeconds, 0, 86_400),\n minPlayerWidth: num(x.minPlayerWidth, 0, 4000),\n tracking: { impression: urls(x.tracking?.impression), close: urls(x.tracking?.close), empty: urls(x.tracking?.empty) },\n });\n }\n if (!rules.length) return null;\n return {\n active: true,\n id: typeof r.id === 'string' ? r.id.slice(0, 120) : undefined,\n minGapSeconds: num(r.minGapSeconds, 0, 86_400) ?? DEFAULT_GLOBAL_GAP_S,\n rules,\n };\n}\n\n\ntype TriggerType = AdTrigger['type'];\ntype CloseReason = 'user' | 'timeout' | 'mode' | 'ad' | 'content' | 'replaced';\n\ninterface Showing {\n rule: AdTriggerRule;\n trigger: TriggerType;\n box: HTMLDivElement;\n adHost: HTMLDivElement;\n slot: GptSlot | null;\n filled: boolean;\n pausedContent: boolean;\n timers: Array<ReturnType<typeof setTimeout>>;\n /** İsteğe giden key-value'ların son hali (olayda bildirilir). */\n custParams?: KeyValues;\n}\n\n/**\n * Reklam tetikleyici: kurallara göre Ad Manager out-of-page reklamı ister ve player içinde (tam ekranda da) gösterir.\n * Kurallar API'den (`endpoint`) ya da `config`'ten gelir; API hatasında son geçerli kurallar korunur.\n * Aynı anda tek reklam; video reklamı (IMA) oynarken, sekme arka plandayken ve iPhone native tam ekranında istenmez.\n */\nexport class AdTriggers {\n private options: AdTriggersOptions;\n private config: AdTriggersConfig | null = null;\n private loaded = false;\n private googletag: GoogleTag | null = null;\n private showing: Showing | null = null;\n private readonly instance = ++instanceCount;\n private seq = 0;\n private requestSeq = 0;\n private destroyed = false;\n private refreshTimer: ReturnType<typeof setInterval> | null = null;\n private readonly tickTimer: ReturnType<typeof setInterval>;\n /** Olaydan `delay` sn sonra çalışacak tetiklemeler — koşul bozulunca iptal edilir. */\n private delayed: Array<{ type: TriggerType; timer: ReturnType<typeof setTimeout> }> = [];\n // ── içerik başına durum (kaynak değişince sıfırlanır) ──\n private contentKey = '';\n private fired = new Set<string>();\n private shows = new Map<number, number>();\n private lastShownAt = new Map<number, number>();\n private lastAnyAt = 0;\n private watchedMs = 0;\n private lastTick = performance.now();\n private lastPos = 0;\n private started = false;\n private userPaused = false;\n /** Player'ın kendi duraklatması (pauseContent) — pause/resume kuralı sayılmaz. */\n private selfPause = false;\n private wasFullscreen = false;\n\n constructor(\n private readonly ctx: AdTriggersContext,\n options: AdTriggersOptions\n ) {\n this.options = options;\n const v = ctx.videoEl;\n v.addEventListener('timeupdate', this.onTimeUpdate);\n v.addEventListener('seeked', this.onSeeked);\n v.addEventListener('playing', this.onPlaying);\n v.addEventListener('pause', this.onPause);\n v.addEventListener('ended', this.onEnded);\n v.addEventListener('loadstart', this.onLoadStart);\n v.addEventListener('webkitbeginfullscreen', this.onFullscreenChange);\n v.addEventListener('webkitendfullscreen', this.onFullscreenChange);\n document.addEventListener('fullscreenchange', this.onFullscreenChange);\n document.addEventListener('webkitfullscreenchange', this.onFullscreenChange);\n ctx.hostEl.addEventListener('hp:adstart', this.onVideoAdStart);\n this.wasFullscreen = ctx.isFullscreen();\n this.contentKey = ctx.contentKey();\n this.tickTimer = setInterval(this.tick, 1000);\n void this.load();\n this.scheduleRefresh();\n }\n\n update(options: AdTriggersOptions): void {\n const changed =\n options.endpoint !== this.options.endpoint ||\n JSON.stringify(options.params) !== JSON.stringify(this.options.params) ||\n JSON.stringify(options.config) !== JSON.stringify(this.options.config);\n const refreshChanged = options.refreshSeconds !== this.options.refreshSeconds;\n this.options = options;\n if (changed) void this.load();\n if (refreshChanged) this.scheduleRefresh();\n }\n\n get current(): AdTriggersConfig | null {\n return this.config;\n }\n\n /** Şu an bir reklam gösteriliyor mu. */\n get active(): boolean {\n return !!this.showing?.filled;\n }\n\n // ── kurallar ──\n\n private scheduleRefresh(): void {\n if (this.refreshTimer) clearInterval(this.refreshTimer);\n this.refreshTimer = null;\n const s = this.options.refreshSeconds;\n if (this.options.endpoint && typeof s === 'number' && s >= 10) this.refreshTimer = setInterval(() => void this.load(), s * 1000);\n }\n\n private async load(): Promise<void> {\n const seq = ++this.requestSeq;\n if (!this.options.endpoint) {\n this.apply(normalizeAdTriggers(this.options.config));\n return;\n }\n const ctrl = typeof AbortController !== 'undefined' ? new AbortController() : null;\n const timer = setTimeout(() => ctrl?.abort(), this.options.timeoutMs ?? DEFAULT_TIMEOUT_MS);\n let url = '';\n try {\n const u = new URL(this.options.endpoint, document.baseURI);\n for (const [k, v] of Object.entries(this.options.params ?? {})) u.searchParams.set(k, v);\n url = u.href;\n const res = await fetch(url, { ...this.options.fetchInit, signal: ctrl?.signal });\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n const json: unknown = await res.json();\n if (this.destroyed || seq !== this.requestSeq) return;\n this.apply(normalizeAdTriggers(json));\n } catch (err) {\n if (this.destroyed || seq !== this.requestSeq) return;\n this.ctx.log({ message: `Ad triggers API failed: ${String(err)}`, details: { url } });\n // Hiç kural yoksa yerel varsayılan (config) kullanılır; varsa son geçerli kurallar korunur.\n if (!this.config && this.options.config) this.apply(normalizeAdTriggers(this.options.config));\n } finally {\n clearTimeout(timer);\n }\n }\n\n private apply(config: AdTriggersConfig | null): void {\n // İlk yanıt her zaman bildirilir (kapalı olsa da) — sonrakiler yalnızca değişince.\n const changed = !this.loaded || JSON.stringify(config) !== JSON.stringify(this.config);\n this.loaded = true;\n this.config = config;\n if (!changed) return;\n this.cancelDelayed();\n if (!config) this.close('content');\n this.ctx.hostEl.dispatchEvent(new CustomEvent('hp:adtriggers', { detail: { config } }));\n }\n\n // ── olaylar → tetikleyiciler ──\n\n private readonly onLoadStart = (): void => {\n const key = this.ctx.contentKey();\n // Aynı içeriğin kalite değişimi de loadstart üretir — yalnızca gerçekten başka bir içerik gelince sıfırla.\n if (key === this.contentKey) return;\n this.contentKey = key;\n this.fired.clear();\n this.shows.clear();\n this.lastShownAt.clear();\n this.watchedMs = 0;\n this.lastPos = 0;\n this.started = false;\n this.userPaused = false;\n this.cancelDelayed();\n this.close('content');\n };\n\n private readonly onPlaying = (): void => {\n if (this.ctx.isBlocked()) return;\n if (!this.started) {\n this.started = true;\n this.trigger('start');\n } else if (this.userPaused) {\n this.trigger('resume');\n }\n this.userPaused = false;\n this.cancelDelayed('pause');\n };\n\n private readonly onPause = (): void => {\n const v = this.ctx.videoEl;\n if (this.selfPause) {\n this.selfPause = false;\n return;\n }\n if (v.ended || v.seeking || this.ctx.isBlocked()) return;\n this.userPaused = true;\n this.cancelDelayed('start', 'resume');\n this.trigger('pause');\n };\n\n private readonly onEnded = (): void => {\n if (!this.ctx.isBlocked()) this.trigger('ended');\n };\n\n private readonly onSeeked = (): void => {\n this.lastPos = this.ctx.videoEl.currentTime;\n };\n\n private readonly onFullscreenChange = (): void => {\n const fs = this.ctx.isFullscreen();\n if (fs === this.wasFullscreen) return;\n this.wasFullscreen = fs;\n this.cancelDelayed(fs ? 'fullscreenExit' : 'fullscreen');\n // Tam ekran durumu değişti: o duruma özel gösterilen reklam kapanır.\n const mode = this.showing?.rule.mode;\n if ((mode === 'fullscreen' && !fs) || (mode === 'normal' && fs)) this.close('mode');\n this.trigger(fs ? 'fullscreen' : 'fullscreenExit');\n };\n\n private readonly onVideoAdStart = (e: Event): void => {\n if ((e as CustomEvent<{ linear?: boolean }>).detail?.linear === false) return;\n this.cancelDelayed();\n this.close('ad');\n };\n\n private isLive(): boolean {\n return this.ctx.videoEl.duration === Infinity;\n }\n\n private readonly onTimeUpdate = (): void => {\n const v = this.ctx.videoEl;\n const pos = v.currentTime;\n const prev = this.lastPos;\n this.lastPos = pos;\n const c = this.config;\n if (!c || v.paused || v.seeking || this.isLive() || this.ctx.isBlocked()) return;\n // Yalnızca doğal ilerleme — ileri sarınca aradaki anlar tetiklenmez.\n if (pos <= prev || pos - prev > MAX_NATURAL_STEP_S) return;\n const dur = v.duration;\n c.rules.forEach((rule, ri) =>\n rule.triggers.forEach((t, ti) => {\n if (t.type !== 'time' && t.type !== 'percent') return;\n for (const mark of t.at) {\n const at = t.type === 'percent' ? (Number.isFinite(dur) && dur > 0 ? (dur * mark) / 100 : NaN) : mark;\n const key = `${ri}:${ti}:${mark}`;\n if (prev < at && at <= pos && !this.fired.has(key)) {\n this.fired.add(key);\n this.showRule(ri, t.type);\n }\n }\n })\n );\n };\n\n /** Gerçek izleme süresi: interval kuralları (ve canlıda time kuralları) bununla sayılır. */\n private readonly tick = (): void => {\n const now = performance.now();\n const delta = Math.min(2000, Math.max(0, now - this.lastTick));\n this.lastTick = now;\n const v = this.ctx.videoEl;\n const c = this.config;\n if (!c || v.paused || v.ended || document.hidden || this.ctx.isBlocked() || this.showing?.filled) return;\n const before = this.watchedMs / 1000;\n this.watchedMs += delta;\n const after = this.watchedMs / 1000;\n c.rules.forEach((rule, ri) =>\n rule.triggers.forEach((t, ti) => {\n if (t.type === 'interval') {\n const first = t.startAfter ?? t.every;\n // Bu adımda geçilen eşik: first, first + every, first + 2·every…\n const n = Math.floor((after - first) / t.every);\n if (after >= first && first + n * t.every > before) this.showRule(ri, 'interval');\n } else if (t.type === 'time' && this.isLive()) {\n for (const at of t.at) {\n const key = `${ri}:${ti}:${at}:live`;\n if (before < at && at <= after && !this.fired.has(key)) {\n this.fired.add(key);\n this.showRule(ri, 'time');\n }\n }\n }\n })\n );\n };\n\n /** Olay tipindeki tetikleyicisi olan her kural (gecikmeliyse zamanlanır). */\n private trigger(type: TriggerType): void {\n const c = this.config;\n if (!c) return;\n c.rules.forEach((rule, ri) => {\n const t = rule.triggers.find((x) => x.type === type) as { delay?: number } | undefined;\n if (!t) return;\n const delay = (t.delay ?? 0) * 1000;\n if (delay <= 0) {\n this.showRule(ri, type);\n return;\n }\n const timer = setTimeout(() => {\n this.delayed = this.delayed.filter((d) => d.timer !== timer);\n this.showRule(ri, type);\n }, delay);\n this.delayed.push({ type, timer });\n });\n }\n\n private cancelDelayed(...types: TriggerType[]): void {\n this.delayed = this.delayed.filter((d) => {\n if (types.length && !types.includes(d.type)) return true;\n clearTimeout(d.timer);\n return false;\n });\n }\n\n // ── gösterim ──\n\n /** Koşullar uygunsa kuralın reklamını ister. Uygun değilse sessizce atlanır (sebep kayda düşer). */\n private showRule(index: number, trigger: TriggerType): void {\n const rule = this.config?.rules[index];\n if (!rule || this.destroyed) return;\n const v = this.ctx.videoEl;\n const fs = this.ctx.isFullscreen();\n const skip = (why: string): void => this.ctx.log({ message: `Ad trigger skipped (${why})`, details: { rule: rule.id, trigger } });\n // layout 'none' reklamının kapanışı kreatifte — yeni tetikleme onu değiştirir; diğerleri (ya da süren istek) bekletir.\n if (this.showing && !(this.showing.filled && this.showing.rule.layout === 'none')) return skip('another ad is showing');\n if (this.ctx.isBlocked()) return skip('video ad / intro screen');\n if (document.hidden) return skip('tab hidden');\n if (this.ctx.isNativeFullscreen()) return skip('native iOS fullscreen');\n if (rule.mode === 'fullscreen' && !fs) return skip('not fullscreen');\n if (rule.mode === 'normal' && fs) return skip('fullscreen');\n // Olay anındaki durum hâlâ geçerli mi (gecikmeli tetiklemeler için).\n if (trigger === 'pause' && (!v.paused || v.ended)) return;\n if (trigger === 'ended' && !v.ended) return;\n if (['time', 'percent', 'interval', 'start', 'resume'].includes(trigger) && v.paused) return;\n if (rule.minPlayerWidth && this.ctx.overlayEl.getBoundingClientRect().width < rule.minPlayerWidth) return skip('player too narrow');\n const now = Date.now();\n if (rule.maxShows && (this.shows.get(index) ?? 0) >= rule.maxShows) return skip('maxShows');\n if (rule.minGapSeconds && now - (this.lastShownAt.get(index) ?? 0) < rule.minGapSeconds * 1000) return skip('rule minGapSeconds');\n if (now - this.lastAnyAt < (this.config?.minGapSeconds ?? DEFAULT_GLOBAL_GAP_S) * 1000) return skip('minGapSeconds');\n if (this.showing) this.close('replaced');\n // İstek anı aralığa sayılır: boş dönen birim her saniye yeniden istenmesin.\n this.lastAnyAt = now;\n this.lastShownAt.set(index, now);\n void this.request(index, rule, trigger, fs);\n }\n\n private async request(index: number, rule: AdTriggerRule, trigger: TriggerType, fullscreen: boolean): Promise<void> {\n const id = ++this.seq;\n const slotName = `hp-adtrigger-${this.instance}`;\n const box = this.buildBox(rule, slotName);\n const adHost = document.createElement('div');\n adHost.id = `hp-adtrigger-${this.instance}-${id}`;\n adHost.slot = slotName;\n const s: Showing = { rule, trigger, box, adHost, slot: null, filled: false, pausedContent: false, timers: [] };\n this.showing = s;\n this.ctx.overlayEl.appendChild(box);\n this.ctx.hostEl.appendChild(adHost);\n const detail = { rule: rule.id, trigger, adUnitPath: rule.adUnitPath };\n const empty = (why: string): void => {\n if (this.showing !== s) return;\n this.ctx.log({ message: `Ad trigger: no ad (${why})`, details: { ...detail } });\n fire(rule.tracking?.empty);\n this.ctx.hostEl.dispatchEvent(new CustomEvent('hp:adtriggerempty', { detail }));\n this.teardown(s);\n };\n // GPT hiç yüklenemez / yanıt vermezse (engelleyici, ağ) kutu asılı kalmasın.\n s.timers.push(setTimeout(() => !s.filled && empty('timeout'), this.options.renderTimeoutMs ?? DEFAULT_RENDER_TIMEOUT_MS));\n try {\n this.googletag ??= await loadGpt();\n } catch (err) {\n empty(String(err));\n return;\n }\n if (this.showing !== s) return;\n const gt = this.googletag;\n gt.cmd.push(() => {\n if (this.showing !== s) return;\n const slot = gt.defineOutOfPageSlot(rule.adUnitPath, adHost.id);\n if (!slot) {\n empty('slot could not be defined');\n return;\n }\n s.slot = slot;\n slot.addService(gt.pubads());\n // Öncelik (sonraki ezer): sayfa targeting → sayfa custParams → kural targeting → kural custParams → hp_*.\n const targeting: Record<string, string | string[]> = {\n ...parseCustParams(this.options.targeting),\n ...parseCustParams(this.options.custParams),\n ...rule.targeting,\n ...parseCustParams(rule.custParams),\n hp_trigger: trigger,\n hp_mode: fullscreen ? 'fullscreen' : 'normal',\n };\n if (rule.id) targeting.hp_rule = rule.id;\n for (const [k, val] of Object.entries(targeting)) slot.setTargeting(k, val);\n s.custParams = targeting;\n const onRender = (e: GptSlotRenderEndedEvent): void => {\n if (e.slot !== slot) return;\n gt.pubads().removeEventListener?.('slotRenderEnded', onRender);\n if (e.isEmpty) empty('empty');\n else this.reveal(index, s, fullscreen);\n };\n gt.pubads().addEventListener('slotRenderEnded', onRender);\n gt.enableServices();\n gt.display(adHost.id);\n // Sayfa disableInitialLoad kullanıyorsa display istek atmaz — elle refresh.\n if (gt.pubads().isInitialLoadDisabled()) gt.pubads().refresh([slot]);\n });\n }\n\n private buildBox(rule: AdTriggerRule, slotName: string): HTMLDivElement {\n const box = document.createElement('div');\n box.className = 'hp-adtrigger';\n box.setAttribute('part', 'ad-trigger');\n const bare = rule.layout === 'none';\n box.setAttribute('data-layout', rule.layout ?? 'none');\n box.toggleAttribute('data-backdrop', !!rule.backdrop);\n const frame = document.createElement('div');\n frame.className = 'hp-adtrigger-frame';\n if (rule.size && rule.layout !== 'full') {\n frame.style.setProperty('--hp-adtrigger-w', `${rule.size[0]}px`);\n frame.style.setProperty('--hp-adtrigger-h', `${rule.size[1]}px`);\n frame.setAttribute('data-sized', '');\n }\n // 'none': player yalnızca isteği atar ve kreatifi yerleştirir — etiket, kapat butonu, boyut kreatifin işi.\n if (rule.label !== false && !bare) {\n const label = document.createElement('span');\n label.className = 'hp-adtrigger-label';\n label.textContent = rule.label || this.ctx.i18n.adTriggerLabel;\n frame.appendChild(label);\n }\n const slot = document.createElement('slot');\n slot.name = slotName;\n frame.appendChild(slot);\n if (rule.closeButton !== false && !bare) {\n const close = document.createElement('button');\n close.type = 'button';\n close.className = 'hp-adtrigger-close';\n close.setAttribute('part', 'ad-trigger-close');\n close.setAttribute('aria-label', this.ctx.i18n.pauseAdClose);\n close.hidden = true;\n close.innerHTML =\n '<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"/></svg>';\n close.addEventListener('click', () => this.close('user'));\n frame.appendChild(close);\n }\n box.appendChild(frame);\n // Reklama tıklama / dokunma videoyu oynat-duraklat yapmasın, kontrolleri açmasın.\n for (const t of ['pointerdown', 'click', 'dblclick'] as const) box.addEventListener(t, (e) => e.stopPropagation());\n return box;\n }\n\n private reveal(index: number, s: Showing, fullscreen: boolean): void {\n if (this.showing !== s) return;\n const { rule } = s;\n s.filled = true;\n this.shows.set(index, (this.shows.get(index) ?? 0) + 1);\n this.lastAnyAt = Date.now();\n // Kutu boyutlu ya da tam alan ise reklam iframe'i kutuyu doldursun (out-of-page kreatifleri kendi boyutunu vermez).\n if (rule.layout === 'full' || (rule.size && rule.layout !== 'none')) {\n const iframe = s.adHost.querySelector('iframe');\n if (iframe) Object.assign(iframe.style, { width: '100%', height: '100%', border: '0' });\n Object.assign(s.adHost.style, { width: '100%', height: '100%' });\n }\n s.box.setAttribute('data-open', '');\n const close = s.box.querySelector<HTMLButtonElement>('.hp-adtrigger-close');\n // closeDelay 0: X kutuyla aynı anda görünsün (setTimeout(0) bir kare butonsuz kutu gösteriyordu).\n if (close && !rule.closeDelay) close.hidden = false;\n else if (close) s.timers.push(setTimeout(() => (close.hidden = false), rule.closeDelay! * 1000));\n if (rule.duration) s.timers.push(setTimeout(() => this.close('timeout'), rule.duration * 1000));\n const v = this.ctx.videoEl;\n if (rule.pauseContent && !v.paused) {\n s.pausedContent = true;\n this.selfPause = true;\n v.pause();\n }\n fire(rule.tracking?.impression);\n this.ctx.hostEl.dispatchEvent(\n new CustomEvent('hp:adtriggershow', { detail: { rule: rule.id, trigger: s.trigger, adUnitPath: rule.adUnitPath, fullscreen, custParams: s.custParams ?? {} } })\n );\n }\n\n /** Gösterilen reklamı kapat (bekleyen istek varsa iptal). */\n close(reason: CloseReason): void {\n const s = this.showing;\n if (!s) return;\n const wasFilled = s.filled;\n this.teardown(s);\n if (!wasFilled) return;\n fire(s.rule.tracking?.close);\n this.ctx.hostEl.dispatchEvent(new CustomEvent('hp:adtriggerclose', { detail: { rule: s.rule.id, reason } }));\n // Duraklattığımız içerik kaldığı yerden devam etsin (içerik değişmediyse / video reklamı başlamadıysa).\n if (s.pausedContent && reason !== 'content' && reason !== 'ad') void this.ctx.videoEl.play().catch(() => {});\n }\n\n private teardown(s: Showing): void {\n if (this.showing === s) this.showing = null;\n for (const t of s.timers) clearTimeout(t);\n if (s.slot && this.googletag) {\n try {\n this.googletag.destroySlots([s.slot]);\n } catch {\n /* zaten yok edildi */\n }\n }\n s.box.remove();\n s.adHost.remove();\n }\n\n destroy(): void {\n this.destroyed = true;\n this.cancelDelayed();\n this.close('content');\n clearInterval(this.tickTimer);\n if (this.refreshTimer) clearInterval(this.refreshTimer);\n const v = this.ctx.videoEl;\n v.removeEventListener('timeupdate', this.onTimeUpdate);\n v.removeEventListener('seeked', this.onSeeked);\n v.removeEventListener('playing', this.onPlaying);\n v.removeEventListener('pause', this.onPause);\n v.removeEventListener('ended', this.onEnded);\n v.removeEventListener('loadstart', this.onLoadStart);\n v.removeEventListener('webkitbeginfullscreen', this.onFullscreenChange);\n v.removeEventListener('webkitendfullscreen', this.onFullscreenChange);\n document.removeEventListener('fullscreenchange', this.onFullscreenChange);\n document.removeEventListener('webkitfullscreenchange', this.onFullscreenChange);\n this.ctx.hostEl.removeEventListener('hp:adstart', this.onVideoAdStart);\n }\n}\n","import { AdTriggers, normalizeAdTriggers, type AdTriggersContext } from './AdTriggers';\nimport type { AdTriggersOptions } from '../../types';\n\n/** Reklam tetikleyicisini kurar (kuralları `endpoint`'ten ya da `config`'ten alır). */\nexport function installAdTriggers(ctx: AdTriggersContext, options: AdTriggersOptions): AdTriggers {\n return new AdTriggers(ctx, options);\n}\n\nexport { AdTriggers, normalizeAdTriggers };\nexport type { AdTriggersContext };\n"],"names":["DEFAULT_TIMEOUT_MS","DEFAULT_RENDER_TIMEOUT_MS","DEFAULT_GLOBAL_GAP_S","LAYOUTS","TRIGGER_TYPES","MAX_NATURAL_STEP_S","instanceCount","safeUrl","value","u","num","n","min","max","prim","v","parseCustParams","raw","entries","k","out","list","x","one","normalizeTrigger","t","type","at","every","normalizeAdTriggers","r","now","from","until","urls","rules","triggers","size","layout","_a","_b","_c","AdTriggers","ctx","options","__publicField","key","fs","mode","pos","prev","c","dur","rule","ri","ti","mark","delta","before","after","first","changed","refreshChanged","s","seq","ctrl","timer","url","res","json","err","config","delay","types","d","index","trigger","skip","why","fullscreen","id","slotName","box","adHost","detail","empty","fire","loadGpt","gt","slot","targeting","val","onRender","e","bare","frame","label","close","iframe","reason","wasFilled","installAdTriggers"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  var P = Object.defineProperty;
2
2
  var k = (d, e, t) => e in d ? P(d, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : d[e] = t;
3
3
  var r = (d, e, t) => k(d, typeof e != "symbol" ? e + "" : e, t);
4
- import { t as E, g as M, m as L } from "./player-C886oKP-.js";
4
+ import { t as E, g as M, m as L } from "./player-B_e_Nnvb.js";
5
5
  const x = 8e3;
6
6
  class C {
7
7
  constructor(e) {
@@ -819,4 +819,4 @@ export {
819
819
  _ as AdsController,
820
820
  G as installAds
821
821
  };
822
- //# sourceMappingURL=ads-DPL7m9PV.js.map
822
+ //# sourceMappingURL=ads-BZYADoen.js.map