Cara Delevingne asks followers to cease ‘hating on’ ex Ashley Benson after she’s seen kissing G-Eazy

41

‘ + ‘

‘ + ‘

    ‘ + ‘{promoMarkup}’ + ‘{notifMarkup}’ + ‘

‘ + ‘

‘ + ”; var panelEmptyTemplate = ‘

  • ‘ + ‘

    ‘ + ‘{emptyPanelMsg}’ + ‘

    ‘ + ‘

  • ‘; var panelErrorTemplate = ‘

    ‘ + ‘ {errorMsg} ‘ + ‘

    ‘; var panelParentTemplate = ”; var notifOnboardPromoTemplate = ‘

  • ‘ + ‘

    ‘ + ‘

  • ‘; /* international doc, window */ var EXPANDED_PANEL = ‘expanded_panel’;
    var ERROR_PANEL = ‘error_panel’; var NotificationView = perform () { perform NotificationView(config, retailer) { classCallCheck(this, NotificationView); var self = this; self._config = config; self._panelNode = null; self._store = retailer; } /** * _renderPanel * Renders the notification panel * @param {string} template – Notification panel template * @param {object} panelData – Notification panel information * @return {object} notification panel show markup */ createClass(NotificationView, [{ key: ‘_generatePanelMarkup’, value: function _generatePanelMarkup(template, panelData) { var config = this._config; var isNotifPermissionGranted = void 0; var isClientPromoEligible = void 0; if (typeof window !== ‘undefined’) { isNotifPermissionGranted = window.Notification && window.Notification.permission === ‘granted’; isClientPromoEligible = hasClass(document.body, config.promos.eligibleBodyClass); } var shouldShowNotifOnboardPromo = config.promos.enableNotifOnboard && !isNotifPermissionGranted && isClientPromoEligible; var promoMarkup = shouldShowNotifOnboardPromo ? notifOnboardPromoTemplate : ”; if (promoMarkup) { promoMarkup = promoMarkup.replace(‘{notifOnboardBtnLabel}’, config.promos.notifOnboardBtnLabel).replace(‘{notifOnboardMsg}’, config.promos.notifOnboardMsg).replace(‘{subscriptionTopic}’, config.promos.subscriptionTopic); } var hasAdditionalNotifs = panelData.newCount > config.panel.maxCount; var newCount = hasAdditionalNotifs ? panelData.newCount : ”; var notifCenterPath = config.panel.notificationCenterPath; var notifCenterLinkClass = notifCenterPath ? ” : constants.panelHideElement; var panelHeaderDisplayClass = config.panel.headerMsg ? ” : ‘ ‘ + constants.panelHideElement; var paddingClass = notifCenterPath ? constants.panelPaddingBtm : ”; var notifMarkup = void 0; if (panelData.count) { notifMarkup = panelData.markup; } else { var panelEmptyMarkup = panelEmptyTemplate; notifMarkup = panelEmptyMarkup.replace(‘{emptyPanelMsg}’, config.panel.emptyPanelMsg); } template = template.replace(‘{notifMarkup}’, notifMarkup).replace(‘{promoMarkup}’, promoMarkup).replace(‘{hideClass}’, notifCenterLinkClass).replace(‘{notifCenterLink}’, notifCenterPath).replace(‘{paddingClass}’, paddingClass).replace(‘{headerMsg}’, config.panel.headerMsg).replace(‘{hideHeaderClass}’, panelHeaderDisplayClass).replace(/{notificationCenterNavMsg}/g, config.panel.notificationCenterNavMsg).replace(/{newCount}/g, newCount); return template; } /** * render * Renders the panel based on type – collapsed, expanded, toast * @param {string} templateType – template type to be used * @param {Function} callback – The callback function * @return {void} */ }, { key: ‘render’, value: function render(templateType, callback) { var self = this; if (!self._panelNode) { callback && callback(new Error(‘No panel parent’)); return; } var template = void 0; var parent = self._panelNode; var panelMarkup = void 0; var panelData = void 0; switch (templateType) { case EXPANDED_PANEL: template = panelTemplate || ”; panelData = self._store.getNotifications(); panelMarkup = self._generatePanelMarkup(template, panelData); parent.innerHTML = panelMarkup; break; case ERROR_PANEL: template = panelErrorTemplate || ”; panelMarkup = template.replace(‘{errorMsg}’, self._config.panel.errorMsg); parent.innerHTML = panelMarkup; break; default: break; } callback && callback(); } /** * createPanelParentNode * Create the panel DOM structure * @param {object} panelParentNode – Panel’s parent node – from consumer * @return {void} */ }, { key: ‘createPanelParentNode’, value: function createPanelParentNode(panelParentNode) { if (!panelParentNode) { return; } panelParentNode.innerHTML = panelParentTemplate; // Store the panel node this._panelNode = document.getElementById(constants.panelNodeId); } /** * updateBadgeNode * Updates the badge node if needed * @param {object} badgeNode badge HTML node * @return {void} */ }, { key: ‘updateBadgeNode’, value: function updateBadgeNode(badgeNode) { if (badgeNode) { var _store$getNotificatio = this._store.getNotifications(), newCount = _store$getNotificatio.newCount; var maxBadgeCount = this._config.badge.maxCount; if (newCount) { var badgeCount = newCount > maxBadgeCount ? maxBadgeCount + ‘+’ : newCount; badgeNode.innerHTML = badgeCount; } else { badgeNode.innerHTML = ”; } } } /** * addStyles * Add panel css returned by service to page once * @param {object} styles css style blob * @return {void} */ }, { key: ‘addStyles’, value: function addStyles(styles) { if (styles) { if (typeof window !== ‘undefined’) { var styleTag = document.getElementById(this._config.panel.styleTagId); if (!styleTag) { styleTag = document.createElement(‘style’); styleTag.type = ‘text/css’; styleTag.id = this._config.panel.styleTagId; styleTag.innerText = styles; document.head.appendChild(styleTag); } } } } }]); return NotificationView;
    }(); /* international doc */
    /* Updates the notification retailer when wanted Controls the notification view */ var EXPANDED_PANEL$1 = ‘expanded_panel’;
    var ERROR_PANEL$1 = ‘error_panel’; var PanelController = perform () { perform PanelController(config, retailer, view) { classCallCheck(this, PanelController); var self = this; self._store = retailer; self._view = view; self._config = config; var panelConfig = self._config.panel; self._panelParentNode = doc.querySelector(panelConfig.parentSelector); self._badgeNode = self._config.badge.selector && doc.querySelector(self._config.badge.selector); self._indicatorNode = panelConfig.indicatorSelector && doc.querySelector(panelConfig.indicatorSelector); } /** * createPanelParentNode * Creates the bottom node for panel * @return {void} */ createClass(PanelController, [{ key: ‘createPanelParentNode’, value: function createPanelParentNode() { this._view.createPanelParentNode(this._panelParentNode); this._notifPanelNode = document.getElementById(constants.panelNodeId); } /** * refreshPanelNode * Shows the expanded panel – fetches data from store, calls view to render, attached delegates * @param {object} requestOverride – matrix params to over ride the reqeust * @param {Function} callback – The callback function * @return {void} */ }, { key: ‘refreshPanelNode’, value: function refreshPanelNode(requestOverride, callback) { var self = this; addClass(self._notifPanelNode, constants.panelLoading); self._store.fetchNotifications(requestOverride, function handleExpandedFetch(err, response) { if (err) { if (!self._notifPanelNode.innerHTML) { self._view.render(ERROR_PANEL$1); addClass(self._notifPanelNode, constants.panelLoading); } } else { self._view.render(EXPANDED_PANEL$1); self._view.updateBadgeNode(self._badgeNode); self._showBadge(); self._showIndicator(); self._view.addStyles(response.css); } removeClass(self._notifPanelNode, constants.panelLoading); callback && callback(err, response); }); } /** * resetBadge * Reset the badge count * @return {void} */ }, { key: ‘resetBadge’, value: function resetBadge() { var self = this; self._store.resetNewCount(); self._view.updateBadgeNode(self._badgeNode); addClass(self._badgeNode, self._config.badge.hideClass); } /** * _showIndicator * Add class to indicator node * @return {void} */ }, { key: ‘_showIndicator’, value: function _showIndicator() { if (!this._indicatorNode) { return; } var _store$getNotificatio = this._store.getNotifications(), newCount = _store$getNotificatio.newCount; if (newCount) { addClass(this._indicatorNode, this._config.panel.indicatorClass); } else { removeClass(this._indicatorNode, this._config.panel.indicatorClass); } } /** * _showBadge * Show/hide the badge count * @return {void} */ }, { key: ‘_showBadge’, value: function _showBadge() { var self = this; var _self$_store$getNotif = self._store.getNotifications(), newCount = _self$_store$getNotif.newCount; if (newCount) { removeClass(self._badgeNode, self._config.badge.hideClass); } else { addClass(self._badgeNode, self._config.badge.hideClass); } } }]); return PanelController;
    }(); var config = { promos: { eligibleBodyClass: ‘display-push-promos’, allowNotifOnboard: true, notifOnboardBtnLabel: ‘Notify Me’, notifOnboardMsg: ‘Get Notifications for Your Favorite Topics’, subscriptionTopic: ‘gondor_homerun_news’ }, badge: { hideClass: ”, maxCount: 5, selector: ” }, panel: { emptyPanelMsg: ‘You haven’t any new notifications.’, errorMsg: ”, headerMsg: ‘Notifications’, imageTag: ‘img:40×40|2|80’, indicatorClass: ‘yns-indicator’, indicatorSelector: null, maxCount: 6, notificationCenterNavMsg: ‘View all {newCount} notifications’, notificationCenterPath: ”, styleTagId: ‘notificationStyles’, parentSelector: null // required }, service: { attemptCount: 2, attemptDelay: 1, url: null, // required responseType: ‘json’, timeout: 1500 }
    }; var Main = perform () { perform Main(config$$1) { classCallCheck(this, Main); var self = this; self.config = self._parseConfig(config$$1); var validConfigs = self._validateRequiredConfigs(); // silently return if required configs are lacking if (!validConfigs) { return; } self._request = new NotificationRequest(self.config); self._store = new NotificationStore(self.config, self._request); self._view = new NotificationView(self.config, self._store); self._panelController = new PanelController(self.config, self._store, self._view); self._panelController.createPanelParentNode(); // Once all the interior modules are init, create helper methodology reference. self._assignHelperMethods(); } /** * _parseConfig * Parses the offered config and updates default. The configs are anticipated to be max one stage deep * @param {object} config – The config object * @return {object} request configuration */ createClass(Main, [{ key: ‘_parseConfig’, value: function _parseConfig(config$$1) { var defaultConfig = {}; objectAssign(defaultConfig, config); for (var key in defaultConfig) { if (defaultConfig.hasOwnProperty(key)) { var orig = defaultConfig[key]; var extn = config$$1[key]; if ((typeof orig === ‘undefined’ ? ‘undefined’ : _typeof(orig)) === ‘object’) { objectAssign(orig, extn); } else { defaultConfig[key] = config$$1[key]; } } } return defaultConfig; } /** * _validateRequiredConfigs * Validates if required configs are being handed by shopper * @return {boolean} validity of configs */ }, { key: ‘_validateRequiredConfigs’, worth: perform _validateRequiredConfigs() { var _config = this.config; return !!(_config.panel.parentSelector && _config.service.url); } /** * _assignHelperMethods * This perform creates helper strategies that confer with inside capabilities, binds appropriate context * @return {void} */ }, { key: ‘_assignHelperMethods’, worth: perform _assignHelperMethods() { var self = this; self.helpers = { refreshPanelNode: self._panelController.refreshPanelNode.bind(self._panelController), resetBadge: self._panelController.resetBadge.bind(self._panelController), resetIndicator: perform resetIndicator() { removeClass(self._panelController._indicatorNode, self.config.panel.indicatorClass); } }; } }]); return Main;
    }(); return Main; }());
    //# sourceMappingURL=notificationClient.min.js.map
    !perform(){var a,o,i,n=”lnct”;perform t(e,n){var t=this;t.config=e||{},t.accordion=o.querySelector(e.accordionSelector),t.countBadge=o.querySelector(e.countBadgeSelector),t.notificationButton=o.querySelector(e.notificationButtonSelector),t.profileButton=o.querySelector(e.profileButtonSelector),t.notificationClient=n,t.visibilityMetaTag=””,a.wafer&&a.wafer.prepared(perform()””);perform i(e)t.refreshPanel.name(t,e)t.attachEventListeners(),i(t.handleBackgroundRefresh),e.pollingInterval&&setInterval(i,1e3*e.pollingInterval,t.handleBackgroundRefresh)}perform e(){if(a.NotificationConsumer){var e=new window.NotificationConsumer(i);e&&e.helpers&&new t(i.adapter,e)}}perform r(e,n,t){a=e,o=n,i=t||{“adapter”:{“accordionSelector”:”#profile-notification-accordion”,”countBadgeSelector”:”#header-notification-badge”,”initializeImmediately”:false,”lang”:”de-DE”,”loadInHpViewer”:false,”notificationButtonSelector”:”#header-notification-button”,”pollingInterval”:300,”profileButtonSelector”:”#header-profile-button”,”rapidModuleId”:”applet_p_50000372″,”region”:”DE”},”badge”:{“hideClass”:”D(n)”,”selector”:”#header-notification-badge”},”panel”:{“emptyPanelMsg”:”Sie haben keine neuen Benachrichtigungen.”,”errorMsg”:”Bitte kommen Sie später zurück.”,”headerMsg”:”Benachrichtigungen”,”indicatorSelector”:”#header-notification-indicator”,”maxCount”:6,”notificationCenterNavMsg”:””,”notificationCenterPath”:null,”parentSelector”:”#header-notification-panel”},”promos”:{“eligibleBodyClass”:”display-push-promos”,”enableNotifOnboard”:true,”notifOnboardBtnLabel”:”Mich benachrichtigen”,”notifOnboardMsg”:”Benachrichtigungen für bestimmte Themen erhalten”,”subscriptionTopic”:”gondor_homerun_news”},”service”:{“url”:”/tdv2_fp/api/resource/NotificationHistory.getHistory”}}}t.prototype={attachEventListeners:perform(){var e=this;e.profileButton&&e.profileButton.addEventListener(“click”,perform(){e.refreshPanel.name(e)}),e.accordion&&e.accordion.addEventListener(“click”,perform(){e.handlePanelOpen.name(e)}),e.notificationButton&&(e.notificationButton.addEventListener(“mouseenter”,perform(){e.handlePanelOpen.name(e)}),e.notificationButton.addEventListener(“focus”,perform(){e.handlePanelOpen.name(e)}))},getConsumptionTime:perform(){return a.localStorage&&a.localStorage.getItem(n)},handleBackgroundRefresh:perform(e,n){var t=this,i=a.YAHOO&&a.YAHOO.i13n&&a.YAHOO.i13n.rapidInstance||a.rapidInstance;if(i&&t.countBadge&&t.countBadge.className.indexOf(“D(n)”)