Merged in feature/from-pantheon (pull request #16)

code from pantheon

* code from pantheon
This commit is contained in:
Tony Volpe
2024-01-10 17:03:02 +00:00
parent 054b4fffc9
commit 4eb982d7a8
16492 changed files with 3475854 additions and 0 deletions

View File

@@ -0,0 +1,226 @@
var $ = jQuery.noConflict(),
dtx = {
queue: [],
init: function() {
var $inputs = $('input.dtx-pageload[data-dtx-value]');
if ($inputs.length) {
// If this is any of our built-in shortcodes, see if there's any that can be duplicated via client side
$inputs.each(function(i, el) {
var $input = $(el),
raw_value = $input.attr('data-dtx-value'),
v = decodeURIComponent(raw_value).split(' ');
if (v.length) {
var tag = v[0],
atts = {};
if (v.length > 1) {
for (var x = 1; x < v.length; x++) {
var att = v[x].split('=');
if (att.length === 2) {
var key = att[0];
atts[key] = att[1].split("'").join('');
}
}
}
var value = '';
switch (tag) {
case 'CF7_GET':
value = dtx.get(atts);
break;
case 'CF7_referrer':
value = dtx.referrer(atts);
break;
case 'CF7_URL':
value = dtx.current_url(atts);
break;
case 'CF7_get_cookie':
value = dtx.get_cookie(atts);
break;
case 'CF7_guid':
value = dtx.guid();
break;
case 'CF7_get_current_var':
if (dtx.validKey(atts, 'key') && atts.key == 'url') {
value = dtx.current_url(atts);
} else {
return; // Do nothing, current page variables are safe to cache, just use the value that was calculated by server
}
break;
case 'CF7_get_post_var': // Current post variables are safe to cache
case 'CF7_get_custom_field': // Meta data is safe to cache
case 'CF7_get_taxonomy': // Terms are safe to cache
case 'CF7_get_attachment': // Media attachment info is safe to cache
case 'CF7_bloginfo': // Site info is safe to cache
case 'CF7_get_theme_option': // Theme options are safe to cache
return; // Do nothing, just use the value that was calculated by server
default:
if (tag) {
// Queue the requests for an AJAX call at the end of init
dtx.queue.push({ 'value': raw_value, 'multiline': $input.is('textarea') });
}
return; // Don't continue after queuing it for AJAX
}
dtx.set($input, value);
}
});
if (dtx.queue.length) {
setTimeout(function() { // Set timeout to force it async
$.ajax({
type: 'POST',
url: dtx_obj.ajax_url,
dataType: 'json', // only accept strict JSON objects
data: {
'action': 'wpcf7dtx',
'shortcodes': dtx.queue
},
cache: false,
error: function(xhr, status, error) {
console.error('[CF7 DTX AJAX ERROR]', error, status, xhr);
},
success: function(data, status, xhr) {
if (typeof(data) == 'object' && data.length) {
$.each(data, function(i, obj) {
var $inputs = $('.wpcf7 form input.dtx-pageload[data-dtx-value="' + obj.raw_value + '"]');
if ($inputs.length) {
dtx.set($inputs, obj.value);
$inputs.addClass('dtx-ajax-loaded');
}
});
}
}
});
}, 10);
}
}
},
/**
* Check if Key Exists in Object
*/
validKey: function(obj, key) {
return obj.hasOwnProperty(key) && typeof(obj[key]) == 'string' && obj[key].trim();
},
/**
* Maybe Obfuscate Value
*
* @see https://aurisecreative.com/docs/contact-form-7-dynamic-text-extension/shortcodes/dtx-attribute-obfuscate/
*/
obfuscate: function(value, atts) {
value = value.trim();
if (dtx.validKey(atts, 'obfuscate') && atts.obfuscate) {
var o = '';
for (var i = 0; i < value.length; i++) {
o += '&#' + value.codePointAt(i) + ';';
}
return o;
}
return value;
},
/**
* Set Value for Form Field
*/
set: function($input, value) {
$input.attr('value', value).addClass('dtx-loaded');
},
/**
* Get Value form URL Query by Key
*
* @see @see https://aurisecreative.com/docs/contact-form-7-dynamic-text-extension/shortcodes/dtx-shortcode-php-get-variables/
*/
get: function(atts) {
if (dtx.validKey(atts, 'key')) {
var query = window.location.search;
if (query) {
query = new URLSearchParams(query);
return dtx.obfuscate(query.get(atts.key).trim(), atts);
}
}
return '';
},
/**
* Get Referrering URL
*
* @see https://aurisecreative.com/docs/contact-form-7-dynamic-text-extension/shortcodes/dtx-shortcode-referrer-url/
*/
referrer: function(atts) {
return dtx.obfuscate(document.referrer, atts);
},
/**
* Get Current URL or Part
*
* @see https://aurisecreative.com/docs/contact-form-7-dynamic-text-extension/shortcodes/dtx-shortcode-current-url/
*/
current_url: function(atts) {
if (atts.hasOwnProperty('part')) {
var parts = [
'scheme', // e.g. `http`
'host',
'port',
'path',
'query', // after the question mark ?
'fragment' // after the pound sign #
];
if (parts.includes(atts.part)) {
// return part of the url
switch (atts.part) {
case 'scheme':
return dtx.obfuscate(window.location.protocol.replace(':', ''), atts);
case 'host':
return dtx.obfuscate(window.location.host, atts);
case 'port':
return dtx.obfuscate(window.location.port, atts);
case 'path':
return dtx.obfuscate(window.location.pathname, atts);
case 'query':
return dtx.obfuscate(window.location.search.replace('?', ''), atts);
case 'fragment':
return dtx.obfuscate(window.location.hash.replace('#', ''), atts);
default:
break;
}
}
} else {
return dtx.obfuscate(window.location.href, atts); // Return the full url
}
return '';
},
/**
* Get Cookie Value
*
* @since 3.3.0
*
* @see https://aurisecreative.com/docs/contact-form-7-dynamic-text-extension/shortcodes/dtx-shortcode-cookie/
*/
get_cookie: function(atts) {
if (atts.hasOwnProperty('key') && typeof(atts.key) == 'string' && atts.key.trim() != '') {
var keyValue = document.cookie.match('(^|;) ?' + atts.key.trim() + '=([^;]*)(;|$)');
return keyValue ? dtx.obfuscate(keyValue[2], atts) : '';
}
return '';
},
/**
* Generate a random GUID (globally unique identifier)
*
* @see https://aurisecreative.com/docs/contact-form-7-dynamic-text-extension/shortcodes/dtx-shortcode-guid/
*/
guid: function() {
if (typeof(window.crypto) != 'undefined' && typeof(window.crypto.getRandomValues) != 'undefined') {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
).toUpperCase();
}
console.warn('[CF7 DTX] Cryptographically secure PRNG is not available for generating GUID value');
var d = new Date().getTime(), //Timestamp
d2 = ((typeof performance !== 'undefined') && performance.now && (performance.now() * 1000)) || 0; //Time in microseconds since page-load or 0 if unsupported
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16; //random number between 0 and 16
if (d > 0) { //Use timestamp until depleted
r = (d + r) % 16 | 0;
d = Math.floor(d / 16);
} else { //Use microseconds since page-load if supported
r = (d2 + r) % 16 | 0;
d2 = Math.floor(d2 / 16);
}
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16).toUpperCase();
}).toUpperCase();;
}
};
$(document).ready(dtx.init);

View File

@@ -0,0 +1,2 @@
/*! Do not edit, this file is generated automatically - 2023-09-18 14:09:50 EDT */
var $=jQuery.noConflict(),dtx={queue:[],init:function(){var e=$("input.dtx-pageload[data-dtx-value]");e.length&&(e.each(function(e,t){var r=$(t),a=r.attr("data-dtx-value"),o=decodeURIComponent(a).split(" ");if(o.length){var n=o[0],c={};if(1<o.length)for(var u=1;u<o.length;u++){var i=o[u].split("="),d;2===i.length&&(c[i[0]]=i[1].split("'").join(""))}var s="";switch(n){case"CF7_GET":s=dtx.get(c);break;case"CF7_referrer":s=dtx.referrer(c);break;case"CF7_URL":s=dtx.current_url(c);break;case"CF7_get_cookie":s=dtx.get_cookie(c);break;case"CF7_guid":s=dtx.guid();break;case"CF7_get_current_var":if(!dtx.validKey(c,"key")||"url"!=c.key)return;s=dtx.current_url(c);break;case"CF7_get_post_var":case"CF7_get_custom_field":case"CF7_get_taxonomy":case"CF7_get_attachment":case"CF7_bloginfo":case"CF7_get_theme_option":return;default:return void(n&&dtx.queue.push({value:a,multiline:r.is("textarea")}))}dtx.set(r,s)}}),dtx.queue.length)&&setTimeout(function(){$.ajax({type:"POST",url:dtx_obj.ajax_url,dataType:"json",data:{action:"wpcf7dtx",shortcodes:dtx.queue},cache:!1,error:function(e,t,r){},success:function(e,t,r){"object"==typeof e&&e.length&&$.each(e,function(e,t){var r=$('.wpcf7 form input.dtx-pageload[data-dtx-value="'+t.raw_value+'"]');r.length&&(dtx.set(r,t.value),r.addClass("dtx-ajax-loaded"))})}})},10)},validKey:function(e,t){return e.hasOwnProperty(t)&&"string"==typeof e[t]&&e[t].trim()},obfuscate:function(e,t){if(e=e.trim(),dtx.validKey(t,"obfuscate")&&t.obfuscate){for(var r="",a=0;a<e.length;a++)r+="&#"+e.codePointAt(a)+";";return r}return e},set:function(e,t){e.attr("value",t).addClass("dtx-loaded")},get:function(e){if(dtx.validKey(e,"key")){var t=window.location.search;if(t)return t=new URLSearchParams(t),dtx.obfuscate(t.get(e.key).trim(),e)}return""},referrer:function(e){return dtx.obfuscate(document.referrer,e)},current_url:function(e){if(!e.hasOwnProperty("part"))return dtx.obfuscate(window.location.href,e);var t;if(["scheme","host","port","path","query","fragment"].includes(e.part))switch(e.part){case"scheme":return dtx.obfuscate(window.location.protocol.replace(":",""),e);case"host":return dtx.obfuscate(window.location.host,e);case"port":return dtx.obfuscate(window.location.port,e);case"path":return dtx.obfuscate(window.location.pathname,e);case"query":return dtx.obfuscate(window.location.search.replace("?",""),e);case"fragment":return dtx.obfuscate(window.location.hash.replace("#",""),e)}return""},get_cookie:function(e){var t;return e.hasOwnProperty("key")&&"string"==typeof e.key&&""!=e.key.trim()&&(t=document.cookie.match("(^|;) ?"+e.key.trim()+"=([^;]*)(;|$)"))?dtx.obfuscate(t[2],e):""},guid:function(){var r,a;return(void 0!==window.crypto&&void 0!==window.crypto.getRandomValues?([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16)):(r=(new Date).getTime(),a="undefined"!=typeof performance&&performance.now&&1e3*performance.now()||0,"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random();return 0<r?(t=(r+t)%16|0,r=Math.floor(r/16)):(t=(a+t)%16|0,a=Math.floor(a/16)),("x"===e?t:3&t|8).toString(16).toUpperCase()}))).toUpperCase()}};$(document).ready(dtx.init);

View File

@@ -0,0 +1,39 @@
(function($) {
'use strict';
if (typeof wpcf7 === 'undefined' || wpcf7 === null) {
return;
}
window.wpcf7dtx = window.wpcf7dtx || {};
wpcf7dtx.taggen = {};
wpcf7dtx.taggen.escapeRegExp = function(str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
};
wpcf7dtx.taggen.replaceAll = function(input, f, r, no_escape) {
if (input !== undefined && input !== null && typeof(input) == 'string' && input.trim() !== '' && input.indexOf(f) > -1) {
var rexp = new RegExp(wpcf7dtx.taggen.escapeRegExp(f), 'g');
if (no_escape) { rexp = new RegExp(f, 'g'); }
return input.replace(rexp, r);
}
return input;
};
wpcf7dtx.taggen.updateOption = function(e) {
var $this = $(e.currentTarget),
value = encodeURIComponent(wpcf7dtx.taggen.replaceAll($this.val(), "'", '&#39;'));
$this.siblings('input[type="hidden"].option').val(value);
};
$(function() {
$('form.tag-generator-panel .dtx-option').on('change keyup click', wpcf7dtx.taggen.updateOption);
$('.contact-form-editor-panel #tag-generator-list a.thickbox.button[href*="inlineId=tag-generator-panel-dynamic_"]').each(function() {
var $btn = $(this),
name = $btn.text();
$btn.addClass('dtx-form-tag');
if (name == 'dynamic drop-down menu' || name == 'dynamic checkboxes' || name == 'dynamic radio buttons') {
$btn.attr('href', $btn.attr('href').replace('height=500', 'height=750'));
}
});
});
})(jQuery);

View File

@@ -0,0 +1,2 @@
/*! Do not edit, this file is generated automatically - 2023-09-18 14:09:50 EDT */
!function(n){"use strict";"undefined"!=typeof wpcf7&&null!==wpcf7&&(window.wpcf7dtx=window.wpcf7dtx||{},wpcf7dtx.taggen={},wpcf7dtx.taggen.escapeRegExp=function(e){return e.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")},wpcf7dtx.taggen.replaceAll=function(e,t,n,a){var c;return null!=e&&"string"==typeof e&&""!==e.trim()&&-1<e.indexOf(t)?(c=new RegExp(wpcf7dtx.taggen.escapeRegExp(t),"g"),a&&(c=new RegExp(t,"g")),e.replace(c,n)):e},wpcf7dtx.taggen.updateOption=function(e){var e=n(e.currentTarget),t=encodeURIComponent(wpcf7dtx.taggen.replaceAll(e.val(),"'","&#39;"));e.siblings('input[type="hidden"].option').val(t)},n(function(){n("form.tag-generator-panel .dtx-option").on("change keyup click",wpcf7dtx.taggen.updateOption),n('.contact-form-editor-panel #tag-generator-list a.thickbox.button[href*="inlineId=tag-generator-panel-dynamic_"]').each(function(){var e=n(this),t=e.text();e.addClass("dtx-form-tag"),"dynamic drop-down menu"!=t&&"dynamic checkboxes"!=t&&"dynamic radio buttons"!=t||e.attr("href",e.attr("href").replace("height=500","height=750"))})}))}(jQuery);