@mjhls/mjh-framework 1.0.7 → 1.0.9

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.
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ var React__default = _interopDefault(React);
9
9
  var url = _interopDefault(require('url'));
10
10
  var PropTypes = _interopDefault(require('prop-types'));
11
11
  var ReactDOM = _interopDefault(require('react-dom'));
12
+ var events = _interopDefault(require('events'));
12
13
 
13
14
  function _extends() {
14
15
  _extends = Object.assign || function (target) {
@@ -11238,6 +11239,1356 @@ var Normal = function Normal(props) {
11238
11239
  );
11239
11240
  };
11240
11241
 
11242
+ var utils$2 = createCommonjsModule(function (module, exports) {
11243
+
11244
+ Object.defineProperty(exports, "__esModule", {
11245
+ value: true
11246
+ });
11247
+ exports.loadGPTScript = loadGPTScript;
11248
+
11249
+ function doloadGPTScript(resolve, reject) {
11250
+ window.googletag = window.googletag || {};
11251
+ window.googletag.cmd = window.googletag.cmd || [];
11252
+ var scriptTag = document.createElement('script');
11253
+ scriptTag.src = "".concat(document.location.protocol, "//securepubads.g.doubleclick.net/tag/js/gpt.js");
11254
+ scriptTag.async = true;
11255
+ scriptTag.type = 'text/javascript';
11256
+
11257
+ scriptTag.onerror = function scriptTagOnError(errs) {
11258
+ reject(errs);
11259
+ };
11260
+
11261
+ scriptTag.onload = function scriptTagOnLoad() {
11262
+ resolve(window.googletag);
11263
+ };
11264
+
11265
+ document.getElementsByTagName('head')[0].appendChild(scriptTag);
11266
+ }
11267
+
11268
+ function loadGPTScript() {
11269
+ return new Promise(function (resolve, reject) {
11270
+ doloadGPTScript(resolve, reject);
11271
+ });
11272
+ }
11273
+ });
11274
+
11275
+ unwrapExports(utils$2);
11276
+ var utils_1$1 = utils$2.loadGPTScript;
11277
+
11278
+ var manager = createCommonjsModule(function (module, exports) {
11279
+
11280
+ Object.defineProperty(exports, "__esModule", {
11281
+ value: true
11282
+ });
11283
+ exports.default = void 0;
11284
+
11285
+
11286
+
11287
+ var Utils = _interopRequireWildcard(utils$2);
11288
+
11289
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
11290
+
11291
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
11292
+
11293
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11294
+
11295
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
11296
+
11297
+ var loadPromise = null;
11298
+ var googleGPTScriptLoadPromise = null;
11299
+ var singleRequestEnabled = true;
11300
+ var disableInitialLoadEnabled = false;
11301
+ var lazyLoadEnabled = false;
11302
+ var lazyLoadConfig = null;
11303
+ var servePersonalizedAds = true;
11304
+ var registeredSlots = {};
11305
+ var managerAlreadyInitialized = false;
11306
+ var globalTargetingArguments = {};
11307
+ var globalAdSenseAttributes = {};
11308
+ var DFPManager = Object.assign(new events.EventEmitter().setMaxListeners(0), {
11309
+ singleRequestIsEnabled: function singleRequestIsEnabled() {
11310
+ return singleRequestEnabled;
11311
+ },
11312
+ configureSingleRequest: function configureSingleRequest(value) {
11313
+ singleRequestEnabled = !!value;
11314
+ },
11315
+ disableInitialLoadIsEnabled: function disableInitialLoadIsEnabled() {
11316
+ return disableInitialLoadEnabled;
11317
+ },
11318
+ configureDisableInitialLoad: function configureDisableInitialLoad(value) {
11319
+ disableInitialLoadEnabled = !!value;
11320
+ },
11321
+ configureLazyLoad: function configureLazyLoad() {
11322
+ var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
11323
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
11324
+ var conf = null;
11325
+
11326
+ if (config !== null && _typeof(config) === 'object') {
11327
+ conf = _objectSpread({}, config);
11328
+ }
11329
+
11330
+ lazyLoadEnabled = !!enable;
11331
+ lazyLoadConfig = conf;
11332
+ },
11333
+ lazyLoadIsEnabled: function lazyLoadIsEnabled() {
11334
+ return lazyLoadEnabled;
11335
+ },
11336
+ getLazyLoadConfig: function getLazyLoadConfig() {
11337
+ return lazyLoadConfig;
11338
+ },
11339
+ getAdSenseAttribute: function getAdSenseAttribute(key) {
11340
+ return globalAdSenseAttributes[key];
11341
+ },
11342
+ configurePersonalizedAds: function configurePersonalizedAds(value) {
11343
+ servePersonalizedAds = value;
11344
+ },
11345
+ personalizedAdsEnabled: function personalizedAdsEnabled() {
11346
+ return servePersonalizedAds;
11347
+ },
11348
+ setAdSenseAttribute: function setAdSenseAttribute(key, value) {
11349
+ this.setAdSenseAttributes(_defineProperty({}, key, value));
11350
+ },
11351
+ getAdSenseAttributes: function getAdSenseAttributes() {
11352
+ return _objectSpread({}, globalAdSenseAttributes);
11353
+ },
11354
+ setAdSenseAttributes: function setAdSenseAttributes(attrs) {
11355
+ Object.assign(globalAdSenseAttributes, attrs);
11356
+
11357
+ if (managerAlreadyInitialized === true) {
11358
+ this.getGoogletag().then(function (googletag) {
11359
+ googletag.cmd.push(function () {
11360
+ var pubadsService = googletag.pubads();
11361
+ Object.keys(globalAdSenseAttributes).forEach(function (key) {
11362
+ pubadsService.set(key, globalTargetingArguments[key]);
11363
+ });
11364
+ });
11365
+ });
11366
+ }
11367
+ },
11368
+ setTargetingArguments: function setTargetingArguments(data) {
11369
+ Object.assign(globalTargetingArguments, data);
11370
+
11371
+ if (managerAlreadyInitialized === true) {
11372
+ this.getGoogletag().then(function (googletag) {
11373
+ googletag.cmd.push(function () {
11374
+ var pubadsService = googletag.pubads();
11375
+ Object.keys(globalTargetingArguments).forEach(function (varName) {
11376
+ if (pubadsService) {
11377
+ pubadsService.setTargeting(varName, globalTargetingArguments[varName]);
11378
+ }
11379
+ });
11380
+ });
11381
+ });
11382
+ }
11383
+ },
11384
+ getTargetingArguments: function getTargetingArguments() {
11385
+ return _objectSpread({}, globalTargetingArguments);
11386
+ },
11387
+ getSlotProperty: function getSlotProperty(slotId, propName) {
11388
+ var slot = this.getRegisteredSlots()[slotId];
11389
+ var ret = null;
11390
+
11391
+ if (slot !== undefined) {
11392
+ ret = slot[propName] || ret;
11393
+ }
11394
+
11395
+ return ret;
11396
+ },
11397
+ getSlotTargetingArguments: function getSlotTargetingArguments(slotId) {
11398
+ var propValue = this.getSlotProperty(slotId, 'targetingArguments');
11399
+ return propValue ? _objectSpread({}, propValue) : null;
11400
+ },
11401
+ getSlotAdSenseAttributes: function getSlotAdSenseAttributes(slotId) {
11402
+ var propValue = this.getSlotProperty(slotId, 'adSenseAttributes');
11403
+ return propValue ? _objectSpread({}, propValue) : null;
11404
+ },
11405
+ init: function init() {
11406
+ var _this = this;
11407
+
11408
+ if (managerAlreadyInitialized === false) {
11409
+ managerAlreadyInitialized = true;
11410
+ this.getGoogletag().then(function (googletag) {
11411
+ googletag.cmd.push(function () {
11412
+ var pubadsService = googletag.pubads();
11413
+ pubadsService.addEventListener('slotRenderEnded', function (event) {
11414
+ var slotId = event.slot.getSlotElementId();
11415
+
11416
+ _this.emit('slotRenderEnded', {
11417
+ slotId: slotId,
11418
+ event: event
11419
+ });
11420
+ });
11421
+ pubadsService.addEventListener('impressionViewable', function (event) {
11422
+ var slotId = event.slot.getSlotElementId();
11423
+
11424
+ _this.emit('impressionViewable', {
11425
+ slotId: slotId,
11426
+ event: event
11427
+ });
11428
+ });
11429
+ pubadsService.addEventListener('slotVisibilityChanged', function (event) {
11430
+ var slotId = event.slot.getSlotElementId();
11431
+
11432
+ _this.emit('slotVisibilityChanged', {
11433
+ slotId: slotId,
11434
+ event: event
11435
+ });
11436
+ });
11437
+ pubadsService.setRequestNonPersonalizedAds(_this.personalizedAdsEnabled() ? 0 : 1);
11438
+ });
11439
+ });
11440
+ }
11441
+ },
11442
+ getGoogletag: function getGoogletag() {
11443
+ if (googleGPTScriptLoadPromise === null) {
11444
+ googleGPTScriptLoadPromise = Utils.loadGPTScript();
11445
+ }
11446
+
11447
+ return googleGPTScriptLoadPromise;
11448
+ },
11449
+ setCollapseEmptyDivs: function setCollapseEmptyDivs(collapse) {
11450
+ this.collapseEmptyDivs = collapse;
11451
+ },
11452
+ load: function load() {
11453
+ var _this2 = this;
11454
+
11455
+ for (var _len = arguments.length, slots = new Array(_len), _key = 0; _key < _len; _key++) {
11456
+ slots[_key] = arguments[_key];
11457
+ }
11458
+
11459
+ if (loadPromise === null) {
11460
+ loadPromise = this.doLoad.apply(this, slots);
11461
+ } else {
11462
+ loadPromise = loadPromise.then(function () {
11463
+ return _this2.doLoad.apply(_this2, slots);
11464
+ });
11465
+ }
11466
+ },
11467
+ doLoad: function doLoad() {
11468
+ this.init();
11469
+ var availableSlots = {};
11470
+
11471
+ for (var _len2 = arguments.length, slots = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
11472
+ slots[_key2] = arguments[_key2];
11473
+ }
11474
+
11475
+ if (slots.length > 0) {
11476
+ availableSlots = slots.filter(function (slotId) {
11477
+ return Object.prototype.hasOwnProperty.call(registeredSlots, slotId);
11478
+ });
11479
+ } else {
11480
+ availableSlots = Object.keys(registeredSlots);
11481
+ }
11482
+
11483
+ availableSlots = availableSlots.filter(function (id) {
11484
+ return !registeredSlots[id].loading && !registeredSlots[id].gptSlot;
11485
+ });
11486
+ availableSlots.forEach(function (slotId) {
11487
+ registeredSlots[slotId].loading = true;
11488
+ });
11489
+ return this.gptLoadAds(availableSlots);
11490
+ },
11491
+ gptLoadAds: function gptLoadAds(slotsToInitialize) {
11492
+ var _this3 = this;
11493
+
11494
+ return new Promise(function (resolve) {
11495
+ _this3.getGoogletag().then(function (googletag) {
11496
+ slotsToInitialize.forEach(function (currentSlotId) {
11497
+ registeredSlots[currentSlotId].loading = false;
11498
+ googletag.cmd.push(function () {
11499
+ var slot = registeredSlots[currentSlotId];
11500
+ var gptSlot;
11501
+ var adUnit = "".concat(slot.dfpNetworkId, "/").concat(slot.adUnit);
11502
+
11503
+ if (slot.renderOutOfThePage === true) {
11504
+ gptSlot = googletag.defineOutOfPageSlot(adUnit, currentSlotId);
11505
+ } else {
11506
+ gptSlot = googletag.defineSlot(adUnit, slot.sizes, currentSlotId);
11507
+ }
11508
+
11509
+ if (gptSlot !== null) {
11510
+ slot.gptSlot = gptSlot;
11511
+
11512
+ var slotTargetingArguments = _this3.getSlotTargetingArguments(currentSlotId);
11513
+
11514
+ if (slotTargetingArguments !== null) {
11515
+ Object.keys(slotTargetingArguments).forEach(function (varName) {
11516
+ if (slot && slot.gptSlot) {
11517
+ slot.gptSlot.setTargeting(varName, slotTargetingArguments[varName]);
11518
+ }
11519
+ });
11520
+ }
11521
+
11522
+ var slotAdSenseAttributes = _this3.getSlotAdSenseAttributes(currentSlotId);
11523
+
11524
+ if (slotAdSenseAttributes !== null) {
11525
+ Object.keys(slotAdSenseAttributes).forEach(function (varName) {
11526
+ slot.gptSlot.set(varName, slotAdSenseAttributes[varName]);
11527
+ });
11528
+ }
11529
+
11530
+ slot.gptSlot.addService(googletag.pubads());
11531
+
11532
+ if (slot.sizeMapping) {
11533
+ var smbuilder = googletag.sizeMapping();
11534
+ slot.sizeMapping.forEach(function (mapping) {
11535
+ smbuilder = smbuilder.addSize(mapping.viewport, mapping.sizes);
11536
+ });
11537
+ slot.gptSlot.defineSizeMapping(smbuilder.build());
11538
+ }
11539
+ }
11540
+ });
11541
+ });
11542
+
11543
+ _this3.configureOptions(googletag);
11544
+
11545
+ googletag.cmd.push(function () {
11546
+ googletag.enableServices();
11547
+
11548
+ if (!_this3.disableInitialLoadIsEnabled()) {
11549
+ slotsToInitialize.forEach(function (theSlotId) {
11550
+ googletag.display(theSlotId);
11551
+ });
11552
+ }
11553
+
11554
+ resolve();
11555
+ });
11556
+ });
11557
+ });
11558
+ },
11559
+ configureOptions: function configureOptions(googletag) {
11560
+ var _this4 = this;
11561
+
11562
+ googletag.cmd.push(function () {
11563
+ var pubadsService = googletag.pubads();
11564
+ pubadsService.setRequestNonPersonalizedAds(_this4.personalizedAdsEnabled() ? 0 : 1);
11565
+
11566
+ var targetingArguments = _this4.getTargetingArguments(); // set global targetting arguments
11567
+
11568
+
11569
+ Object.keys(targetingArguments).forEach(function (varName) {
11570
+ if (pubadsService) {
11571
+ pubadsService.setTargeting(varName, targetingArguments[varName]);
11572
+ }
11573
+ }); // set global adSense attributes
11574
+
11575
+ var adSenseAttributes = _this4.getAdSenseAttributes();
11576
+
11577
+ Object.keys(adSenseAttributes).forEach(function (key) {
11578
+ pubadsService.set(key, adSenseAttributes[key]);
11579
+ });
11580
+
11581
+ if (_this4.lazyLoadIsEnabled()) {
11582
+ var args = [];
11583
+
11584
+ var config = _this4.getLazyLoadConfig();
11585
+
11586
+ if (config !== null) {
11587
+ args.push(config);
11588
+ }
11589
+
11590
+ pubadsService.enableLazyLoad.call(args);
11591
+ }
11592
+
11593
+ if (_this4.singleRequestIsEnabled()) {
11594
+ pubadsService.enableSingleRequest();
11595
+ }
11596
+
11597
+ if (_this4.disableInitialLoadIsEnabled()) {
11598
+ pubadsService.disableInitialLoad();
11599
+ }
11600
+
11601
+ if (_this4.collapseEmptyDivs === true || _this4.collapseEmptyDivs === false) {
11602
+ pubadsService.collapseEmptyDivs(_this4.collapseEmptyDivs);
11603
+ }
11604
+ });
11605
+ },
11606
+ getRefreshableSlots: function getRefreshableSlots() {
11607
+ var slots = {};
11608
+
11609
+ for (var _len3 = arguments.length, slotsArray = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
11610
+ slotsArray[_key3] = arguments[_key3];
11611
+ }
11612
+
11613
+ if (slotsArray.length === 0) {
11614
+ var slotsToRefresh = Object.keys(registeredSlots).map(function (k) {
11615
+ return registeredSlots[k];
11616
+ });
11617
+ return slotsToRefresh.reduce(function (last, slot) {
11618
+ if (slot.slotShouldRefresh() === true) {
11619
+ slots[slot.slotId] = slot;
11620
+ }
11621
+
11622
+ return slots;
11623
+ }, slots);
11624
+ }
11625
+
11626
+ return slotsArray.reduce(function (last, slotId) {
11627
+ var slot = registeredSlots[slotId];
11628
+
11629
+ if (typeof slot !== 'undefined') {
11630
+ slots[slotId] = slot;
11631
+ }
11632
+
11633
+ return slots;
11634
+ }, slots);
11635
+ },
11636
+ refresh: function refresh() {
11637
+ if (loadPromise === null) {
11638
+ this.load();
11639
+ } else {
11640
+ this.gptRefreshAds(Object.keys(this.getRefreshableSlots.apply(this, arguments)));
11641
+ }
11642
+ },
11643
+ gptRefreshAds: function gptRefreshAds(slots) {
11644
+ var _this5 = this;
11645
+
11646
+ return this.getGoogletag().then(function (googletag) {
11647
+ _this5.configureOptions(googletag);
11648
+
11649
+ googletag.cmd.push(function () {
11650
+ var pubadsService = googletag.pubads();
11651
+ pubadsService.refresh(slots.map(function (slotId) {
11652
+ return registeredSlots[slotId].gptSlot;
11653
+ }));
11654
+ });
11655
+ });
11656
+ },
11657
+ reload: function reload() {
11658
+ var _this6 = this;
11659
+
11660
+ return this.destroyGPTSlots.apply(this, arguments).then(function () {
11661
+ return _this6.load();
11662
+ });
11663
+ },
11664
+ destroyGPTSlots: function destroyGPTSlots() {
11665
+ var _this7 = this;
11666
+
11667
+ for (var _len4 = arguments.length, slotsToDestroy = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
11668
+ slotsToDestroy[_key4] = arguments[_key4];
11669
+ }
11670
+
11671
+ if (slotsToDestroy.length === 0) {
11672
+ // eslint-disable-next-line no-param-reassign
11673
+ slotsToDestroy = Object.keys(registeredSlots);
11674
+ }
11675
+
11676
+ return new Promise(function (resolve) {
11677
+ var slots = []; // eslint-disable-next-line guard-for-in,no-restricted-syntax
11678
+
11679
+ for (var idx in slotsToDestroy) {
11680
+ var slotId = slotsToDestroy[idx];
11681
+ var slot = registeredSlots[slotId];
11682
+ slots.push(slot);
11683
+ }
11684
+
11685
+ _this7.getGoogletag().then(function (googletag) {
11686
+ googletag.cmd.push(function () {
11687
+ if (managerAlreadyInitialized === true) {
11688
+ if (slotsToDestroy.length > 0) {
11689
+ // eslint-disable-next-line guard-for-in,no-restricted-syntax
11690
+ for (var _idx in slots) {
11691
+ var _slot = slots[_idx];
11692
+ slots.push(_slot.gptSlot);
11693
+ delete _slot.gptSlot;
11694
+ }
11695
+
11696
+ googletag.destroySlots(slots);
11697
+ } else {
11698
+ googletag.destroySlots();
11699
+ }
11700
+ }
11701
+
11702
+ resolve(slotsToDestroy);
11703
+ });
11704
+ });
11705
+ });
11706
+ },
11707
+ registerSlot: function registerSlot(_ref) {
11708
+ var _this8 = this;
11709
+
11710
+ var slotId = _ref.slotId,
11711
+ dfpNetworkId = _ref.dfpNetworkId,
11712
+ adUnit = _ref.adUnit,
11713
+ sizes = _ref.sizes,
11714
+ renderOutOfThePage = _ref.renderOutOfThePage,
11715
+ sizeMapping = _ref.sizeMapping,
11716
+ adSenseAttributes = _ref.adSenseAttributes,
11717
+ targetingArguments = _ref.targetingArguments,
11718
+ slotShouldRefresh = _ref.slotShouldRefresh;
11719
+ var autoLoad = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
11720
+
11721
+ if (!Object.prototype.hasOwnProperty.call(registeredSlots, slotId)) {
11722
+ registeredSlots[slotId] = {
11723
+ slotId: slotId,
11724
+ sizes: sizes,
11725
+ renderOutOfThePage: renderOutOfThePage,
11726
+ dfpNetworkId: dfpNetworkId,
11727
+ adUnit: adUnit,
11728
+ adSenseAttributes: adSenseAttributes,
11729
+ targetingArguments: targetingArguments,
11730
+ sizeMapping: sizeMapping,
11731
+ slotShouldRefresh: slotShouldRefresh,
11732
+ loading: false
11733
+ };
11734
+ this.emit('slotRegistered', {
11735
+ slotId: slotId
11736
+ });
11737
+
11738
+ if (autoLoad === true && loadPromise !== null) {
11739
+ loadPromise = loadPromise.catch().then(function () {
11740
+ var slot = registeredSlots[slotId];
11741
+
11742
+ if (typeof slot !== 'undefined') {
11743
+ var loading = slot.loading,
11744
+ gptSlot = slot.gptSlot;
11745
+
11746
+ if (loading === false && !gptSlot) {
11747
+ _this8.load(slotId);
11748
+ }
11749
+ }
11750
+ });
11751
+ }
11752
+ }
11753
+ },
11754
+ unregisterSlot: function unregisterSlot(_ref2) {
11755
+ var slotId = _ref2.slotId;
11756
+ this.destroyGPTSlots(slotId);
11757
+ delete registeredSlots[slotId];
11758
+ },
11759
+ getRegisteredSlots: function getRegisteredSlots() {
11760
+ return registeredSlots;
11761
+ },
11762
+ attachSlotRenderEnded: function attachSlotRenderEnded(cb) {
11763
+ this.on('slotRenderEnded', cb);
11764
+ },
11765
+ detachSlotRenderEnded: function detachSlotRenderEnded(cb) {
11766
+ this.removeListener('slotRenderEnded', cb);
11767
+ },
11768
+ attachSlotVisibilityChanged: function attachSlotVisibilityChanged(cb) {
11769
+ this.on('slotVisibilityChanged', cb);
11770
+ },
11771
+ detachSlotVisibilityChanged: function detachSlotVisibilityChanged(cb) {
11772
+ this.removeListener('slotVisibilityChanged', cb);
11773
+ },
11774
+ attachSlotIsViewable: function attachSlotIsViewable(cb) {
11775
+ this.on('impressionViewable', cb);
11776
+ },
11777
+ detachSlotIsViewable: function detachSlotIsViewable(cb) {
11778
+ this.removeListener('impressionViewable', cb);
11779
+ }
11780
+ });
11781
+ var _default = DFPManager;
11782
+ exports.default = _default;
11783
+ });
11784
+
11785
+ unwrapExports(manager);
11786
+
11787
+ var dfpslotsprovider = createCommonjsModule(function (module, exports) {
11788
+
11789
+ Object.defineProperty(exports, "__esModule", {
11790
+ value: true
11791
+ });
11792
+ exports.default = exports.Context = void 0;
11793
+
11794
+ var _react = _interopRequireDefault(React__default);
11795
+
11796
+ var _propTypes = _interopRequireDefault(PropTypes);
11797
+
11798
+ var _manager = _interopRequireDefault(manager);
11799
+
11800
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11801
+
11802
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
11803
+
11804
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11805
+
11806
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
11807
+
11808
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
11809
+
11810
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
11811
+
11812
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
11813
+
11814
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
11815
+
11816
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
11817
+
11818
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
11819
+
11820
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11821
+
11822
+ // React.createContext is undefined for React < 16.3
11823
+ var Context = _react.default.createContext ? _react.default.createContext({
11824
+ dfpNetworkId: null,
11825
+ dfpAdUnit: null,
11826
+ dfpSizeMapping: null,
11827
+ dfpTargetingArguments: null,
11828
+ newSlotCallback: null
11829
+ }) : null;
11830
+ exports.Context = Context;
11831
+
11832
+ var DFPSlotsProvider =
11833
+ /*#__PURE__*/
11834
+ function (_React$Component) {
11835
+ _inherits(DFPSlotsProvider, _React$Component);
11836
+
11837
+ function DFPSlotsProvider(props) {
11838
+ var _this;
11839
+
11840
+ _classCallCheck(this, DFPSlotsProvider);
11841
+
11842
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(DFPSlotsProvider).call(this, props));
11843
+ _this.loadAdsIfPossible = _this.loadAdsIfPossible.bind(_assertThisInitialized(_assertThisInitialized(_this)));
11844
+ _this.newSlotCallback = _this.newSlotCallback.bind(_assertThisInitialized(_assertThisInitialized(_this)));
11845
+ _this.applyConfigs = _this.applyConfigs.bind(_assertThisInitialized(_assertThisInitialized(_this)));
11846
+ _this.shouldReloadConfig = _this.shouldReloadConfig.bind(_assertThisInitialized(_assertThisInitialized(_this)));
11847
+ _this.attachLoadCallback = _this.attachLoadCallback.bind(_assertThisInitialized(_assertThisInitialized(_this)));
11848
+ _this.getContextValue = _this.getContextValue.bind(_assertThisInitialized(_assertThisInitialized(_this)));
11849
+ _this.loadAlreadyCalled = false;
11850
+ _this.loadCallbackAttached = false;
11851
+ _this.shouldReloadAds = false;
11852
+ _this.totalSlots = 0;
11853
+ _this.contextValue = {};
11854
+
11855
+ if (Context === null) {
11856
+ _this.getChildContext = function () {
11857
+ return _this.getContextValue();
11858
+ };
11859
+ }
11860
+
11861
+ return _this;
11862
+ }
11863
+
11864
+ _createClass(DFPSlotsProvider, [{
11865
+ key: "componentDidMount",
11866
+ value: function componentDidMount() {
11867
+ this.applyConfigs();
11868
+
11869
+ if (this.props.autoLoad && !this.loadAdsIfPossible()) {
11870
+ this.attachLoadCallback();
11871
+ }
11872
+ }
11873
+ }, {
11874
+ key: "shouldComponentUpdate",
11875
+ value: function shouldComponentUpdate(nextProps) {
11876
+ this.shouldReloadAds = this.shouldReloadConfig(nextProps);
11877
+
11878
+ if (nextProps.children !== this.props.children) {
11879
+ return true;
11880
+ }
11881
+
11882
+ if (nextProps.autoLoad && !this.props.autoLoad) {
11883
+ return true;
11884
+ }
11885
+
11886
+ return this.shouldReloadAds;
11887
+ }
11888
+ }, {
11889
+ key: "componentDidUpdate",
11890
+ value: function componentDidUpdate() {
11891
+ this.applyConfigs();
11892
+
11893
+ if (this.props.autoLoad) {
11894
+ if (this.loadAlreadyCalled) {
11895
+ if (this.shouldReloadAds) {
11896
+ _manager.default.reload();
11897
+ }
11898
+ } else if (!this.loadAdsIfPossible()) {
11899
+ this.attachLoadCallback();
11900
+ }
11901
+ }
11902
+
11903
+ this.shouldReloadAds = false;
11904
+ }
11905
+ }, {
11906
+ key: "getContextValue",
11907
+ value: function getContextValue() {
11908
+ var _this$props = this.props,
11909
+ dfpNetworkId = _this$props.dfpNetworkId,
11910
+ dfpAdUnit = _this$props.adUnit,
11911
+ dfpSizeMapping = _this$props.sizeMapping,
11912
+ dfpTargetingArguments = _this$props.targetingArguments,
11913
+ _this$contextValue = this.contextValue,
11914
+ ctxDfpNetworkId = _this$contextValue.dfpNetworkId,
11915
+ ctxDfpAdUnit = _this$contextValue.adUnit,
11916
+ ctxDfpSizeMapping = _this$contextValue.sizeMapping,
11917
+ ctxDfpTargetingArguments = _this$contextValue.targetingArguments; // performance: update context value object only when any of its
11918
+ // props is updated.
11919
+
11920
+ if (dfpNetworkId !== ctxDfpNetworkId || dfpAdUnit !== ctxDfpAdUnit || dfpSizeMapping !== ctxDfpSizeMapping || dfpTargetingArguments !== ctxDfpTargetingArguments) {
11921
+ this.contextValue = {
11922
+ dfpNetworkId: dfpNetworkId,
11923
+ dfpAdUnit: dfpAdUnit,
11924
+ dfpSizeMapping: dfpSizeMapping,
11925
+ dfpTargetingArguments: dfpTargetingArguments,
11926
+ newSlotCallback: this.newSlotCallback
11927
+ };
11928
+ }
11929
+
11930
+ return this.contextValue;
11931
+ }
11932
+ }, {
11933
+ key: "applyConfigs",
11934
+ value: function applyConfigs() {
11935
+ _manager.default.configurePersonalizedAds(this.props.personalizedAds);
11936
+
11937
+ _manager.default.configureSingleRequest(this.props.singleRequest);
11938
+
11939
+ _manager.default.configureDisableInitialLoad(this.props.disableInitialLoad);
11940
+
11941
+ _manager.default.configureLazyLoad(!!this.props.lazyLoad, typeof this.props.lazyLoad === 'boolean' ? null : this.props.lazyLoad);
11942
+
11943
+ _manager.default.setAdSenseAttributes(this.props.adSenseAttributes);
11944
+
11945
+ _manager.default.setCollapseEmptyDivs(this.props.collapseEmptyDivs);
11946
+ }
11947
+ }, {
11948
+ key: "attachLoadCallback",
11949
+ value: function attachLoadCallback() {
11950
+ if (this.loadCallbackAttached === false) {
11951
+ _manager.default.on('slotRegistered', this.loadAdsIfPossible);
11952
+
11953
+ this.loadCallbackAttached = true;
11954
+ return true;
11955
+ }
11956
+
11957
+ return false;
11958
+ } // pretty strait-forward interface that children ad slots use to register
11959
+ // with their DFPSlotProvider parent node.
11960
+
11961
+ }, {
11962
+ key: "newSlotCallback",
11963
+ value: function newSlotCallback() {
11964
+ this.totalSlots++;
11965
+ } // Checks all the mounted children ads have been already registered
11966
+ // in the DFPManager before trying to call the gpt load scripts.
11967
+ // This is helpful when trying to fetch ads with a single request.
11968
+
11969
+ }, {
11970
+ key: "loadAdsIfPossible",
11971
+ value: function loadAdsIfPossible() {
11972
+ var r = false;
11973
+
11974
+ if (Object.keys(_manager.default.getRegisteredSlots()).length >= this.totalSlots) {
11975
+ _manager.default.removeListener('slotRegistered', this.loadAdsIfPossible);
11976
+
11977
+ _manager.default.load();
11978
+
11979
+ this.loadAlreadyCalled = true;
11980
+ this.loadCallbackAttached = false;
11981
+ r = true;
11982
+ }
11983
+
11984
+ return r;
11985
+ }
11986
+ }, {
11987
+ key: "shouldReloadConfig",
11988
+ value: function shouldReloadConfig(nextProps) {
11989
+ var reloadConfig = nextProps.autoReload || this.props.autoReload;
11990
+
11991
+ if (this.props.autoLoad || nextProps.autoLoad) {
11992
+ if (_typeof(reloadConfig) === 'object') {
11993
+ var attrs = Object.keys(reloadConfig); // eslint-disable-next-line guard-for-in, no-restricted-syntax
11994
+
11995
+ for (var i in attrs) {
11996
+ var propName = attrs[i]; // eslint-disable-next-line
11997
+
11998
+ if (reloadConfig[propName] === true && this.props[propName] !== nextProps[propName]) {
11999
+ return true;
12000
+ }
12001
+ }
12002
+ }
12003
+ }
12004
+
12005
+ return false;
12006
+ }
12007
+ }, {
12008
+ key: "render",
12009
+ value: function render() {
12010
+ var children = this.props.children;
12011
+
12012
+ if (Context === null) {
12013
+ return children;
12014
+ }
12015
+
12016
+ return _react.default.createElement(Context.Provider, {
12017
+ value: this.getContextValue()
12018
+ }, children);
12019
+ }
12020
+ }]);
12021
+
12022
+ return DFPSlotsProvider;
12023
+ }(_react.default.Component);
12024
+
12025
+ exports.default = DFPSlotsProvider;
12026
+
12027
+ _defineProperty(DFPSlotsProvider, "propTypes", {
12028
+ children: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.array]).isRequired,
12029
+ autoLoad: _propTypes.default.bool,
12030
+ autoReload: _propTypes.default.shape({
12031
+ dfpNetworkId: _propTypes.default.bool,
12032
+ personalizedAds: _propTypes.default.bool,
12033
+ singleRequest: _propTypes.default.bool,
12034
+ disableInitialLoad: _propTypes.default.bool,
12035
+ adUnit: _propTypes.default.bool,
12036
+ sizeMapping: _propTypes.default.bool,
12037
+ adSenseAttributes: _propTypes.default.bool,
12038
+ targetingArguments: _propTypes.default.bool,
12039
+ collapseEmptyDivs: _propTypes.default.bool,
12040
+ lazyLoad: _propTypes.default.bool
12041
+ }),
12042
+ dfpNetworkId: _propTypes.default.string.isRequired,
12043
+ personalizedAds: _propTypes.default.bool,
12044
+ singleRequest: _propTypes.default.bool,
12045
+ disableInitialLoad: _propTypes.default.bool,
12046
+ adUnit: _propTypes.default.string,
12047
+ sizeMapping: _propTypes.default.arrayOf(_propTypes.default.object),
12048
+ adSenseAttributes: _propTypes.default.object,
12049
+ targetingArguments: _propTypes.default.object,
12050
+ collapseEmptyDivs: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object]),
12051
+ adSenseAttrs: _propTypes.default.object,
12052
+ lazyLoad: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.shape({
12053
+ fetchMarginPercent: _propTypes.default.number,
12054
+ renderMarginPercent: _propTypes.default.number,
12055
+ mobileScaling: _propTypes.default.number
12056
+ })])
12057
+ });
12058
+
12059
+ _defineProperty(DFPSlotsProvider, "defaultProps", {
12060
+ autoLoad: true,
12061
+ autoReload: {
12062
+ dfpNetworkId: false,
12063
+ personalizedAds: false,
12064
+ singleRequest: false,
12065
+ disableInitialLoad: false,
12066
+ adUnit: false,
12067
+ sizeMapping: false,
12068
+ adSenseAttributes: false,
12069
+ targetingArguments: false,
12070
+ collapseEmptyDivs: false,
12071
+ lazyLoad: false
12072
+ },
12073
+ personalizedAds: true,
12074
+ singleRequest: true,
12075
+ disableInitialLoad: false,
12076
+ collapseEmptyDivs: null,
12077
+ lazyLoad: false
12078
+ });
12079
+
12080
+ if (Context === null) {
12081
+ // React < 16.3
12082
+ DFPSlotsProvider.childContextTypes = {
12083
+ dfpNetworkId: _propTypes.default.string,
12084
+ dfpAdUnit: _propTypes.default.string,
12085
+ dfpSizeMapping: _propTypes.default.arrayOf(_propTypes.default.object),
12086
+ dfpTargetingArguments: _propTypes.default.object,
12087
+ newSlotCallback: _propTypes.default.func
12088
+ };
12089
+ }
12090
+ });
12091
+
12092
+ unwrapExports(dfpslotsprovider);
12093
+ var dfpslotsprovider_1 = dfpslotsprovider.Context;
12094
+
12095
+ var adslot = createCommonjsModule(function (module, exports) {
12096
+
12097
+ Object.defineProperty(exports, "__esModule", {
12098
+ value: true
12099
+ });
12100
+ exports.default = exports.AdSlot = void 0;
12101
+
12102
+ var _react = _interopRequireDefault(React__default);
12103
+
12104
+ var _propTypes = _interopRequireDefault(PropTypes);
12105
+
12106
+ var _manager = _interopRequireDefault(manager);
12107
+
12108
+
12109
+
12110
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12111
+
12112
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
12113
+
12114
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
12115
+
12116
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
12117
+
12118
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12119
+
12120
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
12121
+
12122
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12123
+
12124
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
12125
+
12126
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12127
+
12128
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
12129
+
12130
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12131
+
12132
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12133
+
12134
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12135
+
12136
+ var dynamicAdCount = 0;
12137
+
12138
+ var AdSlot =
12139
+ /*#__PURE__*/
12140
+ function (_React$Component) {
12141
+ _inherits(AdSlot, _React$Component);
12142
+
12143
+ function AdSlot(props) {
12144
+ var _this;
12145
+
12146
+ _classCallCheck(this, AdSlot);
12147
+
12148
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(AdSlot).call(this, props));
12149
+ _this.doRegisterSlot = _this.doRegisterSlot.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12150
+ _this.generateSlotId = _this.generateSlotId.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12151
+ _this.getSlotId = _this.getSlotId.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12152
+ _this.mapContextToAdSlotProps = _this.mapContextToAdSlotProps.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12153
+ _this.slotShouldRefresh = _this.slotShouldRefresh.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12154
+ _this.slotRenderEnded = _this.slotRenderEnded.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12155
+ _this.slotRegisterCallback = _this.slotRegisterCallback.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12156
+ _this.slotIsViewable = _this.slotIsViewable.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12157
+ _this.slotVisibilityChanged = _this.slotVisibilityChanged.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12158
+ _this.getClasses = _this.getClasses.bind(_assertThisInitialized(_assertThisInitialized(_this)));
12159
+ _this.state = {
12160
+ slotId: _this.props.slotId || null,
12161
+ className: _this.props.className || ''
12162
+ };
12163
+ _this.adElementRef = _react.default.createRef ? _react.default.createRef() : function (element) {
12164
+ _this.adElementRef = element;
12165
+ };
12166
+ return _this;
12167
+ }
12168
+
12169
+ _createClass(AdSlot, [{
12170
+ key: "componentDidMount",
12171
+ value: function componentDidMount() {
12172
+ // register this ad-unit in the <DFPSlotProvider>, when available.
12173
+ if (this.context !== undefined && this.context.newSlotCallback) {
12174
+ this.context.newSlotCallback();
12175
+ }
12176
+
12177
+ this.registerSlot();
12178
+ }
12179
+ }, {
12180
+ key: "componentWillUnmount",
12181
+ value: function componentWillUnmount() {
12182
+ this.unregisterSlot();
12183
+ }
12184
+ }, {
12185
+ key: "getSlotId",
12186
+ value: function getSlotId() {
12187
+ return this.props.slotId || this.state.slotId;
12188
+ }
12189
+ }, {
12190
+ key: "getClasses",
12191
+ value: function getClasses() {
12192
+ var baseClass = 'adunitContainer';
12193
+ var extraClasses = this.state.className.split(' ');
12194
+ extraClasses.push(baseClass);
12195
+ return extraClasses;
12196
+ }
12197
+ }, {
12198
+ key: "generateSlotId",
12199
+ value: function generateSlotId() {
12200
+ return "adSlot-".concat(dynamicAdCount++);
12201
+ }
12202
+ }, {
12203
+ key: "mapContextToAdSlotProps",
12204
+ value: function mapContextToAdSlotProps() {
12205
+ var context = this.context;
12206
+ var mappedProps = {};
12207
+
12208
+ if (context.dfpNetworkId !== undefined) {
12209
+ mappedProps.dfpNetworkId = context.dfpNetworkId;
12210
+ }
12211
+
12212
+ if (context.dfpAdUnit !== undefined) {
12213
+ mappedProps.adUnit = context.dfpAdUnit;
12214
+ }
12215
+
12216
+ if (context.dfpSizeMapping !== undefined) {
12217
+ mappedProps.sizeMapping = context.dfpSizeMapping;
12218
+ }
12219
+
12220
+ if (context.dfpTargetingArguments !== undefined) {
12221
+ mappedProps.targetingArguments = context.dfpTargetingArguments;
12222
+ }
12223
+
12224
+ return mappedProps;
12225
+ }
12226
+ }, {
12227
+ key: "doRegisterSlot",
12228
+ value: function doRegisterSlot() {
12229
+ _manager.default.registerSlot(_objectSpread({}, this.mapContextToAdSlotProps(), this.props, this.state, {
12230
+ slotShouldRefresh: this.slotShouldRefresh
12231
+ }));
12232
+
12233
+ if (this.props.fetchNow === true) {
12234
+ _manager.default.load(this.getSlotId());
12235
+ }
12236
+
12237
+ _manager.default.attachSlotRenderEnded(this.slotRenderEnded);
12238
+
12239
+ _manager.default.attachSlotIsViewable(this.slotIsViewable);
12240
+
12241
+ _manager.default.attachSlotVisibilityChanged(this.slotVisibilityChanged);
12242
+
12243
+ this.slotRegisterCallback();
12244
+ }
12245
+ }, {
12246
+ key: "registerSlot",
12247
+ value: function registerSlot() {
12248
+ if (this.state.slotId === null) {
12249
+ this.setState({
12250
+ slotId: this.generateSlotId()
12251
+ }, this.doRegisterSlot);
12252
+ } else {
12253
+ this.doRegisterSlot();
12254
+ }
12255
+ }
12256
+ }, {
12257
+ key: "unregisterSlot",
12258
+ value: function unregisterSlot() {
12259
+ _manager.default.unregisterSlot(_objectSpread({}, this.mapContextToAdSlotProps(), this.props, this.state));
12260
+
12261
+ _manager.default.detachSlotRenderEnded(this.slotRenderEnded);
12262
+
12263
+ _manager.default.detachSlotIsViewable(this.slotIsViewable);
12264
+
12265
+ _manager.default.detachSlotVisibilityChanged(this.slotVisibilityChanged);
12266
+ }
12267
+ }, {
12268
+ key: "slotRenderEnded",
12269
+ value: function slotRenderEnded(eventData) {
12270
+ if (eventData.slotId === this.getSlotId()) {
12271
+ if (this.props.onSlotRender !== undefined) {
12272
+ // now that slot has rendered we have access to the ref
12273
+ var params = _objectSpread({}, eventData, {
12274
+ adElementRef: this.adElementRef
12275
+ });
12276
+
12277
+ this.props.onSlotRender(params);
12278
+ }
12279
+ }
12280
+ }
12281
+ }, {
12282
+ key: "slotRegisterCallback",
12283
+ value: function slotRegisterCallback() {
12284
+ if (typeof this.props.onSlotRegister === 'function') {
12285
+ this.props.onSlotRegister({
12286
+ slotId: this.getSlotId(),
12287
+ sizes: this.props.sizes,
12288
+ slotCount: dynamicAdCount,
12289
+ adElementRef: this.adElementRef
12290
+ });
12291
+ }
12292
+ }
12293
+ }, {
12294
+ key: "slotIsViewable",
12295
+ value: function slotIsViewable(eventData) {
12296
+ if (eventData.slotId === this.getSlotId()) {
12297
+ if (this.props.onSlotIsViewable !== undefined) {
12298
+ this.props.onSlotIsViewable(eventData);
12299
+ }
12300
+ }
12301
+ }
12302
+ }, {
12303
+ key: "slotVisibilityChanged",
12304
+ value: function slotVisibilityChanged(eventData) {
12305
+ if (eventData.slotId === this.getSlotId()) {
12306
+ if (this.props.onSlotVisibilityChanged !== undefined) {
12307
+ this.props.onSlotVisibilityChanged(eventData);
12308
+ }
12309
+ }
12310
+ }
12311
+ }, {
12312
+ key: "slotShouldRefresh",
12313
+ value: function slotShouldRefresh() {
12314
+ var r = true;
12315
+
12316
+ if (this.props.shouldRefresh !== undefined) {
12317
+ r = this.props.shouldRefresh(_objectSpread({}, this.mapContextToAdSlotProps(), this.props, {
12318
+ slotId: this.getSlotId()
12319
+ }));
12320
+ }
12321
+
12322
+ return r;
12323
+ }
12324
+ }, {
12325
+ key: "render",
12326
+ value: function render() {
12327
+ var slotId = this.state.slotId;
12328
+ var props = {
12329
+ className: 'adBox'
12330
+ };
12331
+
12332
+ if (slotId !== null) {
12333
+ props.id = slotId;
12334
+ }
12335
+
12336
+ return _react.default.createElement("div", {
12337
+ className: this.getClasses().join(' ').trim()
12338
+ }, _react.default.createElement("div", _extends({
12339
+ ref: this.adElementRef
12340
+ }, props)));
12341
+ }
12342
+ }]);
12343
+
12344
+ return AdSlot;
12345
+ }(_react.default.Component);
12346
+
12347
+ exports.AdSlot = AdSlot;
12348
+
12349
+ _defineProperty(AdSlot, "propTypes", {
12350
+ dfpNetworkId: _propTypes.default.string,
12351
+ adUnit: _propTypes.default.string,
12352
+ sizes: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.number), _propTypes.default.string])),
12353
+ renderOutOfThePage: _propTypes.default.bool,
12354
+ sizeMapping: _propTypes.default.arrayOf(_propTypes.default.object),
12355
+ fetchNow: _propTypes.default.bool,
12356
+ adSenseAttributes: _propTypes.default.object,
12357
+ targetingArguments: _propTypes.default.object,
12358
+ onSlotRender: _propTypes.default.func,
12359
+ onSlotRegister: _propTypes.default.func,
12360
+ onSlotIsViewable: _propTypes.default.func,
12361
+ onSlotVisibilityChanged: _propTypes.default.func,
12362
+ shouldRefresh: _propTypes.default.func,
12363
+ slotId: _propTypes.default.string,
12364
+ className: _propTypes.default.string
12365
+ });
12366
+
12367
+ _defineProperty(AdSlot, "defaultProps", {
12368
+ fetchNow: false
12369
+ });
12370
+
12371
+ if (dfpslotsprovider.Context === null) {
12372
+ // React < 16.3
12373
+ AdSlot.contextTypes = {
12374
+ dfpNetworkId: _propTypes.default.string,
12375
+ dfpAdUnit: _propTypes.default.string,
12376
+ dfpSizeMapping: _propTypes.default.arrayOf(_propTypes.default.object),
12377
+ dfpTargetingArguments: _propTypes.default.object,
12378
+ newSlotCallback: _propTypes.default.func
12379
+ };
12380
+ } else {
12381
+ AdSlot.contextType = dfpslotsprovider.Context;
12382
+ }
12383
+
12384
+ var _default = AdSlot;
12385
+ exports.default = _default;
12386
+ });
12387
+
12388
+ unwrapExports(adslot);
12389
+ var adslot_1 = adslot.AdSlot;
12390
+
12391
+ var lib = createCommonjsModule(function (module, exports) {
12392
+
12393
+ Object.defineProperty(exports, "__esModule", {
12394
+ value: true
12395
+ });
12396
+ exports.DFPSlotsProvider = exports.AdSlot = exports.DFPManager = void 0;
12397
+
12398
+ var _manager = _interopRequireDefault(manager);
12399
+
12400
+ var _adslot = _interopRequireDefault(adslot);
12401
+
12402
+ var _dfpslotsprovider = _interopRequireDefault(dfpslotsprovider);
12403
+
12404
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12405
+
12406
+ var DFPManager = _manager.default;
12407
+ exports.DFPManager = DFPManager;
12408
+ var AdSlot = _adslot.default;
12409
+ exports.AdSlot = AdSlot;
12410
+ var DFPSlotsProvider = _dfpslotsprovider.default;
12411
+ exports.DFPSlotsProvider = DFPSlotsProvider;
12412
+ });
12413
+
12414
+ unwrapExports(lib);
12415
+ var lib_1 = lib.DFPSlotsProvider;
12416
+ var lib_2 = lib.AdSlot;
12417
+ var lib_3 = lib.DFPManager;
12418
+
12419
+ var AD728x90 = function (_Component) {
12420
+ inherits(AD728x90, _Component);
12421
+
12422
+ function AD728x90(props) {
12423
+ classCallCheck(this, AD728x90);
12424
+
12425
+ var _this = possibleConstructorReturn(this, (AD728x90.__proto__ || Object.getPrototypeOf(AD728x90)).call(this, props));
12426
+
12427
+ _this.option = {
12428
+ networkID: props.networkID,
12429
+ adUnit: props.adUnit
12430
+ };
12431
+ return _this;
12432
+ }
12433
+
12434
+ createClass(AD728x90, [{
12435
+ key: 'render',
12436
+ value: function render() {
12437
+ return React__default.createElement(
12438
+ lib_1,
12439
+ {
12440
+ dfpNetworkId: this.option.networkID,
12441
+ sizeMapping: [{ viewport: [768, 1], sizes: [[728, 90]] }, { viewport: [1, 1], sizes: [[320, 50]] }] },
12442
+ React__default.createElement(
12443
+ 'div',
12444
+ { className: 'AD728x90' },
12445
+ React__default.createElement(lib_2, {
12446
+ slotId: 'test',
12447
+ sizes: [[728, 90], [320, 50]],
12448
+ adUnit: this.option.adUnit,
12449
+ sizeMapping: [{ viewport: [768, 1], sizes: [[728, 90]] }, { viewport: [1, 1], sizes: [[320, 50]] }],
12450
+ onSlotVisibilityChanged: function onSlotVisibilityChanged(dfpEventData) {
12451
+ if (dfpEventData.event.inViewPercentage < '70') {
12452
+ lib_3.refresh('test');
12453
+ }
12454
+ },
12455
+ onSlotIsViewable: function onSlotIsViewable(dfpEventData) {
12456
+ return console.log('slot 1 viewable!.', dfpEventData);
12457
+ }
12458
+ })
12459
+ )
12460
+ );
12461
+ }
12462
+ }]);
12463
+ return AD728x90;
12464
+ }(React.Component);
12465
+
12466
+ // Main
12467
+ var Normal$1 = function Normal$$1(props) {
12468
+ var config = props.config,
12469
+ title = props.title,
12470
+ keywords = props.keywords,
12471
+ description = props.description,
12472
+ website = props.website;
12473
+
12474
+
12475
+ function navigation() {
12476
+ switch (config.navComponent) {
12477
+ case 'normal':
12478
+ return React__default.createElement(Normal, { logo: website.logo, dataObject: config.navItems });
12479
+ case 'magazine':
12480
+ return React__default.createElement(Magazine, { logo: website.logo, dataObject: config.navItems });
12481
+ case 'native':
12482
+ return React__default.createElement(Native, { logo: website.logo, dataObject: config.navItems });
12483
+ default:
12484
+ return React__default.createElement('noNav', null);
12485
+ }
12486
+ }
12487
+
12488
+ function layout() {
12489
+ switch (config.columns) {
12490
+ case '2':
12491
+ return React__default.createElement(
12492
+ Column2,
12493
+ { rightItems: config.rightItems },
12494
+ props.children
12495
+ );
12496
+ case '3':
12497
+ return React__default.createElement(
12498
+ Column3,
12499
+ { leftItems: config.leftItems, rightItems: config.rightItems },
12500
+ props.children
12501
+ );
12502
+ default:
12503
+ return React__default.createElement('noLayout', null);
12504
+ }
12505
+ }
12506
+
12507
+ return React__default.createElement(
12508
+ 'section',
12509
+ null,
12510
+ React__default.createElement(Header, { title: title, keyword: keywords, description: description }),
12511
+ navigation(),
12512
+ React__default.createElement(
12513
+ Container,
12514
+ null,
12515
+ React__default.createElement(AD728x90, { networkID: '20642765', adUnit: 'aesthetic_authority' })
12516
+ ),
12517
+ React__default.createElement(
12518
+ Container,
12519
+ null,
12520
+ layout()
12521
+ )
12522
+ );
12523
+ };
12524
+
12525
+ var AD300x250 = function (_Component) {
12526
+ inherits(AD300x250, _Component);
12527
+
12528
+ function AD300x250(props) {
12529
+ classCallCheck(this, AD300x250);
12530
+
12531
+ var _this = possibleConstructorReturn(this, (AD300x250.__proto__ || Object.getPrototypeOf(AD300x250)).call(this, props));
12532
+
12533
+ _this.option = {
12534
+ networkID: props.networkID,
12535
+ adUnit: props.adUnit
12536
+ };
12537
+ return _this;
12538
+ }
12539
+
12540
+ createClass(AD300x250, [{
12541
+ key: 'render',
12542
+ value: function render() {
12543
+ return React__default.createElement(
12544
+ lib_1,
12545
+ { dfpNetworkId: this.option.networkID },
12546
+ React__default.createElement(
12547
+ 'div',
12548
+ { className: 'AD300x250' },
12549
+ React__default.createElement(lib_2, { sizes: [[300, 250]], adUnit: this.option.adUnit })
12550
+ )
12551
+ );
12552
+ }
12553
+ }]);
12554
+ return AD300x250;
12555
+ }(React.Component);
12556
+
12557
+ var AD300x250x600 = function (_Component) {
12558
+ inherits(AD300x250x600, _Component);
12559
+
12560
+ function AD300x250x600(props) {
12561
+ classCallCheck(this, AD300x250x600);
12562
+
12563
+ var _this = possibleConstructorReturn(this, (AD300x250x600.__proto__ || Object.getPrototypeOf(AD300x250x600)).call(this, props));
12564
+
12565
+ _this.option = {
12566
+ networkID: props.networkID,
12567
+ adUnit: props.adUnit
12568
+ };
12569
+ return _this;
12570
+ }
12571
+
12572
+ createClass(AD300x250x600, [{
12573
+ key: 'render',
12574
+ value: function render() {
12575
+ return React__default.createElement(
12576
+ lib_1,
12577
+ { dfpNetworkId: this.option.networkID },
12578
+ React__default.createElement(
12579
+ 'div',
12580
+ { className: 'AD300x250' },
12581
+ React__default.createElement(lib_2, {
12582
+ sizes: [[300, 250], [300, 600]],
12583
+ adUnit: this.option.adUnit
12584
+ })
12585
+ )
12586
+ );
12587
+ }
12588
+ }]);
12589
+ return AD300x250x600;
12590
+ }(React.Component);
12591
+
11241
12592
  exports.DeckContent = Content;
11242
12593
  exports.DeckQueue = Queue;
11243
12594
  exports.Column2 = Column2;
@@ -11247,4 +12598,8 @@ exports.LeftNav = LeftNav;
11247
12598
  exports.NavMagazine = Magazine;
11248
12599
  exports.NavNative = Native;
11249
12600
  exports.NavNormal = Normal;
12601
+ exports.TemplateNormal = Normal$1;
12602
+ exports.AD300x250 = AD300x250;
12603
+ exports.AD300x250x600 = AD300x250x600;
12604
+ exports.AD728x90 = AD728x90;
11250
12605
  //# sourceMappingURL=index.js.map