Plugin Directory

Changeset 3366104


Ignore:
Timestamp:
09/23/2025 12:13:28 AM (6 months ago)
Author:
michael.heuberger
Message:

Update to version 8.1.0 from GitHub

Location:
videomail-for-ninja-forms
Files:
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • videomail-for-ninja-forms/tags/8.1.0/readme.txt

    r3354424 r3366104  
    66Requires at least: 6.0
    77Tested up to: 6.8.2
    8 Stable tag: 8.0.3
     8Stable tag: 8.1.0
    99Requires PHP: 8.1.0
    1010Donate link: https://videomail.io/faq
     
    7171
    7272== Changelog ==
     73= 8.1.0 (23 Sept 2025) =
     74**Fix**
     75* Clear LiteSpeed Cache when upgrading this plugin, see https://github.com/litespeedtech/lscache_wp/issues/895
     76
     77**Chore**
     78* Upgrade VC dependency and re-release complete build
     79
    7380= 8.0.3 (2 Sept 2025) =
    7481**Fix**
  • videomail-for-ninja-forms/tags/8.1.0/target/js/main.min.js

    r3354424 r3366104  
    1 let PLUGIN_VERSION="8.0.3",DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenToOnce(this.channel,"attach:view",this.loadVideomailClient),this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];let i=this.fieldModel.cid;e.find(function(e){return e.cid===i})?this.loadVideomailClient():this.videomailClient.unload()})})},getFormId:function(){return this.fieldModel.get("formID")},registerVideomailField:function(e){this.fieldModel=e,this.channel.reply("validate:required",this.validateRequired,this),this.channel.reply("validate:modelData",this.validateVideomail,this),Backbone.Radio.channel("form-"+this.getFormId()).reply("maybe:submit",this.maybeSubmit,this,e)},loadVideomailClient:function(){let e=this.fieldModel.get("image_quality")||40;100<e?e=100:e<1&&(e=1);var i=this.fieldModel.get("verbose")||DEBUG;DEBUG=DEBUG||i,Backbone.Radio.DEBUG=Backbone.Radio.DEBUG||i,this.videomailClient=new VideomailClient.VideomailClient({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,stretch:this.fieldModel.get("stretch")||!1,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{containerId:"videomail",submitButtonSelector:".submit-wrap input"},callbacks:{adjustFormDataBeforePosting:this.adjustFormDataBeforePostingToVideomailServer.bind(this)},loadUserMediaOnRecord:this.fieldModel.get("load_user_media_on_record"),enableAutoValidation:!1,enableAutoSubmission:!1,verbose:i,versions:{ninjaFormPlugin:PLUGIN_VERSION}}),this.videomailClient.on("PREVIEW",this.onPreview.bind(this)),this.videomailClient.on("SUBMITTED",this.onSubmitted.bind(this)),this.videomailClient.on("GOING_BACK",this.onGoingBack.bind(this)),this.videomailClient.show()},onPreview:function(e){this.fieldModel.set("videomail-key",e),this.fieldModel.set("value",e),Backbone.Radio.channel("fields").request("remove:error",this.fieldModel.get("id"),"required-error")},onSubmitted:function(e){let i=Backbone.Radio.channel("app").request("get:form",this.getFormId());i=i||this.fieldModel.collection.options.formModel,Backbone.Radio.channel("form-"+i.get("id")).request("add:extra","videomail",e.videomail),Backbone.Radio.channel("form-"+this.getFormId()).request("submit",i)},onGoingBack:function(){this.fieldModel.set("videomail-key",null),this.invalidate()},validateRequired:function(e,i){i=this.validateVideomail(i);return i||this.invalidate(),i},invalidate:function(){Backbone.Radio.channel("fields").request("add:error",this.fieldModel.get("id"),"required-error","Record and click on stop to see a preview video.")},validateVideomail:function(e){return(e=e||this.fieldModel).get("videomail-key")||!1},hasErrors:function(e){return 0<e.get("errors").length},maybeSubmit:function(e){let i=!0;var t=e.getExtra("videomail"),o=this.validateVideomail(),e=this.hasErrors(e);return t||e||!o||(this.videomailClient.submit(),i=!1),i},getMergeTagValue:function(e,i){let t=this.fieldModel.get(e);if(t&&("{wp:admin_email}"===t?t=window.nfVideomail.admin_email:(e=(e=t.match(/{field:(.*)}/i))&&e[1])!==t&&(t=t.replace(/{field:(.*)}/i,i[e]))),"undefined"!==t)return t},getFormValues:function(){let e;var i=Backbone.Radio.channel("app").request("get:form",this.getFormId()),i=(i?e=i.get("fields"):this.fieldModel.collection.options.formModel.get("fields").models&&(e=this.fieldModel.collection.options.formModel.get("fields").models),e.reduce(function(e,i){return e[i.get("key")]=i.get("value"),e},{}));return i},adjustFormDataBeforePostingToVideomailServer:function(e){var i=this.getFormValues();return e.from=this.getMergeTagValue("email_from",i),e.to=this.getMergeTagValue("email_to",i),e.subject=this.getMergeTagValue("email_subject",i),e.body=this.getMergeTagValue("email_body",i),e},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
    2 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguMC4zXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIC8vIHVnbHkgbmFtZSBlaD9cbiAgICAgICAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nOlxuICAgICAgICAgIHRoaXMuYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIuYmluZCh0aGlzKSxcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gdmFsaWRhdGUgdGhlIGlucHV0c1xuICAgICAgZW5hYmxlQXV0b1ZhbGlkYXRpb246IGZhbHNlLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIGRlYWwgd2l0aCBmb3JtIHN1Ym1pc3Npb25zXG4gICAgICBlbmFibGVBdXRvU3VibWlzc2lvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxvZyBhY3Rpb25zL2V2ZW50cyB0byBjb25zb2xlXG4gICAgICB2ZXJib3NlLFxuXG4gICAgICB2ZXJzaW9uczogeyBuaW5qYUZvcm1QbHVnaW46IFBMVUdJTl9WRVJTSU9OIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3Qi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
     1let PLUGIN_VERSION="8.1.0",DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenToOnce(this.channel,"attach:view",this.loadVideomailClient),this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];let i=this.fieldModel.cid;e.find(function(e){return e.cid===i})?this.loadVideomailClient():this.videomailClient.unload()})})},getFormId:function(){return this.fieldModel.get("formID")},registerVideomailField:function(e){this.fieldModel=e,this.channel.reply("validate:required",this.validateRequired,this),this.channel.reply("validate:modelData",this.validateVideomail,this),Backbone.Radio.channel("form-"+this.getFormId()).reply("maybe:submit",this.maybeSubmit,this,e)},loadVideomailClient:function(){let e=this.fieldModel.get("image_quality")||40;100<e?e=100:e<1&&(e=1);var i=this.fieldModel.get("verbose")||DEBUG;DEBUG=DEBUG||i,Backbone.Radio.DEBUG=Backbone.Radio.DEBUG||i,this.videomailClient=new VideomailClient.VideomailClient({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,stretch:this.fieldModel.get("stretch")||!1,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{containerId:"videomail",submitButtonSelector:".submit-wrap input"},callbacks:{adjustFormDataBeforePosting:this.adjustFormDataBeforePostingToVideomailServer.bind(this)},loadUserMediaOnRecord:this.fieldModel.get("load_user_media_on_record"),enableAutoValidation:!1,enableAutoSubmission:!1,verbose:i,versions:{ninjaFormPlugin:PLUGIN_VERSION}}),this.videomailClient.on("PREVIEW",this.onPreview.bind(this)),this.videomailClient.on("SUBMITTED",this.onSubmitted.bind(this)),this.videomailClient.on("GOING_BACK",this.onGoingBack.bind(this)),this.videomailClient.show()},onPreview:function(e){this.fieldModel.set("videomail-key",e),this.fieldModel.set("value",e),Backbone.Radio.channel("fields").request("remove:error",this.fieldModel.get("id"),"required-error")},onSubmitted:function(e){let i=Backbone.Radio.channel("app").request("get:form",this.getFormId());i=i||this.fieldModel.collection.options.formModel,Backbone.Radio.channel("form-"+i.get("id")).request("add:extra","videomail",e.videomail),Backbone.Radio.channel("form-"+this.getFormId()).request("submit",i)},onGoingBack:function(){this.fieldModel.set("videomail-key",null),this.invalidate()},validateRequired:function(e,i){i=this.validateVideomail(i);return i||this.invalidate(),i},invalidate:function(){Backbone.Radio.channel("fields").request("add:error",this.fieldModel.get("id"),"required-error","Record and click on stop to see a preview video.")},validateVideomail:function(e){return(e=e||this.fieldModel).get("videomail-key")||!1},hasErrors:function(e){return 0<e.get("errors").length},maybeSubmit:function(e){let i=!0;var t=e.getExtra("videomail"),o=this.validateVideomail(),e=this.hasErrors(e);return t||e||!o||(this.videomailClient.submit(),i=!1),i},getMergeTagValue:function(e,i){let t=this.fieldModel.get(e);if(t&&("{wp:admin_email}"===t?t=window.nfVideomail.admin_email:(e=(e=t.match(/{field:(.*)}/i))&&e[1])!==t&&(t=t.replace(/{field:(.*)}/i,i[e]))),"undefined"!==t)return t},getFormValues:function(){let e;var i=Backbone.Radio.channel("app").request("get:form",this.getFormId()),i=(i?e=i.get("fields"):this.fieldModel.collection.options.formModel.get("fields").models&&(e=this.fieldModel.collection.options.formModel.get("fields").models),e.reduce(function(e,i){return e[i.get("key")]=i.get("value"),e},{}));return i},adjustFormDataBeforePostingToVideomailServer:function(e){var i=this.getFormValues();return e.from=this.getMergeTagValue("email_from",i),e.to=this.getMergeTagValue("email_to",i),e.subject=this.getMergeTagValue("email_subject",i),e.body=this.getMergeTagValue("email_body",i),e},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
     2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguMS4wXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIC8vIHVnbHkgbmFtZSBlaD9cbiAgICAgICAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nOlxuICAgICAgICAgIHRoaXMuYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIuYmluZCh0aGlzKSxcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gdmFsaWRhdGUgdGhlIGlucHV0c1xuICAgICAgZW5hYmxlQXV0b1ZhbGlkYXRpb246IGZhbHNlLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIGRlYWwgd2l0aCBmb3JtIHN1Ym1pc3Npb25zXG4gICAgICBlbmFibGVBdXRvU3VibWlzc2lvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxvZyBhY3Rpb25zL2V2ZW50cyB0byBjb25zb2xlXG4gICAgICB2ZXJib3NlLFxuXG4gICAgICB2ZXJzaW9uczogeyBuaW5qYUZvcm1QbHVnaW46IFBMVUdJTl9WRVJTSU9OIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3Qi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
  • videomail-for-ninja-forms/tags/8.1.0/target/js/videomail-client/index.min.js

    r3354424 r3366104  
    49944994                module1.exports = bind.call(call, $hasOwn);
    49954995            },
    4996             "./node_modules/hidden/index.js": function(module1) {
    4997                 module1.exports = shim;
    4998                 function shim(element, value) {
    4999                     if (void 0 === value) return 'none' === element.style.display;
    5000                     element.style.display = value ? 'none' : '';
    5001                 }
    5002             },
    50034996            "./node_modules/ieee754/index.js": function(__unused_webpack_module, exports1) {
    50044997                /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ exports1.read = function(buffer, offset, isLE, mLen, nBytes) {
     
    1065610649            var client_default = /*#__PURE__*/ __webpack_require__.n(client);
    1065710650            var package_namespaceObject = {
    10658                 rE: "11.0.5"
     10651                rE: "11.0.8"
    1065910652            };
    1066010653            var defined = __webpack_require__("./node_modules/defined/index.js");
    1066110654            var defined_default = /*#__PURE__*/ __webpack_require__.n(defined);
    10662             var LIBVERSION = '2.0.4', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', FUNC_TYPE = 'function', UNDEF_TYPE = 'undefined', OBJ_TYPE = 'object', STR_TYPE = 'string', UA_BROWSER = 'browser', UA_CPU = 'cpu', UA_DEVICE = 'device', UA_ENGINE = 'engine', UA_OS = 'os', UA_RESULT = 'result', NAME = 'name', TYPE = 'type', VENDOR = 'vendor', VERSION = 'version', ARCHITECTURE = 'architecture', MAJOR = 'major', MODEL = 'model', CONSOLE = 'console', MOBILE = 'mobile', TABLET = 'tablet', SMARTTV = 'smarttv', WEARABLE = 'wearable', XR = 'xr', EMBEDDED = 'embedded', INAPP = 'inapp', BRANDS = 'brands', FORMFACTORS = 'formFactors', FULLVERLIST = 'fullVersionList', PLATFORM = 'platform', PLATFORMVER = 'platformVersion', BITNESS = 'bitness', CH_HEADER = 'sec-ch-ua', CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list', CH_HEADER_ARCH = CH_HEADER + '-arch', CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS, CH_HEADER_FORM_FACTORS = CH_HEADER + '-form-factors', CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE, CH_HEADER_MODEL = CH_HEADER + '-' + MODEL, CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM, CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version', CH_ALL_VALUES = [
     10655            var LIBVERSION = '2.0.5', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', FUNC_TYPE = 'function', UNDEF_TYPE = 'undefined', OBJ_TYPE = 'object', STR_TYPE = 'string', UA_BROWSER = 'browser', UA_CPU = 'cpu', UA_DEVICE = 'device', UA_ENGINE = 'engine', UA_OS = 'os', UA_RESULT = 'result', NAME = 'name', TYPE = 'type', VENDOR = 'vendor', VERSION = 'version', ARCHITECTURE = 'architecture', MAJOR = 'major', MODEL = 'model', CONSOLE = 'console', MOBILE = 'mobile', TABLET = 'tablet', SMARTTV = 'smarttv', WEARABLE = 'wearable', XR = 'xr', EMBEDDED = 'embedded', INAPP = 'inapp', BRANDS = 'brands', FORMFACTORS = 'formFactors', FULLVERLIST = 'fullVersionList', PLATFORM = 'platform', PLATFORMVER = 'platformVersion', BITNESS = 'bitness', CH_HEADER = 'sec-ch-ua', CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list', CH_HEADER_ARCH = CH_HEADER + '-arch', CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS, CH_HEADER_FORM_FACTORS = CH_HEADER + '-form-factors', CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE, CH_HEADER_MODEL = CH_HEADER + '-' + MODEL, CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM, CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version', CH_ALL_VALUES = [
    1066310656                BRANDS,
    1066410657                FULLVERLIST,
     
    1071210705                return isString(version) ? strip(/[^\d\.]/g, version).split('.')[0] : void 0;
    1071310706            }, setProps = function(arr) {
    10714                 for(var i in arr){
     10707                for(var i in arr)if (arr.hasOwnProperty(i)) {
    1071510708                    var propName = arr[i];
    1071610709                    if (typeof propName == OBJ_TYPE && 2 == propName.length) this[propName[0]] = propName[1];
     
    1123511228                    ],
    1123611229                    [
     11230                        /(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i
     11231                    ],
     11232                    [
     11233                        [
     11234                            NAME,
     11235                            /(.+)/,
     11236                            'Zalo'
     11237                        ],
     11238                        VERSION,
     11239                        [
     11240                            TYPE,
     11241                            INAPP
     11242                        ]
     11243                    ],
     11244                    [
    1123711245                        /(chromium)[\/ ]([-\w\.]+)/i
    1123811246                    ],
     
    1145611464                    ],
    1145711465                    [
    11458                         /((ppc|powerpc)(64)?)( mac|;|\))/i
     11466                        / sun4\w[;\)]/i
     11467                    ],
     11468                    [
     11469                        [
     11470                            ARCHITECTURE,
     11471                            'sparc'
     11472                        ]
     11473                    ],
     11474                    [
     11475                        /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,
     11476                        /((ppc|powerpc)(64)?)( mac|;|\))/i,
     11477                        /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i
    1145911478                    ],
    1146011479                    [
     
    1146711486                    ],
    1146811487                    [
    11469                         / sun4\w[;\)]/i
     11488                        /winnt.+\[axp/i
    1147011489                    ],
    1147111490                    [
    1147211491                        [
    1147311492                            ARCHITECTURE,
    11474                             'sparc'
    11475                         ]
    11476                     ],
    11477                     [
    11478                         /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i
    11479                     ],
    11480                     [
    11481                         [
    11482                             ARCHITECTURE,
    11483                             lowerize
     11493                            'alpha'
    1148411494                        ]
    1148511495                    ]
     
    1228512295                        /(hp) ([\w ]+\w)/i,
    1228612296                        /(microsoft); (lumia[\w ]+)/i,
    12287                         /(oppo) ?([\w ]+) bui/i
     12297                        /(oppo) ?([\w ]+) bui/i,
     12298                        /droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
    1228812299                    ],
    1228912300                    [
     
    1240812419                    ],
    1240912420                    [
     12421                        /(philips)[\w ]+tv/i,
    1241012422                        /smart-tv.+(samsung)/i
    1241112423                    ],
     
    1266312675                    ],
    1266412676                    [
    12665                         /droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i
     12677                        /(playstation \w+)/i
     12678                    ],
     12679                    [
     12680                        MODEL,
     12681                        [
     12682                            VENDOR,
     12683                            SONY
     12684                        ],
     12685                        [
     12686                            TYPE,
     12687                            CONSOLE
     12688                        ]
     12689                    ],
     12690                    [
     12691                        /\b(xbox(?: one)?(?!; xbox))[\); ]/i
     12692                    ],
     12693                    [
     12694                        MODEL,
     12695                        [
     12696                            VENDOR,
     12697                            MICROSOFT
     12698                        ],
     12699                        [
     12700                            TYPE,
     12701                            CONSOLE
     12702                        ]
     12703                    ],
     12704                    [
     12705                        /(ouya)/i,
     12706                        /(nintendo) (\w+)/i,
     12707                        /(retroid) (pocket ([^\)]+))/i
     12708                    ],
     12709                    [
     12710                        VENDOR,
     12711                        MODEL,
     12712                        [
     12713                            TYPE,
     12714                            CONSOLE
     12715                        ]
     12716                    ],
     12717                    [
     12718                        /droid.+; (shield)( bui|\))/i
     12719                    ],
     12720                    [
     12721                        MODEL,
     12722                        [
     12723                            VENDOR,
     12724                            NVIDIA
     12725                        ],
     12726                        [
     12727                            TYPE,
     12728                            CONSOLE
     12729                        ]
     12730                    ],
     12731                    [
     12732                        /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
     12733                    ],
     12734                    [
     12735                        MODEL,
     12736                        [
     12737                            VENDOR,
     12738                            SAMSUNG
     12739                        ],
     12740                        [
     12741                            TYPE,
     12742                            WEARABLE
     12743                        ]
     12744                    ],
     12745                    [
     12746                        /((pebble))app/i,
     12747                        /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
     12748                    ],
     12749                    [
     12750                        VENDOR,
     12751                        MODEL,
     12752                        [
     12753                            TYPE,
     12754                            WEARABLE
     12755                        ]
     12756                    ],
     12757                    [
     12758                        /(ow(?:19|20)?we?[1-3]{1,3})/i
     12759                    ],
     12760                    [
     12761                        MODEL,
     12762                        [
     12763                            VENDOR,
     12764                            OPPO
     12765                        ],
     12766                        [
     12767                            TYPE,
     12768                            WEARABLE
     12769                        ]
     12770                    ],
     12771                    [
     12772                        /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
     12773                    ],
     12774                    [
     12775                        MODEL,
     12776                        [
     12777                            VENDOR,
     12778                            APPLE
     12779                        ],
     12780                        [
     12781                            TYPE,
     12782                            WEARABLE
     12783                        ]
     12784                    ],
     12785                    [
     12786                        /(opwwe\d{3})/i
     12787                    ],
     12788                    [
     12789                        MODEL,
     12790                        [
     12791                            VENDOR,
     12792                            ONEPLUS
     12793                        ],
     12794                        [
     12795                            TYPE,
     12796                            WEARABLE
     12797                        ]
     12798                    ],
     12799                    [
     12800                        /(moto 360)/i
     12801                    ],
     12802                    [
     12803                        MODEL,
     12804                        [
     12805                            VENDOR,
     12806                            MOTOROLA
     12807                        ],
     12808                        [
     12809                            TYPE,
     12810                            WEARABLE
     12811                        ]
     12812                    ],
     12813                    [
     12814                        /(smartwatch 3)/i
     12815                    ],
     12816                    [
     12817                        MODEL,
     12818                        [
     12819                            VENDOR,
     12820                            SONY
     12821                        ],
     12822                        [
     12823                            TYPE,
     12824                            WEARABLE
     12825                        ]
     12826                    ],
     12827                    [
     12828                        /(g watch r)/i
     12829                    ],
     12830                    [
     12831                        MODEL,
     12832                        [
     12833                            VENDOR,
     12834                            LG
     12835                        ],
     12836                        [
     12837                            TYPE,
     12838                            WEARABLE
     12839                        ]
     12840                    ],
     12841                    [
     12842                        /droid.+; (wt63?0{2,3})\)/i
     12843                    ],
     12844                    [
     12845                        MODEL,
     12846                        [
     12847                            VENDOR,
     12848                            ZEBRA
     12849                        ],
     12850                        [
     12851                            TYPE,
     12852                            WEARABLE
     12853                        ]
     12854                    ],
     12855                    [
     12856                        /droid.+; (glass) \d/i
     12857                    ],
     12858                    [
     12859                        MODEL,
     12860                        [
     12861                            VENDOR,
     12862                            GOOGLE
     12863                        ],
     12864                        [
     12865                            TYPE,
     12866                            XR
     12867                        ]
     12868                    ],
     12869                    [
     12870                        /(pico) ([\w ]+) os\d/i
     12871                    ],
     12872                    [
     12873                        VENDOR,
     12874                        MODEL,
     12875                        [
     12876                            TYPE,
     12877                            XR
     12878                        ]
     12879                    ],
     12880                    [
     12881                        /(quest( \d| pro)?s?).+vr/i
     12882                    ],
     12883                    [
     12884                        MODEL,
     12885                        [
     12886                            VENDOR,
     12887                            FACEBOOK
     12888                        ],
     12889                        [
     12890                            TYPE,
     12891                            XR
     12892                        ]
     12893                    ],
     12894                    [
     12895                        /mobile vr; rv.+firefox/i
     12896                    ],
     12897                    [
     12898                        [
     12899                            TYPE,
     12900                            XR
     12901                        ]
     12902                    ],
     12903                    [
     12904                        /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
     12905                    ],
     12906                    [
     12907                        VENDOR,
     12908                        [
     12909                            TYPE,
     12910                            EMBEDDED
     12911                        ]
     12912                    ],
     12913                    [
     12914                        /(aeobc)\b/i
     12915                    ],
     12916                    [
     12917                        MODEL,
     12918                        [
     12919                            VENDOR,
     12920                            AMAZON
     12921                        ],
     12922                        [
     12923                            TYPE,
     12924                            EMBEDDED
     12925                        ]
     12926                    ],
     12927                    [
     12928                        /(homepod).+mac os/i
     12929                    ],
     12930                    [
     12931                        MODEL,
     12932                        [
     12933                            VENDOR,
     12934                            APPLE
     12935                        ],
     12936                        [
     12937                            TYPE,
     12938                            EMBEDDED
     12939                        ]
     12940                    ],
     12941                    [
     12942                        /windows iot/i
     12943                    ],
     12944                    [
     12945                        [
     12946                            TYPE,
     12947                            EMBEDDED
     12948                        ]
     12949                    ],
     12950                    [
     12951                        /droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i
    1266612952                    ],
    1266712953                    [
     
    1267312959                    ],
    1267412960                    [
    12675                         /\b(android tv|smart[- ]?tv|opera tv|tv; rv:|large screen[\w ]+safari)\b/i
     12961                        /\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i
    1267612962                    ],
    1267712963                    [
     
    1267912965                            TYPE,
    1268012966                            SMARTTV
    12681                         ]
    12682                     ],
    12683                     [
    12684                         /(playstation \w+)/i
    12685                     ],
    12686                     [
    12687                         MODEL,
    12688                         [
    12689                             VENDOR,
    12690                             SONY
    12691                         ],
    12692                         [
    12693                             TYPE,
    12694                             CONSOLE
    12695                         ]
    12696                     ],
    12697                     [
    12698                         /\b(xbox(?: one)?(?!; xbox))[\); ]/i
    12699                     ],
    12700                     [
    12701                         MODEL,
    12702                         [
    12703                             VENDOR,
    12704                             MICROSOFT
    12705                         ],
    12706                         [
    12707                             TYPE,
    12708                             CONSOLE
    12709                         ]
    12710                     ],
    12711                     [
    12712                         /(ouya)/i,
    12713                         /(nintendo) (\w+)/i,
    12714                         /(retroid) (pocket ([^\)]+))/i
    12715                     ],
    12716                     [
    12717                         VENDOR,
    12718                         MODEL,
    12719                         [
    12720                             TYPE,
    12721                             CONSOLE
    12722                         ]
    12723                     ],
    12724                     [
    12725                         /droid.+; (shield)( bui|\))/i
    12726                     ],
    12727                     [
    12728                         MODEL,
    12729                         [
    12730                             VENDOR,
    12731                             NVIDIA
    12732                         ],
    12733                         [
    12734                             TYPE,
    12735                             CONSOLE
    12736                         ]
    12737                     ],
    12738                     [
    12739                         /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
    12740                     ],
    12741                     [
    12742                         MODEL,
    12743                         [
    12744                             VENDOR,
    12745                             SAMSUNG
    12746                         ],
    12747                         [
    12748                             TYPE,
    12749                             WEARABLE
    12750                         ]
    12751                     ],
    12752                     [
    12753                         /((pebble))app/i,
    12754                         /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
    12755                     ],
    12756                     [
    12757                         VENDOR,
    12758                         MODEL,
    12759                         [
    12760                             TYPE,
    12761                             WEARABLE
    12762                         ]
    12763                     ],
    12764                     [
    12765                         /(ow(?:19|20)?we?[1-3]{1,3})/i
    12766                     ],
    12767                     [
    12768                         MODEL,
    12769                         [
    12770                             VENDOR,
    12771                             OPPO
    12772                         ],
    12773                         [
    12774                             TYPE,
    12775                             WEARABLE
    12776                         ]
    12777                     ],
    12778                     [
    12779                         /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
    12780                     ],
    12781                     [
    12782                         MODEL,
    12783                         [
    12784                             VENDOR,
    12785                             APPLE
    12786                         ],
    12787                         [
    12788                             TYPE,
    12789                             WEARABLE
    12790                         ]
    12791                     ],
    12792                     [
    12793                         /(opwwe\d{3})/i
    12794                     ],
    12795                     [
    12796                         MODEL,
    12797                         [
    12798                             VENDOR,
    12799                             ONEPLUS
    12800                         ],
    12801                         [
    12802                             TYPE,
    12803                             WEARABLE
    12804                         ]
    12805                     ],
    12806                     [
    12807                         /(moto 360)/i
    12808                     ],
    12809                     [
    12810                         MODEL,
    12811                         [
    12812                             VENDOR,
    12813                             MOTOROLA
    12814                         ],
    12815                         [
    12816                             TYPE,
    12817                             WEARABLE
    12818                         ]
    12819                     ],
    12820                     [
    12821                         /(smartwatch 3)/i
    12822                     ],
    12823                     [
    12824                         MODEL,
    12825                         [
    12826                             VENDOR,
    12827                             SONY
    12828                         ],
    12829                         [
    12830                             TYPE,
    12831                             WEARABLE
    12832                         ]
    12833                     ],
    12834                     [
    12835                         /(g watch r)/i
    12836                     ],
    12837                     [
    12838                         MODEL,
    12839                         [
    12840                             VENDOR,
    12841                             LG
    12842                         ],
    12843                         [
    12844                             TYPE,
    12845                             WEARABLE
    12846                         ]
    12847                     ],
    12848                     [
    12849                         /droid.+; (wt63?0{2,3})\)/i
    12850                     ],
    12851                     [
    12852                         MODEL,
    12853                         [
    12854                             VENDOR,
    12855                             ZEBRA
    12856                         ],
    12857                         [
    12858                             TYPE,
    12859                             WEARABLE
    12860                         ]
    12861                     ],
    12862                     [
    12863                         /droid.+; (glass) \d/i
    12864                     ],
    12865                     [
    12866                         MODEL,
    12867                         [
    12868                             VENDOR,
    12869                             GOOGLE
    12870                         ],
    12871                         [
    12872                             TYPE,
    12873                             XR
    12874                         ]
    12875                     ],
    12876                     [
    12877                         /(pico) (4|neo3(?: link|pro)?)/i
    12878                     ],
    12879                     [
    12880                         VENDOR,
    12881                         MODEL,
    12882                         [
    12883                             TYPE,
    12884                             XR
    12885                         ]
    12886                     ],
    12887                     [
    12888                         /(quest( \d| pro)?s?).+vr/i
    12889                     ],
    12890                     [
    12891                         MODEL,
    12892                         [
    12893                             VENDOR,
    12894                             FACEBOOK
    12895                         ],
    12896                         [
    12897                             TYPE,
    12898                             XR
    12899                         ]
    12900                     ],
    12901                     [
    12902                         /mobile vr; rv.+firefox/i
    12903                     ],
    12904                     [
    12905                         [
    12906                             TYPE,
    12907                             XR
    12908                         ]
    12909                     ],
    12910                     [
    12911                         /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
    12912                     ],
    12913                     [
    12914                         VENDOR,
    12915                         [
    12916                             TYPE,
    12917                             EMBEDDED
    12918                         ]
    12919                     ],
    12920                     [
    12921                         /(aeobc)\b/i
    12922                     ],
    12923                     [
    12924                         MODEL,
    12925                         [
    12926                             VENDOR,
    12927                             AMAZON
    12928                         ],
    12929                         [
    12930                             TYPE,
    12931                             EMBEDDED
    12932                         ]
    12933                     ],
    12934                     [
    12935                         /(homepod).+mac os/i
    12936                     ],
    12937                     [
    12938                         MODEL,
    12939                         [
    12940                             VENDOR,
    12941                             APPLE
    12942                         ],
    12943                         [
    12944                             TYPE,
    12945                             EMBEDDED
    12946                         ]
    12947                     ],
    12948                     [
    12949                         /windows iot/i
    12950                     ],
    12951                     [
    12952                         [
    12953                             TYPE,
    12954                             EMBEDDED
    1295512967                        ]
    1295612968                    ],
     
    1359313605                        case UA_ENGINE:
    1359413606                            var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;
    13595                             if (brands) for(var i in brands){
     13607                            if (brands) for(var i = 0; i < brands.length; i++){
    1359613608                                var brandName = brands[i].brand || brands[i], brandVersion = brands[i].version;
    1359713609                                if (this.itemType == UA_BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) {
     
    1368713699                    extensions = void 0;
    1368813700                }
    13689                 if (headers && typeof headers.append === FUNC_TYPE) {
     13701                if (headers) if (typeof headers.append === FUNC_TYPE) {
    1369013702                    var kv = {};
    1369113703                    headers.forEach(function(v, k) {
    13692                         kv[k] = v;
     13704                        kv[String(k).toLowerCase()] = v;
    1369313705                    });
    1369413706                    headers = kv;
     13707                } else {
     13708                    var normalized = {};
     13709                    for(var header in headers)if (headers.hasOwnProperty(header)) normalized[String(header).toLowerCase()] = headers[header];
     13710                    headers = normalized;
    1369513711                }
    1369613712                if (!(this instanceof UAParser)) return new UAParser(ua, extensions, headers).getResult();
     
    1420214218            }
    1420314219            getFormData.getFieldData = getFieldData;
    14204             var node_modules_hidden = __webpack_require__("./node_modules/hidden/index.js");
    14205             var hidden_default = /*#__PURE__*/ __webpack_require__.n(node_modules_hidden);
    1420614220            let createNanoEvents = ()=>({
    1420714221                    emit (event, ...args) {
     
    1426214276            }
    1426314277            const util_Despot = Despot;
     14278            function hideElement(element) {
     14279                if (!element) return;
     14280                element.style.setProperty("display", "none", "important");
     14281            }
     14282            const html_hideElement = hideElement;
    1426414283            function isNotButton(element) {
    1426514284                return "BUTTON" !== element.tagName && "submit" !== element.getAttribute("type");
    1426614285            }
    1426714286            const html_isNotButton = isNotButton;
     14287            function showElement(element) {
     14288                if (!element) return;
     14289                element.style.removeProperty("display");
     14290            }
     14291            const html_showElement = showElement;
    1426814292            const REGEX = /[ ,]+/u;
    1426914293            function trimEmail(email) {
     
    1436814392                }
    1436914393                hideAll() {
    14370                     for (const formElement of this.formElement.elements)hidden_default()(formElement, true);
    14371                     if (!this.formElement.classList.contains(this.options.selectors.containerClass)) hidden_default()(this.formElement, true);
     14394                    for (const formElement of this.formElement.elements)html_hideElement(formElement);
     14395                    if (!this.formElement.classList.contains(this.options.selectors.containerClass)) html_hideElement(this.formElement);
    1437214396                }
    1437314397                isRegisteredFormField(formElement) {
     
    1445314477                hideSubmitButton() {
    1445414478                    const submitButton = this.findSubmitButton();
    14455                     hidden_default()(submitButton, true);
     14479                    html_hideElement(submitButton);
    1445614480                }
    1445714481                unload() {
     
    1451214536                }
    1451314537                hide() {
    14514                     hidden_default()(this.formElement, true);
     14538                    html_hideElement(this.formElement);
    1451514539                }
    1451614540                show() {
    14517                     hidden_default()(this.formElement, false);
     14541                    html_showElement(this.formElement);
    1451814542                }
    1451914543            }
     
    1492714951            }
    1492814952            const html_disableElement = disableElement;
    14929             function hideElement_hideElement(element) {
    14930                 if (!element) return;
    14931                 hidden_default()(element, true);
    14932             }
    14933             const hideElement = hideElement_hideElement;
    1493414953            function adjustButton(buttonElement, show, type, disabled) {
    1493514954                if (disabled) html_disableElement(buttonElement);
    1493614955                if (type) buttonElement.type = type;
    14937                 if (!show) hideElement(buttonElement);
     14956                if (!show) html_hideElement(buttonElement);
    1493814957                return buttonElement;
    1493914958            }
     
    1494714966            function isShown(element) {
    1494814967                if (!element) return false;
    14949                 return !hidden_default()(element);
     14968                const display = element.style.getPropertyValue("display");
     14969                return !display.includes("none");
    1495014970            }
    1495114971            const html_isShown = isShown;
    14952             function showElement(element) {
    14953                 if (!element) return;
    14954                 hidden_default()(element, false);
    14955             }
    14956             const html_showElement = showElement;
    1495714972            class Buttons extends util_Despot {
    1495814973                container;
     
    1506715082                    if (!params?.paused) {
    1506815083                        html_disableElement(this.previewButton);
    15069                         hideElement(this.previewButton);
     15084                        html_hideElement(this.previewButton);
    1507015085                    }
    1507115086                    if (!this.options.enableAutoValidation) html_enableElement(this.submitButton);
    1507215087                }
    1507315088                onGoingBack() {
    15074                     hideElement(this.recordAgainButton);
     15089                    html_hideElement(this.recordAgainButton);
    1507515090                    html_showElement(this.recordButton);
    1507615091                    html_showElement(this.submitButton);
     
    1509715112                }
    1509815113                onPreview() {
    15099                     hideElement(this.recordButton);
    15100                     hideElement(this.previewButton);
     15114                    html_hideElement(this.recordButton);
     15115                    html_hideElement(this.previewButton);
    1510115116                    html_disableElement(this.audioOnRadioPair);
    1510215117                    html_disableElement(this.audioOffRadioPair);
     
    1511015125                adjustButtonsForPause() {
    1511115126                    if (!this.isCountingDown()) {
    15112                         if (this.pauseButton) hideElement(this.pauseButton);
     15127                        if (this.pauseButton) html_hideElement(this.pauseButton);
    1511315128                        html_showElement(this.resumeButton);
    1511415129                        html_enableElement(this.resumeButton);
    15115                         hideElement(this.recordButton);
     15130                        html_hideElement(this.recordButton);
    1511615131                        html_showElement(this.previewButton);
    1511715132                        html_enableElement(this.previewButton);
     
    1511915134                }
    1512015135                onFirstFrameSent() {
    15121                     hideElement(this.recordButton);
    15122                     hideElement(this.recordAgainButton);
     15136                    html_hideElement(this.recordButton);
     15137                    html_hideElement(this.recordAgainButton);
    1512315138                    if (this.pauseButton) {
    1512415139                        html_showElement(this.pauseButton);
     
    1513815153                }
    1513915154                onResuming() {
    15140                     hideElement(this.resumeButton);
    15141                     hideElement(this.recordButton);
     15155                    html_hideElement(this.resumeButton);
     15156                    html_hideElement(this.recordButton);
    1514215157                    if (this.pauseButton) {
    1514315158                        html_enableElement(this.pauseButton);
     
    1514815163                    html_disableElement(this.previewButton);
    1514915164                    html_disableElement(this.recordButton);
    15150                     hideElement(this.pauseButton);
    15151                     hideElement(this.resumeButton);
     15165                    html_hideElement(this.pauseButton);
     15166                    html_hideElement(this.resumeButton);
    1515215167                }
    1515315168                onCountdown() {
     
    1517415189                }
    1517515190                onHidden() {
    15176                     hideElement(this.recordButton);
    15177                     hideElement(this.previewButton);
    15178                     hideElement(this.recordAgainButton);
    15179                     hideElement(this.resumeButton);
    15180                     hideElement(this.audioOnRadioPair);
    15181                     hideElement(this.audioOffRadioPair);
     15191                    html_hideElement(this.recordButton);
     15192                    html_hideElement(this.previewButton);
     15193                    html_hideElement(this.recordAgainButton);
     15194                    html_hideElement(this.resumeButton);
     15195                    html_hideElement(this.audioOnRadioPair);
     15196                    html_hideElement(this.audioOffRadioPair);
    1518215197                }
    1518315198                onEnablingAudio() {
     
    1531715332                        this.container.appendChild(this.buttonsElement);
    1531815333                    }
    15319                     hideElement(this.buttonsElement);
     15334                    html_hideElement(this.buttonsElement);
    1532015335                    this.buildButtons();
    1532115336                    if (!this.built) this.initEvents();
     
    1533215347                }
    1533315348                hide(deep = false) {
    15334                     hideElement(this.buttonsElement);
     15349                    html_hideElement(this.buttonsElement);
    1533515350                    if (deep) {
    15336                         hideElement(this.recordButton);
    15337                         hideElement(this.pauseButton);
    15338                         hideElement(this.resumeButton);
    15339                         hideElement(this.previewButton);
    15340                         hideElement(this.recordAgainButton);
    15341                         hideElement(this.submitButton);
    15342                         hideElement(this.audioOnRadioPair);
    15343                         hideElement(this.audioOffRadioPair);
     15351                        html_hideElement(this.recordButton);
     15352                        html_hideElement(this.pauseButton);
     15353                        html_hideElement(this.resumeButton);
     15354                        html_hideElement(this.previewButton);
     15355                        html_hideElement(this.recordAgainButton);
     15356                        html_hideElement(this.submitButton);
     15357                        html_hideElement(this.audioOnRadioPair);
     15358                        html_hideElement(this.audioOffRadioPair);
    1534415359                    }
    1534515360                }
     
    1535215367            }
    1535315368            const buttons = Buttons;
     15369            function isHidden_isHidden(element) {
     15370                if (!element) return true;
     15371                const display = element.style.getPropertyValue("display");
     15372                return display.includes("none");
     15373            }
     15374            const isHidden = isHidden_isHidden;
    1535415375            class Countdown {
    1535515376                visuals;
     
    1540515426                }
    1540615427                show() {
    15407                     hidden_default()(this.countdownElement, false);
     15428                    html_showElement(this.countdownElement);
    1540815429                }
    1540915430                isCountingDown() {
     
    1541615437                }
    1541715438                hide() {
    15418                     hidden_default()(this.countdownElement, true);
     15439                    html_hideElement(this.countdownElement);
    1541915440                    this.unload();
    1542015441                }
     
    1545615477                }
    1545715478                hide() {
    15458                     hidden_default()(this.facingModeElement, true);
     15479                    html_hideElement(this.facingModeElement);
    1545915480                }
    1546015481                show() {
    15461                     hidden_default()(this.facingModeElement, false);
     15482                    html_showElement(this.facingModeElement);
    1546215483                }
    1546315484            }
     
    1550415525                }
    1550515526                hide() {
    15506                     hidden_default()(this.pausedBlockElement, true);
     15527                    html_hideElement(this.pausedBlockElement);
    1550715528                }
    1550815529                show() {
    15509                     hidden_default()(this.pausedBlockElement, false);
     15530                    html_showElement(this.pausedBlockElement);
    1551015531                }
    1551115532            }
     
    1553915560                }
    1554015561                hide() {
    15541                     hidden_default()(this.recordNoteElement, true);
     15562                    html_hideElement(this.recordNoteElement);
    1554215563                }
    1554315564                show() {
    15544                     hidden_default()(this.recordNoteElement, false);
     15565                    html_showElement(this.recordNoteElement);
    1554515566                }
    1554615567            }
     
    1561615637                }
    1561715638                hide() {
    15618                     hidden_default()(this.recordTimerElement, true);
     15639                    html_hideElement(this.recordTimerElement);
    1561915640                }
    1562015641                show() {
    1562115642                    this.recordTimerElement?.classList.remove("near");
    1562215643                    this.recordTimerElement?.classList.remove("nigh");
    15623                     hidden_default()(this.recordTimerElement, false);
     15644                    html_showElement(this.recordTimerElement);
    1562415645                }
    1562515646                getSecondsRecorded() {
     
    1586115882                }
    1586215883                show() {
    15863                     if (this.notifyElement) hidden_default()(this.notifyElement, false);
     15884                    html_showElement(this.notifyElement);
    1586415885                }
    1586515886                runEntertainment() {
     
    1590915930                    } else this.options.logger.warn("There is no message element for displaying a message");
    1591015931                    else this.options.logger.warn("Not going to update notifierMessage element because message is empty");
    15911                     hidden_default()(this.messageElement, false);
     15932                    html_showElement(this.messageElement);
    1591215933                }
    1591315934                setExplanation(explanation) {
     
    1592015941                    }
    1592115942                    this.explanationElement.innerHTML = explanation;
    15922                     hidden_default()(this.explanationElement, false);
     15943                    html_showElement(this.explanationElement);
    1592315944                }
    1592415945                build() {
     
    1593515956                }
    1593615957                hideMessage() {
    15937                     if (this.getMessageElement()) hidden_default()(this.messageElement, true);
     15958                    html_hideElement(this.getMessageElement());
    1593815959                }
    1593915960                hideExplanation() {
    15940                     if (this.explanationElement) hidden_default()(this.explanationElement, true);
     15961                    html_hideElement(this.explanationElement);
    1594115962                }
    1594215963                hide() {
    1594315964                    this.cancelEntertainment();
    1594415965                    if (this.notifyElement) {
    15945                         hidden_default()(this.notifyElement, true);
     15966                        html_hideElement(this.notifyElement);
    1594615967                        this.notifyElement.classList.remove("blocking");
    1594715968                    }
     
    1595115972                isVisible() {
    1595215973                    if (!this.built) return false;
    15953                     return this.notifyElement && !hidden_default()(this.notifyElement);
     15974                    return this.notifyElement && !isHidden(this.notifyElement);
    1595415975                }
    1595515976                isBuilt() {
     
    1662616647                }
    1662716648                show() {
    16628                     if (this.recorderElement) hidden_default()(this.recorderElement, false);
     16649                    html_showElement(this.recorderElement);
    1662916650                }
    1663016651                onUserMediaReady(params) {
     
    1701017031                }
    1701117032                isHidden() {
    17012                     return !this.recorderElement || hidden_default()(this.recorderElement);
     17033                    return !this.recorderElement || isHidden(this.recorderElement);
    1701317034                }
    1701417035                writeCommand(command, args, cb) {
     
    1740017421                hide() {
    1740117422                    if (!this.isHidden()) {
    17402                         if (this.recorderElement) hidden_default()(this.recorderElement, true);
     17423                        if (this.recorderElement) html_hideElement(this.recorderElement);
    1740317424                        this.clearUserMediaTimeout();
    1740417425                        this.clearRetryTimeout();
     
    1754417565                    if (hasMedia) this.correctDimensions(true, videomailWidth ?? this.replayElement.videoWidth, videomailHeight ?? this.replayElement.videoHeight);
    1754517566                    if (playerOnly) {
    17546                         if (hasMedia) hidden_default()(this.replayElement, false);
    17547                     } else hidden_default()(this.replayElement, false);
    17548                     if (playerOnly) hidden_default()(this.replayElement.parentNode, false);
     17567                        if (hasMedia) html_showElement(this.replayElement);
     17568                    } else html_showElement(this.replayElement);
     17569                    if (playerOnly) html_showElement(this.replayElement.parentElement);
    1754917570                    else this.visuals.show();
    1755017571                    if (hasAudio) this.replayElement.setAttribute("volume", "1");
     
    1769317714                }
    1769417715                hide() {
    17695                     if (this.isStandalone()) hidden_default()(this.visuals, true);
     17716                    if (this.isStandalone()) this.visuals.hide();
    1769617717                    else if (this.replayElement) {
    17697                         hidden_default()(this.replayElement, true);
    17698                         hidden_default()(this.replayElement.parentNode, true);
     17718                        html_hideElement(this.replayElement);
     17719                        html_hideElement(this.replayElement.parentElement);
    1769917720                    }
    1770017721                }
    1770117722                isShown() {
    1770217723                    if (!this.replayElement) return false;
    17703                     return !hidden_default()(this.replayElement) && !this.visuals.isHidden();
     17724                    return !isHidden(this.replayElement) && !this.visuals.isHidden();
    1770417725                }
    1770517726                getVisuals() {
     
    1790417925                hide() {
    1790517926                    if (this.visualsElement) {
    17906                         hidden_default()(this.visualsElement, true);
     17927                        html_hideElement(this.visualsElement);
    1790717928                        this.emit("HIDE");
    1790817929                    }
     
    1791017931                isHidden() {
    1791117932                    if (!this.built) return true;
    17912                     if (this.visualsElement) return hidden_default()(this.visualsElement);
     17933                    return isHidden(this.visualsElement);
    1791317934                }
    1791417935                showVisuals() {
    17915                     hidden_default()(this.visualsElement, false);
     17936                    html_showElement(this.visualsElement);
    1791617937                }
    1791717938                show(params) {
     
    1814118162                }
    1814218163                hideMySelf() {
    18143                     hidden_default()(this.containerElement, true);
     18164                    html_hideElement(this.containerElement);
    1814418165                }
    1814518166                async submitVideomail(formInputs, method) {
     
    1821418235                        options: this.options
    1821518236                    });
    18216                     hidden_default()(this.containerElement, false);
     18237                    html_showElement(this.containerElement);
    1821718238                    this.visuals.show(params);
    1821818239                    if (!this.hasError) {
  • videomail-for-ninja-forms/tags/8.1.0/target/php/fields/videomail.php

    r3354424 r3366104  
    173173      'nf-videomail-main',
    174174      NF_Videomail::$jsUrl . 'main.min.js',
     175      // The script nf-front-end is defined by the Ninja Forms plugin and
     176      // enqueued along with the ("front-end", client-side) form.
    175177      array('nf-front-end', 'nf-videomail-client'),
    176178      NF_Videomail::VERSION
  • videomail-for-ninja-forms/tags/8.1.0/target/php/videomail.php

    r3354424 r3366104  
    33
    44  const NAME = 'Videomail';
    5   const VERSION = '8.0.3';
     5  const VERSION = '8.1.0';
    66  const AUTHOR = 'Michael Heuberger + Kyle B. Johnson';
    77  const SLUG = 'videomail';
     
    5858  public function __construct() {
    5959    add_action('admin_init', array($this, 'setup_license'));
     60    add_action('plugins_loaded', array($this, 'plugin_update_check'));
    6061    add_action('ninja_forms_loaded', array($this, 'ninja_forms_loaded'));
    6162    add_filter('ninja_forms_register_fields', array($this, 'register_fields'));
     
    114115      );
    115116  }
     117
     118  // See https://github.com/litespeedtech/lscache_wp/issues/895
     119  public function plugin_update_check() {
     120      // Check if current version is newer.
     121      if(version_compare( self::VERSION, get_option( 'NF_Videomail_Version' ), '>' )) {
     122          // Purge LiteSpeed cache.
     123          !class_exists('\LiteSpeed\Purge') || \LiteSpeed\Purge::purge_all();
     124
     125          // Finally, update the stored version for future checks.
     126          update_option('NF_Videomail_Version', self::VERSION);
     127      }
     128  }
    116129}
  • videomail-for-ninja-forms/tags/8.1.0/videomail-for-ninja-forms.php

    r3354424 r3366104  
    44  Plugin URI: https://github.com/binarykitchen/videomail-for-ninja-forms
    55  Description: Express yourself in more than just words. Record and send a short video from your webcam.
    6   Version: 8.0.3
     6  Version: 8.1.0
    77  Author: Michael Heuberger + Kyle B. Johnson
    88  Author URI: https://videomail.io
  • videomail-for-ninja-forms/trunk/readme.txt

    r3354424 r3366104  
    66Requires at least: 6.0
    77Tested up to: 6.8.2
    8 Stable tag: 8.0.3
     8Stable tag: 8.1.0
    99Requires PHP: 8.1.0
    1010Donate link: https://videomail.io/faq
     
    7171
    7272== Changelog ==
     73= 8.1.0 (23 Sept 2025) =
     74**Fix**
     75* Clear LiteSpeed Cache when upgrading this plugin, see https://github.com/litespeedtech/lscache_wp/issues/895
     76
     77**Chore**
     78* Upgrade VC dependency and re-release complete build
     79
    7380= 8.0.3 (2 Sept 2025) =
    7481**Fix**
  • videomail-for-ninja-forms/trunk/target/js/main.min.js

    r3354424 r3366104  
    1 let PLUGIN_VERSION="8.0.3",DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenToOnce(this.channel,"attach:view",this.loadVideomailClient),this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];let i=this.fieldModel.cid;e.find(function(e){return e.cid===i})?this.loadVideomailClient():this.videomailClient.unload()})})},getFormId:function(){return this.fieldModel.get("formID")},registerVideomailField:function(e){this.fieldModel=e,this.channel.reply("validate:required",this.validateRequired,this),this.channel.reply("validate:modelData",this.validateVideomail,this),Backbone.Radio.channel("form-"+this.getFormId()).reply("maybe:submit",this.maybeSubmit,this,e)},loadVideomailClient:function(){let e=this.fieldModel.get("image_quality")||40;100<e?e=100:e<1&&(e=1);var i=this.fieldModel.get("verbose")||DEBUG;DEBUG=DEBUG||i,Backbone.Radio.DEBUG=Backbone.Radio.DEBUG||i,this.videomailClient=new VideomailClient.VideomailClient({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,stretch:this.fieldModel.get("stretch")||!1,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{containerId:"videomail",submitButtonSelector:".submit-wrap input"},callbacks:{adjustFormDataBeforePosting:this.adjustFormDataBeforePostingToVideomailServer.bind(this)},loadUserMediaOnRecord:this.fieldModel.get("load_user_media_on_record"),enableAutoValidation:!1,enableAutoSubmission:!1,verbose:i,versions:{ninjaFormPlugin:PLUGIN_VERSION}}),this.videomailClient.on("PREVIEW",this.onPreview.bind(this)),this.videomailClient.on("SUBMITTED",this.onSubmitted.bind(this)),this.videomailClient.on("GOING_BACK",this.onGoingBack.bind(this)),this.videomailClient.show()},onPreview:function(e){this.fieldModel.set("videomail-key",e),this.fieldModel.set("value",e),Backbone.Radio.channel("fields").request("remove:error",this.fieldModel.get("id"),"required-error")},onSubmitted:function(e){let i=Backbone.Radio.channel("app").request("get:form",this.getFormId());i=i||this.fieldModel.collection.options.formModel,Backbone.Radio.channel("form-"+i.get("id")).request("add:extra","videomail",e.videomail),Backbone.Radio.channel("form-"+this.getFormId()).request("submit",i)},onGoingBack:function(){this.fieldModel.set("videomail-key",null),this.invalidate()},validateRequired:function(e,i){i=this.validateVideomail(i);return i||this.invalidate(),i},invalidate:function(){Backbone.Radio.channel("fields").request("add:error",this.fieldModel.get("id"),"required-error","Record and click on stop to see a preview video.")},validateVideomail:function(e){return(e=e||this.fieldModel).get("videomail-key")||!1},hasErrors:function(e){return 0<e.get("errors").length},maybeSubmit:function(e){let i=!0;var t=e.getExtra("videomail"),o=this.validateVideomail(),e=this.hasErrors(e);return t||e||!o||(this.videomailClient.submit(),i=!1),i},getMergeTagValue:function(e,i){let t=this.fieldModel.get(e);if(t&&("{wp:admin_email}"===t?t=window.nfVideomail.admin_email:(e=(e=t.match(/{field:(.*)}/i))&&e[1])!==t&&(t=t.replace(/{field:(.*)}/i,i[e]))),"undefined"!==t)return t},getFormValues:function(){let e;var i=Backbone.Radio.channel("app").request("get:form",this.getFormId()),i=(i?e=i.get("fields"):this.fieldModel.collection.options.formModel.get("fields").models&&(e=this.fieldModel.collection.options.formModel.get("fields").models),e.reduce(function(e,i){return e[i.get("key")]=i.get("value"),e},{}));return i},adjustFormDataBeforePostingToVideomailServer:function(e){var i=this.getFormValues();return e.from=this.getMergeTagValue("email_from",i),e.to=this.getMergeTagValue("email_to",i),e.subject=this.getMergeTagValue("email_subject",i),e.body=this.getMergeTagValue("email_body",i),e},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
    2 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguMC4zXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIC8vIHVnbHkgbmFtZSBlaD9cbiAgICAgICAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nOlxuICAgICAgICAgIHRoaXMuYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIuYmluZCh0aGlzKSxcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gdmFsaWRhdGUgdGhlIGlucHV0c1xuICAgICAgZW5hYmxlQXV0b1ZhbGlkYXRpb246IGZhbHNlLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIGRlYWwgd2l0aCBmb3JtIHN1Ym1pc3Npb25zXG4gICAgICBlbmFibGVBdXRvU3VibWlzc2lvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxvZyBhY3Rpb25zL2V2ZW50cyB0byBjb25zb2xlXG4gICAgICB2ZXJib3NlLFxuXG4gICAgICB2ZXJzaW9uczogeyBuaW5qYUZvcm1QbHVnaW46IFBMVUdJTl9WRVJTSU9OIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3Qi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
     1let PLUGIN_VERSION="8.1.0",DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenToOnce(this.channel,"attach:view",this.loadVideomailClient),this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];let i=this.fieldModel.cid;e.find(function(e){return e.cid===i})?this.loadVideomailClient():this.videomailClient.unload()})})},getFormId:function(){return this.fieldModel.get("formID")},registerVideomailField:function(e){this.fieldModel=e,this.channel.reply("validate:required",this.validateRequired,this),this.channel.reply("validate:modelData",this.validateVideomail,this),Backbone.Radio.channel("form-"+this.getFormId()).reply("maybe:submit",this.maybeSubmit,this,e)},loadVideomailClient:function(){let e=this.fieldModel.get("image_quality")||40;100<e?e=100:e<1&&(e=1);var i=this.fieldModel.get("verbose")||DEBUG;DEBUG=DEBUG||i,Backbone.Radio.DEBUG=Backbone.Radio.DEBUG||i,this.videomailClient=new VideomailClient.VideomailClient({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,stretch:this.fieldModel.get("stretch")||!1,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{containerId:"videomail",submitButtonSelector:".submit-wrap input"},callbacks:{adjustFormDataBeforePosting:this.adjustFormDataBeforePostingToVideomailServer.bind(this)},loadUserMediaOnRecord:this.fieldModel.get("load_user_media_on_record"),enableAutoValidation:!1,enableAutoSubmission:!1,verbose:i,versions:{ninjaFormPlugin:PLUGIN_VERSION}}),this.videomailClient.on("PREVIEW",this.onPreview.bind(this)),this.videomailClient.on("SUBMITTED",this.onSubmitted.bind(this)),this.videomailClient.on("GOING_BACK",this.onGoingBack.bind(this)),this.videomailClient.show()},onPreview:function(e){this.fieldModel.set("videomail-key",e),this.fieldModel.set("value",e),Backbone.Radio.channel("fields").request("remove:error",this.fieldModel.get("id"),"required-error")},onSubmitted:function(e){let i=Backbone.Radio.channel("app").request("get:form",this.getFormId());i=i||this.fieldModel.collection.options.formModel,Backbone.Radio.channel("form-"+i.get("id")).request("add:extra","videomail",e.videomail),Backbone.Radio.channel("form-"+this.getFormId()).request("submit",i)},onGoingBack:function(){this.fieldModel.set("videomail-key",null),this.invalidate()},validateRequired:function(e,i){i=this.validateVideomail(i);return i||this.invalidate(),i},invalidate:function(){Backbone.Radio.channel("fields").request("add:error",this.fieldModel.get("id"),"required-error","Record and click on stop to see a preview video.")},validateVideomail:function(e){return(e=e||this.fieldModel).get("videomail-key")||!1},hasErrors:function(e){return 0<e.get("errors").length},maybeSubmit:function(e){let i=!0;var t=e.getExtra("videomail"),o=this.validateVideomail(),e=this.hasErrors(e);return t||e||!o||(this.videomailClient.submit(),i=!1),i},getMergeTagValue:function(e,i){let t=this.fieldModel.get(e);if(t&&("{wp:admin_email}"===t?t=window.nfVideomail.admin_email:(e=(e=t.match(/{field:(.*)}/i))&&e[1])!==t&&(t=t.replace(/{field:(.*)}/i,i[e]))),"undefined"!==t)return t},getFormValues:function(){let e;var i=Backbone.Radio.channel("app").request("get:form",this.getFormId()),i=(i?e=i.get("fields"):this.fieldModel.collection.options.formModel.get("fields").models&&(e=this.fieldModel.collection.options.formModel.get("fields").models),e.reduce(function(e,i){return e[i.get("key")]=i.get("value"),e},{}));return i},adjustFormDataBeforePostingToVideomailServer:function(e){var i=this.getFormValues();return e.from=this.getMergeTagValue("email_from",i),e.to=this.getMergeTagValue("email_to",i),e.subject=this.getMergeTagValue("email_subject",i),e.body=this.getMergeTagValue("email_body",i),e},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
     2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguMS4wXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIC8vIHVnbHkgbmFtZSBlaD9cbiAgICAgICAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nOlxuICAgICAgICAgIHRoaXMuYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIuYmluZCh0aGlzKSxcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gdmFsaWRhdGUgdGhlIGlucHV0c1xuICAgICAgZW5hYmxlQXV0b1ZhbGlkYXRpb246IGZhbHNlLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIGRlYWwgd2l0aCBmb3JtIHN1Ym1pc3Npb25zXG4gICAgICBlbmFibGVBdXRvU3VibWlzc2lvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxvZyBhY3Rpb25zL2V2ZW50cyB0byBjb25zb2xlXG4gICAgICB2ZXJib3NlLFxuXG4gICAgICB2ZXJzaW9uczogeyBuaW5qYUZvcm1QbHVnaW46IFBMVUdJTl9WRVJTSU9OIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3Qi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
  • videomail-for-ninja-forms/trunk/target/js/videomail-client/index.min.js

    r3354424 r3366104  
    49944994                module1.exports = bind.call(call, $hasOwn);
    49954995            },
    4996             "./node_modules/hidden/index.js": function(module1) {
    4997                 module1.exports = shim;
    4998                 function shim(element, value) {
    4999                     if (void 0 === value) return 'none' === element.style.display;
    5000                     element.style.display = value ? 'none' : '';
    5001                 }
    5002             },
    50034996            "./node_modules/ieee754/index.js": function(__unused_webpack_module, exports1) {
    50044997                /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ exports1.read = function(buffer, offset, isLE, mLen, nBytes) {
     
    1065610649            var client_default = /*#__PURE__*/ __webpack_require__.n(client);
    1065710650            var package_namespaceObject = {
    10658                 rE: "11.0.5"
     10651                rE: "11.0.8"
    1065910652            };
    1066010653            var defined = __webpack_require__("./node_modules/defined/index.js");
    1066110654            var defined_default = /*#__PURE__*/ __webpack_require__.n(defined);
    10662             var LIBVERSION = '2.0.4', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', FUNC_TYPE = 'function', UNDEF_TYPE = 'undefined', OBJ_TYPE = 'object', STR_TYPE = 'string', UA_BROWSER = 'browser', UA_CPU = 'cpu', UA_DEVICE = 'device', UA_ENGINE = 'engine', UA_OS = 'os', UA_RESULT = 'result', NAME = 'name', TYPE = 'type', VENDOR = 'vendor', VERSION = 'version', ARCHITECTURE = 'architecture', MAJOR = 'major', MODEL = 'model', CONSOLE = 'console', MOBILE = 'mobile', TABLET = 'tablet', SMARTTV = 'smarttv', WEARABLE = 'wearable', XR = 'xr', EMBEDDED = 'embedded', INAPP = 'inapp', BRANDS = 'brands', FORMFACTORS = 'formFactors', FULLVERLIST = 'fullVersionList', PLATFORM = 'platform', PLATFORMVER = 'platformVersion', BITNESS = 'bitness', CH_HEADER = 'sec-ch-ua', CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list', CH_HEADER_ARCH = CH_HEADER + '-arch', CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS, CH_HEADER_FORM_FACTORS = CH_HEADER + '-form-factors', CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE, CH_HEADER_MODEL = CH_HEADER + '-' + MODEL, CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM, CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version', CH_ALL_VALUES = [
     10655            var LIBVERSION = '2.0.5', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', FUNC_TYPE = 'function', UNDEF_TYPE = 'undefined', OBJ_TYPE = 'object', STR_TYPE = 'string', UA_BROWSER = 'browser', UA_CPU = 'cpu', UA_DEVICE = 'device', UA_ENGINE = 'engine', UA_OS = 'os', UA_RESULT = 'result', NAME = 'name', TYPE = 'type', VENDOR = 'vendor', VERSION = 'version', ARCHITECTURE = 'architecture', MAJOR = 'major', MODEL = 'model', CONSOLE = 'console', MOBILE = 'mobile', TABLET = 'tablet', SMARTTV = 'smarttv', WEARABLE = 'wearable', XR = 'xr', EMBEDDED = 'embedded', INAPP = 'inapp', BRANDS = 'brands', FORMFACTORS = 'formFactors', FULLVERLIST = 'fullVersionList', PLATFORM = 'platform', PLATFORMVER = 'platformVersion', BITNESS = 'bitness', CH_HEADER = 'sec-ch-ua', CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list', CH_HEADER_ARCH = CH_HEADER + '-arch', CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS, CH_HEADER_FORM_FACTORS = CH_HEADER + '-form-factors', CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE, CH_HEADER_MODEL = CH_HEADER + '-' + MODEL, CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM, CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version', CH_ALL_VALUES = [
    1066310656                BRANDS,
    1066410657                FULLVERLIST,
     
    1071210705                return isString(version) ? strip(/[^\d\.]/g, version).split('.')[0] : void 0;
    1071310706            }, setProps = function(arr) {
    10714                 for(var i in arr){
     10707                for(var i in arr)if (arr.hasOwnProperty(i)) {
    1071510708                    var propName = arr[i];
    1071610709                    if (typeof propName == OBJ_TYPE && 2 == propName.length) this[propName[0]] = propName[1];
     
    1123511228                    ],
    1123611229                    [
     11230                        /(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i
     11231                    ],
     11232                    [
     11233                        [
     11234                            NAME,
     11235                            /(.+)/,
     11236                            'Zalo'
     11237                        ],
     11238                        VERSION,
     11239                        [
     11240                            TYPE,
     11241                            INAPP
     11242                        ]
     11243                    ],
     11244                    [
    1123711245                        /(chromium)[\/ ]([-\w\.]+)/i
    1123811246                    ],
     
    1145611464                    ],
    1145711465                    [
    11458                         /((ppc|powerpc)(64)?)( mac|;|\))/i
     11466                        / sun4\w[;\)]/i
     11467                    ],
     11468                    [
     11469                        [
     11470                            ARCHITECTURE,
     11471                            'sparc'
     11472                        ]
     11473                    ],
     11474                    [
     11475                        /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i,
     11476                        /((ppc|powerpc)(64)?)( mac|;|\))/i,
     11477                        /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i
    1145911478                    ],
    1146011479                    [
     
    1146711486                    ],
    1146811487                    [
    11469                         / sun4\w[;\)]/i
     11488                        /winnt.+\[axp/i
    1147011489                    ],
    1147111490                    [
    1147211491                        [
    1147311492                            ARCHITECTURE,
    11474                             'sparc'
    11475                         ]
    11476                     ],
    11477                     [
    11478                         /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i
    11479                     ],
    11480                     [
    11481                         [
    11482                             ARCHITECTURE,
    11483                             lowerize
     11493                            'alpha'
    1148411494                        ]
    1148511495                    ]
     
    1228512295                        /(hp) ([\w ]+\w)/i,
    1228612296                        /(microsoft); (lumia[\w ]+)/i,
    12287                         /(oppo) ?([\w ]+) bui/i
     12297                        /(oppo) ?([\w ]+) bui/i,
     12298                        /droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
    1228812299                    ],
    1228912300                    [
     
    1240812419                    ],
    1240912420                    [
     12421                        /(philips)[\w ]+tv/i,
    1241012422                        /smart-tv.+(samsung)/i
    1241112423                    ],
     
    1266312675                    ],
    1266412676                    [
    12665                         /droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i
     12677                        /(playstation \w+)/i
     12678                    ],
     12679                    [
     12680                        MODEL,
     12681                        [
     12682                            VENDOR,
     12683                            SONY
     12684                        ],
     12685                        [
     12686                            TYPE,
     12687                            CONSOLE
     12688                        ]
     12689                    ],
     12690                    [
     12691                        /\b(xbox(?: one)?(?!; xbox))[\); ]/i
     12692                    ],
     12693                    [
     12694                        MODEL,
     12695                        [
     12696                            VENDOR,
     12697                            MICROSOFT
     12698                        ],
     12699                        [
     12700                            TYPE,
     12701                            CONSOLE
     12702                        ]
     12703                    ],
     12704                    [
     12705                        /(ouya)/i,
     12706                        /(nintendo) (\w+)/i,
     12707                        /(retroid) (pocket ([^\)]+))/i
     12708                    ],
     12709                    [
     12710                        VENDOR,
     12711                        MODEL,
     12712                        [
     12713                            TYPE,
     12714                            CONSOLE
     12715                        ]
     12716                    ],
     12717                    [
     12718                        /droid.+; (shield)( bui|\))/i
     12719                    ],
     12720                    [
     12721                        MODEL,
     12722                        [
     12723                            VENDOR,
     12724                            NVIDIA
     12725                        ],
     12726                        [
     12727                            TYPE,
     12728                            CONSOLE
     12729                        ]
     12730                    ],
     12731                    [
     12732                        /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
     12733                    ],
     12734                    [
     12735                        MODEL,
     12736                        [
     12737                            VENDOR,
     12738                            SAMSUNG
     12739                        ],
     12740                        [
     12741                            TYPE,
     12742                            WEARABLE
     12743                        ]
     12744                    ],
     12745                    [
     12746                        /((pebble))app/i,
     12747                        /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
     12748                    ],
     12749                    [
     12750                        VENDOR,
     12751                        MODEL,
     12752                        [
     12753                            TYPE,
     12754                            WEARABLE
     12755                        ]
     12756                    ],
     12757                    [
     12758                        /(ow(?:19|20)?we?[1-3]{1,3})/i
     12759                    ],
     12760                    [
     12761                        MODEL,
     12762                        [
     12763                            VENDOR,
     12764                            OPPO
     12765                        ],
     12766                        [
     12767                            TYPE,
     12768                            WEARABLE
     12769                        ]
     12770                    ],
     12771                    [
     12772                        /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
     12773                    ],
     12774                    [
     12775                        MODEL,
     12776                        [
     12777                            VENDOR,
     12778                            APPLE
     12779                        ],
     12780                        [
     12781                            TYPE,
     12782                            WEARABLE
     12783                        ]
     12784                    ],
     12785                    [
     12786                        /(opwwe\d{3})/i
     12787                    ],
     12788                    [
     12789                        MODEL,
     12790                        [
     12791                            VENDOR,
     12792                            ONEPLUS
     12793                        ],
     12794                        [
     12795                            TYPE,
     12796                            WEARABLE
     12797                        ]
     12798                    ],
     12799                    [
     12800                        /(moto 360)/i
     12801                    ],
     12802                    [
     12803                        MODEL,
     12804                        [
     12805                            VENDOR,
     12806                            MOTOROLA
     12807                        ],
     12808                        [
     12809                            TYPE,
     12810                            WEARABLE
     12811                        ]
     12812                    ],
     12813                    [
     12814                        /(smartwatch 3)/i
     12815                    ],
     12816                    [
     12817                        MODEL,
     12818                        [
     12819                            VENDOR,
     12820                            SONY
     12821                        ],
     12822                        [
     12823                            TYPE,
     12824                            WEARABLE
     12825                        ]
     12826                    ],
     12827                    [
     12828                        /(g watch r)/i
     12829                    ],
     12830                    [
     12831                        MODEL,
     12832                        [
     12833                            VENDOR,
     12834                            LG
     12835                        ],
     12836                        [
     12837                            TYPE,
     12838                            WEARABLE
     12839                        ]
     12840                    ],
     12841                    [
     12842                        /droid.+; (wt63?0{2,3})\)/i
     12843                    ],
     12844                    [
     12845                        MODEL,
     12846                        [
     12847                            VENDOR,
     12848                            ZEBRA
     12849                        ],
     12850                        [
     12851                            TYPE,
     12852                            WEARABLE
     12853                        ]
     12854                    ],
     12855                    [
     12856                        /droid.+; (glass) \d/i
     12857                    ],
     12858                    [
     12859                        MODEL,
     12860                        [
     12861                            VENDOR,
     12862                            GOOGLE
     12863                        ],
     12864                        [
     12865                            TYPE,
     12866                            XR
     12867                        ]
     12868                    ],
     12869                    [
     12870                        /(pico) ([\w ]+) os\d/i
     12871                    ],
     12872                    [
     12873                        VENDOR,
     12874                        MODEL,
     12875                        [
     12876                            TYPE,
     12877                            XR
     12878                        ]
     12879                    ],
     12880                    [
     12881                        /(quest( \d| pro)?s?).+vr/i
     12882                    ],
     12883                    [
     12884                        MODEL,
     12885                        [
     12886                            VENDOR,
     12887                            FACEBOOK
     12888                        ],
     12889                        [
     12890                            TYPE,
     12891                            XR
     12892                        ]
     12893                    ],
     12894                    [
     12895                        /mobile vr; rv.+firefox/i
     12896                    ],
     12897                    [
     12898                        [
     12899                            TYPE,
     12900                            XR
     12901                        ]
     12902                    ],
     12903                    [
     12904                        /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
     12905                    ],
     12906                    [
     12907                        VENDOR,
     12908                        [
     12909                            TYPE,
     12910                            EMBEDDED
     12911                        ]
     12912                    ],
     12913                    [
     12914                        /(aeobc)\b/i
     12915                    ],
     12916                    [
     12917                        MODEL,
     12918                        [
     12919                            VENDOR,
     12920                            AMAZON
     12921                        ],
     12922                        [
     12923                            TYPE,
     12924                            EMBEDDED
     12925                        ]
     12926                    ],
     12927                    [
     12928                        /(homepod).+mac os/i
     12929                    ],
     12930                    [
     12931                        MODEL,
     12932                        [
     12933                            VENDOR,
     12934                            APPLE
     12935                        ],
     12936                        [
     12937                            TYPE,
     12938                            EMBEDDED
     12939                        ]
     12940                    ],
     12941                    [
     12942                        /windows iot/i
     12943                    ],
     12944                    [
     12945                        [
     12946                            TYPE,
     12947                            EMBEDDED
     12948                        ]
     12949                    ],
     12950                    [
     12951                        /droid.+; ([\w- ]+) (4k|android|smart|google)[- ]?tv/i
    1266612952                    ],
    1266712953                    [
     
    1267312959                    ],
    1267412960                    [
    12675                         /\b(android tv|smart[- ]?tv|opera tv|tv; rv:|large screen[\w ]+safari)\b/i
     12961                        /\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i
    1267612962                    ],
    1267712963                    [
     
    1267912965                            TYPE,
    1268012966                            SMARTTV
    12681                         ]
    12682                     ],
    12683                     [
    12684                         /(playstation \w+)/i
    12685                     ],
    12686                     [
    12687                         MODEL,
    12688                         [
    12689                             VENDOR,
    12690                             SONY
    12691                         ],
    12692                         [
    12693                             TYPE,
    12694                             CONSOLE
    12695                         ]
    12696                     ],
    12697                     [
    12698                         /\b(xbox(?: one)?(?!; xbox))[\); ]/i
    12699                     ],
    12700                     [
    12701                         MODEL,
    12702                         [
    12703                             VENDOR,
    12704                             MICROSOFT
    12705                         ],
    12706                         [
    12707                             TYPE,
    12708                             CONSOLE
    12709                         ]
    12710                     ],
    12711                     [
    12712                         /(ouya)/i,
    12713                         /(nintendo) (\w+)/i,
    12714                         /(retroid) (pocket ([^\)]+))/i
    12715                     ],
    12716                     [
    12717                         VENDOR,
    12718                         MODEL,
    12719                         [
    12720                             TYPE,
    12721                             CONSOLE
    12722                         ]
    12723                     ],
    12724                     [
    12725                         /droid.+; (shield)( bui|\))/i
    12726                     ],
    12727                     [
    12728                         MODEL,
    12729                         [
    12730                             VENDOR,
    12731                             NVIDIA
    12732                         ],
    12733                         [
    12734                             TYPE,
    12735                             CONSOLE
    12736                         ]
    12737                     ],
    12738                     [
    12739                         /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
    12740                     ],
    12741                     [
    12742                         MODEL,
    12743                         [
    12744                             VENDOR,
    12745                             SAMSUNG
    12746                         ],
    12747                         [
    12748                             TYPE,
    12749                             WEARABLE
    12750                         ]
    12751                     ],
    12752                     [
    12753                         /((pebble))app/i,
    12754                         /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i
    12755                     ],
    12756                     [
    12757                         VENDOR,
    12758                         MODEL,
    12759                         [
    12760                             TYPE,
    12761                             WEARABLE
    12762                         ]
    12763                     ],
    12764                     [
    12765                         /(ow(?:19|20)?we?[1-3]{1,3})/i
    12766                     ],
    12767                     [
    12768                         MODEL,
    12769                         [
    12770                             VENDOR,
    12771                             OPPO
    12772                         ],
    12773                         [
    12774                             TYPE,
    12775                             WEARABLE
    12776                         ]
    12777                     ],
    12778                     [
    12779                         /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
    12780                     ],
    12781                     [
    12782                         MODEL,
    12783                         [
    12784                             VENDOR,
    12785                             APPLE
    12786                         ],
    12787                         [
    12788                             TYPE,
    12789                             WEARABLE
    12790                         ]
    12791                     ],
    12792                     [
    12793                         /(opwwe\d{3})/i
    12794                     ],
    12795                     [
    12796                         MODEL,
    12797                         [
    12798                             VENDOR,
    12799                             ONEPLUS
    12800                         ],
    12801                         [
    12802                             TYPE,
    12803                             WEARABLE
    12804                         ]
    12805                     ],
    12806                     [
    12807                         /(moto 360)/i
    12808                     ],
    12809                     [
    12810                         MODEL,
    12811                         [
    12812                             VENDOR,
    12813                             MOTOROLA
    12814                         ],
    12815                         [
    12816                             TYPE,
    12817                             WEARABLE
    12818                         ]
    12819                     ],
    12820                     [
    12821                         /(smartwatch 3)/i
    12822                     ],
    12823                     [
    12824                         MODEL,
    12825                         [
    12826                             VENDOR,
    12827                             SONY
    12828                         ],
    12829                         [
    12830                             TYPE,
    12831                             WEARABLE
    12832                         ]
    12833                     ],
    12834                     [
    12835                         /(g watch r)/i
    12836                     ],
    12837                     [
    12838                         MODEL,
    12839                         [
    12840                             VENDOR,
    12841                             LG
    12842                         ],
    12843                         [
    12844                             TYPE,
    12845                             WEARABLE
    12846                         ]
    12847                     ],
    12848                     [
    12849                         /droid.+; (wt63?0{2,3})\)/i
    12850                     ],
    12851                     [
    12852                         MODEL,
    12853                         [
    12854                             VENDOR,
    12855                             ZEBRA
    12856                         ],
    12857                         [
    12858                             TYPE,
    12859                             WEARABLE
    12860                         ]
    12861                     ],
    12862                     [
    12863                         /droid.+; (glass) \d/i
    12864                     ],
    12865                     [
    12866                         MODEL,
    12867                         [
    12868                             VENDOR,
    12869                             GOOGLE
    12870                         ],
    12871                         [
    12872                             TYPE,
    12873                             XR
    12874                         ]
    12875                     ],
    12876                     [
    12877                         /(pico) (4|neo3(?: link|pro)?)/i
    12878                     ],
    12879                     [
    12880                         VENDOR,
    12881                         MODEL,
    12882                         [
    12883                             TYPE,
    12884                             XR
    12885                         ]
    12886                     ],
    12887                     [
    12888                         /(quest( \d| pro)?s?).+vr/i
    12889                     ],
    12890                     [
    12891                         MODEL,
    12892                         [
    12893                             VENDOR,
    12894                             FACEBOOK
    12895                         ],
    12896                         [
    12897                             TYPE,
    12898                             XR
    12899                         ]
    12900                     ],
    12901                     [
    12902                         /mobile vr; rv.+firefox/i
    12903                     ],
    12904                     [
    12905                         [
    12906                             TYPE,
    12907                             XR
    12908                         ]
    12909                     ],
    12910                     [
    12911                         /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
    12912                     ],
    12913                     [
    12914                         VENDOR,
    12915                         [
    12916                             TYPE,
    12917                             EMBEDDED
    12918                         ]
    12919                     ],
    12920                     [
    12921                         /(aeobc)\b/i
    12922                     ],
    12923                     [
    12924                         MODEL,
    12925                         [
    12926                             VENDOR,
    12927                             AMAZON
    12928                         ],
    12929                         [
    12930                             TYPE,
    12931                             EMBEDDED
    12932                         ]
    12933                     ],
    12934                     [
    12935                         /(homepod).+mac os/i
    12936                     ],
    12937                     [
    12938                         MODEL,
    12939                         [
    12940                             VENDOR,
    12941                             APPLE
    12942                         ],
    12943                         [
    12944                             TYPE,
    12945                             EMBEDDED
    12946                         ]
    12947                     ],
    12948                     [
    12949                         /windows iot/i
    12950                     ],
    12951                     [
    12952                         [
    12953                             TYPE,
    12954                             EMBEDDED
    1295512967                        ]
    1295612968                    ],
     
    1359313605                        case UA_ENGINE:
    1359413606                            var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;
    13595                             if (brands) for(var i in brands){
     13607                            if (brands) for(var i = 0; i < brands.length; i++){
    1359613608                                var brandName = brands[i].brand || brands[i], brandVersion = brands[i].version;
    1359713609                                if (this.itemType == UA_BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) {
     
    1368713699                    extensions = void 0;
    1368813700                }
    13689                 if (headers && typeof headers.append === FUNC_TYPE) {
     13701                if (headers) if (typeof headers.append === FUNC_TYPE) {
    1369013702                    var kv = {};
    1369113703                    headers.forEach(function(v, k) {
    13692                         kv[k] = v;
     13704                        kv[String(k).toLowerCase()] = v;
    1369313705                    });
    1369413706                    headers = kv;
     13707                } else {
     13708                    var normalized = {};
     13709                    for(var header in headers)if (headers.hasOwnProperty(header)) normalized[String(header).toLowerCase()] = headers[header];
     13710                    headers = normalized;
    1369513711                }
    1369613712                if (!(this instanceof UAParser)) return new UAParser(ua, extensions, headers).getResult();
     
    1420214218            }
    1420314219            getFormData.getFieldData = getFieldData;
    14204             var node_modules_hidden = __webpack_require__("./node_modules/hidden/index.js");
    14205             var hidden_default = /*#__PURE__*/ __webpack_require__.n(node_modules_hidden);
    1420614220            let createNanoEvents = ()=>({
    1420714221                    emit (event, ...args) {
     
    1426214276            }
    1426314277            const util_Despot = Despot;
     14278            function hideElement(element) {
     14279                if (!element) return;
     14280                element.style.setProperty("display", "none", "important");
     14281            }
     14282            const html_hideElement = hideElement;
    1426414283            function isNotButton(element) {
    1426514284                return "BUTTON" !== element.tagName && "submit" !== element.getAttribute("type");
    1426614285            }
    1426714286            const html_isNotButton = isNotButton;
     14287            function showElement(element) {
     14288                if (!element) return;
     14289                element.style.removeProperty("display");
     14290            }
     14291            const html_showElement = showElement;
    1426814292            const REGEX = /[ ,]+/u;
    1426914293            function trimEmail(email) {
     
    1436814392                }
    1436914393                hideAll() {
    14370                     for (const formElement of this.formElement.elements)hidden_default()(formElement, true);
    14371                     if (!this.formElement.classList.contains(this.options.selectors.containerClass)) hidden_default()(this.formElement, true);
     14394                    for (const formElement of this.formElement.elements)html_hideElement(formElement);
     14395                    if (!this.formElement.classList.contains(this.options.selectors.containerClass)) html_hideElement(this.formElement);
    1437214396                }
    1437314397                isRegisteredFormField(formElement) {
     
    1445314477                hideSubmitButton() {
    1445414478                    const submitButton = this.findSubmitButton();
    14455                     hidden_default()(submitButton, true);
     14479                    html_hideElement(submitButton);
    1445614480                }
    1445714481                unload() {
     
    1451214536                }
    1451314537                hide() {
    14514                     hidden_default()(this.formElement, true);
     14538                    html_hideElement(this.formElement);
    1451514539                }
    1451614540                show() {
    14517                     hidden_default()(this.formElement, false);
     14541                    html_showElement(this.formElement);
    1451814542                }
    1451914543            }
     
    1492714951            }
    1492814952            const html_disableElement = disableElement;
    14929             function hideElement_hideElement(element) {
    14930                 if (!element) return;
    14931                 hidden_default()(element, true);
    14932             }
    14933             const hideElement = hideElement_hideElement;
    1493414953            function adjustButton(buttonElement, show, type, disabled) {
    1493514954                if (disabled) html_disableElement(buttonElement);
    1493614955                if (type) buttonElement.type = type;
    14937                 if (!show) hideElement(buttonElement);
     14956                if (!show) html_hideElement(buttonElement);
    1493814957                return buttonElement;
    1493914958            }
     
    1494714966            function isShown(element) {
    1494814967                if (!element) return false;
    14949                 return !hidden_default()(element);
     14968                const display = element.style.getPropertyValue("display");
     14969                return !display.includes("none");
    1495014970            }
    1495114971            const html_isShown = isShown;
    14952             function showElement(element) {
    14953                 if (!element) return;
    14954                 hidden_default()(element, false);
    14955             }
    14956             const html_showElement = showElement;
    1495714972            class Buttons extends util_Despot {
    1495814973                container;
     
    1506715082                    if (!params?.paused) {
    1506815083                        html_disableElement(this.previewButton);
    15069                         hideElement(this.previewButton);
     15084                        html_hideElement(this.previewButton);
    1507015085                    }
    1507115086                    if (!this.options.enableAutoValidation) html_enableElement(this.submitButton);
    1507215087                }
    1507315088                onGoingBack() {
    15074                     hideElement(this.recordAgainButton);
     15089                    html_hideElement(this.recordAgainButton);
    1507515090                    html_showElement(this.recordButton);
    1507615091                    html_showElement(this.submitButton);
     
    1509715112                }
    1509815113                onPreview() {
    15099                     hideElement(this.recordButton);
    15100                     hideElement(this.previewButton);
     15114                    html_hideElement(this.recordButton);
     15115                    html_hideElement(this.previewButton);
    1510115116                    html_disableElement(this.audioOnRadioPair);
    1510215117                    html_disableElement(this.audioOffRadioPair);
     
    1511015125                adjustButtonsForPause() {
    1511115126                    if (!this.isCountingDown()) {
    15112                         if (this.pauseButton) hideElement(this.pauseButton);
     15127                        if (this.pauseButton) html_hideElement(this.pauseButton);
    1511315128                        html_showElement(this.resumeButton);
    1511415129                        html_enableElement(this.resumeButton);
    15115                         hideElement(this.recordButton);
     15130                        html_hideElement(this.recordButton);
    1511615131                        html_showElement(this.previewButton);
    1511715132                        html_enableElement(this.previewButton);
     
    1511915134                }
    1512015135                onFirstFrameSent() {
    15121                     hideElement(this.recordButton);
    15122                     hideElement(this.recordAgainButton);
     15136                    html_hideElement(this.recordButton);
     15137                    html_hideElement(this.recordAgainButton);
    1512315138                    if (this.pauseButton) {
    1512415139                        html_showElement(this.pauseButton);
     
    1513815153                }
    1513915154                onResuming() {
    15140                     hideElement(this.resumeButton);
    15141                     hideElement(this.recordButton);
     15155                    html_hideElement(this.resumeButton);
     15156                    html_hideElement(this.recordButton);
    1514215157                    if (this.pauseButton) {
    1514315158                        html_enableElement(this.pauseButton);
     
    1514815163                    html_disableElement(this.previewButton);
    1514915164                    html_disableElement(this.recordButton);
    15150                     hideElement(this.pauseButton);
    15151                     hideElement(this.resumeButton);
     15165                    html_hideElement(this.pauseButton);
     15166                    html_hideElement(this.resumeButton);
    1515215167                }
    1515315168                onCountdown() {
     
    1517415189                }
    1517515190                onHidden() {
    15176                     hideElement(this.recordButton);
    15177                     hideElement(this.previewButton);
    15178                     hideElement(this.recordAgainButton);
    15179                     hideElement(this.resumeButton);
    15180                     hideElement(this.audioOnRadioPair);
    15181                     hideElement(this.audioOffRadioPair);
     15191                    html_hideElement(this.recordButton);
     15192                    html_hideElement(this.previewButton);
     15193                    html_hideElement(this.recordAgainButton);
     15194                    html_hideElement(this.resumeButton);
     15195                    html_hideElement(this.audioOnRadioPair);
     15196                    html_hideElement(this.audioOffRadioPair);
    1518215197                }
    1518315198                onEnablingAudio() {
     
    1531715332                        this.container.appendChild(this.buttonsElement);
    1531815333                    }
    15319                     hideElement(this.buttonsElement);
     15334                    html_hideElement(this.buttonsElement);
    1532015335                    this.buildButtons();
    1532115336                    if (!this.built) this.initEvents();
     
    1533215347                }
    1533315348                hide(deep = false) {
    15334                     hideElement(this.buttonsElement);
     15349                    html_hideElement(this.buttonsElement);
    1533515350                    if (deep) {
    15336                         hideElement(this.recordButton);
    15337                         hideElement(this.pauseButton);
    15338                         hideElement(this.resumeButton);
    15339                         hideElement(this.previewButton);
    15340                         hideElement(this.recordAgainButton);
    15341                         hideElement(this.submitButton);
    15342                         hideElement(this.audioOnRadioPair);
    15343                         hideElement(this.audioOffRadioPair);
     15351                        html_hideElement(this.recordButton);
     15352                        html_hideElement(this.pauseButton);
     15353                        html_hideElement(this.resumeButton);
     15354                        html_hideElement(this.previewButton);
     15355                        html_hideElement(this.recordAgainButton);
     15356                        html_hideElement(this.submitButton);
     15357                        html_hideElement(this.audioOnRadioPair);
     15358                        html_hideElement(this.audioOffRadioPair);
    1534415359                    }
    1534515360                }
     
    1535215367            }
    1535315368            const buttons = Buttons;
     15369            function isHidden_isHidden(element) {
     15370                if (!element) return true;
     15371                const display = element.style.getPropertyValue("display");
     15372                return display.includes("none");
     15373            }
     15374            const isHidden = isHidden_isHidden;
    1535415375            class Countdown {
    1535515376                visuals;
     
    1540515426                }
    1540615427                show() {
    15407                     hidden_default()(this.countdownElement, false);
     15428                    html_showElement(this.countdownElement);
    1540815429                }
    1540915430                isCountingDown() {
     
    1541615437                }
    1541715438                hide() {
    15418                     hidden_default()(this.countdownElement, true);
     15439                    html_hideElement(this.countdownElement);
    1541915440                    this.unload();
    1542015441                }
     
    1545615477                }
    1545715478                hide() {
    15458                     hidden_default()(this.facingModeElement, true);
     15479                    html_hideElement(this.facingModeElement);
    1545915480                }
    1546015481                show() {
    15461                     hidden_default()(this.facingModeElement, false);
     15482                    html_showElement(this.facingModeElement);
    1546215483                }
    1546315484            }
     
    1550415525                }
    1550515526                hide() {
    15506                     hidden_default()(this.pausedBlockElement, true);
     15527                    html_hideElement(this.pausedBlockElement);
    1550715528                }
    1550815529                show() {
    15509                     hidden_default()(this.pausedBlockElement, false);
     15530                    html_showElement(this.pausedBlockElement);
    1551015531                }
    1551115532            }
     
    1553915560                }
    1554015561                hide() {
    15541                     hidden_default()(this.recordNoteElement, true);
     15562                    html_hideElement(this.recordNoteElement);
    1554215563                }
    1554315564                show() {
    15544                     hidden_default()(this.recordNoteElement, false);
     15565                    html_showElement(this.recordNoteElement);
    1554515566                }
    1554615567            }
     
    1561615637                }
    1561715638                hide() {
    15618                     hidden_default()(this.recordTimerElement, true);
     15639                    html_hideElement(this.recordTimerElement);
    1561915640                }
    1562015641                show() {
    1562115642                    this.recordTimerElement?.classList.remove("near");
    1562215643                    this.recordTimerElement?.classList.remove("nigh");
    15623                     hidden_default()(this.recordTimerElement, false);
     15644                    html_showElement(this.recordTimerElement);
    1562415645                }
    1562515646                getSecondsRecorded() {
     
    1586115882                }
    1586215883                show() {
    15863                     if (this.notifyElement) hidden_default()(this.notifyElement, false);
     15884                    html_showElement(this.notifyElement);
    1586415885                }
    1586515886                runEntertainment() {
     
    1590915930                    } else this.options.logger.warn("There is no message element for displaying a message");
    1591015931                    else this.options.logger.warn("Not going to update notifierMessage element because message is empty");
    15911                     hidden_default()(this.messageElement, false);
     15932                    html_showElement(this.messageElement);
    1591215933                }
    1591315934                setExplanation(explanation) {
     
    1592015941                    }
    1592115942                    this.explanationElement.innerHTML = explanation;
    15922                     hidden_default()(this.explanationElement, false);
     15943                    html_showElement(this.explanationElement);
    1592315944                }
    1592415945                build() {
     
    1593515956                }
    1593615957                hideMessage() {
    15937                     if (this.getMessageElement()) hidden_default()(this.messageElement, true);
     15958                    html_hideElement(this.getMessageElement());
    1593815959                }
    1593915960                hideExplanation() {
    15940                     if (this.explanationElement) hidden_default()(this.explanationElement, true);
     15961                    html_hideElement(this.explanationElement);
    1594115962                }
    1594215963                hide() {
    1594315964                    this.cancelEntertainment();
    1594415965                    if (this.notifyElement) {
    15945                         hidden_default()(this.notifyElement, true);
     15966                        html_hideElement(this.notifyElement);
    1594615967                        this.notifyElement.classList.remove("blocking");
    1594715968                    }
     
    1595115972                isVisible() {
    1595215973                    if (!this.built) return false;
    15953                     return this.notifyElement && !hidden_default()(this.notifyElement);
     15974                    return this.notifyElement && !isHidden(this.notifyElement);
    1595415975                }
    1595515976                isBuilt() {
     
    1662616647                }
    1662716648                show() {
    16628                     if (this.recorderElement) hidden_default()(this.recorderElement, false);
     16649                    html_showElement(this.recorderElement);
    1662916650                }
    1663016651                onUserMediaReady(params) {
     
    1701017031                }
    1701117032                isHidden() {
    17012                     return !this.recorderElement || hidden_default()(this.recorderElement);
     17033                    return !this.recorderElement || isHidden(this.recorderElement);
    1701317034                }
    1701417035                writeCommand(command, args, cb) {
     
    1740017421                hide() {
    1740117422                    if (!this.isHidden()) {
    17402                         if (this.recorderElement) hidden_default()(this.recorderElement, true);
     17423                        if (this.recorderElement) html_hideElement(this.recorderElement);
    1740317424                        this.clearUserMediaTimeout();
    1740417425                        this.clearRetryTimeout();
     
    1754417565                    if (hasMedia) this.correctDimensions(true, videomailWidth ?? this.replayElement.videoWidth, videomailHeight ?? this.replayElement.videoHeight);
    1754517566                    if (playerOnly) {
    17546                         if (hasMedia) hidden_default()(this.replayElement, false);
    17547                     } else hidden_default()(this.replayElement, false);
    17548                     if (playerOnly) hidden_default()(this.replayElement.parentNode, false);
     17567                        if (hasMedia) html_showElement(this.replayElement);
     17568                    } else html_showElement(this.replayElement);
     17569                    if (playerOnly) html_showElement(this.replayElement.parentElement);
    1754917570                    else this.visuals.show();
    1755017571                    if (hasAudio) this.replayElement.setAttribute("volume", "1");
     
    1769317714                }
    1769417715                hide() {
    17695                     if (this.isStandalone()) hidden_default()(this.visuals, true);
     17716                    if (this.isStandalone()) this.visuals.hide();
    1769617717                    else if (this.replayElement) {
    17697                         hidden_default()(this.replayElement, true);
    17698                         hidden_default()(this.replayElement.parentNode, true);
     17718                        html_hideElement(this.replayElement);
     17719                        html_hideElement(this.replayElement.parentElement);
    1769917720                    }
    1770017721                }
    1770117722                isShown() {
    1770217723                    if (!this.replayElement) return false;
    17703                     return !hidden_default()(this.replayElement) && !this.visuals.isHidden();
     17724                    return !isHidden(this.replayElement) && !this.visuals.isHidden();
    1770417725                }
    1770517726                getVisuals() {
     
    1790417925                hide() {
    1790517926                    if (this.visualsElement) {
    17906                         hidden_default()(this.visualsElement, true);
     17927                        html_hideElement(this.visualsElement);
    1790717928                        this.emit("HIDE");
    1790817929                    }
     
    1791017931                isHidden() {
    1791117932                    if (!this.built) return true;
    17912                     if (this.visualsElement) return hidden_default()(this.visualsElement);
     17933                    return isHidden(this.visualsElement);
    1791317934                }
    1791417935                showVisuals() {
    17915                     hidden_default()(this.visualsElement, false);
     17936                    html_showElement(this.visualsElement);
    1791617937                }
    1791717938                show(params) {
     
    1814118162                }
    1814218163                hideMySelf() {
    18143                     hidden_default()(this.containerElement, true);
     18164                    html_hideElement(this.containerElement);
    1814418165                }
    1814518166                async submitVideomail(formInputs, method) {
     
    1821418235                        options: this.options
    1821518236                    });
    18216                     hidden_default()(this.containerElement, false);
     18237                    html_showElement(this.containerElement);
    1821718238                    this.visuals.show(params);
    1821818239                    if (!this.hasError) {
  • videomail-for-ninja-forms/trunk/target/php/fields/videomail.php

    r3354424 r3366104  
    173173      'nf-videomail-main',
    174174      NF_Videomail::$jsUrl . 'main.min.js',
     175      // The script nf-front-end is defined by the Ninja Forms plugin and
     176      // enqueued along with the ("front-end", client-side) form.
    175177      array('nf-front-end', 'nf-videomail-client'),
    176178      NF_Videomail::VERSION
  • videomail-for-ninja-forms/trunk/target/php/videomail.php

    r3354424 r3366104  
    33
    44  const NAME = 'Videomail';
    5   const VERSION = '8.0.3';
     5  const VERSION = '8.1.0';
    66  const AUTHOR = 'Michael Heuberger + Kyle B. Johnson';
    77  const SLUG = 'videomail';
     
    5858  public function __construct() {
    5959    add_action('admin_init', array($this, 'setup_license'));
     60    add_action('plugins_loaded', array($this, 'plugin_update_check'));
    6061    add_action('ninja_forms_loaded', array($this, 'ninja_forms_loaded'));
    6162    add_filter('ninja_forms_register_fields', array($this, 'register_fields'));
     
    114115      );
    115116  }
     117
     118  // See https://github.com/litespeedtech/lscache_wp/issues/895
     119  public function plugin_update_check() {
     120      // Check if current version is newer.
     121      if(version_compare( self::VERSION, get_option( 'NF_Videomail_Version' ), '>' )) {
     122          // Purge LiteSpeed cache.
     123          !class_exists('\LiteSpeed\Purge') || \LiteSpeed\Purge::purge_all();
     124
     125          // Finally, update the stored version for future checks.
     126          update_option('NF_Videomail_Version', self::VERSION);
     127      }
     128  }
    116129}
  • videomail-for-ninja-forms/trunk/videomail-for-ninja-forms.php

    r3354424 r3366104  
    44  Plugin URI: https://github.com/binarykitchen/videomail-for-ninja-forms
    55  Description: Express yourself in more than just words. Record and send a short video from your webcam.
    6   Version: 8.0.3
     6  Version: 8.1.0
    77  Author: Michael Heuberger + Kyle B. Johnson
    88  Author URI: https://videomail.io
Note: See TracChangeset for help on using the changeset viewer.