Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wpforms-.../assets/lite/js/integrat.../gutenber...
File: formselector.es5.js
});
[5000] Fix | Delete
} catch (error) {
[5001] Fix | Delete
// eslint-disable-next-line no-console
[5002] Fix | Delete
console.error(error);
[5003] Fix | Delete
}
[5004] Fix | Delete
},
[5005] Fix | Delete
/**
[5006] Fix | Delete
* Get the current style attributes state.
[5007] Fix | Delete
*
[5008] Fix | Delete
* @since 1.8.8
[5009] Fix | Delete
*
[5010] Fix | Delete
* @param {Object} props Block properties.
[5011] Fix | Delete
*
[5012] Fix | Delete
* @return {boolean} Whether the custom theme is created.
[5013] Fix | Delete
*/
[5014] Fix | Delete
getCurrentStyleAttributes: function getCurrentStyleAttributes(props) {
[5015] Fix | Delete
var _themesData$wpforms$d;
[5016] Fix | Delete
var defaultAttributes = Object.keys((_themesData$wpforms$d = themesData.wpforms.default) === null || _themesData$wpforms$d === void 0 ? void 0 : _themesData$wpforms$d.settings);
[5017] Fix | Delete
var currentStyleAttributes = {};
[5018] Fix | Delete
for (var key in defaultAttributes) {
[5019] Fix | Delete
var _props$attributes$att;
[5020] Fix | Delete
var attr = defaultAttributes[key];
[5021] Fix | Delete
currentStyleAttributes[attr] = (_props$attributes$att = props.attributes[attr]) !== null && _props$attributes$att !== void 0 ? _props$attributes$att : '';
[5022] Fix | Delete
}
[5023] Fix | Delete
return currentStyleAttributes;
[5024] Fix | Delete
},
[5025] Fix | Delete
/**
[5026] Fix | Delete
* Maybe create custom theme.
[5027] Fix | Delete
*
[5028] Fix | Delete
* @since 1.8.8
[5029] Fix | Delete
*
[5030] Fix | Delete
* @param {Object} props Block properties.
[5031] Fix | Delete
*
[5032] Fix | Delete
* @return {boolean} Whether the custom theme is created.
[5033] Fix | Delete
*/
[5034] Fix | Delete
maybeCreateCustomTheme: function maybeCreateCustomTheme(props) {
[5035] Fix | Delete
var _themesData$wpforms$p;
[5036] Fix | Delete
// eslint-disable-line complexity
[5037] Fix | Delete
var currentStyles = app.getCurrentStyleAttributes(props);
[5038] Fix | Delete
var isWPFormsTheme = !!themesData.wpforms[props.attributes.theme];
[5039] Fix | Delete
var isCustomTheme = !!themesData.custom[props.attributes.theme];
[5040] Fix | Delete
var migrateToCustomTheme = false;
[5041] Fix | Delete
[5042] Fix | Delete
// It is one of the default themes without any changes.
[5043] Fix | Delete
if (isWPFormsTheme && JSON.stringify((_themesData$wpforms$p = themesData.wpforms[props.attributes.theme]) === null || _themesData$wpforms$p === void 0 ? void 0 : _themesData$wpforms$p.settings) === JSON.stringify(currentStyles)) {
[5044] Fix | Delete
return false;
[5045] Fix | Delete
}
[5046] Fix | Delete
var prevAttributes = formSelectorCommon.getBlockRuntimeStateVar(props.clientId, 'prevAttributesState');
[5047] Fix | Delete
[5048] Fix | Delete
// It is a block added in FS 1.0, so it doesn't have a theme.
[5049] Fix | Delete
// The `prevAttributes` is `undefined` means that we are in the first render of the existing block.
[5050] Fix | Delete
if (props.attributes.theme === 'default' && props.attributes.themeName === '' && !prevAttributes) {
[5051] Fix | Delete
migrateToCustomTheme = true;
[5052] Fix | Delete
}
[5053] Fix | Delete
[5054] Fix | Delete
// It is a modified default theme OR unknown custom theme.
[5055] Fix | Delete
if (isWPFormsTheme || !isCustomTheme || migrateToCustomTheme) {
[5056] Fix | Delete
app.createCustomTheme(props, currentStyles, migrateToCustomTheme);
[5057] Fix | Delete
}
[5058] Fix | Delete
return true;
[5059] Fix | Delete
},
[5060] Fix | Delete
/**
[5061] Fix | Delete
* Create custom theme.
[5062] Fix | Delete
*
[5063] Fix | Delete
* @since 1.8.8
[5064] Fix | Delete
*
[5065] Fix | Delete
* @param {Object} props Block properties.
[5066] Fix | Delete
* @param {Object} currentStyles Current style settings.
[5067] Fix | Delete
* @param {boolean} migrateToCustomTheme Whether it is needed to migrate to custom theme.
[5068] Fix | Delete
*
[5069] Fix | Delete
* @return {boolean} Whether the custom theme is created.
[5070] Fix | Delete
*/
[5071] Fix | Delete
createCustomTheme: function createCustomTheme(props) {
[5072] Fix | Delete
var currentStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
[5073] Fix | Delete
var migrateToCustomTheme = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
[5074] Fix | Delete
// eslint-disable-line complexity
[5075] Fix | Delete
var counter = 0;
[5076] Fix | Delete
var themeSlug = props.attributes.theme;
[5077] Fix | Delete
var baseTheme = app.getTheme(props.attributes.theme) || themesData.wpforms.default;
[5078] Fix | Delete
var themeName = baseTheme.name;
[5079] Fix | Delete
themesData.custom = themesData.custom || {};
[5080] Fix | Delete
if (migrateToCustomTheme) {
[5081] Fix | Delete
themeSlug = 'custom';
[5082] Fix | Delete
themeName = strings.theme_custom;
[5083] Fix | Delete
}
[5084] Fix | Delete
[5085] Fix | Delete
// Determine the theme slug and the number of copies.
[5086] Fix | Delete
do {
[5087] Fix | Delete
counter++;
[5088] Fix | Delete
themeSlug = themeSlug + '-copy-' + counter;
[5089] Fix | Delete
} while (themesData.custom[themeSlug] && counter < 10000);
[5090] Fix | Delete
var copyStr = counter < 2 ? strings.theme_copy : strings.theme_copy + ' ' + counter;
[5091] Fix | Delete
themeName += ' (' + copyStr + ')';
[5092] Fix | Delete
[5093] Fix | Delete
// The first migrated Custom Theme should be without `(Copy)` suffix.
[5094] Fix | Delete
themeName = migrateToCustomTheme && counter < 2 ? strings.theme_custom : themeName;
[5095] Fix | Delete
[5096] Fix | Delete
// Add the new custom theme.
[5097] Fix | Delete
themesData.custom[themeSlug] = {
[5098] Fix | Delete
name: themeName,
[5099] Fix | Delete
settings: currentStyles || app.getCurrentStyleAttributes(props)
[5100] Fix | Delete
};
[5101] Fix | Delete
app.updateEnabledThemes(themeSlug, themesData.custom[themeSlug]);
[5102] Fix | Delete
[5103] Fix | Delete
// Update the block attributes with the new custom theme settings.
[5104] Fix | Delete
props.setAttributes({
[5105] Fix | Delete
theme: themeSlug,
[5106] Fix | Delete
themeName: themeName
[5107] Fix | Delete
});
[5108] Fix | Delete
return true;
[5109] Fix | Delete
},
[5110] Fix | Delete
/**
[5111] Fix | Delete
* Maybe create custom theme by given attributes.
[5112] Fix | Delete
*
[5113] Fix | Delete
* @since 1.8.8
[5114] Fix | Delete
*
[5115] Fix | Delete
* @param {Object} attributes Block properties.
[5116] Fix | Delete
*
[5117] Fix | Delete
* @return {string} New theme's slug.
[5118] Fix | Delete
*/
[5119] Fix | Delete
maybeCreateCustomThemeFromAttributes: function maybeCreateCustomThemeFromAttributes(attributes) {
[5120] Fix | Delete
var _attributes$themeName;
[5121] Fix | Delete
// eslint-disable-line complexity
[5122] Fix | Delete
var newThemeSlug = attributes.theme;
[5123] Fix | Delete
var existingTheme = app.getTheme(attributes.theme);
[5124] Fix | Delete
var keys = Object.keys(attributes);
[5125] Fix | Delete
var isExistingTheme = Boolean(existingTheme === null || existingTheme === void 0 ? void 0 : existingTheme.settings);
[5126] Fix | Delete
[5127] Fix | Delete
// Check if the theme already exists and has the same settings.
[5128] Fix | Delete
if (isExistingTheme) {
[5129] Fix | Delete
for (var i in keys) {
[5130] Fix | Delete
var key = keys[i];
[5131] Fix | Delete
if (!existingTheme.settings[key] || existingTheme.settings[key] !== attributes[key]) {
[5132] Fix | Delete
isExistingTheme = false;
[5133] Fix | Delete
break;
[5134] Fix | Delete
}
[5135] Fix | Delete
}
[5136] Fix | Delete
}
[5137] Fix | Delete
[5138] Fix | Delete
// The theme exists and has the same settings.
[5139] Fix | Delete
if (isExistingTheme) {
[5140] Fix | Delete
return newThemeSlug;
[5141] Fix | Delete
}
[5142] Fix | Delete
[5143] Fix | Delete
// The theme doesn't exist.
[5144] Fix | Delete
// Normalize the attributes to the default theme settings.
[5145] Fix | Delete
var defaultAttributes = Object.keys(themesData.wpforms.default.settings);
[5146] Fix | Delete
var newSettings = {};
[5147] Fix | Delete
for (var _i in defaultAttributes) {
[5148] Fix | Delete
var _attributes$attr;
[5149] Fix | Delete
var attr = defaultAttributes[_i];
[5150] Fix | Delete
newSettings[attr] = (_attributes$attr = attributes[attr]) !== null && _attributes$attr !== void 0 ? _attributes$attr : '';
[5151] Fix | Delete
}
[5152] Fix | Delete
[5153] Fix | Delete
// Create a new custom theme.
[5154] Fix | Delete
themesData.custom[newThemeSlug] = {
[5155] Fix | Delete
name: (_attributes$themeName = attributes.themeName) !== null && _attributes$themeName !== void 0 ? _attributes$themeName : strings.theme_custom,
[5156] Fix | Delete
settings: newSettings
[5157] Fix | Delete
};
[5158] Fix | Delete
app.updateEnabledThemes(newThemeSlug, themesData.custom[newThemeSlug]);
[5159] Fix | Delete
return newThemeSlug;
[5160] Fix | Delete
},
[5161] Fix | Delete
/**
[5162] Fix | Delete
* Update custom theme.
[5163] Fix | Delete
*
[5164] Fix | Delete
* @since 1.8.8
[5165] Fix | Delete
*
[5166] Fix | Delete
* @param {string} attribute Attribute name.
[5167] Fix | Delete
* @param {string} value New attribute value.
[5168] Fix | Delete
* @param {Object} props Block properties.
[5169] Fix | Delete
*/
[5170] Fix | Delete
updateCustomThemeAttribute: function updateCustomThemeAttribute(attribute, value, props) {
[5171] Fix | Delete
// eslint-disable-line complexity
[5172] Fix | Delete
var themeSlug = props.attributes.theme;
[5173] Fix | Delete
[5174] Fix | Delete
// Skip if it is one of the WPForms themes OR the attribute is not in the theme settings.
[5175] Fix | Delete
if (themesData.wpforms[themeSlug] || attribute !== 'themeName' && !themesData.wpforms.default.settings[attribute]) {
[5176] Fix | Delete
return;
[5177] Fix | Delete
}
[5178] Fix | Delete
[5179] Fix | Delete
// Skip if the custom theme doesn't exist.
[5180] Fix | Delete
// It should never happen, only in some unique circumstances.
[5181] Fix | Delete
if (!themesData.custom[themeSlug]) {
[5182] Fix | Delete
return;
[5183] Fix | Delete
}
[5184] Fix | Delete
[5185] Fix | Delete
// Update theme data.
[5186] Fix | Delete
if (attribute === 'themeName') {
[5187] Fix | Delete
themesData.custom[themeSlug].name = value;
[5188] Fix | Delete
} else {
[5189] Fix | Delete
themesData.custom[themeSlug].settings = themesData.custom[themeSlug].settings || themesData.wpforms.default.settings;
[5190] Fix | Delete
themesData.custom[themeSlug].settings[attribute] = value;
[5191] Fix | Delete
}
[5192] Fix | Delete
[5193] Fix | Delete
// Trigger event for developers.
[5194] Fix | Delete
el.$window.trigger('wpformsFormSelectorUpdateTheme', [themeSlug, themesData.custom[themeSlug], props]);
[5195] Fix | Delete
},
[5196] Fix | Delete
/**
[5197] Fix | Delete
* Get Themes panel JSX code.
[5198] Fix | Delete
*
[5199] Fix | Delete
* @since 1.8.8
[5200] Fix | Delete
*
[5201] Fix | Delete
* @param {Object} props Block properties.
[5202] Fix | Delete
* @param {Object} formSelectorCommonModule Common module.
[5203] Fix | Delete
* @param {Object} stockPhotosModule StockPhotos module.
[5204] Fix | Delete
*
[5205] Fix | Delete
* @return {Object} Themes panel JSX code.
[5206] Fix | Delete
*/
[5207] Fix | Delete
getThemesPanel: function getThemesPanel(props, formSelectorCommonModule, stockPhotosModule) {
[5208] Fix | Delete
// Store common module in app.
[5209] Fix | Delete
formSelectorCommon = formSelectorCommonModule;
[5210] Fix | Delete
state.stockPhotos = stockPhotosModule;
[5211] Fix | Delete
[5212] Fix | Delete
// If there are no themes data, it is necessary to fetch it firstly.
[5213] Fix | Delete
if (!themesData.wpforms) {
[5214] Fix | Delete
app.fetchThemesData();
[5215] Fix | Delete
[5216] Fix | Delete
// Return empty JSX code.
[5217] Fix | Delete
return /*#__PURE__*/React.createElement(React.Fragment, null);
[5218] Fix | Delete
}
[5219] Fix | Delete
[5220] Fix | Delete
// Get event handlers.
[5221] Fix | Delete
var handlers = app.getEventHandlers(props);
[5222] Fix | Delete
var showCustomThemeOptions = formSelectorCommonModule.isFullStylingEnabled() && app.maybeCreateCustomTheme(props);
[5223] Fix | Delete
var checked = formSelectorCommonModule.isFullStylingEnabled() ? props.attributes.theme : 'classic';
[5224] Fix | Delete
return /*#__PURE__*/React.createElement(PanelBody, {
[5225] Fix | Delete
className: formSelectorCommon.getPanelClass(props),
[5226] Fix | Delete
title: strings.themes
[5227] Fix | Delete
}, /*#__PURE__*/React.createElement("p", {
[5228] Fix | Delete
className: "wpforms-gutenberg-panel-notice wpforms-warning wpforms-use-modern-notice"
[5229] Fix | Delete
}, /*#__PURE__*/React.createElement("strong", null, strings.use_modern_notice_head), strings.use_modern_notice_text, " ", /*#__PURE__*/React.createElement("a", {
[5230] Fix | Delete
href: strings.use_modern_notice_link,
[5231] Fix | Delete
rel: "noreferrer",
[5232] Fix | Delete
target: "_blank"
[5233] Fix | Delete
}, strings.learn_more)), /*#__PURE__*/React.createElement("p", {
[5234] Fix | Delete
className: "wpforms-gutenberg-panel-notice wpforms-warning wpforms-lead-form-notice",
[5235] Fix | Delete
style: {
[5236] Fix | Delete
display: 'none'
[5237] Fix | Delete
}
[5238] Fix | Delete
}, /*#__PURE__*/React.createElement("strong", null, strings.lead_forms_panel_notice_head), strings.lead_forms_panel_notice_text), /*#__PURE__*/React.createElement(RadioGroup, {
[5239] Fix | Delete
className: "wpforms-gutenberg-form-selector-themes-radio-group",
[5240] Fix | Delete
label: strings.themes,
[5241] Fix | Delete
checked: checked,
[5242] Fix | Delete
defaultChecked: props.attributes.theme,
[5243] Fix | Delete
onChange: function onChange(value) {
[5244] Fix | Delete
return handlers.selectTheme(value);
[5245] Fix | Delete
}
[5246] Fix | Delete
}, app.getThemesItemsJSX(props)), showCustomThemeOptions && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextControl, {
[5247] Fix | Delete
className: "wpforms-gutenberg-form-selector-themes-theme-name",
[5248] Fix | Delete
label: strings.theme_name,
[5249] Fix | Delete
value: props.attributes.themeName,
[5250] Fix | Delete
onChange: function onChange(value) {
[5251] Fix | Delete
return handlers.changeThemeName(value);
[5252] Fix | Delete
}
[5253] Fix | Delete
}), /*#__PURE__*/React.createElement(Button, {
[5254] Fix | Delete
isSecondary: true,
[5255] Fix | Delete
className: "wpforms-gutenberg-form-selector-themes-delete",
[5256] Fix | Delete
onClick: handlers.deleteTheme,
[5257] Fix | Delete
buttonSettings: ""
[5258] Fix | Delete
}, strings.theme_delete)));
[5259] Fix | Delete
},
[5260] Fix | Delete
/**
[5261] Fix | Delete
* Get the Themes panel items JSX code.
[5262] Fix | Delete
*
[5263] Fix | Delete
* @since 1.8.8
[5264] Fix | Delete
*
[5265] Fix | Delete
* @param {Object} props Block properties.
[5266] Fix | Delete
*
[5267] Fix | Delete
* @return {Array} Themes items JSX code.
[5268] Fix | Delete
*/
[5269] Fix | Delete
getThemesItemsJSX: function getThemesItemsJSX(props) {
[5270] Fix | Delete
// eslint-disable-line complexity
[5271] Fix | Delete
var allThemesData = app.getAllThemes();
[5272] Fix | Delete
if (!allThemesData) {
[5273] Fix | Delete
return [];
[5274] Fix | Delete
}
[5275] Fix | Delete
var itemsJsx = [];
[5276] Fix | Delete
var themes = Object.keys(allThemesData);
[5277] Fix | Delete
var theme, firstThemeSlug;
[5278] Fix | Delete
[5279] Fix | Delete
// Display the current custom theme on the top of the list.
[5280] Fix | Delete
if (!app.isWPFormsTheme(props.attributes.theme)) {
[5281] Fix | Delete
firstThemeSlug = props.attributes.theme;
[5282] Fix | Delete
itemsJsx.push(app.getThemesItemJSX(props.attributes.theme, app.getTheme(props.attributes.theme)));
[5283] Fix | Delete
}
[5284] Fix | Delete
for (var key in themes) {
[5285] Fix | Delete
var slug = themes[key];
[5286] Fix | Delete
[5287] Fix | Delete
// Skip the first theme.
[5288] Fix | Delete
if (firstThemeSlug && firstThemeSlug === slug) {
[5289] Fix | Delete
continue;
[5290] Fix | Delete
}
[5291] Fix | Delete
[5292] Fix | Delete
// Ensure that all the theme settings are present.
[5293] Fix | Delete
theme = _objectSpread(_objectSpread({}, allThemesData.default), allThemesData[slug] || {});
[5294] Fix | Delete
theme.settings = _objectSpread(_objectSpread({}, allThemesData.default.settings), theme.settings || {});
[5295] Fix | Delete
itemsJsx.push(app.getThemesItemJSX(slug, theme));
[5296] Fix | Delete
}
[5297] Fix | Delete
return itemsJsx;
[5298] Fix | Delete
},
[5299] Fix | Delete
/**
[5300] Fix | Delete
* Get the Themes panel's single item JSX code.
[5301] Fix | Delete
*
[5302] Fix | Delete
* @since 1.8.8
[5303] Fix | Delete
*
[5304] Fix | Delete
* @param {string} slug Theme slug.
[5305] Fix | Delete
* @param {Object} theme Theme data.
[5306] Fix | Delete
*
[5307] Fix | Delete
* @return {Object|null} Themes panel single item JSX code.
[5308] Fix | Delete
*/
[5309] Fix | Delete
getThemesItemJSX: function getThemesItemJSX(slug, theme) {
[5310] Fix | Delete
var _theme$name;
[5311] Fix | Delete
if (!theme) {
[5312] Fix | Delete
return null;
[5313] Fix | Delete
}
[5314] Fix | Delete
var title = ((_theme$name = theme.name) === null || _theme$name === void 0 ? void 0 : _theme$name.length) > 0 ? theme.name : strings.theme_noname;
[5315] Fix | Delete
return /*#__PURE__*/React.createElement(Radio, {
[5316] Fix | Delete
value: slug,
[5317] Fix | Delete
title: title
[5318] Fix | Delete
}, /*#__PURE__*/React.createElement("div", {
[5319] Fix | Delete
className: app.isDisabledTheme(slug) ? 'wpforms-gutenberg-form-selector-themes-radio-disabled' : ''
[5320] Fix | Delete
}, /*#__PURE__*/React.createElement("div", {
[5321] Fix | Delete
className: "wpforms-gutenberg-form-selector-themes-radio-title"
[5322] Fix | Delete
}, title)), /*#__PURE__*/React.createElement(ColorIndicator, {
[5323] Fix | Delete
colorValue: theme.settings.buttonBackgroundColor,
[5324] Fix | Delete
title: strings.button_background
[5325] Fix | Delete
}), /*#__PURE__*/React.createElement(ColorIndicator, {
[5326] Fix | Delete
colorValue: theme.settings.buttonTextColor,
[5327] Fix | Delete
title: strings.button_text
[5328] Fix | Delete
}), /*#__PURE__*/React.createElement(ColorIndicator, {
[5329] Fix | Delete
colorValue: theme.settings.labelColor,
[5330] Fix | Delete
title: strings.field_label
[5331] Fix | Delete
}), /*#__PURE__*/React.createElement(ColorIndicator, {
[5332] Fix | Delete
colorValue: theme.settings.labelSublabelColor,
[5333] Fix | Delete
title: strings.field_sublabel
[5334] Fix | Delete
}), /*#__PURE__*/React.createElement(ColorIndicator, {
[5335] Fix | Delete
colorValue: theme.settings.fieldBorderColor,
[5336] Fix | Delete
title: strings.field_border
[5337] Fix | Delete
}));
[5338] Fix | Delete
},
[5339] Fix | Delete
/**
[5340] Fix | Delete
* Set block theme.
[5341] Fix | Delete
*
[5342] Fix | Delete
* @since 1.8.8
[5343] Fix | Delete
*
[5344] Fix | Delete
* @param {Object} props Block properties.
[5345] Fix | Delete
* @param {string} themeSlug The theme slug.
[5346] Fix | Delete
*
[5347] Fix | Delete
* @return {boolean} True on success.
[5348] Fix | Delete
*/
[5349] Fix | Delete
setBlockTheme: function setBlockTheme(props, themeSlug) {
[5350] Fix | Delete
if (app.maybeDisplayUpgradeModal(themeSlug)) {
[5351] Fix | Delete
return false;
[5352] Fix | Delete
}
[5353] Fix | Delete
var theme = app.getTheme(themeSlug);
[5354] Fix | Delete
if (!(theme !== null && theme !== void 0 && theme.settings)) {
[5355] Fix | Delete
return false;
[5356] Fix | Delete
}
[5357] Fix | Delete
var attributes = Object.keys(theme.settings);
[5358] Fix | Delete
var block = formSelectorCommon.getBlockContainer(props);
[5359] Fix | Delete
var container = block.querySelector("#wpforms-".concat(props.attributes.formId));
[5360] Fix | Delete
[5361] Fix | Delete
// Overwrite block attributes with the new theme settings.
[5362] Fix | Delete
// It is needed to rely on the theme settings only.
[5363] Fix | Delete
var newProps = _objectSpread(_objectSpread({}, props), {}, {
[5364] Fix | Delete
attributes: _objectSpread(_objectSpread({}, props.attributes), theme.settings)
[5365] Fix | Delete
});
[5366] Fix | Delete
[5367] Fix | Delete
// Update the preview with the new theme settings.
[5368] Fix | Delete
for (var key in attributes) {
[5369] Fix | Delete
var attr = attributes[key];
[5370] Fix | Delete
theme.settings[attr] = theme.settings[attr] === '0' ? '0px' : theme.settings[attr];
[5371] Fix | Delete
formSelectorCommon.updatePreviewCSSVarValue(attr, theme.settings[attr], container, newProps);
[5372] Fix | Delete
}
[5373] Fix | Delete
[5374] Fix | Delete
// Prepare the new attributes to be set.
[5375] Fix | Delete
var setAttributes = _objectSpread({
[5376] Fix | Delete
theme: themeSlug,
[5377] Fix | Delete
themeName: theme.name
[5378] Fix | Delete
}, theme.settings);
[5379] Fix | Delete
if (props.setAttributes) {
[5380] Fix | Delete
// Update the block attributes with the new theme settings.
[5381] Fix | Delete
props.setAttributes(setAttributes);
[5382] Fix | Delete
}
[5383] Fix | Delete
[5384] Fix | Delete
// Trigger event for developers.
[5385] Fix | Delete
el.$window.trigger('wpformsFormSelectorSetTheme', [block, themeSlug, props]);
[5386] Fix | Delete
return true;
[5387] Fix | Delete
},
[5388] Fix | Delete
/**
[5389] Fix | Delete
* Maybe display upgrades modal in Lite.
[5390] Fix | Delete
*
[5391] Fix | Delete
* @since 1.8.8
[5392] Fix | Delete
*
[5393] Fix | Delete
* @param {string} themeSlug The theme slug.
[5394] Fix | Delete
*
[5395] Fix | Delete
* @return {boolean} True if modal was displayed.
[5396] Fix | Delete
*/
[5397] Fix | Delete
maybeDisplayUpgradeModal: function maybeDisplayUpgradeModal(themeSlug) {
[5398] Fix | Delete
if (!app.isDisabledTheme(themeSlug)) {
[5399] Fix | Delete
return false;
[5400] Fix | Delete
}
[5401] Fix | Delete
if (!isPro) {
[5402] Fix | Delete
formSelectorCommon.education.showProModal('themes', strings.themes);
[5403] Fix | Delete
return true;
[5404] Fix | Delete
}
[5405] Fix | Delete
if (!isLicenseActive) {
[5406] Fix | Delete
formSelectorCommon.education.showLicenseModal('themes', strings.themes, 'select-theme');
[5407] Fix | Delete
return true;
[5408] Fix | Delete
}
[5409] Fix | Delete
return false;
[5410] Fix | Delete
},
[5411] Fix | Delete
/**
[5412] Fix | Delete
* Get themes panel event handlers.
[5413] Fix | Delete
*
[5414] Fix | Delete
* @since 1.8.8
[5415] Fix | Delete
*
[5416] Fix | Delete
* @param {Object} props Block properties.
[5417] Fix | Delete
*
[5418] Fix | Delete
* @type {Object}
[5419] Fix | Delete
*/
[5420] Fix | Delete
getEventHandlers: function getEventHandlers(props) {
[5421] Fix | Delete
// eslint-disable-line max-lines-per-function
[5422] Fix | Delete
var commonHandlers = formSelectorCommon.getSettingsFieldsHandlers(props);
[5423] Fix | Delete
var handlers = {
[5424] Fix | Delete
/**
[5425] Fix | Delete
* Select theme event handler.
[5426] Fix | Delete
*
[5427] Fix | Delete
* @since 1.8.8
[5428] Fix | Delete
*
[5429] Fix | Delete
* @param {string} value New attribute value.
[5430] Fix | Delete
*/
[5431] Fix | Delete
selectTheme: function selectTheme(value) {
[5432] Fix | Delete
var _state$stockPhotos;
[5433] Fix | Delete
if (!app.setBlockTheme(props, value)) {
[5434] Fix | Delete
return;
[5435] Fix | Delete
}
[5436] Fix | Delete
[5437] Fix | Delete
// Maybe open Stock Photo installation window.
[5438] Fix | Delete
state === null || state === void 0 || (_state$stockPhotos = state.stockPhotos) === null || _state$stockPhotos === void 0 || _state$stockPhotos.onSelectTheme(value, props, app, commonHandlers);
[5439] Fix | Delete
var block = formSelectorCommon.getBlockContainer(props);
[5440] Fix | Delete
formSelectorCommon.setTriggerServerRender(false);
[5441] Fix | Delete
commonHandlers.updateCopyPasteContent();
[5442] Fix | Delete
[5443] Fix | Delete
// Trigger event for developers.
[5444] Fix | Delete
el.$window.trigger('wpformsFormSelectorSelectTheme', [block, props, value]);
[5445] Fix | Delete
},
[5446] Fix | Delete
/**
[5447] Fix | Delete
* Change theme name event handler.
[5448] Fix | Delete
*
[5449] Fix | Delete
* @since 1.8.8
[5450] Fix | Delete
*
[5451] Fix | Delete
* @param {string} value New attribute value.
[5452] Fix | Delete
*/
[5453] Fix | Delete
changeThemeName: function changeThemeName(value) {
[5454] Fix | Delete
formSelectorCommon.setTriggerServerRender(false);
[5455] Fix | Delete
props.setAttributes({
[5456] Fix | Delete
themeName: value
[5457] Fix | Delete
});
[5458] Fix | Delete
app.updateCustomThemeAttribute('themeName', value, props);
[5459] Fix | Delete
},
[5460] Fix | Delete
/**
[5461] Fix | Delete
* Delete theme event handler.
[5462] Fix | Delete
*
[5463] Fix | Delete
* @since 1.8.8
[5464] Fix | Delete
*/
[5465] Fix | Delete
deleteTheme: function deleteTheme() {
[5466] Fix | Delete
var deleteThemeSlug = props.attributes.theme;
[5467] Fix | Delete
[5468] Fix | Delete
// Remove theme from the theme storage.
[5469] Fix | Delete
delete themesData.custom[deleteThemeSlug];
[5470] Fix | Delete
[5471] Fix | Delete
// Open the confirmation modal window.
[5472] Fix | Delete
app.deleteThemeModal(props, deleteThemeSlug, handlers);
[5473] Fix | Delete
}
[5474] Fix | Delete
};
[5475] Fix | Delete
return handlers;
[5476] Fix | Delete
},
[5477] Fix | Delete
/**
[5478] Fix | Delete
* Open the theme delete confirmation modal window.
[5479] Fix | Delete
*
[5480] Fix | Delete
* @since 1.8.8
[5481] Fix | Delete
*
[5482] Fix | Delete
* @param {Object} props Block properties.
[5483] Fix | Delete
* @param {string} deleteThemeSlug Theme slug.
[5484] Fix | Delete
* @param {Object} handlers Block event handlers.
[5485] Fix | Delete
*/
[5486] Fix | Delete
deleteThemeModal: function deleteThemeModal(props, deleteThemeSlug, handlers) {
[5487] Fix | Delete
var confirm = strings.theme_delete_confirm.replace('%1$s', "<b>".concat(props.attributes.themeName, "</b>"));
[5488] Fix | Delete
var content = "<p class=\"wpforms-theme-delete-text\">".concat(confirm, " ").concat(strings.theme_delete_cant_undone, "</p>");
[5489] Fix | Delete
$.confirm({
[5490] Fix | Delete
title: strings.theme_delete_title,
[5491] Fix | Delete
content: content,
[5492] Fix | Delete
icon: 'wpforms-exclamation-circle',
[5493] Fix | Delete
type: 'red',
[5494] Fix | Delete
buttons: {
[5495] Fix | Delete
confirm: {
[5496] Fix | Delete
text: strings.theme_delete_yes,
[5497] Fix | Delete
btnClass: 'btn-confirm',
[5498] Fix | Delete
keys: ['enter'],
[5499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function