: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
ctfStorage = window.localStorage,
sketch = VueColor.Sketch;
* VueJS Global App Builder
mixins: [VueClickaway.mixin],
nonce : ctf_builder.nonce,
template : ctf_builder.feedInitOutput,
updatedTimeStamp : new Date().getTime(),
feedSettingsDomOptions : null,
newAccountData : ctf_builder.newAccountData,
ctfRebrand : ctf_builder.ctfRebrand,
plugins: ctf_builder.installPluginsPopup,
dismissLite : ctf_builder.twitter_feed_dismiss_lite,
supportPageUrl: ctf_builder.supportPageUrl,
builderUrl : ctf_builder.builderUrl,
pluginType : ctf_builder.pluginType,
genericText : ctf_builder.genericText,
ajaxHandler : ctf_builder.ajax_handler,
adminPostURL : ctf_builder.adminPostURL,
adminSettingsURL : ctf_builder.adminSettingsURL,
widgetsPageURL : ctf_builder.widgetsPageURL,
translatedText : ctf_builder.translatedText,
socialShareLink : ctf_builder.socialShareLink,
licenseType: ctf_builder.pluginType,
upgradeUrl: ctf_builder.upgradeUrl,
pluginUrl: ctf_builder.pluginUrl,
welcomeScreen : ctf_builder.welcomeScreen,
allFeedsScreen : ctf_builder.allFeedsScreen,
extensionsPopup : ctf_builder.extensionsPopup,
mainFooterScreen : ctf_builder.mainFooterScreen,
embedPopupScreen : ctf_builder.embedPopupScreen,
connectAccountScreen : ctf_builder.connectAccountScreen,
freeCtaShowFeatures: false,
newSourceData : ctf_builder.newSourceData ? ctf_builder.newSourceData : null,
sourceConnectionURLs : ctf_builder.sourceConnectionURLs,
returnedApiSourcesList : [],
type : 'success', // success, error, warning, message
selectedSourcesToConnect : [],
selectSourceScreen : ctf_builder.selectSourceScreen,
customizeScreensText : ctf_builder.customizeScreens,
dialogBoxPopupScreen : ctf_builder.dialogBoxPopupScreen,
selectFeedTypeScreen : ctf_builder.selectFeedTypeScreen,
selectFeedTemplateScreen : ctf_builder.selectFeedTemplateScreen,
accountDetails : ctf_builder.accountDetails,
dummyLightBoxData : ctf_builder.dummyLightBoxData,
svgIcons : ctf_builder.svgIcons,
feedsList : ctf_builder.feeds,
feedTypes : ctf_builder.feedTypes,
advancedFeedTypes : ctf_builder.advancedFeedTypes,
appCredentials : ctf_builder.appCredentials,
appOAUTH : ctf_builder.appOAUTH,
socialInfo : ctf_builder.socialInfo,
feedTemplates : ctf_builder.feedTemplates,
links : ctf_builder.links,
legacyFeedsList : ctf_builder.legacyFeeds,
activeExtensionsFull : ctf_builder.activeExtensions,
dummyLightBoxScreen : false,
//Selected Feed type => User Hashtag Tagged
selectedFeed : ['usertimeline'],
// Selected Feed Template
selectedFeedTemplate : 'default',
selectedFeedModelPopup : {
listUserNameInputModel : '',
listUserNameInputModelSearched : '',
//Screens where the footer widget is disabled
// feedsType, selectSource, feedsTypeGetProcess
selectedFeedSection : 'selectSource',
feedtypesCustomizerPopup : false,
feedtemplatesPopup : false,
sourcesListPopup : false,
connectAccountPopup : false,
// step_1 [Add New Source] , step_2 [Connect to a user pages/groups], step_3 [Add Manually]
sourcePopupScreen : 'redirect_1',
connectAccountStep : 'step_1',
// creation or customizer
sourcePopupType : 'creation',
extensionsPopupElement : false,
feedTemplateElement : null,
instanceFeedActive : null,
clipboardCopiedNotif : false,
legacyFeedsShown : false,
embedPopupScreen : 'step_1',
embedPopupSelectedPage : null,
onboardingPopup : ctf_builder.allFeedsScreen.onboarding.active,
onboardingCustomizerPopup : ctf_builder.customizeScreens.onboarding.active,
installPluginPopup : false,
installPluginModal: 'facebook'
feedsCount : ctf_builder.feedsCount != undefined ? ctf_builder.feedsCount : null,
itemsPerPage : ctf_builder.itemsPerPage != undefined ? ctf_builder.itemsPerPage : null,
isCreateProcessGood : false,
feedCreationInfoUrl : null,
feedTypeOnSourcePopup : 'user',
selectedBulkAction : false,
customizerFeedDataInitial : null,
customizerFeedData : ctf_builder.customizerFeedData,
wordpressPageLists : ctf_builder.wordpressPageLists,
iscustomizerScreen : (ctf_builder.customizerFeedData != undefined && ctf_builder.customizerFeedData != false),
customizerSidebarBuilder : ctf_builder.customizerSidebarBuilder,
previewScreen : 'desktop',
activeSectionData : null,
parentActiveSection : null, //For nested Setions
parentActiveSectionData : null, //For nested Setions
activeColorPicker : null,
popupBackButton : ['feedTemplates']
'post_styling_tweet_text',
'post_styling_tweet_date',
'post_styling_tweet_actions',
'post_styling_quote_tweet',
'post_styling_twitter_cards',
manualAccountResp : false,
type : null, //deleteSourceCustomizer
customButtons : undefined
showedSocialShareTooltip : null,
showedCommentSection : [],
highLightedSection : 'all',
list_type_selected : null,
customBlockModerationlistTemp : '',
fullScreenLoader : false,
type : 'success', // success, error, warning, message
feedPreviewOutput : function(){
return this.feedPreviewMaker()
feedStyleOutput : function(){
return this.customizerStyleMaker();
singleHolderData : function(){
return this.singleHolderParams();
getModerationShoppableMode : function(){
if( this.viewsActive.moderationMode || this.customizerScreens.activeSection == 'settings_shoppable_feed'){
this.moderationShoppableMode = true;
this.moderationShoppableMode = false;
return this.moderationShoppableMode;
if( self.customizerFeedData ){
self.setShortcodeGlobalSettings(true);
if( self.customizerFeedData ){
self.template = String("<div>"+self.template+"</div>");
self.selectedFeedModel = JSON.parse(JSON.stringify(self.initSelectedFeedTypeModel()));
self.selectedFeedModelPopup = JSON.parse(JSON.stringify(self.initSelectedFeedTypeModel()));
self.selectedFeed = self.getCustomizerSelectedFeedsType();
self.updatedTimeStamp = new Date().getTime();
self.customizerFeedDataInitial = JSON.parse(JSON.stringify(self.customizerFeedData));
if(self.customizerFeedData == undefined){
self.feedPagination.pagesNumber = self.feedPagination.feedsCount != null ? Math.ceil(self.feedPagination.feedsCount / self.feedPagination.itemsPerPage) : 1;
self.processIFConnectSuccess();
window.addEventListener('beforeunload', (event) => {
if( self.customizerFeedData ){
self.leaveWindowHandler(event);
self.activeExtensionsFull.map( element => self.activeExtensions[element['type']] = element['active'] );
self.activeExtensionsFull.map( element => {
if( element['active'] == false ){
element['ids'].forEach((id) => {
self.inActiveExtensions[id] = element['type'];
if (typeof self.newAccountData !== 'undefined') {
self.viewsActive.pageScreen = 'selectFeed';
/* Onboarding - move elements so the position is in context */
self.positionOnboarding();
self.positionOnboarding();
updateColorValue : function(id){
self.customizerFeedData.settings[id] = (self.customizerFeedData.settings[id].a == 1) ? self.customizerFeedData.settings[id].hex : self.customizerFeedData.settings[id].hex8;
* Init Selected Feed Type Sources
initSelectedFeedTypeModel : function(){
customizerSettings = self.customizerFeedData.settings,
selectedFeedModel = self.selectedFeedModel;
if(customizerSettings.type != undefined && customizerSettings.type == 'mixed' ){
'usertimeline' : customizerSettings.screenname !== undefined ? customizerSettings.screenname : '' ,
'hashtag' : customizerSettings.hashtag !== undefined ? customizerSettings.hashtag : '' ,
'hometimeline' : customizerSettings.home !== undefined && customizerSettings.home == true ? 'true' : ''
if(customizerSettings.type != undefined && customizerSettings.type != 'mixed' ){
switch (customizerSettings.type) {
selectedFeedModel.usertimeline = self.checkNotEmpty(customizerSettings.usertimeline_text) ? customizerSettings.usertimeline_text : (self.checkNotEmpty(customizerSettings.screenname) ? customizerSettings.screenname : '');
selectedFeedModel.hashtag = self.checkNotEmpty(customizerSettings.hashtag_text) ? customizerSettings.hashtag_text : (self.checkNotEmpty(customizerSettings.hashtag) ? customizerSettings.hashtag : '');
selectedFeedModel.hometimeline = true;
return selectedFeedModel;
* Apply Feed Popup Changes
applyFeedTypePopup : function(){
feedTypes = Object.entries(self.selectSourceScreen.multipleTypes);
selectedFeedModel = self.selectedFeedModel;
feedTypes.forEach( function(element) {
var feedTypeID = element[0],
settingName = feedTypeID == 'usertimeline' ? 'screenname' : feedTypeID;
self.customizerFeedData.settings[settingName] = self.selectedFeedModel[feedTypeID];
if( self.customizerFeedData ){
self.customizerFeedData.settings.type = self.selectedFeed[0];
self.cleanUnselectedFeedTypes();
* Clean Unselected Feed Types
cleanUnselectedFeedTypes : function(){
if( !self.selectedFeed.includes('hashtag') ){
self.customizerFeedData.settings.hashtag_text = '';
self.customizerFeedData.settings.hashtag = '';
if( !self.selectedFeed.includes('usertimeline') ){
self.customizerFeedData.settings.usertimeline_text = '';
self.customizerFeedData.settings.screenname = '';
if( !self.selectedFeed.includes('search') ){
self.customizerFeedData.settings.search_text = '';
self.customizerFeedData.settings.search = '';
if( !self.selectedFeed.includes('hometimeline') ){
self.customizerFeedData.settings.home = '';
if( !self.selectedFeed.includes('mentionstimeline') ){
self.customizerFeedData.settings.mentions = '';
if( !self.selectedFeed.includes('lists') ){
self.customizerFeedData.settings.lists_id = '';
self.customizerFeedData.settings.lists = '';
self.customizerFeedData.settings.lists_info = '';
leaveWindowHandler : function(ev){
action : 'ctf_feed_saver_manager_recache_feed',
feedID : self.customizerFeedData.feed_info.id,
self.ajaxPost(updateFeedData, function(_ref){
activateView : function(viewName, sourcePopupType = 'creation', ajaxAction = false){
if(viewName === 'feedtemplatesPopupCustomizer'){
self.activateView('feedtemplatesPopup');
self.activateView('extensionsPopupElement');
if(viewName === 'extensionsPopupElement' && self.customizerFeedData !== undefined && ( self.advancedFeedTypes.map( element => element['type'] ).includes(self.viewsActive.extensionsPopupElement) ) ){
self.activateView('feedtypesPopup');