mindstream-react-gravity-form
Version:
A component for including Gravity Forms on React apps via the Wordpress API
2 lines • 22.9 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateField=exports.isRequired=exports.isEmail=exports.isUrl=exports.checkboxValidation=exports.selectValidation=exports.isEmpty=void 0;function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}var getMessage=function(a,b){return!!b&&(a&&"object"===_typeof(a)&&a.custom?a.custom:a&&"object"===_typeof(a)&&a[b]?a[b]:a)},isEmail=function(a,b,c){if(!/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(a)){var d=getMessage(c,"email");return d||"Enter a valid email"}return!1};exports.isEmail=isEmail;var isUrl=function(a,b,c){if(!/^(https?:\/\/)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?(\#[-a-z\d_]*)?$/i.test(a)){var d=getMessage(c,"url");return d||"Enter a valid url"}return!1};exports.isUrl=isUrl;var isEmpty=function(a){return!a};exports.isEmpty=isEmpty;var isRequired=function(a,b,c){if(a&&b){var d=getMessage(c,"required");return d||"This field is required"}return!1};exports.isRequired=isRequired;var selectValidation=function(a,b,c){return!(b===c&&a)};exports.selectValidation=selectValidation;var checkboxValidation=function(a,b){return!!(1>a.length)&&(b||"This field is required")};exports.checkboxValidation=checkboxValidation;var emailValidation=function(a,b){var c=b||!1,d=c.inputs,e=c.isRequired,f=c.errorMessage,g=f||!1,h=g.required,j=g.mismatch,k=a&&a.filter(function(a){return a&&""===a.val}).length;if((a&&2>a.length||0!==k)&&e)return h||"This field is required";if(a&&0<a.length)for(var l,m=0;a.length>m;m++)if(l=isEmail(a[m].val),l)return l;return!!(a&&2===a.length&&d&&2===d.length&&a[1]&&a[0]&&""!==a[1].val&&a[1].val!==a[0].val)&&(j||"Mismatch")},passwordValidation=function(a,b){var c=b||!1,d=c.inputs,e=c.isRequired,f=c.errorMessage,g=f||!1,h=g.required,i=g.mismatch,j=d.filter(function(a){return!a.isHidden}),k=a&&a.filter(function(a){return a&&""===a.val}).length;return(a&&0===a.length||k===j.length)&&e?h||"This field is required":!!(a&&2===a.length&&j&&2===j.length&&a[1]&&a[0]&&""!==a[1].val&&a[1].val!==a[0].val)&&(i||"Mismatch")},isPostcode=function(a,b,c){if(!/^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(a)){var d=getMessage(c,"email");return d||"Enter a valid postcode"}return!1},isDate=function(a,b){for(var c=[],d=0;d<a.length;d++)if(a[d]){var e=a[d],f=e.val,g=e.label;if(f)if("MM"===g){var h=b.errorMessage.month;(f.length>2||f<1||f>12)&&(c[d]={index:d,message:getMessage(h,"date")||"Enter a valid month"})}else if("DD"===g){var j=b.errorMessage.date;(f.length>2||f<1||f>31)&&(c[d]={index:d,message:getMessage(j,"date")||"Enter a valid date"})}else if("YYYY"===g){var k=b.errorMessage.year,l=new Date().getFullYear()+1;(f.length>4||f<1920||f>l)&&(c[d]={index:d,message:getMessage(k,"date")||"Enter a valid year"})}}return c},validateField=function(a,b){var c=b.type,d=b.isRequired;if(("checkbox"===c||"radio"===c)&&d)return checkboxValidation(a,b.errorMessage);if("password"===c)return passwordValidation(a,b);if("email"===c&&b.emailConfirmEnabled)return emailValidation(a,b);var e=isEmpty(a),f="",g=!!(b&&b.errorMessage)&&b.errorMessage;if(f=!!d&&isRequired(d,e,g),!f&&!e)if("email"===c)f=isEmail(a,b,g);else if("website"===c)f=isUrl(a,b,g);else if("date"===c){var h=!0;h=b.dateType&&"datepicker"===b.dateType?!!d&&isRequired(d,e,g):isDate(a,b),f=!!(0<h.length)&&h}else"postcode"===c&&(f=isPostcode(a,b,g));return f};exports.validateField=validateField;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9IZWxwZXJzL3ZhbGlkYXRpb24uanMiXSwibmFtZXMiOlsiZ2V0TWVzc2FnZSIsIm1lc3NhZ2UiLCJ0eXBlIiwiY3VzdG9tIiwiaXNFbWFpbCIsImVtYWlsIiwiZmllbGQiLCJ0ZXN0IiwiY3VzdG9tTWVzc2FnZSIsImlzVXJsIiwic3RyIiwiaXNFbXB0eSIsInZhbHVlIiwiaXNSZXF1aXJlZCIsInJlcXVpcmVkIiwiZW1wdHkiLCJzZWxlY3RWYWxpZGF0aW9uIiwicGxhY2Vob2xkZXIiLCJjaGVja2JveFZhbGlkYXRpb24iLCJ2YWx1ZXMiLCJsZW5ndGgiLCJlbWFpbFZhbGlkYXRpb24iLCJpbnB1dHMiLCJlcnJvck1lc3NhZ2UiLCJyZXF1aXJlZE1zZyIsIm1pc21hdGNoIiwiaXNJbnB1dHNFbXB0eSIsImZpbHRlciIsIml0ZW0iLCJ2YWwiLCJpc0luVmFsaWRNYWlsIiwiaSIsInBhc3N3b3JkVmFsaWRhdGlvbiIsImZpbHRlcmVkSW5wdXRzIiwiaXNIaWRkZW4iLCJpc1Bvc3Rjb2RlIiwicG9zdGNvZGUiLCJpc0RhdGUiLCJ2YWxpZGF0aW9uIiwibGFiZWwiLCJpbmRleCIsIm1heCIsIkRhdGUiLCJnZXRGdWxsWWVhciIsInZhbGlkYXRlRmllbGQiLCJlbWFpbENvbmZpcm1FbmFibGVkIiwidmFsaWRhdGlvbk1lc3NhZ2UiLCJpc1ZhbGlkIiwiZGF0ZVR5cGUiXSwibWFwcGluZ3MiOiIyZUFBTUEsQ0FBQUEsVUFBVSxDQUFHLFNBQUNDLENBQUQsQ0FBVUMsQ0FBVixDQUFtQixTQUMvQkEsQ0FEK0IsR0FJaENELENBQU8sRUFBdUIsUUFBbkIsV0FBT0EsQ0FBUCxDQUFYLEVBQTBDQSxDQUFPLENBQUNFLE1BSmxCLENBSzNCRixDQUFPLENBQUNFLE1BTG1CLENBUWhDRixDQUFPLEVBQXVCLFFBQW5CLFdBQU9BLENBQVAsQ0FBWCxFQUEwQ0EsQ0FBTyxDQUFDQyxDQUFELENBUmpCLENBUzNCRCxDQUFPLENBQUNDLENBQUQsQ0FUb0IsQ0FZ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QUNDLENBQUQsQ0FBV0MsQ0FBWCxDQUFrQmQsQ0FBbEIsQ0FIUCxDQUtkb0MsTUFBTSxDQUFDekIsQ0FBRCxDQUFRTixDQUFSLENBTFEsQ0FPMUJ3QyxDQUFpQixJQUFvQixDQUFqQixDQUFBQyxDQUFPLENBQUMzQixNQUFYLEdBQXdCMkIsQ0FDMUMsQ0FSTSxJQVFhLFVBQVQsR0FBQTdDLENBUkosR0FTTDRDLENBQWlCLENBQUdYLFVBQVUsQ0FBQ3ZCLENBQUQsQ0FBUU4sQ0FBUixDQUFlTCxDQUFmLENBVHpCLEVBWVQsTUFBTzZDLENBQUFBLENBQ1IsQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdldE1lc3NhZ2UgPSAobWVzc2FnZSwgdHlwZSkgPT4ge1xyXG4gIGlmICghdHlwZSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuXHJcbiAgaWYgKG1lc3NhZ2UgJiYgdHlwZW9mIG1lc3NhZ2UgPT09ICdvYmplY3QnICYmIG1lc3NhZ2UuY3VzdG9tKSB7XHJcbiAgICByZXR1cm4gbWVzc2FnZS5jdXN0b207XHJcbiAgfVxyXG5cclxuICBpZiAobWVzc2FnZSAmJiB0eXBlb2YgbWVzc2FnZSA9PT0gJ29iamVjdCcgJiYgbWVzc2FnZVt0eXBlXSkge1xyXG4gICAgcmV0dXJuIG1lc3NhZ2VbdHlwZV07XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbWVzc2FnZTtcclxufTtcclxuXHJcbmNvbnN0IGlzRW1haWwgPSAoZW1haWwsIGZpZWxkLCBtZXNzYWdlKSA9PiB7XHJcbiAgY29uc3QgcmUgPSAvXigoW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31dKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLztcclxuXHJcbiAgaWYgKCFyZS50ZXN0KGVtYWlsKSkge1xyXG4gICAgY29uc3QgY3VzdG9tTWVzc2FnZSA9IGdldE1lc3NhZ2UobWVzc2FnZSwgJ2VtYWlsJyk7XHJcbiAgICByZXR1cm4gY3VzdG9tTWVzc2FnZSB8fCBcIkVudGVyIGEgdmFsaWQgZW1haWxcIjtcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5cclxuY29uc3QgaXNVcmwgPSAoc3RyLCBmaWVsZCwgbWVzc2FnZSkgPT4ge1xyXG4gIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKFxyXG4gICAgJ14oaHR0cHM/OlxcXFwvXFxcXC8pPycgLy8gcHJvdG9jb2xcclxuICAgICsgJygoKFthLXpcXFxcZF0oW2EtelxcXFxkLV0qW2EtelxcXFxkXSkqKVxcXFwuKStbYS16XXsyLH18JyAvLyBkb21haW4gbmFtZVxyXG4gICAgKyAnKChcXFxcZHsxLDN9XFxcXC4pezN9XFxcXGR7MSwzfSkpJyAvLyBPUiBpcCAodjQpIGFkZHJlc3NcclxuICAgICsgJyhcXFxcOlxcXFxkKyk/KFxcXFwvWy1hLXpcXFxcZCVfLn4rXSopKicgLy8gcG9ydCBhbmQgcGF0aFxyXG4gICAgKyAnKFxcXFw/WzsmYS16XFxcXGQlXy5+Kz0tXSopPycgLy8gcXVlcnkgc3RyaW5nXHJcbiAgICArICcoXFxcXCNbLWEtelxcXFxkX10qKT8kJyxcclxuICAgICdpJyxcclxuICApOyAvLyBmcmFnbWVudCBsb2NhdG9yXHJcbiAgaWYgKCFwYXR0ZXJuLnRlc3Qoc3RyKSkge1xyXG4gICAgY29uc3QgY3VzdG9tTWVzc2FnZSA9IGdldE1lc3NhZ2UobWVzc2FnZSwgJ3VybCcpO1xyXG4gICAgcmV0dXJuIGN1c3RvbU1lc3NhZ2UgfHwgXCJFbnRlciBhIHZhbGlkIHVybFwiO1xyXG4gIH1cclxuICByZXR1cm4gZmFsc2U7XHJcbn07XHJcblxyXG5jb25zdCBpc0VtcHR5ID0gKHZhbHVlKSA9PiB7XHJcbiAgaWYgKCF2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIHJldHVybiBmYWxzZTtcclxufTtcclxuXHJcbmNvbnN0IGlzUmVxdWlyZWQgPSAocmVxdWlyZWQsIGVtcHR5LCBtZXNzYWdlKSA9PiB7XHJcbiAgaWYgKHJlcXVpcmVkICYmIGVtcHR5KSB7XHJcbiAgICBjb25zdCBjdXN0b21NZXNzYWdlID0gZ2V0TWVzc2FnZShtZXNzYWdlLCAncmVxdWlyZWQnKTtcclxuICAgIHJldHVybiBjdXN0b21NZXNzYWdlIHx8ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJztcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59O1xyXG5cclxuY29uc3Qgc2VsZWN0VmFsaWRhdGlvbiA9IChyZXF1aXJlZCwgdmFsdWUsIHBsYWNlaG9sZGVyKSA9PiAhKHZhbHVlID09PSBwbGFjZWhvbGRlciAmJiByZXF1aXJlZCk7XHJcblxyXG5jb25zdCBjaGVja2JveFZhbGlkYXRpb24gPSAodmFsdWVzLCBtZXNzYWdlKSA9PiB7XHJcbiAgaWYgKHZhbHVlcy5sZW5ndGggPCAxKSB7XHJcbiAgICByZXR1cm4gbWVzc2FnZSB8fCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCc7XHJcbiAgfVxyXG4gIHJldHVybiBmYWxzZTtcclxufTtcclxuXHJcbmNvbnN0IGVtYWlsVmFsaWRhdGlvbiA9ICh2YWx1ZXMsIGZpZWxkKSA9PiB7XHJcbiAgY29uc3QgeyBpbnB1dHMsIGlzUmVxdWlyZWQ6IHJlcXVpcmVkLCBlcnJvck1lc3NhZ2UgfSA9IGZpZWxkIHx8IGZhbHNlO1xyXG4gIGNvbnN0IHsgcmVxdWlyZWQ6IHJlcXVpcmVkTXNnLCBtaXNtYXRjaCB9ID0gZXJyb3JNZXNzYWdlIHx8IGZhbHNlO1xyXG5cclxuICAvLyBjaGVjayBpZiBmaWVsZHMgaXMgcmVxdWlyZWQgYW5kIGlzbid0IGVtcHR5XHJcbiAgY29uc3QgaXNJbnB1dHNFbXB0eSA9IHZhbHVlcyAmJiB2YWx1ZXMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAmJiBpdGVtLnZhbCA9PT0gJycpLmxlbmd0aDtcclxuXHJcbiAgaWYgKCgodmFsdWVzICYmIHZhbHVlcy5sZW5ndGggPCAyKSB8fCBpc0lucHV0c0VtcHR5ICE9PSAwKSAmJiByZXF1aXJlZCkge1xyXG4gICAgcmV0dXJuIHJlcXVpcmVkTXNnIHx8ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJztcclxuICB9XHJcblxyXG4gIGlmICh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA+IDApIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyB2YWx1ZXMubGVuZ3RoID4gaTsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGlzSW5WYWxpZE1haWwgPSBpc0VtYWlsKHZhbHVlc1tpXS52YWwpO1xyXG4gICAgICBpZiAoaXNJblZhbGlkTWFpbCkge1xyXG4gICAgICAgIHJldHVybiBpc0luVmFsaWRNYWlsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBpZiB0aGVyZSBpcyByZXBlYXQgcGFzc3dvcmQgZmllbGQgPT4gY2hlY2sgaWYgbWF0Y2hcclxuICBpZiAodmFsdWVzICYmIHZhbHVlcy5sZW5ndGggPT09IDIgJiYgaW5wdXRzICYmIGlucHV0cy5sZW5ndGggPT09IDIpIHtcclxuICAgIGlmIChcclxuICAgICAgdmFsdWVzWzFdXHJcbiAgICAgICYmIHZhbHVlc1swXVxyXG4gICAgICAmJiB2YWx1ZXNbMV0udmFsICE9PSAnJ1xyXG4gICAgICAmJiB2YWx1ZXNbMV0udmFsICE9PSB2YWx1ZXNbMF0udmFsXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIG1pc21hdGNoIHx8ICdNaXNtYXRjaCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmFsc2U7XHJcbn07XHJcblxyXG5jb25zdCBwYXNzd29yZFZhbGlkYXRpb24gPSAodmFsdWVzLCBmaWVsZCkgPT4ge1xyXG4gIGNvbnN0IHsgaW5wdXRzLCBpc1JlcXVpcmVkOiByZXF1aXJlZCwgZXJyb3JNZXNzYWdlIH0gPSBmaWVsZCB8fCBmYWxzZTtcclxuICBjb25zdCB7IHJlcXVpcmVkOiByZXF1aXJlZE1zZywgbWlzbWF0Y2ggfSA9IGVycm9yTWVzc2FnZSB8fCBmYWxzZTtcclxuXHJcbiAgY29uc3QgZmlsdGVyZWRJbnB1dHMgPSBpbnB1dHMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uaXNIaWRkZW4pO1xyXG5cclxuICAvLyBjaGVjayBpZiBmaWVsZHMgaXMgcmVxdWlyZWQgYW5kIGlzbid0IGVtcHR5XHJcbiAgY29uc3QgaXNJbnB1dHNFbXB0eSA9IHZhbHVlcyAmJiB2YWx1ZXMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAmJiBpdGVtLnZhbCA9PT0gJycpLmxlbmd0aDtcclxuXHJcbiAgaWYgKFxyXG4gICAgKCh2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA9PT0gMClcclxuICAgICAgfHwgaXNJbnB1dHNFbXB0eSA9PT0gZmlsdGVyZWRJbnB1dHMubGVuZ3RoKVxyXG4gICAgJiYgcmVxdWlyZWRcclxuICApIHtcclxuICAgIHJldHVybiByZXF1aXJlZE1zZyB8fCAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCc7XHJcbiAgfVxyXG5cclxuICAvLyBpZiB0aGVyZSBpcyByZXBlYXQgcGFzc3dvcmQgZmllbGQgPT4gY2hlY2sgaWYgbWF0Y2hcclxuICBpZiAoXHJcbiAgICB2YWx1ZXNcclxuICAgICYmIHZhbHVlcy5sZW5ndGggPT09IDJcclxuICAgICYmIGZpbHRlcmVkSW5wdXRzXHJcbiAgICAmJiBmaWx0ZXJlZElucHV0cy5sZW5ndGggPT09IDJcclxuICApIHtcclxuICAgIGlmIChcclxuICAgICAgdmFsdWVzWzFdXHJcbiAgICAgICYmIHZhbHVlc1swXVxyXG4gICAgICAmJiB2YWx1ZXNbMV0udmFsICE9PSAnJ1xyXG4gICAgICAmJiB2YWx1ZXNbMV0udmFsICE9PSB2YWx1ZXNbMF0udmFsXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIG1pc21hdGNoIHx8ICdNaXNtYXRjaCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmFsc2U7XHJcbn07XHJcblxyXG5jb25zdCBpc1Bvc3Rjb2RlID0gKHBvc3Rjb2RlLCBmaWVsZCwgbWVzc2FnZSkgPT4ge1xyXG4gIGNvbnN0IHJlID0gL15bMS05XVswLTldezN9ID8oPyFzYXxzZHxzcylbYS16XXsyfSQvaTtcclxuXHJcbiAgICBpZiAoIXJlLnRlc3QocG9zdGNvZGUpKSB7XHJcbiAgICBjb25zdCBjdXN0b21NZXNzYWdlID0gZ2V0TWVzc2FnZShtZXNzYWdlLCAnZW1haWwnKTtcclxuICAgIHJldHVybiBjdXN0b21NZXNzYWdlIHx8IFwiRW50ZXIgYSB2YWxpZCBwb3N0Y29kZVwiO1xyXG4gIH1cclxuICByZXR1cm4gZmFsc2U7XHJcbn07XHJcblxyXG5jb25zdCBpc0RhdGUgPSAodmFsdWVzLCBmaWVsZCkgPT4ge1xyXG4gIGNvbnN0IHZhbGlkYXRpb24gPSBbXTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgaWYgKHZhbHVlc1tpXSkge1xyXG4gICAgICBjb25zdCB7IHZhbCwgbGFiZWwgfSA9IHZhbHVlc1tpXTtcclxuICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgIGlmIChsYWJlbCA9PT0gJ01NJykge1xyXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGZpZWxkLmVycm9yTWVzc2FnZVsnbW9udGgnXTtcclxuICAgICAgICAgIGNvbnN0IG1heCA9IDEyO1xyXG4gICAgICAgICAgY29uc3QgbWluID0gMTtcclxuICAgICAgICAgIGNvbnN0IG1heExlbmd0aCA9IDI7XHJcbiAgICAgICAgICBpZiAodmFsLmxlbmd0aCA+IG1heExlbmd0aCB8fCB2YWwgPCBtaW4gfHwgdmFsID4gbWF4KSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25baV0gPSB7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGksXHJcbiAgICAgICAgICAgICAgbWVzc2FnZTogZ2V0TWVzc2FnZShtZXNzYWdlLCAnZGF0ZScpIHx8IFwiRW50ZXIgYSB2YWxpZCBtb250aFwiLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobGFiZWwgPT09ICdERCcpIHtcclxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBmaWVsZC5lcnJvck1lc3NhZ2VbJ2RhdGUnXTtcclxuICAgICAgICAgIGNvbnN0IG1heCA9IDMxO1xyXG4gICAgICAgICAgY29uc3QgbWluID0gMTtcclxuICAgICAgICAgIGNvbnN0IG1heExlbmd0aCA9IDI7XHJcbiAgICAgICAgICBpZiAodmFsLmxlbmd0aCA+IG1heExlbmd0aCB8fCB2YWwgPCBtaW4gfHwgdmFsID4gbWF4KSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25baV0gPSB7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGksXHJcbiAgICAgICAgICAgICAgbWVzc2FnZTogZ2V0TWVzc2FnZShtZXNzYWdlLCAnZGF0ZScpIHx8IFwiRW50ZXIgYSB2YWxpZCBkYXRlXCIsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ1lZWVknKSB7XHJcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gZmllbGQuZXJyb3JNZXNzYWdlWyd5ZWFyJ107XHJcbiAgICAgICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgKyAxO1xyXG4gICAgICAgICAgY29uc3QgbWluID0gMTkyMDtcclxuICAgICAgICAgIGNvbnN0IG1heExlbmd0aCA9IDQ7XHJcbiAgICAgICAgICBpZiAodmFsLmxlbmd0aCA+IG1heExlbmd0aCB8fCB2YWwgPCBtaW4gfHwgdmFsID4gbWF4KSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRpb25baV0gPSB7XHJcbiAgICAgICAgICAgICAgaW5kZXg6IGksXHJcbiAgICAgICAgICAgICAgbWVzc2FnZTogZ2V0TWVzc2FnZShtZXNzYWdlLCAnZGF0ZScpIHx8IFwiRW50ZXIgYSB2YWxpZCB5ZWFyXCIsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB2YWxpZGF0aW9uO1xyXG59O1xyXG5cclxuY29uc3QgdmFsaWRhdGVGaWVsZCA9ICh2YWx1ZSwgZmllbGQpID0+IHtcclxuICBjb25zdCB7IHR5cGUsIGlzUmVxdWlyZWQ6IHJlcXVpcmVkIH0gPSBmaWVsZDtcclxuICAvLyBDaGVjayBmaXJzdCBpZiByZXF1cmllZCBjaGVja2JveCBvciByYWRpb1xyXG4gIGlmICgodHlwZSA9PT0gJ2NoZWNrYm94JyB8fCB0eXBlID09PSAncmFkaW8nKSAmJiByZXF1aXJlZCkge1xyXG4gICAgcmV0dXJuIGNoZWNrYm94VmFsaWRhdGlvbih2YWx1ZSwgZmllbGQuZXJyb3JNZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGlmICh0eXBlID09PSAncGFzc3dvcmQnKSB7XHJcbiAgICByZXR1cm4gcGFzc3dvcmRWYWxpZGF0aW9uKHZhbHVlLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZSA9PT0gJ2VtYWlsJyAmJiBmaWVsZC5lbWFpbENvbmZpcm1FbmFibGVkKSB7XHJcbiAgICByZXR1cm4gZW1haWxWYWxpZGF0aW9uKHZhbHVlLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICAvLyBDaGVjayBpZiBlbXB0eVxyXG4gIGNvbnN0IGVtcHR5ID0gaXNFbXB0eSh2YWx1ZSk7XHJcbiAgbGV0IHZhbGlkYXRpb25NZXNzYWdlID0gJyc7XHJcbiAgY29uc3QgbWVzc2FnZSA9IGZpZWxkICYmIGZpZWxkLmVycm9yTWVzc2FnZSA/IGZpZWxkLmVycm9yTWVzc2FnZSA6IGZhbHNlO1xyXG4gIC8vIFNldCB2YWxpZGF0aW9uIG1lc3NhZ2UgaWYgcmVxdWlyZWRcclxuICB2YWxpZGF0aW9uTWVzc2FnZSA9IHJlcXVpcmVkID8gaXNSZXF1aXJlZChyZXF1aXJlZCwgZW1wdHksIG1lc3NhZ2UpIDogZmFsc2U7XHJcbiAgLy8gU2V0IG90aGVyIHZhbGlkYXRpb24gbWVzc2FnZXNcclxuICBpZiAoIXZhbGlkYXRpb25NZXNzYWdlICYmICFlbXB0eSkge1xyXG4gICAgaWYgKHR5cGUgPT09ICdlbWFpbCcpIHtcclxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2UgPSBpc0VtYWlsKHZhbHVlLCBmaWVsZCwgbWVzc2FnZSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd3ZWJzaXRlJykge1xyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSA9IGlzVXJsKHZhbHVlLCBmaWVsZCwgbWVzc2FnZSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdkYXRlJykge1xyXG4gICAgICBsZXQgaXNWYWxpZCA9IHRydWU7XHJcbiAgICAgIGlmIChmaWVsZC5kYXRlVHlwZSAmJiBmaWVsZC5kYXRlVHlwZSA9PT0gJ2RhdGVwaWNrZXInKSB7XHJcbiAgICAgICAgaXNWYWxpZCA9IHJlcXVpcmVkID8gaXNSZXF1aXJlZChyZXF1aXJlZCwgZW1wdHksIG1lc3NhZ2UpIDogZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXNWYWxpZCA9IGlzRGF0ZSh2YWx1ZSwgZmllbGQpO1xyXG4gICAgICB9XHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlID0gaXNWYWxpZC5sZW5ndGggPiAwID8gaXNWYWxpZCA6IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAncG9zdGNvZGUnKSB7XHJcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlID0gaXNQb3N0Y29kZSh2YWx1ZSwgZmllbGQsIG1lc3NhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2U7XHJcbn07XHJcblxyXG5leHBvcnQge1xyXG4gIGlzRW1wdHksXHJcbiAgc2VsZWN0VmFsaWRhdGlvbixcclxuICBjaGVja2JveFZhbGlkYXRpb24sXHJcbiAgaXNVcmwsXHJcbiAgaXNFbWFpbCxcclxuICBpc1JlcXVpcmVkLFxyXG4gIHZhbGlkYXRlRmllbGQsXHJcbn07XHJcbiJdfQ==