{"version":3,"file":"discourse-adplugin.js","names":["define","_exports","_component","_computed","_service","_decorators","_slotPosition","_dec","_dec2","_dec3","_obj","_applyDecoratedDescriptor","target","property","decorators","descriptor","context","desc","Object","keys","forEach","key","enumerable","configurable","initializer","writable","slice","reverse","reduce","decorator","value","call","undefined","defineProperty","default","extend","router","inject","currentCategoryId","or","currentCategorySlug","topicTagsDisableAds","alias","isRestrictedCategory","topicListTag","type","tag","isPersonalMessage","topicType","showToGroups","this","currentUser","show_to_groups","showOnCurrentPage","categoryId","siteSettings","no_ads_for_categories","split","includes","toString","no_ads_for_tags","no_ads_for_personal_messages","no_ads_for_restricted_categories","isNthPost","n","get","isNthTopicListItem","getOwnPropertyDescriptor","_object","_utils","_adComponent","_deprecationsHelper","_templateFactory","slotContenders","__COLOCATED_TEMPLATE__","createTemplateFactory","id","block","moduleName","scope","isStrictMode","adConfig","create","settingPrefix","enabledSetting","nthPost","desktop","mobile","displayCounts","houseAds","allAds","site","placement","indexNumber","postNumber","types","placeUnderscored","replace","settings","adsForSlot","adAvailable","creatives","length","isBlank","notPlacingBetweenTopics","canBePlacedInBetweenTopics","parseInt","after_nth_topic","after_nth_post","push","adNetwork","config","name","settingNames","enabledNetworkSettingName","_isNetworkAvailable","currentPostNumber","positionToPlace","_shouldPlaceAdInSlot","mobileView","setComponentTemplate","tagName","availableAdTypes","adComponents","houseAdsSkipped","house_ads_frequency","networkNames","filter","x","_runloop","_rsvp","_loadScript","_environment","_thisFallbackHelper","_tryLookupHelper","_loaded","_promise","_c","divs","publisherId","init","dimensions","configKey","className","dimClassName","set","zoneId","divId","adbutler_publisher_id","_super","_triggerAds","isTesting","adserverHostname","adbutler_adserver_hostname","resolve","scriptTag","then","loadAdbutler","abkw","window","AdButler","ads","handler","opt","register","place","pop","keywords","domain","click","bind","didInsertElement","scheduleOnce","showAdbutlerAds","show_adbutler_ads","showAd","showAfterPost","adbutler_nth_post","_template","_dec4","_dec5","_dec6","classNames","and","data","amazon_topic_list_top_src_code","amazon_topic_list_top_ad_width_code","amazon_topic_list_top_ad_height_code","amazon_mobile_topic_list_top_src_code","amazon_mobile_topic_list_top_ad_width_code","amazon_mobile_topic_list_top_ad_height_code","amazon_topic_above_post_stream_src_code","amazon_topic_above_post_stream_ad_width_code","amazon_topic_above_post_stream_ad_height_code","amazon_mobile_topic_above_post_stream_src_code","amazon_mobile_topic_above_post_stream_ad_width_code","amazon_mobile_topic_above_post_stream_ad_height_code","amazon_topic_above_suggested_src_code","amazon_topic_above_suggested_ad_width_code","amazon_topic_above_suggested_ad_height_code","amazon_mobile_topic_above_suggested_src_code","amazon_mobile_topic_above_suggested_ad_width_code","amazon_mobile_topic_above_suggested_ad_height_code","amazon_post_bottom_src_code","amazon_post_bottom_ad_width_code","amazon_post_bottom_ad_height_code","amazon_mobile_post_bottom_src_code","amazon_mobile_post_bottom_ad_width_code","amazon_mobile_post_bottom_ad_height_code","adWrapperStyle","w","h","htmlSafe","adWrapperStyleMobile","adTitleStyleMobile","userInput","userInputMobile","showAmazonAds","show_amazon_ads","amazon_nth_post_code","serve_id","carbonads_serve_id","carbonads_placement","url","serveId","showCarbonAds","show_carbon_ads","_dec7","_dec8","renderCounts","DESKTOP_SETTINGS","code","sizes","MOBILE_SETTINGS","classNameBindings","loadedGoogletag","publisher_id","ad_width","ad_height","adRequested","size","startsWith","substring","trim","isNaN","parseAdWidth","parseAdHeight","adsense_publisher_code","adsenseSrc","document","location","protocol","loadAdsense","isDestroyed","isDestroying","adsbygoogle","ex","console","error","isResponsive","adWidth","isFluid","classForSlot","autoAdFormat","adInsStyle","showAdsenseAds","show_adsense_ads","adsense_nth_post_code","_dec9","_dec10","nextSlotNum","splitHeightInt","valueParse","final","keyParse","word","targeting_keys","targeting_values","defineSlot","isMobile","width","height","categoryTarget","dfp_publisher_id","ad","dfp_publisher_id_mobile","googletag","key_array","value_array","adSlot","i","setTargeting","custom_targeting","addService","pubads","on","lastAdRefresh","sizeObj","getWidthAndHeight","globalId","mobileId","slotNum","adUnitClass","showDfpAds","show_dfp_ads","dfp_nth_post_code","shouldRefreshAd","Date","updated","slot","categorySlug","cmd","refresh","_initGoogleDFP","dfpSrc","log","enableSingleRequest","disableInitialLoad","setForceSafeFrame","enableServices","loadGoogle","display","willRender","arguments","cleanup","destroySlots","adIndex","topic_list_top","topic_above_post_stream","topic_above_suggested","post_bottom","topic_list_between","attributeBindings","adHtml","colspanAttribute","showAfterTopicListItem","chooseAdHtml","adNames","adsNamesForSlot","category_ids","html","refreshAd","Math","floor","random","_templateOnly","_adSlot","shouldRender","args","component","index","every","currentIndexPosition","_pluginApi","_site","_renderGlimmer","initialize","container","registerWidgetShim","withPluginApi","api","decorateWidget","helper","attach","widget","model","messageBus","lookup","channel","subscribe","houseAdsSettings","currentProp"],"sources":["discourse/plugins/discourse-adplugin/discourse/components/ad-component.js","discourse/plugins/discourse-adplugin/discourse/components/ad-slot.js","discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad.js","discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.js","discourse/plugins/discourse-adplugin/discourse/components/carbonads-ad.js","discourse/plugins/discourse-adplugin/discourse/components/google-adsense.js","discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.js","discourse/plugins/discourse-adplugin/discourse/components/house-ad.js","discourse/plugins/discourse-adplugin/discourse/components/post-bottom-ad.js","discourse/plugins/discourse-adplugin/discourse/connectors/after-topic-list-item/discourse-adplugin.js","discourse/plugins/discourse-adplugin/discourse/helpers/slot-position.js","discourse/plugins/discourse-adplugin/discourse/initializers/initialize-ad-plugin.js","discourse/plugins/discourse-adplugin/discourse/templates/connectors/after-topic-list-item/discourse-adplugin.js","discourse/plugins/discourse-adplugin/discourse/templates/connectors/discovery-list-container-top/discourse-adplugin.js","discourse/plugins/discourse-adplugin/discourse/templates/connectors/topic-above-post-stream/discourse-adplugin.js","discourse/plugins/discourse-adplugin/discourse/templates/connectors/topic-above-suggested/discourse-adplugin.js"],"sourcesContent":["define(\"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", [\"exports\", \"@ember/component\", \"@ember/object/computed\", \"@ember/service\", \"discourse-common/utils/decorators\", \"discourse/plugins/discourse-adplugin/discourse/helpers/slot-position\"], function (_exports, _component, _computed, _service, _decorators, _slotPosition) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _dec2, _dec3, _obj;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  var _default = _exports.default = _component.default.extend((_dec = (0, _decorators.default)(\"router.currentRoute.attributes.__type\", \"router.currentRoute.attributes.id\"), _dec2 = (0, _decorators.default)(\"router.currentRoute.parent.attributes.archetype\"), _dec3 = (0, _decorators.default)(\"currentCategoryId\", \"topicTagsDisableAds\", \"topicListTag\", \"isPersonalMessage\", \"isRestrictedCategory\"), (_obj = {\n    router: (0, _service.inject)(),\n    currentCategoryId: (0, _computed.or)(\"router.currentRoute.attributes.category.id\", \"router.currentRoute.parent.attributes.category_id\"),\n    currentCategorySlug: (0, _computed.or)(\"router.currentRoute.attributes.category.slug\", \"router.currentRoute.parent.attributes.category.slug\"),\n    // Server needs to compute this in case hidden tags are being used.\n    topicTagsDisableAds: (0, _computed.alias)(\"router.currentRoute.parent.attributes.tags_disable_ads\"),\n    isRestrictedCategory: (0, _computed.or)(\"router.currentRoute.attributes.category.read_restricted\", \"router.currentRoute.parent.attributes.category.read_restricted\"),\n    topicListTag(type, tag) {\n      if (type === \"tag\" && tag) {\n        return tag;\n      }\n    },\n    isPersonalMessage(topicType) {\n      return topicType === \"private_message\";\n    },\n    showToGroups() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_to_groups;\n    },\n    showOnCurrentPage(categoryId, topicTagsDisableAds, topicListTag, isPersonalMessage, isRestrictedCategory) {\n      return !topicTagsDisableAds && (!categoryId || !this.siteSettings.no_ads_for_categories || !this.siteSettings.no_ads_for_categories.split(\"|\").includes(categoryId.toString())) && (!topicListTag || !this.siteSettings.no_ads_for_tags || !this.siteSettings.no_ads_for_tags.split(\"|\").includes(topicListTag)) && (!isPersonalMessage || !this.siteSettings.no_ads_for_personal_messages) && (!isRestrictedCategory || !this.siteSettings.no_ads_for_restricted_categories);\n    },\n    isNthPost(n) {\n      return (0, _slotPosition.isNthPost)(n, this.get(\"postNumber\"));\n    },\n    isNthTopicListItem(n) {\n      return (0, _slotPosition.isNthTopicListItem)(n, this.get(\"indexNumber\"));\n    }\n  }, (_applyDecoratedDescriptor(_obj, \"topicListTag\", [_dec], Object.getOwnPropertyDescriptor(_obj, \"topicListTag\"), _obj), _applyDecoratedDescriptor(_obj, \"isPersonalMessage\", [_dec2], Object.getOwnPropertyDescriptor(_obj, \"isPersonalMessage\"), _obj), _applyDecoratedDescriptor(_obj, \"showToGroups\", [_decorators.default], Object.getOwnPropertyDescriptor(_obj, \"showToGroups\"), _obj), _applyDecoratedDescriptor(_obj, \"showOnCurrentPage\", [_dec3], Object.getOwnPropertyDescriptor(_obj, \"showOnCurrentPage\"), _obj)), _obj)));\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/ad-slot\", [\"exports\", \"@ember/component\", \"@ember/object\", \"@ember/service\", \"@ember/utils\", \"discourse-common/utils/decorators\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"discourse/plugins/discourse-adplugin/discourse/helpers/slot-position\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _component, _object, _service, _utils, _decorators, _adComponent, _slotPosition, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  _exports.slotContenders = slotContenders;\n  var _dec, _dec2, _obj;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#each adComponents as |adComponent|}}\n    {{! Trick to force full destroy/re-render of component when route changes }}\n    {{#each (array this.router.currentRoute)}}\n      {{component\n        adComponent\n        placement=placement\n        category=category\n        postNumber=postNumber\n        indexNumber=indexNumber\n        tagName=childTagName\n      }}\n    {{/each}}\n  {{/each}}\n  */\n  {\n    \"id\": \"huhN6Lo/\",\n    \"block\": \"[[[42,[28,[37,1],[[28,[37,1],[[30,0,[\\\"adComponents\\\"]]],null]],null],null,[[[42,[28,[37,1],[[28,[37,1],[[28,[37,2],[[30,0,[\\\"router\\\",\\\"currentRoute\\\"]]],null]],null]],null],null,[[[1,\\\"    \\\"],[46,[30,1],null,[[\\\"placement\\\",\\\"category\\\",\\\"postNumber\\\",\\\"indexNumber\\\",\\\"tagName\\\"],[[30,0,[\\\"placement\\\"]],[30,0,[\\\"category\\\"]],[30,0,[\\\"postNumber\\\"]],[30,0,[\\\"indexNumber\\\"]],[30,0,[\\\"childTagName\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null]],[1]],null],[1,[28,[32,0],[\\\"[[\\\\\\\"The `adComponents` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/ad-slot.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adComponents}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `placement` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/ad-slot.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.placement}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `category` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/ad-slot.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.category}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `postNumber` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/ad-slot.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.postNumber}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `indexNumber` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/ad-slot.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.indexNumber}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `childTagName` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/ad-slot.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.childTagName}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[\\\"adComponent\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"array\\\",\\\"component\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/components/ad-slot.hbs\",\n    \"scope\": () => [_deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n  const adConfig = _object.default.create({\n    \"google-adsense\": {\n      settingPrefix: \"adsense\",\n      // settings follow naming convention\n      enabledSetting: \"adsense_publisher_code\",\n      nthPost: \"adsense_nth_post_code\"\n    },\n    \"google-dfp-ad\": {\n      settingPrefix: \"dfp\",\n      // settings follow naming convention\n      enabledSetting: \"dfp_publisher_id\",\n      nthPost: \"dfp_nth_post_code\"\n    },\n    \"amazon-product-links\": {\n      settingPrefix: \"amazon\",\n      enabledSetting: false,\n      nthPost: \"amazon_nth_post_code\",\n      desktop: {\n        \"topic-list-top\": \"amazon_topic_list_top_src_code\",\n        \"post-bottom\": \"amazon_post_bottom_src_code\",\n        \"topic-above-post-stream\": \"amazon_topic_above_post_stream_src_code\",\n        \"topic-above-suggested\": \"amazon_topic_above_suggested_src_code\"\n      },\n      mobile: {\n        \"topic-list-top\": \"amazon_mobile_topic_list_top_src_code\",\n        \"post-bottom\": \"amazon_mobile_post_bottom_src_code\",\n        \"topic-above-post-stream\": \"amazon_mobile_topic_above_post_stream_src_code\",\n        \"topic-above-suggested\": \"amazon_mobile_topic_above_suggested_src_code\"\n      }\n    },\n    \"carbonads-ad\": {\n      settingPrefix: \"carbonads\",\n      enabledSetting: \"carbonads_serve_id\",\n      desktop: {\n        \"topic-list-top\": \"carbonads_topic_list_top_enabled\",\n        \"post-bottom\": false,\n        \"topic-above-post-stream\": \"carbonads_above_post_stream_enabled\",\n        \"topic-above-suggested\": false\n      }\n    },\n    \"adbutler-ad\": {\n      settingPrefix: \"adbutler\",\n      enabledSetting: \"adbutler_publisher_id\",\n      desktop: {\n        \"topic-list-top\": \"adbutler_topic_list_top_zone_id\",\n        \"post-bottom\": \"adbutler_post_bottom_zone_id\",\n        \"topic-above-post-stream\": \"adbutler_topic_above_post_stream_zone_id\",\n        \"topic-above-suggested\": \"adbutler_topic_above_suggested_zone_id\"\n      },\n      mobile: {\n        \"topic-list-top\": \"adbutler_mobile_topic_list_top_zone_id\",\n        \"post-bottom\": \"adbutler_mobile_post_bottom_zone_id\",\n        \"topic-above-post-stream\": \"adbutler_mobile_topic_above_post_stream_zone_id\",\n        \"topic-above-suggested\": \"adbutler_mobile_topic_above_suggested_zone_id\"\n      }\n    }\n  });\n  const displayCounts = {\n    houseAds: 0,\n    allAds: 0\n  };\n  function _isNetworkAvailable(siteSettings, enabledNetworkSettingName) {\n    // False means there's no setting to enable or disable this ad network.\n    // Assume it's always enabled.\n    if (enabledNetworkSettingName === false) {\n      return true;\n    } else {\n      return enabledNetworkSettingName && !(0, _utils.isBlank)(siteSettings[enabledNetworkSettingName]);\n    }\n  }\n  function _shouldPlaceAdInSlot(siteSettings, currentPostNumber, positionToPlace) {\n    return !currentPostNumber || !positionToPlace || (0, _slotPosition.isNthPost)(parseInt(siteSettings[positionToPlace], 10), currentPostNumber);\n  }\n  function slotContenders(site, siteSettings, placement, indexNumber, postNumber) {\n    let types = [];\n    const houseAds = site.get(\"house_creatives\"),\n      placeUnderscored = placement.replace(/-/g, \"_\");\n    if (houseAds && houseAds.settings) {\n      const adsForSlot = houseAds.settings[placeUnderscored];\n      const adAvailable = Object.keys(houseAds.creatives).length > 0 && !(0, _utils.isBlank)(adsForSlot);\n\n      // postNumber and indexNumber are both null for topic-list-top, topic-above-post-stream,\n      // and topic-above-suggested placements. Assume we want to place an ad outside the topic list.\n      const notPlacingBetweenTopics = !postNumber && !indexNumber;\n      const canBePlacedInBetweenTopics = placeUnderscored === \"topic_list_between\" && (0, _slotPosition.isNthTopicListItem)(parseInt(houseAds.settings.after_nth_topic, 10), indexNumber);\n      if (adAvailable && (notPlacingBetweenTopics || canBePlacedInBetweenTopics || (0, _slotPosition.isNthPost)(parseInt(houseAds.settings.after_nth_post, 10), postNumber))) {\n        types.push(\"house-ad\");\n      }\n    }\n    Object.keys(adConfig).forEach(adNetwork => {\n      const config = adConfig[adNetwork];\n      let settingNames = null,\n        name;\n      if (_isNetworkAvailable(siteSettings, config.enabledSetting) && _shouldPlaceAdInSlot(siteSettings, postNumber, config.nthPost)) {\n        if (site.mobileView) {\n          settingNames = config.mobile || config.desktop;\n        } else {\n          settingNames = config.desktop;\n        }\n        if (settingNames) {\n          name = settingNames[placement];\n        }\n        if (name === undefined) {\n          // follows naming convention: prefix_(mobile_)_{placement}_code\n          name = `${config.settingPrefix}_${site.mobileView ? \"mobile_\" : \"\"}${placeUnderscored}_code`;\n        }\n        if (name !== false && siteSettings[name] !== false && !(0, _utils.isBlank)(siteSettings[name])) {\n          types.push(adNetwork);\n        }\n      }\n    });\n    return types;\n  }\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, _adComponent.default.extend((_dec = (0, _decorators.default)(\"placement\", \"postNumber\", \"indexNumber\"), _dec2 = (0, _decorators.default)(\"placement\", \"availableAdTypes\", \"router.currentRoute\"), (_obj = {\n    router: (0, _service.inject)(),\n    tagName: \"\",\n    availableAdTypes(placement, postNumber, indexNumber) {\n      return slotContenders(this.site, this.siteSettings, placement, indexNumber, postNumber);\n    },\n    adComponents(placement, availableAdTypes) {\n      if (!availableAdTypes.includes(\"house-ad\") || availableAdTypes.length === 1) {\n        // Current behaviour is to allow multiple ads from different networks\n        // to show in the same place. We could change this to choose one somehow.\n        return availableAdTypes;\n      }\n      const houseAds = this.site.get(\"house_creatives\");\n      let houseAdsSkipped = false;\n      if (houseAds.settings.house_ads_frequency === 100) {\n        // house always wins\n        return [\"house-ad\"];\n      } else if (houseAds.settings.house_ads_frequency > 0) {\n        // show house ads the given percent of the time\n        if (displayCounts.allAds === 0 || 100 * displayCounts.houseAds / displayCounts.allAds < houseAds.settings.house_ads_frequency) {\n          displayCounts.houseAds += 1;\n          displayCounts.allAds += 1;\n          return [\"house-ad\"];\n        } else {\n          houseAdsSkipped = true;\n        }\n      }\n      const networkNames = availableAdTypes.filter(x => x !== \"house-ad\");\n      if (houseAdsSkipped) {\n        displayCounts.allAds += networkNames.length;\n      }\n      return networkNames;\n    }\n  }, (_applyDecoratedDescriptor(_obj, \"availableAdTypes\", [_dec], Object.getOwnPropertyDescriptor(_obj, \"availableAdTypes\"), _obj), _applyDecoratedDescriptor(_obj, \"adComponents\", [_dec2], Object.getOwnPropertyDescriptor(_obj, \"adComponents\"), _obj)), _obj))));\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad\", [\"exports\", \"@ember/component\", \"@ember/runloop\", \"rsvp\", \"discourse/lib/load-script\", \"discourse-common/config/environment\", \"discourse-common/utils/decorators\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"ember-this-fallback/this-fallback-helper\", \"ember-this-fallback/try-lookup-helper\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _component, _runloop, _rsvp, _loadScript, _environment, _decorators, _adComponent, _thisFallbackHelper, _tryLookupHelper, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _dec2, _obj;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if showAd}}\n    <div id={{divId}} class={{className}}></div>\n  {{/if}}\n  */\n  {\n    \"id\": \"Iu0U8n25\",\n    \"block\": \"[[[41,[30,0,[\\\"showAd\\\"]],[[[1,\\\"  \\\"],[44,[[28,[37,2],null,[[\\\"divId\\\",\\\"className\\\"],[[28,[32,0],[\\\"divId\\\"],null],[28,[32,0],[\\\"className\\\"],null]]]]],[[[10,0],[15,1,[52,[30,1,[\\\"divId\\\"]],[28,[30,1,[\\\"divId\\\"]],null,null],[28,[32,1],[[30,0],\\\"divId\\\",\\\"[\\\\\\\"The `divId` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.divId}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[15,0,[52,[30,1,[\\\"className\\\"]],[28,[30,1,[\\\"className\\\"]],null,null],[28,[32,1],[[30,0],\\\"className\\\",\\\"[\\\\\\\"The `className` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.className}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[12],[13]],[1]]],[1,\\\"\\\\n\\\"]],[]],null],[1,[28,[32,2],[\\\"[[\\\\\\\"The `showAd` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.showAd}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[\\\"maybeHelpers\\\"],false,[\\\"if\\\",\\\"let\\\",\\\"hash\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad.hbs\",\n    \"scope\": () => [_tryLookupHelper.default, _thisFallbackHelper.default, _deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n  let _loaded = false,\n    _promise = null,\n    _c = 0;\n  function loadAdbutler(adserverHostname) {\n    if (_loaded) {\n      return _rsvp.default.resolve();\n    }\n    if (_promise) {\n      return _promise;\n    }\n    _promise = (0, _loadScript.default)(\"https://\" + adserverHostname + \"/app.js\", {\n      scriptTag: true\n    }).then(function () {\n      _loaded = true;\n    });\n    return _promise;\n  }\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, _adComponent.default.extend((_dec = (0, _decorators.default)(\"publisherId\", \"showAdbutlerAds\", \"showToGroups\", \"showAfterPost\", \"showOnCurrentPage\"), _dec2 = (0, _decorators.default)(\"postNumber\"), (_obj = {\n    divs: null,\n    publisherId: null,\n    init() {\n      let dimensions = [728, 90];\n      let configKey = \"adbutler_\";\n      let className = \"adbutler-\";\n      let dimClassName = \"adbutler-ad\";\n      this.set(\"divs\", []);\n      if (this.site.mobileView) {\n        dimensions = [320, 50];\n        configKey += \"mobile_\";\n        className += \"mobile-\";\n        dimClassName = \"adbutler-mobile-ad\";\n      }\n      configKey += this.get(\"placement\").replace(/-/g, \"_\") + \"_zone_id\";\n      this.set(\"configKey\", configKey);\n      className += this.get(\"placement\");\n      this.set(\"className\", className + \" \" + dimClassName);\n      let zoneId = this.siteSettings[configKey];\n      this.set(\"zoneId\", zoneId);\n      let divId = \"placement-\" + zoneId + \"-\" + _c;\n      this.set(\"divId\", divId);\n      let publisherId = this.siteSettings.adbutler_publisher_id;\n      this.set(\"publisherId\", publisherId);\n      _c++;\n      this.divs.push({\n        divId,\n        publisherId,\n        zoneId,\n        dimensions\n      });\n      this._super();\n    },\n    _triggerAds() {\n      if ((0, _environment.isTesting)()) {\n        return; // Don't load external JS during tests\n      }\n      const adserverHostname = this.siteSettings.adbutler_adserver_hostname;\n      loadAdbutler(adserverHostname).then(function () {\n        if (this.divs.length > 0) {\n          let abkw = window.abkw || \"\";\n          window.AdButler.ads.push({\n            handler: function (opt) {\n              window.AdButler.register(opt.place.publisherId, opt.place.zoneId, opt.place.dimensions, opt.place.divId, opt);\n            },\n            opt: {\n              place: this.divs.pop(),\n              keywords: abkw,\n              domain: adserverHostname,\n              click: \"CLICK_MACRO_PLACEHOLDER\"\n            }\n          });\n        }\n      }.bind(this));\n    },\n    didInsertElement() {\n      this._super();\n      (0, _runloop.scheduleOnce)(\"afterRender\", this, this._triggerAds);\n    },\n    showAdbutlerAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_adbutler_ads;\n    },\n    showAd(publisherId, showAdbutlerAds, showToGroups, showAfterPost, showOnCurrentPage) {\n      return publisherId && showAdbutlerAds && showToGroups && showAfterPost && showOnCurrentPage;\n    },\n    showAfterPost(postNumber) {\n      if (!postNumber) {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.siteSettings.adbutler_nth_post, 10));\n    }\n  }, (_applyDecoratedDescriptor(_obj, \"showAdbutlerAds\", [_decorators.default], Object.getOwnPropertyDescriptor(_obj, \"showAdbutlerAds\"), _obj), _applyDecoratedDescriptor(_obj, \"showAd\", [_dec], Object.getOwnPropertyDescriptor(_obj, \"showAd\"), _obj), _applyDecoratedDescriptor(_obj, \"showAfterPost\", [_dec2], Object.getOwnPropertyDescriptor(_obj, \"showAfterPost\"), _obj)), _obj))));\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links\", [\"exports\", \"@ember/component\", \"@ember/object/computed\", \"@ember/template\", \"discourse-common/utils/decorators\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"ember-this-fallback/this-fallback-helper\", \"ember-this-fallback/try-lookup-helper\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _component, _computed, _template, _decorators, _adComponent, _thisFallbackHelper, _tryLookupHelper, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _obj;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if showAd}}\n    {{#if site.mobileView}}\n      <div class=\"amazon-product-links-label\" style={{adTitleStyleMobile}}><h2\n        >{{i18n \"adplugin.advertisement_label\"}}</h2></div>\n      <iframe\n        style={{adWrapperStyleMobile}}\n        marginwidth=\"0\"\n        marginheight=\"0\"\n        scrolling=\"no\"\n        frameborder=\"0\"\n        src={{userInputMobile}}\n        title={{i18n \"adplugin.advertisement_label\"}}\n      >\n      </iframe>\n    {{else}}\n      <div class=\"amazon-product-links-label\"><h2>{{i18n\n            \"adplugin.advertisement_label\"\n          }}</h2></div>\n      <div class=\"container\" align=\"center\">\n        <iframe\n          style={{adWrapperStyle}}\n          marginwidth=\"0\"\n          marginheight=\"0\"\n          scrolling=\"no\"\n          frameborder=\"0\"\n          src={{userInput}}\n          title={{i18n \"adplugin.advertisement_label\"}}\n        >\n        </iframe>\n      </div>\n    {{/if}}\n  {{/if}}\n  */\n  {\n    \"id\": \"Ta+ntc/7\",\n    \"block\": \"[[[41,[30,0,[\\\"showAd\\\"]],[[[41,[30,0,[\\\"site\\\",\\\"mobileView\\\"]],[[[1,\\\"    \\\"],[44,[[28,[37,2],null,[[\\\"adTitleStyleMobile\\\"],[[28,[32,0],[\\\"adTitleStyleMobile\\\"],null]]]]],[[[10,0],[14,0,\\\"amazon-product-links-label\\\"],[15,5,[52,[30,1,[\\\"adTitleStyleMobile\\\"]],[28,[30,1,[\\\"adTitleStyleMobile\\\"]],null,null],[28,[32,1],[[30,0],\\\"adTitleStyleMobile\\\",\\\"[\\\\\\\"The `adTitleStyleMobile` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adTitleStyleMobile}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[12],[10,\\\"h2\\\"],[12],[1,[28,[35,3],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13]],[1]]],[1,\\\"\\\\n    \\\"],[44,[[28,[37,2],null,[[\\\"adWrapperStyleMobile\\\",\\\"userInputMobile\\\"],[[28,[32,0],[\\\"adWrapperStyleMobile\\\"],null],[28,[32,0],[\\\"userInputMobile\\\"],null]]]]],[[[10,\\\"iframe\\\"],[15,5,[52,[30,2,[\\\"adWrapperStyleMobile\\\"]],[28,[30,2,[\\\"adWrapperStyleMobile\\\"]],null,null],[28,[32,1],[[30,0],\\\"adWrapperStyleMobile\\\",\\\"[\\\\\\\"The `adWrapperStyleMobile` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adWrapperStyleMobile}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[14,\\\"marginwidth\\\",\\\"0\\\"],[14,\\\"marginheight\\\",\\\"0\\\"],[14,\\\"scrolling\\\",\\\"no\\\"],[14,\\\"frameborder\\\",\\\"0\\\"],[15,\\\"src\\\",[52,[30,2,[\\\"userInputMobile\\\"]],[28,[30,2,[\\\"userInputMobile\\\"]],null,null],[28,[32,1],[[30,0],\\\"userInputMobile\\\",\\\"[\\\\\\\"The `userInputMobile` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.userInputMobile}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[15,\\\"title\\\",[28,[37,3],[\\\"adplugin.advertisement_label\\\"],null]],[12],[1,\\\"\\\\n    \\\"],[13]],[2]]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"amazon-product-links-label\\\"],[12],[10,\\\"h2\\\"],[12],[1,[28,[35,3],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"container\\\"],[14,\\\"align\\\",\\\"center\\\"],[12],[1,\\\"\\\\n      \\\"],[44,[[28,[37,2],null,[[\\\"adWrapperStyle\\\",\\\"userInput\\\"],[[28,[32,0],[\\\"adWrapperStyle\\\"],null],[28,[32,0],[\\\"userInput\\\"],null]]]]],[[[10,\\\"iframe\\\"],[15,5,[52,[30,3,[\\\"adWrapperStyle\\\"]],[28,[30,3,[\\\"adWrapperStyle\\\"]],null,null],[28,[32,1],[[30,0],\\\"adWrapperStyle\\\",\\\"[\\\\\\\"The `adWrapperStyle` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adWrapperStyle}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[14,\\\"marginwidth\\\",\\\"0\\\"],[14,\\\"marginheight\\\",\\\"0\\\"],[14,\\\"scrolling\\\",\\\"no\\\"],[14,\\\"frameborder\\\",\\\"0\\\"],[15,\\\"src\\\",[52,[30,3,[\\\"userInput\\\"]],[28,[30,3,[\\\"userInput\\\"]],null,null],[28,[32,1],[[30,0],\\\"userInput\\\",\\\"[\\\\\\\"The `userInput` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.userInput}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[15,\\\"title\\\",[28,[37,3],[\\\"adplugin.advertisement_label\\\"],null]],[12],[1,\\\"\\\\n      \\\"],[13]],[3]]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\"]],[]]]],[]],null],[1,[28,[32,2],[\\\"[[\\\\\\\"The `showAd` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.showAd}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `site` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.site}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[\\\"maybeHelpers\\\",\\\"maybeHelpers\\\",\\\"maybeHelpers\\\"],false,[\\\"if\\\",\\\"let\\\",\\\"hash\\\",\\\"i18n\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.hbs\",\n    \"scope\": () => [_tryLookupHelper.default, _thisFallbackHelper.default, _deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, _adComponent.default.extend((_dec = (0, _decorators.default)(\"amazon_width\", \"amazon_height\"), _dec2 = (0, _decorators.default)(\"mobile_amazon_width\", \"mobile_amazon_height\"), _dec3 = (0, _decorators.default)(\"mobile_amazon_width\"), _dec4 = (0, _decorators.default)(\"user_input\"), _dec5 = (0, _decorators.default)(\"user_input_mobile\"), _dec6 = (0, _decorators.default)(\"postNumber\"), (_obj = {\n    classNames: [\"amazon-product-links\"],\n    showAd: (0, _computed.and)(\"showAmazonAds\", \"showToGroups\", \"showAfterPost\", \"showOnCurrentPage\"),\n    init() {\n      const data = {\n        \"topic-list-top\": {},\n        \"topic-above-post-stream\": {},\n        \"topic-above-suggested\": {},\n        \"post-bottom\": {}\n      };\n      const mobileView = this.site.get(\"mobileView\");\n      const placement = this.get(\"placement\");\n      if (!mobileView && this.siteSettings.amazon_topic_list_top_src_code) {\n        data[\"topic-list-top\"][\"user_input\"] = this.siteSettings.amazon_topic_list_top_src_code;\n        data[\"topic-list-top\"][\"amazon_width\"] = parseInt(this.siteSettings.amazon_topic_list_top_ad_width_code, 10);\n        data[\"topic-list-top\"][\"amazon_height\"] = parseInt(this.siteSettings.amazon_topic_list_top_ad_height_code, 10);\n      }\n      if (mobileView && this.siteSettings.amazon_mobile_topic_list_top_src_code) {\n        data[\"topic-list-top\"][\"user_input_mobile\"] = this.siteSettings.amazon_mobile_topic_list_top_src_code;\n        data[\"topic-list-top\"][\"mobile_amazon_width\"] = parseInt(this.siteSettings.amazon_mobile_topic_list_top_ad_width_code, 10);\n        data[\"topic-list-top\"][\"mobile_amazon_height\"] = parseInt(this.siteSettings.amazon_mobile_topic_list_top_ad_height_code, 10);\n      }\n      if (!mobileView && this.siteSettings.amazon_topic_above_post_stream_src_code) {\n        data[\"topic-above-post-stream\"][\"user_input\"] = this.siteSettings.amazon_topic_above_post_stream_src_code;\n        data[\"topic-above-post-stream\"][\"amazon_width\"] = parseInt(this.siteSettings.amazon_topic_above_post_stream_ad_width_code, 10);\n        data[\"topic-above-post-stream\"][\"amazon_height\"] = parseInt(this.siteSettings.amazon_topic_above_post_stream_ad_height_code, 10);\n      }\n      if (mobileView && this.siteSettings.amazon_mobile_topic_above_post_stream_src_code) {\n        data[\"topic-above-post-stream\"][\"user_input_mobile\"] = this.siteSettings.amazon_mobile_topic_above_post_stream_src_code;\n        data[\"topic-above-post-stream\"][\"mobile_amazon_width\"] = parseInt(this.siteSettings.amazon_mobile_topic_above_post_stream_ad_width_code, 10);\n        data[\"topic-above-post-stream\"][\"mobile_amazon_height\"] = parseInt(this.siteSettings.amazon_mobile_topic_above_post_stream_ad_height_code, 10);\n      }\n      if (!mobileView && this.siteSettings.amazon_topic_above_suggested_src_code) {\n        data[\"topic-above-suggested\"][\"user_input\"] = this.siteSettings.amazon_topic_above_suggested_src_code;\n        data[\"topic-above-suggested\"][\"amazon_width\"] = parseInt(this.siteSettings.amazon_topic_above_suggested_ad_width_code, 10);\n        data[\"topic-above-suggested\"][\"amazon_height\"] = parseInt(this.siteSettings.amazon_topic_above_suggested_ad_height_code, 10);\n      }\n      if (mobileView && this.siteSettings.amazon_mobile_topic_above_suggested_src_code) {\n        data[\"topic-above-suggested\"][\"user_input_mobile\"] = this.siteSettings.amazon_mobile_topic_above_suggested_src_code;\n        data[\"topic-above-suggested\"][\"mobile_amazon_width\"] = parseInt(this.siteSettings.amazon_mobile_topic_above_suggested_ad_width_code, 10);\n        data[\"topic-above-suggested\"][\"mobile_amazon_height\"] = parseInt(this.siteSettings.amazon_mobile_topic_above_suggested_ad_height_code, 10);\n      }\n      if (!mobileView && this.siteSettings.amazon_post_bottom_src_code) {\n        data[\"post-bottom\"][\"user_input\"] = this.siteSettings.amazon_post_bottom_src_code;\n        data[\"post-bottom\"][\"amazon_width\"] = parseInt(this.siteSettings.amazon_post_bottom_ad_width_code, 10);\n        data[\"post-bottom\"][\"amazon_height\"] = parseInt(this.siteSettings.amazon_post_bottom_ad_height_code, 10);\n      }\n      if (mobileView && this.siteSettings.amazon_mobile_post_bottom_src_code) {\n        data[\"post-bottom\"][\"user_input_mobile\"] = this.siteSettings.amazon_mobile_post_bottom_src_code;\n        data[\"post-bottom\"][\"mobile_amazon_width\"] = parseInt(this.siteSettings.amazon_mobile_post_bottom_ad_width_code, 10);\n        data[\"post-bottom\"][\"mobile_amazon_height\"] = parseInt(this.siteSettings.amazon_mobile_post_bottom_ad_height_code, 10);\n      }\n      this.set(\"user_input\", data[placement][\"user_input\"]);\n      this.set(\"amazon_width\", data[placement][\"amazon_width\"]);\n      this.set(\"amazon_height\", data[placement][\"amazon_height\"]);\n      this.set(\"user_input_mobile\", data[placement][\"user_input_mobile\"]);\n      this.set(\"mobile_amazon_height\", data[placement][\"mobile_amazon_height\"]);\n      this.set(\"mobile_amazon_width\", data[placement][\"mobile_amazon_width\"]);\n      this._super();\n    },\n    adWrapperStyle(w, h) {\n      return (0, _template.htmlSafe)(`width: ${w}px; height: ${h}px;`);\n    },\n    adWrapperStyleMobile(w, h) {\n      return (0, _template.htmlSafe)(`width: ${w}px; height: ${h}px;`);\n    },\n    adTitleStyleMobile(w) {\n      return (0, _template.htmlSafe)(`width: ${w}px;`);\n    },\n    userInput(userInput) {\n      return (0, _template.htmlSafe)(`${userInput}`);\n    },\n    userInputMobile(userInput) {\n      return (0, _template.htmlSafe)(`${userInput}`);\n    },\n    showAmazonAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_amazon_ads;\n    },\n    showAfterPost(postNumber) {\n      if (!postNumber) {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.siteSettings.amazon_nth_post_code, 10));\n    }\n  }, (_applyDecoratedDescriptor(_obj, \"adWrapperStyle\", [_dec], Object.getOwnPropertyDescriptor(_obj, \"adWrapperStyle\"), _obj), _applyDecoratedDescriptor(_obj, \"adWrapperStyleMobile\", [_dec2], Object.getOwnPropertyDescriptor(_obj, \"adWrapperStyleMobile\"), _obj), _applyDecoratedDescriptor(_obj, \"adTitleStyleMobile\", [_dec3], Object.getOwnPropertyDescriptor(_obj, \"adTitleStyleMobile\"), _obj), _applyDecoratedDescriptor(_obj, \"userInput\", [_dec4], Object.getOwnPropertyDescriptor(_obj, \"userInput\"), _obj), _applyDecoratedDescriptor(_obj, \"userInputMobile\", [_dec5], Object.getOwnPropertyDescriptor(_obj, \"userInputMobile\"), _obj), _applyDecoratedDescriptor(_obj, \"showAmazonAds\", [_decorators.default], Object.getOwnPropertyDescriptor(_obj, \"showAmazonAds\"), _obj), _applyDecoratedDescriptor(_obj, \"showAfterPost\", [_dec6], Object.getOwnPropertyDescriptor(_obj, \"showAfterPost\"), _obj)), _obj))));\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/carbonads-ad\", [\"exports\", \"@ember/component\", \"@ember/template\", \"discourse-common/utils/decorators\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"ember-this-fallback/this-fallback-helper\", \"ember-this-fallback/try-lookup-helper\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _component, _template, _decorators, _adComponent, _thisFallbackHelper, _tryLookupHelper, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _dec2, _obj;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if showAd}}\n    {{! template-lint-disable no-forbidden-elements }}\n    <script src={{url}} id=\"_carbonads_js\" async type=\"text/javascript\">\n    </script>\n  {{/if}}\n  */\n  {\n    \"id\": \"+Uo79OGY\",\n    \"block\": \"[[[41,[30,0,[\\\"showAd\\\"]],[[[1,\\\"  \\\"],[44,[[28,[37,2],null,[[\\\"url\\\"],[[28,[32,0],[\\\"url\\\"],null]]]]],[[[10,\\\"script\\\"],[15,\\\"src\\\",[52,[30,1,[\\\"url\\\"]],[28,[30,1,[\\\"url\\\"]],null,null],[28,[32,1],[[30,0],\\\"url\\\",\\\"[\\\\\\\"The `url` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/carbonads-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.url}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[14,1,\\\"_carbonads_js\\\"],[14,\\\"async\\\",\\\"\\\"],[14,4,\\\"text/javascript\\\"],[12],[1,\\\"\\\\n  \\\"],[13]],[1]]],[1,\\\"\\\\n\\\"]],[]],null],[1,[28,[32,2],[\\\"[[\\\\\\\"The `showAd` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/carbonads-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.showAd}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[\\\"maybeHelpers\\\"],false,[\\\"if\\\",\\\"let\\\",\\\"hash\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/components/carbonads-ad.hbs\",\n    \"scope\": () => [_tryLookupHelper.default, _thisFallbackHelper.default, _deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, _adComponent.default.extend((_dec = (0, _decorators.default)(\"serve_id\", \"placement\"), _dec2 = (0, _decorators.default)(\"placement\", \"serve_id\", \"showCarbonAds\", \"showToGroups\", \"showOnCurrentPage\"), (_obj = {\n    serve_id: null,\n    placement: null,\n    init() {\n      this.set(\"serve_id\", this.siteSettings.carbonads_serve_id);\n      this.set(\"placement\", this.siteSettings.carbonads_placement);\n      this._super();\n    },\n    url(serveId, placement) {\n      return (0, _template.htmlSafe)(`//cdn.carbonads.com/carbon.js?serve=${serveId}&placement=${placement}`);\n    },\n    showCarbonAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_carbon_ads;\n    },\n    showAd(placement, serveId, showCarbonAds, showToGroups, showOnCurrentPage) {\n      return placement && serveId && showCarbonAds && showToGroups && showOnCurrentPage;\n    }\n  }, (_applyDecoratedDescriptor(_obj, \"url\", [_dec], Object.getOwnPropertyDescriptor(_obj, \"url\"), _obj), _applyDecoratedDescriptor(_obj, \"showCarbonAds\", [_decorators.default], Object.getOwnPropertyDescriptor(_obj, \"showCarbonAds\"), _obj), _applyDecoratedDescriptor(_obj, \"showAd\", [_dec2], Object.getOwnPropertyDescriptor(_obj, \"showAd\"), _obj)), _obj))));\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/google-adsense\", [\"exports\", \"@ember/component\", \"@ember/runloop\", \"@ember/template\", \"rsvp\", \"discourse/lib/load-script\", \"discourse-common/config/environment\", \"discourse-common/utils/decorators\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"ember-this-fallback/this-fallback-helper\", \"ember-this-fallback/try-lookup-helper\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _component, _runloop, _template, _rsvp, _loadScript, _environment, _decorators, _adComponent, _thisFallbackHelper, _tryLookupHelper, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _obj;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if showAd}}\n    <div class=\"google-adsense-label\"><h2>{{i18n\n          \"adplugin.advertisement_label\"\n        }}</h2></div>\n    <div\n      class=\"google-adsense-content\"\n      id={{if isResponsive \"google-adsense__responsive\"}}\n      style={{adWrapperStyle}}\n    >\n      <ins\n        class=\"adsbygoogle\"\n        style={{adInsStyle}}\n        data-ad-client=\"ca-pub-{{publisher_id}}\"\n        data-ad-slot={{ad_code}}\n        data-ad-format={{autoAdFormat}}\n      >\n      </ins>\n    </div>\n  {{/if}}\n  */\n  {\n    \"id\": \"5dCIkGFf\",\n    \"block\": \"[[[41,[30,0,[\\\"showAd\\\"]],[[[1,\\\"  \\\"],[10,0],[14,0,\\\"google-adsense-label\\\"],[12],[10,\\\"h2\\\"],[12],[1,[28,[35,1],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13],[1,\\\"\\\\n  \\\"],[44,[[28,[37,3],null,[[\\\"adWrapperStyle\\\"],[[28,[32,0],[\\\"adWrapperStyle\\\"],null]]]]],[[[10,0],[14,0,\\\"google-adsense-content\\\"],[15,1,[52,[30,0,[\\\"isResponsive\\\"]],\\\"google-adsense__responsive\\\"]],[15,5,[52,[30,1,[\\\"adWrapperStyle\\\"]],[28,[30,1,[\\\"adWrapperStyle\\\"]],null,null],[28,[32,1],[[30,0],\\\"adWrapperStyle\\\",\\\"[\\\\\\\"The `adWrapperStyle` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-adsense.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adWrapperStyle}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[12],[1,\\\"\\\\n    \\\"],[44,[[28,[37,3],null,[[\\\"adInsStyle\\\",\\\"publisher_id\\\",\\\"ad_code\\\",\\\"autoAdFormat\\\"],[[28,[32,0],[\\\"adInsStyle\\\"],null],[28,[32,0],[\\\"publisher_id\\\"],null],[28,[32,0],[\\\"ad_code\\\"],null],[28,[32,0],[\\\"autoAdFormat\\\"],null]]]]],[[[10,\\\"ins\\\"],[14,0,\\\"adsbygoogle\\\"],[15,5,[52,[30,2,[\\\"adInsStyle\\\"]],[28,[30,2,[\\\"adInsStyle\\\"]],null,null],[28,[32,1],[[30,0],\\\"adInsStyle\\\",\\\"[\\\\\\\"The `adInsStyle` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-adsense.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adInsStyle}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[15,\\\"data-ad-client\\\",[29,[\\\"ca-pub-\\\",[52,[30,2,[\\\"publisher_id\\\"]],[28,[30,2,[\\\"publisher_id\\\"]],null,null],[28,[32,1],[[30,0],\\\"publisher_id\\\",\\\"[\\\\\\\"The `publisher_id` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-adsense.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.publisher_id}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]]]],[15,\\\"data-ad-slot\\\",[52,[30,2,[\\\"ad_code\\\"]],[28,[30,2,[\\\"ad_code\\\"]],null,null],[28,[32,1],[[30,0],\\\"ad_code\\\",\\\"[\\\\\\\"The `ad_code` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-adsense.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.ad_code}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[15,\\\"data-ad-format\\\",[52,[30,2,[\\\"autoAdFormat\\\"]],[28,[30,2,[\\\"autoAdFormat\\\"]],null,null],[28,[32,1],[[30,0],\\\"autoAdFormat\\\",\\\"[\\\\\\\"The `autoAdFormat` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-adsense.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.autoAdFormat}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[12],[1,\\\"\\\\n    \\\"],[13]],[2]]],[1,\\\"\\\\n  \\\"],[13]],[1]]],[1,\\\"\\\\n\\\"]],[]],null],[1,[28,[32,2],[\\\"[[\\\\\\\"The `showAd` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-adsense.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.showAd}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `isResponsive` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-adsense.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.isResponsive}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[\\\"maybeHelpers\\\",\\\"maybeHelpers0\\\"],false,[\\\"if\\\",\\\"i18n\\\",\\\"let\\\",\\\"hash\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/components/google-adsense.hbs\",\n    \"scope\": () => [_tryLookupHelper.default, _thisFallbackHelper.default, _deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n  let _loaded = false,\n    _promise = null,\n    renderCounts = {};\n  function parseAdWidth(value) {\n    if (value === \"responsive\") {\n      return \"auto\";\n    }\n    if (value.startsWith(\"fluid\")) {\n      return \"fluid\";\n    }\n    const w = parseInt(value.substring(0, 3).trim(), 10);\n    if (isNaN(w)) {\n      return \"auto\";\n    } else {\n      return `${w}px`;\n    }\n  }\n  function parseAdHeight(value) {\n    if (value === \"responsive\") {\n      return \"auto\";\n    }\n    if (value.startsWith(\"fluid\")) {\n      return \"fluid\";\n    }\n    const h = parseInt(value.substring(4, 7).trim(), 10);\n    if (isNaN(h)) {\n      return \"auto\";\n    } else {\n      return `${h}px`;\n    }\n  }\n  function loadAdsense() {\n    if (_loaded) {\n      return _rsvp.default.resolve();\n    }\n    if (_promise) {\n      return _promise;\n    }\n    const adsenseSrc = (\"https:\" === document.location.protocol ? \"https:\" : \"http:\") + \"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\";\n    _promise = (0, _loadScript.default)(adsenseSrc, {\n      scriptTag: true\n    }).then(function () {\n      _loaded = true;\n    });\n    return _promise;\n  }\n  const DESKTOP_SETTINGS = {\n    \"topic-list-top\": {\n      code: \"adsense_topic_list_top_code\",\n      sizes: \"adsense_topic_list_top_ad_sizes\"\n    },\n    \"topic-above-post-stream\": {\n      code: \"adsense_topic_above_post_stream_code\",\n      sizes: \"adsense_topic_above_post_stream_ad_sizes\"\n    },\n    \"topic-above-suggested\": {\n      code: \"adsense_topic_above_suggested_code\",\n      sizes: \"adsense_topic_above_suggested_ad_sizes\"\n    },\n    \"post-bottom\": {\n      code: \"adsense_post_bottom_code\",\n      sizes: \"adsense_post_bottom_ad_sizes\"\n    }\n  };\n  const MOBILE_SETTINGS = {\n    \"topic-list-top\": {\n      code: \"adsense_mobile_topic_list_top_code\",\n      sizes: \"adsense_mobile_topic_list_top_ad_size\"\n    },\n    \"topic-above-post-stream\": {\n      code: \"adsense_mobile_topic_above_post_stream_code\",\n      sizes: \"adsense_mobile_topic_above_post_stream_ad_size\"\n    },\n    \"topic-above-suggested\": {\n      code: \"adsense_mobile_topic_above_suggested_code\",\n      sizes: \"adsense_mobile_topic_above_suggested_ad_size\"\n    },\n    \"post-bottom\": {\n      code: \"adsense_mobile_post_bottom_code\",\n      sizes: \"adsense_mobile_post_bottom_ad_size\"\n    }\n  };\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, _adComponent.default.extend((_dec = (0, _decorators.default)(\"ad_width\"), _dec2 = (0, _decorators.default)(\"ad_width\"), _dec3 = (0, _decorators.default)(\"placement\", \"showAd\"), _dec4 = (0, _decorators.default)(\"isResponsive\", \"isFluid\"), _dec5 = (0, _decorators.default)(\"ad_width\", \"ad_height\", \"isResponsive\"), _dec6 = (0, _decorators.default)(\"adWrapperStyle\", \"isResponsive\"), _dec7 = (0, _decorators.default)(\"publisher_id\", \"showAdsenseAds\", \"showToGroups\", \"showAfterPost\", \"showOnCurrentPage\"), _dec8 = (0, _decorators.default)(\"postNumber\"), (_obj = {\n    classNameBindings: [\":google-adsense\", \"classForSlot\", \"isResponsive:adsense-responsive\"],\n    loadedGoogletag: false,\n    publisher_id: null,\n    ad_width: null,\n    ad_height: null,\n    adRequested: false,\n    init() {\n      let config, size;\n      const placement = this.get(\"placement\");\n      if (this.site.mobileView) {\n        config = MOBILE_SETTINGS[placement];\n      } else {\n        config = DESKTOP_SETTINGS[placement];\n      }\n      if (!renderCounts[placement]) {\n        renderCounts[placement] = 0;\n      }\n      const sizes = (this.siteSettings[config.sizes] || \"\").split(\"|\");\n      if (sizes.length === 1) {\n        size = sizes[0];\n      } else {\n        size = sizes[renderCounts[placement] % sizes.length];\n        renderCounts[placement] += 1;\n      }\n      this.set(\"ad_width\", parseAdWidth(size));\n      this.set(\"ad_height\", parseAdHeight(size));\n      this.set(\"ad_code\", this.siteSettings[config.code]);\n      this.set(\"publisher_id\", this.siteSettings.adsense_publisher_code);\n      this._super();\n    },\n    async _triggerAds() {\n      if ((0, _environment.isTesting)()) {\n        return; // Don't load external JS during tests\n      }\n      this.set(\"adRequested\", true);\n      await loadAdsense();\n      if (this.isDestroyed || this.isDestroying) {\n        // Component removed from DOM before script loaded\n        return;\n      }\n      try {\n        const adsbygoogle = window.adsbygoogle ||= [];\n        adsbygoogle.push({}); // ask AdSense to fill one ad unit\n      } catch (ex) {\n        // eslint-disable-next-line no-console\n        console.error(\"Adsense error:\", ex);\n      }\n    },\n    didInsertElement() {\n      this._super();\n      if (!this.get(\"showAd\")) {\n        return;\n      }\n      (0, _runloop.scheduleOnce)(\"afterRender\", this, this._triggerAds);\n    },\n    isResponsive(adWidth) {\n      return [\"auto\", \"fluid\"].includes(adWidth);\n    },\n    isFluid(adWidth) {\n      return adWidth === \"fluid\";\n    },\n    classForSlot(placement, showAd) {\n      return showAd ? (0, _template.htmlSafe)(`adsense-${placement}`) : \"\";\n    },\n    autoAdFormat(isResponsive, isFluid) {\n      return isResponsive ? (0, _template.htmlSafe)(isFluid ? \"fluid\" : \"auto\") : false;\n    },\n    adWrapperStyle(w, h, isResponsive) {\n      return (0, _template.htmlSafe)(isResponsive ? \"\" : `width: ${w}; height: ${h};`);\n    },\n    adInsStyle(adWrapperStyle, isResponsive) {\n      return (0, _template.htmlSafe)(`display: ${isResponsive ? \"block\" : \"inline-block\"}; ${adWrapperStyle}`);\n    },\n    showAdsenseAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_adsense_ads;\n    },\n    showAd(publisherId, showAdsenseAds, showToGroups, showAfterPost, showOnCurrentPage) {\n      return publisherId && showAdsenseAds && showToGroups && showAfterPost && showOnCurrentPage;\n    },\n    showAfterPost(postNumber) {\n      if (!postNumber) {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.siteSettings.adsense_nth_post_code, 10));\n    }\n  }, (_applyDecoratedDescriptor(_obj, \"isResponsive\", [_dec], Object.getOwnPropertyDescriptor(_obj, \"isResponsive\"), _obj), _applyDecoratedDescriptor(_obj, \"isFluid\", [_dec2], Object.getOwnPropertyDescriptor(_obj, \"isFluid\"), _obj), _applyDecoratedDescriptor(_obj, \"classForSlot\", [_dec3], Object.getOwnPropertyDescriptor(_obj, \"classForSlot\"), _obj), _applyDecoratedDescriptor(_obj, \"autoAdFormat\", [_dec4], Object.getOwnPropertyDescriptor(_obj, \"autoAdFormat\"), _obj), _applyDecoratedDescriptor(_obj, \"adWrapperStyle\", [_dec5], Object.getOwnPropertyDescriptor(_obj, \"adWrapperStyle\"), _obj), _applyDecoratedDescriptor(_obj, \"adInsStyle\", [_dec6], Object.getOwnPropertyDescriptor(_obj, \"adInsStyle\"), _obj), _applyDecoratedDescriptor(_obj, \"showAdsenseAds\", [_decorators.default], Object.getOwnPropertyDescriptor(_obj, \"showAdsenseAds\"), _obj), _applyDecoratedDescriptor(_obj, \"showAd\", [_dec7], Object.getOwnPropertyDescriptor(_obj, \"showAd\"), _obj), _applyDecoratedDescriptor(_obj, \"showAfterPost\", [_dec8], Object.getOwnPropertyDescriptor(_obj, \"showAfterPost\"), _obj)), _obj))));\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad\", [\"exports\", \"@ember/component\", \"@ember/object/computed\", \"@ember/template\", \"rsvp\", \"discourse/lib/load-script\", \"discourse-common/config/environment\", \"discourse-common/utils/decorators\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"ember-this-fallback/this-fallback-helper\", \"ember-this-fallback/try-lookup-helper\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _component, _computed, _template, _rsvp, _loadScript, _environment, _decorators, _adComponent, _thisFallbackHelper, _tryLookupHelper, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _obj;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if showAd}}\n    {{#if site.mobileView}}\n      <div class=\"google-dfp-ad-label\" style={{adTitleStyleMobile}}><h2>{{i18n\n            \"adplugin.advertisement_label\"\n          }}</h2></div>\n      <div\n        id={{divId}}\n        style={{adWrapperStyle}}\n        class=\"dfp-ad-unit\"\n        align=\"center\"\n      ></div>\n    {{else}}\n      <div class=\"google-dfp-ad-label\"><h2>{{i18n\n            \"adplugin.advertisement_label\"\n          }}</h2></div>\n      <div\n        id={{divId}}\n        style={{adWrapperStyle}}\n        class=\"dfp-ad-unit\"\n        align=\"center\"\n      ></div>\n    {{/if}}\n  {{/if}}\n  */\n  {\n    \"id\": \"OG/8nj/j\",\n    \"block\": \"[[[41,[30,0,[\\\"showAd\\\"]],[[[41,[30,0,[\\\"site\\\",\\\"mobileView\\\"]],[[[1,\\\"    \\\"],[44,[[28,[37,2],null,[[\\\"adTitleStyleMobile\\\"],[[28,[32,0],[\\\"adTitleStyleMobile\\\"],null]]]]],[[[10,0],[14,0,\\\"google-dfp-ad-label\\\"],[15,5,[52,[30,1,[\\\"adTitleStyleMobile\\\"]],[28,[30,1,[\\\"adTitleStyleMobile\\\"]],null,null],[28,[32,1],[[30,0],\\\"adTitleStyleMobile\\\",\\\"[\\\\\\\"The `adTitleStyleMobile` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adTitleStyleMobile}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[12],[10,\\\"h2\\\"],[12],[1,[28,[35,3],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13]],[1]]],[1,\\\"\\\\n    \\\"],[44,[[28,[37,2],null,[[\\\"divId\\\",\\\"adWrapperStyle\\\"],[[28,[32,0],[\\\"divId\\\"],null],[28,[32,0],[\\\"adWrapperStyle\\\"],null]]]]],[[[10,0],[15,1,[52,[30,2,[\\\"divId\\\"]],[28,[30,2,[\\\"divId\\\"]],null,null],[28,[32,1],[[30,0],\\\"divId\\\",\\\"[\\\\\\\"The `divId` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.divId}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[15,5,[52,[30,2,[\\\"adWrapperStyle\\\"]],[28,[30,2,[\\\"adWrapperStyle\\\"]],null,null],[28,[32,1],[[30,0],\\\"adWrapperStyle\\\",\\\"[\\\\\\\"The `adWrapperStyle` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adWrapperStyle}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[14,0,\\\"dfp-ad-unit\\\"],[14,\\\"align\\\",\\\"center\\\"],[12],[13]],[2]]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"google-dfp-ad-label\\\"],[12],[10,\\\"h2\\\"],[12],[1,[28,[35,3],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13],[1,\\\"\\\\n    \\\"],[44,[[28,[37,2],null,[[\\\"divId\\\",\\\"adWrapperStyle\\\"],[[28,[32,0],[\\\"divId\\\"],null],[28,[32,0],[\\\"adWrapperStyle\\\"],null]]]]],[[[10,0],[15,1,[52,[30,3,[\\\"divId\\\"]],[28,[30,3,[\\\"divId\\\"]],null,null],[28,[32,1],[[30,0],\\\"divId\\\",\\\"[\\\\\\\"The `divId` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.divId}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[15,5,[52,[30,3,[\\\"adWrapperStyle\\\"]],[28,[30,3,[\\\"adWrapperStyle\\\"]],null,null],[28,[32,1],[[30,0],\\\"adWrapperStyle\\\",\\\"[\\\\\\\"The `adWrapperStyle` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adWrapperStyle}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]\\\"],null]]],[14,0,\\\"dfp-ad-unit\\\"],[14,\\\"align\\\",\\\"center\\\"],[12],[13]],[3]]],[1,\\\"\\\\n\\\"]],[]]]],[]],null],[1,[28,[32,2],[\\\"[[\\\\\\\"The `showAd` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.showAd}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `site` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.site}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[\\\"maybeHelpers\\\",\\\"maybeHelpers\\\",\\\"maybeHelpers\\\"],false,[\\\"if\\\",\\\"let\\\",\\\"hash\\\",\\\"i18n\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.hbs\",\n    \"scope\": () => [_tryLookupHelper.default, _thisFallbackHelper.default, _deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n  let _loaded = false,\n    _promise = null,\n    ads = {},\n    nextSlotNum = 1,\n    renderCounts = {};\n  function getNextSlotNum() {\n    return nextSlotNum++;\n  }\n  function splitWidthInt(value) {\n    let str = value.substring(0, 3);\n    return str.trim();\n  }\n  function splitHeightInt(value) {\n    let str = value.substring(4, 7);\n    return str.trim();\n  }\n\n  // This creates an array for the values of the custom targeting key\n  function valueParse(value) {\n    let final = value.replace(/ /g, \"\");\n    final = final.replace(/['\"]+/g, \"\");\n    final = final.split(\",\");\n    return final;\n  }\n\n  // This creates an array for the key of the custom targeting key\n  function keyParse(word) {\n    let key = word;\n    key = key.replace(/['\"]+/g, \"\");\n    key = key.split(\"\\n\");\n    return key;\n  }\n\n  // This should call adslot.setTargeting(key for that location, value for that location)\n  function custom_targeting(key_array, value_array, adSlot) {\n    for (let i = 0; i < key_array.length; i++) {\n      if (key_array[i]) {\n        adSlot.setTargeting(key_array[i], valueParse(value_array[i]));\n      }\n    }\n  }\n  const DESKTOP_SETTINGS = {\n    \"topic-list-top\": {\n      code: \"dfp_topic_list_top_code\",\n      sizes: \"dfp_topic_list_top_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_list_top_key_code\",\n      targeting_values: \"dfp_target_topic_list_top_value_code\"\n    },\n    \"topic-above-post-stream\": {\n      code: \"dfp_topic_above_post_stream_code\",\n      sizes: \"dfp_topic_above_post_stream_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_above_post_stream_key_code\",\n      targeting_values: \"dfp_target_topic_above_post_stream_value_code\"\n    },\n    \"topic-above-suggested\": {\n      code: \"dfp_topic_above_suggested_code\",\n      sizes: \"dfp_topic_above_suggested_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_above_suggested_key_code\",\n      targeting_values: \"dfp_target_topic_above_suggested_value_code\"\n    },\n    \"post-bottom\": {\n      code: \"dfp_post_bottom_code\",\n      sizes: \"dfp_post_bottom_ad_sizes\",\n      targeting_keys: \"dfp_target_post_bottom_key_code\",\n      targeting_values: \"dfp_target_post_bottom_value_code\"\n    }\n  };\n  const MOBILE_SETTINGS = {\n    \"topic-list-top\": {\n      code: \"dfp_mobile_topic_list_top_code\",\n      sizes: \"dfp_mobile_topic_list_top_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_list_top_key_code\",\n      targeting_values: \"dfp_target_topic_list_top_value_code\"\n    },\n    \"topic-above-post-stream\": {\n      code: \"dfp_mobile_topic_above_post_stream_code\",\n      sizes: \"dfp_mobile_topic_above_post_stream_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_above_post_stream_key_code\",\n      targeting_values: \"dfp_target_topic_above_post_stream_value_code\"\n    },\n    \"topic-above-suggested\": {\n      code: \"dfp_mobile_topic_above_suggested_code\",\n      sizes: \"dfp_mobile_topic_above_suggested_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_above_suggested_key_code\",\n      targeting_values: \"dfp_target_topic_above_suggested_value_code\"\n    },\n    \"post-bottom\": {\n      code: \"dfp_mobile_post_bottom_code\",\n      sizes: \"dfp_mobile_post_bottom_ad_sizes\",\n      targeting_keys: \"dfp_target_post_bottom_key_code\",\n      targeting_values: \"dfp_target_post_bottom_value_code\"\n    }\n  };\n  function getWidthAndHeight(placement, settings, isMobile) {\n    let config, size;\n    if (isMobile) {\n      config = MOBILE_SETTINGS[placement];\n    } else {\n      config = DESKTOP_SETTINGS[placement];\n    }\n    if (!renderCounts[placement]) {\n      renderCounts[placement] = 0;\n    }\n    const sizes = (settings[config.sizes] || \"\").split(\"|\");\n    if (sizes.length === 1) {\n      size = sizes[0];\n    } else {\n      size = sizes[renderCounts[placement] % sizes.length];\n      renderCounts[placement] += 1;\n    }\n    if (size === \"fluid\") {\n      return {\n        width: \"fluid\",\n        height: \"fluid\"\n      };\n    }\n    const sizeObj = {\n      width: parseInt(splitWidthInt(size), 10),\n      height: parseInt(splitHeightInt(size), 10)\n    };\n    if (!isNaN(sizeObj.width) && !isNaN(sizeObj.height)) {\n      return sizeObj;\n    }\n  }\n  function defineSlot(divId, placement, settings, isMobile, width, height, categoryTarget) {\n    if (!settings.dfp_publisher_id) {\n      return;\n    }\n    if (ads[divId]) {\n      return ads[divId];\n    }\n    let ad, config, publisherId;\n    if (isMobile) {\n      publisherId = settings.dfp_publisher_id_mobile || settings.dfp_publisher_id;\n      config = MOBILE_SETTINGS[placement];\n    } else {\n      publisherId = settings.dfp_publisher_id;\n      config = DESKTOP_SETTINGS[placement];\n    }\n    ad = window.googletag.defineSlot(\"/\" + publisherId + \"/\" + settings[config.code], [width, height], divId);\n    custom_targeting(keyParse(settings[config.targeting_keys]), keyParse(settings[config.targeting_values]), ad);\n    if (categoryTarget) {\n      ad.setTargeting(\"discourse-category\", categoryTarget);\n    }\n    ad.addService(window.googletag.pubads());\n    ads[divId] = {\n      ad,\n      width,\n      height\n    };\n    return ads[divId];\n  }\n  function destroySlot(divId) {\n    if (ads[divId] && window.googletag) {\n      window.googletag.destroySlots([ads[divId].ad]);\n      delete ads[divId];\n    }\n  }\n  function loadGoogle() {\n    /**\n     * Refer to this article for help:\n     * https://support.google.com/admanager/answer/4578089?hl=en\n     */\n\n    if (_loaded) {\n      return _rsvp.default.resolve();\n    }\n    if (_promise) {\n      return _promise;\n    }\n\n    // The boilerplate code\n    let dfpSrc = (\"https:\" === document.location.protocol ? \"https:\" : \"http:\") + \"//securepubads.g.doubleclick.net/tag/js/gpt.js\";\n    _promise = (0, _loadScript.default)(dfpSrc, {\n      scriptTag: true\n    }).then(function () {\n      _loaded = true;\n      if (window.googletag === undefined) {\n        // eslint-disable-next-line no-console\n        console.log(\"googletag is undefined!\");\n      }\n      window.googletag.cmd.push(function () {\n        // Infinite scroll requires SRA:\n        window.googletag.pubads().enableSingleRequest();\n\n        // we always use refresh() to fetch the ads:\n        window.googletag.pubads().disableInitialLoad();\n\n        // Improve CSP compatibility (https://developers.google.com/publisher-tag/guides/content-security-policy)\n        window.googletag.pubads().setForceSafeFrame(true);\n        window.googletag.enableServices();\n      });\n    });\n    window.googletag = window.googletag || {\n      cmd: []\n    };\n    return _promise;\n  }\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, _adComponent.default.extend((_dec = (0, _decorators.default)(\"siteSettings.dfp_publisher_id\", \"siteSettings.dfp_publisher_id_mobile\", \"site.mobileView\"), _dec2 = (0, _decorators.default)(\"placement\", \"postNumber\"), _dec3 = (0, _decorators.default)(\"placement\", \"showAd\"), _dec4 = (0, _decorators.default)(\"width\", \"height\"), _dec5 = (0, _decorators.default)(\"width\"), _dec6 = (0, _decorators.default)(\"publisherId\", \"showDfpAds\", \"showToGroups\", \"showAfterPost\", \"showOnCurrentPage\", \"size\"), _dec7 = (0, _decorators.default)(\"postNumber\"), _dec8 = (0, _decorators.on)(\"didUpdate\"), _dec9 = (0, _decorators.on)(\"didInsertElement\"), _dec10 = (0, _decorators.on)(\"willDestroyElement\"), (_obj = {\n    classNameBindings: [\"adUnitClass\"],\n    classNames: [\"google-dfp-ad\"],\n    loadedGoogletag: false,\n    lastAdRefresh: null,\n    width: (0, _computed.alias)(\"size.width\"),\n    height: (0, _computed.alias)(\"size.height\"),\n    size() {\n      return getWidthAndHeight(this.get(\"placement\"), this.siteSettings, this.site.mobileView);\n    },\n    publisherId(globalId, mobileId, isMobile) {\n      if (isMobile) {\n        return mobileId || globalId;\n      } else {\n        return globalId;\n      }\n    },\n    divId(placement, postNumber) {\n      let slotNum = getNextSlotNum();\n      if (postNumber) {\n        return `div-gpt-ad-${slotNum}-${placement}-${postNumber}`;\n      } else {\n        return `div-gpt-ad-${slotNum}-${placement}`;\n      }\n    },\n    adUnitClass(placement, showAd) {\n      return showAd ? `dfp-ad-${placement}` : \"\";\n    },\n    adWrapperStyle(w, h) {\n      if (w !== \"fluid\") {\n        return (0, _template.htmlSafe)(`width: ${w}px; height: ${h}px;`);\n      }\n    },\n    adTitleStyleMobile(w) {\n      if (w !== \"fluid\") {\n        return (0, _template.htmlSafe)(`width: ${w}px;`);\n      }\n    },\n    showAd(publisherId, showDfpAds, showToGroups, showAfterPost, showOnCurrentPage, size) {\n      return publisherId && showDfpAds && showToGroups && showAfterPost && showOnCurrentPage && size;\n    },\n    showDfpAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_dfp_ads;\n    },\n    showAfterPost(postNumber) {\n      if (!postNumber) {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.siteSettings.dfp_nth_post_code, 10));\n    },\n    // 3 second delay between calls to refresh ads in a component.\n    // Ember often calls updated() more than once, and *sometimes*\n    // updated() is called after _initGoogleDFP().\n    shouldRefreshAd() {\n      const lastAdRefresh = this.get(\"lastAdRefresh\");\n      if (!lastAdRefresh) {\n        return true;\n      }\n      return new Date() - lastAdRefresh > 3000;\n    },\n    updated() {\n      if (!this.shouldRefreshAd()) {\n        return;\n      }\n      let slot = ads[this.get(\"divId\")];\n      if (!(slot && slot.ad)) {\n        return;\n      }\n      let ad = slot.ad,\n        categorySlug = this.get(\"currentCategorySlug\");\n      if (this.get(\"loadedGoogletag\")) {\n        this.set(\"lastAdRefresh\", new Date());\n        window.googletag.cmd.push(() => {\n          ad.setTargeting(\"discourse-category\", categorySlug || \"0\");\n          window.googletag.pubads().refresh([ad]);\n        });\n      }\n    },\n    _initGoogleDFP() {\n      if ((0, _environment.isTesting)()) {\n        return; // Don't load external JS during tests\n      }\n      if (!this.get(\"showAd\")) {\n        return;\n      }\n      loadGoogle().then(() => {\n        this.set(\"loadedGoogletag\", true);\n        this.set(\"lastAdRefresh\", new Date());\n        window.googletag.cmd.push(() => {\n          let slot = defineSlot(this.get(\"divId\"), this.get(\"placement\"), this.siteSettings, this.site.mobileView, this.get(\"width\"), this.get(\"height\"), this.get(\"currentCategorySlug\") || \"0\");\n          if (slot && slot.ad) {\n            // Display has to be called before refresh\n            // and after the slot div is in the page.\n            window.googletag.display(this.get(\"divId\"));\n            window.googletag.pubads().refresh([slot.ad]);\n          }\n        });\n      });\n    },\n    willRender() {\n      this._super(...arguments);\n      if (!this.get(\"showAd\")) {\n        return;\n      }\n    },\n    cleanup() {\n      destroySlot(this.get(\"divId\"));\n    }\n  }, (_applyDecoratedDescriptor(_obj, \"size\", [_decorators.default], Object.getOwnPropertyDescriptor(_obj, \"size\"), _obj), _applyDecoratedDescriptor(_obj, \"publisherId\", [_dec], Object.getOwnPropertyDescriptor(_obj, \"publisherId\"), _obj), _applyDecoratedDescriptor(_obj, \"divId\", [_dec2], Object.getOwnPropertyDescriptor(_obj, \"divId\"), _obj), _applyDecoratedDescriptor(_obj, \"adUnitClass\", [_dec3], Object.getOwnPropertyDescriptor(_obj, \"adUnitClass\"), _obj), _applyDecoratedDescriptor(_obj, \"adWrapperStyle\", [_dec4], Object.getOwnPropertyDescriptor(_obj, \"adWrapperStyle\"), _obj), _applyDecoratedDescriptor(_obj, \"adTitleStyleMobile\", [_dec5], Object.getOwnPropertyDescriptor(_obj, \"adTitleStyleMobile\"), _obj), _applyDecoratedDescriptor(_obj, \"showAd\", [_dec6], Object.getOwnPropertyDescriptor(_obj, \"showAd\"), _obj), _applyDecoratedDescriptor(_obj, \"showDfpAds\", [_decorators.default], Object.getOwnPropertyDescriptor(_obj, \"showDfpAds\"), _obj), _applyDecoratedDescriptor(_obj, \"showAfterPost\", [_dec7], Object.getOwnPropertyDescriptor(_obj, \"showAfterPost\"), _obj), _applyDecoratedDescriptor(_obj, \"updated\", [_dec8], Object.getOwnPropertyDescriptor(_obj, \"updated\"), _obj), _applyDecoratedDescriptor(_obj, \"_initGoogleDFP\", [_dec9], Object.getOwnPropertyDescriptor(_obj, \"_initGoogleDFP\"), _obj), _applyDecoratedDescriptor(_obj, \"cleanup\", [_dec10], Object.getOwnPropertyDescriptor(_obj, \"cleanup\"), _obj)), _obj))));\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/house-ad\", [\"exports\", \"@ember/component\", \"@ember/utils\", \"discourse-common/utils/decorators\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _component, _utils, _decorators, _adComponent, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _dec2, _dec3, _dec4, _obj;\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{#if showAd}}\n    {{html-safe adHtml}}\n  {{/if}}\n  */\n  {\n    \"id\": \"r15k8uuj\",\n    \"block\": \"[[[41,[30,0,[\\\"showAd\\\"]],[[[1,\\\"  \\\"],[1,[28,[35,1],[[30,0,[\\\"adHtml\\\"]]],null]],[1,\\\"\\\\n\\\"]],[]],null],[1,[28,[32,0],[\\\"[[\\\\\\\"The `showAd` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/house-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.showAd}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `adHtml` property path was used in the `discourse/plugins/discourse-adplugin/discourse/components/house-ad.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.adHtml}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[],false,[\\\"if\\\",\\\"html-safe\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/components/house-ad.hbs\",\n    \"scope\": () => [_deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n  const adIndex = {\n    topic_list_top: null,\n    topic_above_post_stream: null,\n    topic_above_suggested: null,\n    post_bottom: null,\n    topic_list_between: null\n  };\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, _adComponent.default.extend((_dec = (0, _decorators.default)(\"placement\", \"showAd\"), _dec2 = (0, _decorators.default)(\"showToGroups\", \"showAfterPost\", \"showAfterTopicListItem\", \"showOnCurrentPage\"), _dec3 = (0, _decorators.default)(\"postNumber\", \"placement\"), _dec4 = (0, _decorators.default)(\"placement\"), (_obj = {\n    classNames: [\"house-creative\"],\n    classNameBindings: [\"adUnitClass\"],\n    attributeBindings: [\"colspanAttribute:colspan\"],\n    adHtml: \"\",\n    colspanAttribute() {\n      return this.tagName === \"td\" ? \"5\" : null;\n    },\n    adUnitClass(placement, showAd) {\n      return showAd ? `house-${placement}` : \"\";\n    },\n    showAd(showToGroups, showAfterPost, showAfterTopicListItem, showOnCurrentPage) {\n      return showToGroups && (showAfterPost || showAfterTopicListItem) && showOnCurrentPage;\n    },\n    showAfterPost(postNumber, placement) {\n      if (!postNumber && placement !== \"topic-list-between\") {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.site.get(\"house_creatives.settings.after_nth_post\"), 10));\n    },\n    showAfterTopicListItem(placement) {\n      if (placement !== \"topic-list-between\") {\n        return true;\n      }\n      return this.isNthTopicListItem(parseInt(this.site.get(\"house_creatives.settings.after_nth_topic\"), 10));\n    },\n    chooseAdHtml() {\n      const houseAds = this.site.get(\"house_creatives\"),\n        placement = this.get(\"placement\").replace(/-/g, \"_\"),\n        adNames = this.adsNamesForSlot(placement);\n      if (adNames.length > 0) {\n        if (!adIndex[placement]) {\n          adIndex[placement] = 0;\n        }\n        let ad = houseAds.creatives[adNames[adIndex[placement]]] || \"\";\n        adIndex[placement] = (adIndex[placement] + 1) % adNames.length;\n        // check if the ad includes the current category, or if no category restrictions are set for the ad\n        // otherwise don't show it\n        if (!ad.category_ids?.length || ad.category_ids.includes(this.currentCategoryId)) {\n          return ad.html;\n        }\n      } else {\n        return \"\";\n      }\n    },\n    adsNamesForSlot(placement) {\n      const houseAds = this.site.get(\"house_creatives\");\n      if (!houseAds || !houseAds.settings) {\n        return [];\n      }\n      const adsForSlot = houseAds.settings[placement];\n      if (Object.keys(houseAds.creatives).length > 0 && !(0, _utils.isBlank)(adsForSlot)) {\n        return adsForSlot.split(\"|\");\n      } else {\n        return [];\n      }\n    },\n    refreshAd() {\n      this.set(\"adHtml\", this.chooseAdHtml());\n    },\n    didInsertElement() {\n      this._super(...arguments);\n      if (!this.get(\"showAd\")) {\n        return;\n      }\n      if (adIndex.topic_list_top === null) {\n        // start at a random spot in the ad inventory\n        Object.keys(adIndex).forEach(placement => {\n          const adNames = this.adsNamesForSlot(placement);\n          adIndex[placement] = Math.floor(Math.random() * adNames.length);\n        });\n      }\n      this.refreshAd();\n    }\n  }, (_applyDecoratedDescriptor(_obj, \"colspanAttribute\", [_decorators.default], Object.getOwnPropertyDescriptor(_obj, \"colspanAttribute\"), _obj), _applyDecoratedDescriptor(_obj, \"adUnitClass\", [_dec], Object.getOwnPropertyDescriptor(_obj, \"adUnitClass\"), _obj), _applyDecoratedDescriptor(_obj, \"showAd\", [_dec2], Object.getOwnPropertyDescriptor(_obj, \"showAd\"), _obj), _applyDecoratedDescriptor(_obj, \"showAfterPost\", [_dec3], Object.getOwnPropertyDescriptor(_obj, \"showAfterPost\"), _obj), _applyDecoratedDescriptor(_obj, \"showAfterTopicListItem\", [_dec4], Object.getOwnPropertyDescriptor(_obj, \"showAfterTopicListItem\"), _obj)), _obj))));\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/post-bottom-ad\", [\"exports\", \"@ember/component\", \"@ember/component/template-only\", \"@ember/template-factory\"], function (_exports, _component, _templateOnly, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{ad-slot\n    placement=\"post-bottom\"\n    category=@model.topic.category.slug\n    postNumber=@model.post_number\n  }}\n  */\n  {\n    \"id\": \"EFDIMueB\",\n    \"block\": \"[[[1,[28,[35,0],null,[[\\\"placement\\\",\\\"category\\\",\\\"postNumber\\\"],[\\\"post-bottom\\\",[30,1,[\\\"topic\\\",\\\"category\\\",\\\"slug\\\"]],[30,1,[\\\"post_number\\\"]]]]]]],[\\\"@model\\\"],false,[\\\"ad-slot\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/components/post-bottom-ad.hbs\",\n    \"isStrictMode\": false\n  });\n  var _default = _exports.default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());\n});","define(\"discourse/plugins/discourse-adplugin/discourse/connectors/after-topic-list-item/discourse-adplugin\", [\"exports\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-slot\"], function (_exports, _adSlot) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    shouldRender(args, component) {\n      return args.index && (0, _adSlot.slotContenders)(component.site, component.siteSettings, \"topic-list-between\", args.index).length > 0;\n    }\n  };\n});","define(\"discourse/plugins/discourse-adplugin/discourse/helpers/slot-position\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.isNthPost = isNthPost;\n  _exports.isNthTopicListItem = isNthTopicListItem;\n  function isNthPost(every, currentPostNumber) {\n    if (every && every > 0) {\n      return currentPostNumber % every === 0;\n    } else {\n      return false;\n    }\n  }\n  function isNthTopicListItem(every, currentIndexPosition) {\n    if (every && every > 0 && currentIndexPosition > 0) {\n      return (currentIndexPosition + 1) % every === 0;\n    } else {\n      return false;\n    }\n  }\n});","define(\"discourse/plugins/discourse-adplugin/discourse/initializers/initialize-ad-plugin\", [\"exports\", \"discourse/lib/plugin-api\", \"discourse/models/site\", \"discourse/widgets/render-glimmer\", \"@ember/template-factory\"], function (_exports, _pluginApi, _site, _renderGlimmer, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    name: \"initialize-ad-plugin\",\n    initialize(container) {\n      (0, _renderGlimmer.registerWidgetShim)(\"after-post-ad\", \"div.widget-connector\", (0, _templateFactory.createTemplateFactory)(\n      /*\n        <PostBottomAd @model={{@data}} />\n      */\n      {\n        \"id\": \"adpJSmtH\",\n        \"block\": \"[[[8,[39,0],null,[[\\\"@model\\\"],[[30,1]]],null]],[\\\"@data\\\"],false,[\\\"post-bottom-ad\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/app/assets/javascripts/discourse/discourse/plugins/discourse-adplugin/discourse/initializers/initialize-ad-plugin.js\",\n        \"isStrictMode\": false\n      }));\n      (0, _pluginApi.withPluginApi)(\"0.1\", api => {\n        api.decorateWidget(\"post:after\", helper => {\n          return helper.attach(\"after-post-ad\", helper.widget.model);\n        });\n      });\n      const messageBus = container.lookup(\"service:message-bus\");\n      const currentUser = container.lookup(\"service:current-user\");\n      const channel = currentUser ? \"/site/house-creatives/logged-in\" : \"/site/house-creatives/anonymous\";\n      messageBus.subscribe(channel, function (houseAdsSettings) {\n        _site.default.currentProp(\"house_creatives\", houseAdsSettings);\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-adplugin/discourse/templates/connectors/after-topic-list-item/discourse-adplugin\", [\"exports\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{ad-slot\n    placement=\"topic-list-between\"\n    category=category.slug\n    indexNumber=index\n    childTagName=\"td\"\n  }}\n  */\n  {\n    \"id\": \"ku28n4FV\",\n    \"block\": \"[[[1,[28,[35,0],null,[[\\\"placement\\\",\\\"category\\\",\\\"indexNumber\\\",\\\"childTagName\\\"],[\\\"topic-list-between\\\",[30,0,[\\\"category\\\",\\\"slug\\\"]],[30,0,[\\\"index\\\"]],\\\"td\\\"]]]],[1,[28,[32,0],[\\\"[[\\\\\\\"The `category` property path was used in the `discourse/plugins/discourse-adplugin/discourse/templates/connectors/after-topic-list-item/discourse-adplugin.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.category}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}],[\\\\\\\"The `index` property path was used in the `discourse/plugins/discourse-adplugin/discourse/templates/connectors/after-topic-list-item/discourse-adplugin.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.index}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[],false,[\\\"ad-slot\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/templates/connectors/after-topic-list-item/discourse-adplugin.hbs\",\n    \"scope\": () => [_deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-adplugin/discourse/templates/connectors/discovery-list-container-top/discourse-adplugin\", [\"exports\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{ad-slot placement=\"topic-list-top\" category=category.slug}}\n  */\n  {\n    \"id\": \"gIz8Oh1y\",\n    \"block\": \"[[[1,[28,[35,0],null,[[\\\"placement\\\",\\\"category\\\"],[\\\"topic-list-top\\\",[30,0,[\\\"category\\\",\\\"slug\\\"]]]]]],[1,[28,[32,0],[\\\"[[\\\\\\\"The `category` property path was used in the `discourse/plugins/discourse-adplugin/discourse/templates/connectors/discovery-list-container-top/discourse-adplugin.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.category}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[],false,[\\\"ad-slot\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/templates/connectors/discovery-list-container-top/discourse-adplugin.hbs\",\n    \"scope\": () => [_deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-adplugin/discourse/templates/connectors/topic-above-post-stream/discourse-adplugin\", [\"exports\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{ad-slot placement=\"topic-above-post-stream\" category=model.category.slug}}\n  */\n  {\n    \"id\": \"RH6fRoTc\",\n    \"block\": \"[[[1,[28,[35,0],null,[[\\\"placement\\\",\\\"category\\\"],[\\\"topic-above-post-stream\\\",[30,0,[\\\"model\\\",\\\"category\\\",\\\"slug\\\"]]]]]],[1,[28,[32,0],[\\\"[[\\\\\\\"The `model` property path was used in the `discourse/plugins/discourse-adplugin/discourse/templates/connectors/topic-above-post-stream/discourse-adplugin.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.model}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[],false,[\\\"ad-slot\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/templates/connectors/topic-above-post-stream/discourse-adplugin.hbs\",\n    \"scope\": () => [_deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n});","define(\"discourse/plugins/discourse-adplugin/discourse/templates/connectors/topic-above-suggested/discourse-adplugin\", [\"exports\", \"ember-this-fallback/deprecations-helper\", \"@ember/template-factory\"], function (_exports, _deprecationsHelper, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    {{ad-slot placement=\"topic-above-suggested\" category=model.category.slug}}\n  */\n  {\n    \"id\": \"K9wxjVFU\",\n    \"block\": \"[[[1,[28,[35,0],null,[[\\\"placement\\\",\\\"category\\\"],[\\\"topic-above-suggested\\\",[30,0,[\\\"model\\\",\\\"category\\\",\\\"slug\\\"]]]]]],[1,[28,[32,0],[\\\"[[\\\\\\\"The `model` property path was used in the `discourse/plugins/discourse-adplugin/discourse/templates/connectors/topic-above-suggested/discourse-adplugin.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.model}}\\\\\\\",false,{\\\\\\\"id\\\\\\\":\\\\\\\"ember-this-fallback.this-property-fallback\\\\\\\",\\\\\\\"until\\\\\\\":\\\\\\\"n/a\\\\\\\",\\\\\\\"for\\\\\\\":\\\\\\\"ember-this-fallback\\\\\\\",\\\\\\\"url\\\\\\\":\\\\\\\"https://deprecations.emberjs.com/v3.x#toc_this-property-fallback\\\\\\\",\\\\\\\"since\\\\\\\":{\\\\\\\"available\\\\\\\":\\\\\\\"0.2.0\\\\\\\"}}]]\\\"],null]]],[],false,[\\\"ad-slot\\\"]]\",\n    \"moduleName\": \"discourse/plugins/discourse-adplugin/discourse/templates/connectors/topic-above-suggested/discourse-adplugin.hbs\",\n    \"scope\": () => [_deprecationsHelper.default],\n    \"isStrictMode\": false\n  });\n});"],"mappings":"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"}