Changeset 3231806
- Timestamp:
- 01/30/2025 08:14:54 AM (13 months ago)
- Location:
- videomail-for-ninja-forms
- Files:
-
- 10 edited
- 1 copied
-
tags/7.0.2 (copied) (copied from videomail-for-ninja-forms/trunk)
-
tags/7.0.2/readme.txt (modified) (2 diffs)
-
tags/7.0.2/target/js/main.min.js (modified) (1 diff)
-
tags/7.0.2/target/js/videomail-client/index.js (modified) (3 diffs)
-
tags/7.0.2/target/php/videomail.php (modified) (1 diff)
-
tags/7.0.2/videomail-for-ninja-forms.php (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/target/js/main.min.js (modified) (1 diff)
-
trunk/target/js/videomail-client/index.js (modified) (3 diffs)
-
trunk/target/php/videomail.php (modified) (1 diff)
-
trunk/videomail-for-ninja-forms.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
videomail-for-ninja-forms/tags/7.0.2/readme.txt
r3223444 r3231806 5 5 6 6 Requires at least: 6.0 7 Tested up to: 7.0. 18 Stable tag: 7.0. 17 Tested up to: 7.0.2 8 Stable tag: 7.0.2 9 9 Requires PHP: 8.1.0 10 10 Donate link: https://videomail.io/faq … … 71 71 72 72 == Changelog == 73 = 7.0.2 (30 Jan 2025) = 74 *Fix:* 75 * Remove invalid import statement 76 73 77 = 7.0.1 (15 Jan 2025) = 74 78 *Improvement:* -
videomail-for-ninja-forms/tags/7.0.2/target/js/main.min.js
r3223444 r3231806 1 import{version}from"./../../package.json";let 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: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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsi aW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gXCIuLy4uLy4uL3BhY2thZ2UuanNvblwiO1xuXG4vLyBtYW51YWwgc3dpdGNoIHRvIGhhdmUgbW9yZSBzdHVmZiBwcmludGVkIHRvIGNvbnNvbGVcbmxldCBERUJVRyA9IGZhbHNlO1xuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJ2aWRlb21haWxcIiksXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIEJhY2tib25lLlJhZGlvLkRFQlVHID0gREVCVUc7XG5cbiAgICB0aGlzLmxpc3RlblRvT25jZSh0aGlzLmNoYW5uZWwsIFwiaW5pdDptb2RlbFwiLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpO1xuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJhdHRhY2g6dmlld1wiLCB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQpO1xuXG4gICAgLy8gdWdseSB3b3JrYXJvdW5kIHRvIG1ha2UgaXQgd29yayB3aXRoIHRoZSBjb25kaXRpb25hbCBwbHVnaW5cbiAgICB0aGlzLmxpc3RlblRvKHRoaXMuY2hhbm5lbCwgXCJhbGxcIiwgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJWaWRlb21haWwgY2hhbm5lbCBldmVudCB0cmlnZ2VyZWQ6XCIsIGV2ZW50TmFtZSk7XG5cbiAgICAgIC8vIG11c3QgYmUgY29taW5nIGJhY2sgZnJvbSBhIG11bHRpLXN0ZXAgd2hlcmVcbiAgICAgIC8vIHZpZGVvbWFpbCBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpc2VkLiBzbyBqdXN0IHJlc3VtZSBpdC5cbiAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKFwibmZNUFwiKSwgXCJjaGFuZ2U6cGFydFwiLCBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKFwibmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgXCJjaGFuZ2U6cGFydFwiKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxzID1cbiAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaWQgPSB0aGlzLmZpZWxkTW9kZWwuY2lkO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbCA9IGN1cnJlbnRNb2RlbHMuZmluZChmdW5jdGlvbiAobW9kZWwpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwuY2lkID09PSBjdXJyZW50Q2lkO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgdGhpcy5sb2FkVmlkZW9tYWlsQ2xpZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiZm9ybUlEXCIpO1xuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbDtcblxuICAgIC8vIGN1c3RvbSBmaWVsZCB2YWxpZGF0aW9uLCBzaW5jZSB3ZSBhcmVuJ3QgdXNpbmcgYSBzdGFuZGFyZCBgdmFsdWVgXG4gICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTpyZXF1aXJlZFwiLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpO1xuXG4gICAgdGhpcy5jaGFubmVsLnJlcGx5KFwidmFsaWRhdGU6bW9kZWxEYXRhXCIsIHRoaXMudmFsaWRhdGVWaWRlb21haWwsIHRoaXMpO1xuXG4gICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgIC8vIHNvIHRoYXQgd2UgY2FuIFBPU1QgdG8gdGhlIFZpZGVvbWFpbCBzZXJ2ZXIgZmlyc3RcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcGx5KFxuICAgICAgXCJtYXliZTpzdWJtaXRcIixcbiAgICAgIHRoaXMubWF5YmVTdWJtaXQsXG4gICAgICB0aGlzLFxuICAgICAgZmllbGRNb2RlbCxcbiAgICApO1xuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpbWFnZV9xdWFsaXR5XCIpIHx8IDQwO1xuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgfSBlbHNlIGlmIChpbWFnZVF1YWxpdHlQZXJjZW50YWdlIDwgMSkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDE7XG4gICAgfVxuXG4gICAgY29uc3QgdmVyYm9zZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ2ZXJib3NlXCIpIHx8IERFQlVHO1xuXG4gICAgLy8gbGF0ZSBvdmVycmlkZXNcbiAgICBERUJVRyA9IERFQlVHIHx8IHZlcmJvc2U7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQgPSBuZXcgVmlkZW9tYWlsQ2xpZW50LlZpZGVvbWFpbENsaWVudCh7XG4gICAgICBzaXRlTmFtZTogdGhpcy5maWVsZE1vZGVsLmdldChcInNpdGVfbmFtZVwiKSxcbiAgICAgIHZpZGVvOiB7XG4gICAgICAgIGxpbWl0U2Vjb25kczogdGhpcy5maWVsZE1vZGVsLmdldChcImxpbWl0X3NlY29uZHNcIikgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwid2lkdGhcIikgfHwgMzIwLFxuICAgICAgICAvLyBUT0RPIEltcGxlbWVudCBvbiBWQyBzaWRlXG4gICAgICAgIHN0cmV0Y2g6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJzdHJldGNoXCIpIHx8IGZhbHNlLFxuICAgICAgICBjb3VudGRvd246IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJjb3VudGRvd25cIikgfHwgZmFsc2UsXG4gICAgICB9LFxuICAgICAgYXVkaW86IHtcbiAgICAgICAgZW5hYmxlZDogdGhpcy5maWVsZE1vZGVsLmdldChcImF1ZGlvX2VuYWJsZWRcIiksXG4gICAgICB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLFxuICAgICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIixcbiAgICAgIH0sXG4gICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgLy8gdWdseSBuYW1lIGVoP1xuICAgICAgICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3Rpbmc6XG4gICAgICAgICAgdGhpcy5hZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlci5iaW5kKHRoaXMpLFxuICAgICAgfSxcbiAgICAgIC8vIHdoZW4gdHJ1ZSwgdXNlciBtZWRpYSBpcyBsb2FkZWQgb25seSB3aGVuIHJlY29yZCBidXR0b24gaXMgcHJlc3NlZFxuICAgICAgbG9hZFVzZXJNZWRpYU9uUmVjb3JkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibG9hZF91c2VyX21lZGlhX29uX3JlY29yZFwiKSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byB2YWxpZGF0ZSB0aGUgaW5wdXRzXG4gICAgICBlbmFibGVBdXRvVmFsaWRhdGlvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gZGVhbCB3aXRoIGZvcm0gc3VibWlzc2lvbnNcbiAgICAgIGVuYWJsZUF1dG9TdWJtaXNzaW9uOiBmYWxzZSxcblxuICAgICAgLy8gbG9nIGFjdGlvbnMvZXZlbnRzIHRvIGNvbnNvbGVcbiAgICAgIHZlcmJvc2UsXG5cbiAgICAgIHZlcnNpb25zOiB7XG4gICAgICAgIG5pbmphRm9ybVBsdWdpbjogdmVyc2lvbixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJ2ZXJzaW9uIiwibGV0IiwiREVCVUciLCJWaWRlb21haWxGaWVsZENvbnRyb2xsZXIiLCJNYXJpb25ldHRlIiwiT2JqZWN0IiwiZXh0ZW5kIiwidmlkZW9tYWlsQ2xpZW50IiwiZmllbGRNb2RlbCIsImNoYW5uZWwiLCJCYWNrYm9uZSIsIlJhZGlvIiwiaW5pdGlhbGl6ZSIsInRoaXMiLCJsaXN0ZW5Ub09uY2UiLCJyZWdpc3RlclZpZGVvbWFpbEZpZWxkIiwibG9hZFZpZGVvbWFpbENsaWVudCIsImxpc3RlblRvIiwiZXZlbnROYW1lIiwiY29uc29sZSIsImxvZyIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsInVubG9hZCIsImdldEZvcm1JZCIsImdldCIsInJlcGx5IiwidmFsaWRhdGVSZXF1aXJlZCIsInZhbGlkYXRlVmlkZW9tYWlsIiwibWF5YmVTdWJtaXQiLCJpbWFnZVF1YWxpdHlQZXJjZW50YWdlIiwidmVyYm9zZSIsIlZpZGVvbWFpbENsaWVudCIsInNpdGVOYW1lIiwidmlkZW8iLCJsaW1pdFNlY29uZHMiLCJ3aWR0aCIsInN0cmV0Y2giLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJjb250YWluZXJJZCIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiY2FsbGJhY2tzIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIiLCJiaW5kIiwibG9hZFVzZXJNZWRpYU9uUmVjb3JkIiwiZW5hYmxlQXV0b1ZhbGlkYXRpb24iLCJlbmFibGVBdXRvU3VibWlzc2lvbiIsInZlcnNpb25zIiwibmluamFGb3JtUGx1Z2luIiwib24iLCJvblByZXZpZXciLCJvblN1Ym1pdHRlZCIsIm9uR29pbmdCYWNrIiwic2hvdyIsImtleSIsInNldCIsInJlcXVlc3QiLCJyZXN1bHQiLCJmb3JtTW9kZWwiLCJjb2xsZWN0aW9uIiwib3B0aW9ucyIsInZpZGVvbWFpbCIsImludmFsaWRhdGUiLCJlbCIsInZhbGlkIiwiaGFzRXJyb3JzIiwibGVuZ3RoIiwibWF5YmUiLCJ2aWRlb21haWxTdWJtaXR0ZWQiLCJnZXRFeHRyYSIsInZpZGVvbWFpbFJlY29yZGVkIiwiZXJyb3IiLCJzdWJtaXQiLCJnZXRNZXJnZVRhZ1ZhbHVlIiwiZmllbGRLZXkiLCJmb3JtVmFsdWVzIiwidmFsdWUiLCJ3aW5kb3ciLCJuZlZpZGVvbWFpbCIsImFkbWluX2VtYWlsIiwicmF3RmllbGRLZXkiLCJyYXdGaWVsZEtleU1hdGNoZXMiLCJtYXRjaCIsInJlcGxhY2UiLCJnZXRGb3JtVmFsdWVzIiwicmVkdWNlIiwibWVtbyIsImZpZWxkIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiT0FBU0EsT0FB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1 let 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:"unknown (above v7.0.1)"}}),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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuXG4vLyBtYW51YWwgc3dpdGNoIHRvIGhhdmUgbW9yZSBzdHVmZiBwcmludGVkIHRvIGNvbnNvbGVcbmxldCBERUJVRyA9IGZhbHNlO1xuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJ2aWRlb21haWxcIiksXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIEJhY2tib25lLlJhZGlvLkRFQlVHID0gREVCVUc7XG5cbiAgICB0aGlzLmxpc3RlblRvT25jZSh0aGlzLmNoYW5uZWwsIFwiaW5pdDptb2RlbFwiLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpO1xuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJhdHRhY2g6dmlld1wiLCB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQpO1xuXG4gICAgLy8gdWdseSB3b3JrYXJvdW5kIHRvIG1ha2UgaXQgd29yayB3aXRoIHRoZSBjb25kaXRpb25hbCBwbHVnaW5cbiAgICB0aGlzLmxpc3RlblRvKHRoaXMuY2hhbm5lbCwgXCJhbGxcIiwgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJWaWRlb21haWwgY2hhbm5lbCBldmVudCB0cmlnZ2VyZWQ6XCIsIGV2ZW50TmFtZSk7XG5cbiAgICAgIC8vIG11c3QgYmUgY29taW5nIGJhY2sgZnJvbSBhIG11bHRpLXN0ZXAgd2hlcmVcbiAgICAgIC8vIHZpZGVvbWFpbCBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpc2VkLiBzbyBqdXN0IHJlc3VtZSBpdC5cbiAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKFwibmZNUFwiKSwgXCJjaGFuZ2U6cGFydFwiLCBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKFwibmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgXCJjaGFuZ2U6cGFydFwiKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxzID1cbiAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaWQgPSB0aGlzLmZpZWxkTW9kZWwuY2lkO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbCA9IGN1cnJlbnRNb2RlbHMuZmluZChmdW5jdGlvbiAobW9kZWwpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwuY2lkID09PSBjdXJyZW50Q2lkO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgdGhpcy5sb2FkVmlkZW9tYWlsQ2xpZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiZm9ybUlEXCIpO1xuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbDtcblxuICAgIC8vIGN1c3RvbSBmaWVsZCB2YWxpZGF0aW9uLCBzaW5jZSB3ZSBhcmVuJ3QgdXNpbmcgYSBzdGFuZGFyZCBgdmFsdWVgXG4gICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTpyZXF1aXJlZFwiLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpO1xuXG4gICAgdGhpcy5jaGFubmVsLnJlcGx5KFwidmFsaWRhdGU6bW9kZWxEYXRhXCIsIHRoaXMudmFsaWRhdGVWaWRlb21haWwsIHRoaXMpO1xuXG4gICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgIC8vIHNvIHRoYXQgd2UgY2FuIFBPU1QgdG8gdGhlIFZpZGVvbWFpbCBzZXJ2ZXIgZmlyc3RcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcGx5KFxuICAgICAgXCJtYXliZTpzdWJtaXRcIixcbiAgICAgIHRoaXMubWF5YmVTdWJtaXQsXG4gICAgICB0aGlzLFxuICAgICAgZmllbGRNb2RlbCxcbiAgICApO1xuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpbWFnZV9xdWFsaXR5XCIpIHx8IDQwO1xuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgfSBlbHNlIGlmIChpbWFnZVF1YWxpdHlQZXJjZW50YWdlIDwgMSkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDE7XG4gICAgfVxuXG4gICAgY29uc3QgdmVyYm9zZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ2ZXJib3NlXCIpIHx8IERFQlVHO1xuXG4gICAgLy8gbGF0ZSBvdmVycmlkZXNcbiAgICBERUJVRyA9IERFQlVHIHx8IHZlcmJvc2U7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQgPSBuZXcgVmlkZW9tYWlsQ2xpZW50LlZpZGVvbWFpbENsaWVudCh7XG4gICAgICBzaXRlTmFtZTogdGhpcy5maWVsZE1vZGVsLmdldChcInNpdGVfbmFtZVwiKSxcbiAgICAgIHZpZGVvOiB7XG4gICAgICAgIGxpbWl0U2Vjb25kczogdGhpcy5maWVsZE1vZGVsLmdldChcImxpbWl0X3NlY29uZHNcIikgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwid2lkdGhcIikgfHwgMzIwLFxuICAgICAgICAvLyBUT0RPIEltcGxlbWVudCBvbiBWQyBzaWRlXG4gICAgICAgIHN0cmV0Y2g6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJzdHJldGNoXCIpIHx8IGZhbHNlLFxuICAgICAgICBjb3VudGRvd246IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJjb3VudGRvd25cIikgfHwgZmFsc2UsXG4gICAgICB9LFxuICAgICAgYXVkaW86IHtcbiAgICAgICAgZW5hYmxlZDogdGhpcy5maWVsZE1vZGVsLmdldChcImF1ZGlvX2VuYWJsZWRcIiksXG4gICAgICB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLFxuICAgICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIixcbiAgICAgIH0sXG4gICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgLy8gdWdseSBuYW1lIGVoP1xuICAgICAgICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3Rpbmc6XG4gICAgICAgICAgdGhpcy5hZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlci5iaW5kKHRoaXMpLFxuICAgICAgfSxcbiAgICAgIC8vIHdoZW4gdHJ1ZSwgdXNlciBtZWRpYSBpcyBsb2FkZWQgb25seSB3aGVuIHJlY29yZCBidXR0b24gaXMgcHJlc3NlZFxuICAgICAgbG9hZFVzZXJNZWRpYU9uUmVjb3JkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibG9hZF91c2VyX21lZGlhX29uX3JlY29yZFwiKSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byB2YWxpZGF0ZSB0aGUgaW5wdXRzXG4gICAgICBlbmFibGVBdXRvVmFsaWRhdGlvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gZGVhbCB3aXRoIGZvcm0gc3VibWlzc2lvbnNcbiAgICAgIGVuYWJsZUF1dG9TdWJtaXNzaW9uOiBmYWxzZSxcblxuICAgICAgLy8gbG9nIGFjdGlvbnMvZXZlbnRzIHRvIGNvbnNvbGVcbiAgICAgIHZlcmJvc2UsXG5cbiAgICAgIHZlcnNpb25zOiB7XG4gICAgICAgIG5pbmphRm9ybVBsdWdpbjogXCJ1bmtub3duIChhYm92ZSB2Ny4wLjEpXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJQUkVWSUVXXCIsIHRoaXMub25QcmV2aWV3LmJpbmQodGhpcykpO1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFwiU1VCTUlUVEVEXCIsIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJHT0lOR19CQUNLXCIsIHRoaXMub25Hb2luZ0JhY2suYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KCk7XG4gIH0sXG5cbiAgLy8gbmVlZGVkIHRvIGdldCB0aGUgdmlkZW9tYWlsIGtleSB3aGljaCBpcyByZXF1aXJlZCBiZWZvcmVcbiAgLy8gc3VibWl0dGluZyB0byB0aGUgdmlkZW9tYWlsIHNlcnZlclxuICBvblByZXZpZXc6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBrZXkpO1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2YWx1ZVwiLCBrZXkpO1xuXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KFwicmVtb3ZlOmVycm9yXCIsIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSwgXCJyZXF1aXJlZC1lcnJvclwiKTtcbiAgfSxcblxuICBvblN1Ym1pdHRlZDogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgIGxldCBmb3JtTW9kZWwgPSBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiYXBwXCIpLnJlcXVlc3QoXCJnZXQ6Zm9ybVwiLCB0aGlzLmdldEZvcm1JZCgpKTtcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsO1xuICAgIH1cblxuICAgIC8vIFRPRE8gSXNuJ3QgJ2Zvcm0tJyArIGZvcm1Nb2RlbC5nZXQoJ2lkJykgdGhlIHNhbWUgYXMgdGhlIGZvcm1JRCBhbHJlYWR5P1xuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgZm9ybU1vZGVsLmdldChcImlkXCIpKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXh0cmFcIixcbiAgICAgIFwidmlkZW9tYWlsXCIsXG4gICAgICByZXN1bHQudmlkZW9tYWlsLFxuICAgICk7XG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyB0aGlzLmdldEZvcm1JZCgpKS5yZXF1ZXN0KFwic3VibWl0XCIsIGZvcm1Nb2RlbCk7XG4gIH0sXG5cbiAgb25Hb2luZ0JhY2s6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBudWxsKTtcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbCk7XG5cbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWQ7XG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3Igc28gdGhhdCB3ZSBjYW4gc2V0IG91ciBvd24gZXJyb3IgdGV4dCBoZXJlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXJyb3JcIixcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSxcbiAgICAgIFwicmVxdWlyZWQtZXJyb3JcIixcbiAgICAgIFwiUmVjb3JkIGFuZCBjbGljayBvbiBzdG9wIHRvIHNlZSBhIHByZXZpZXcgdmlkZW8uXCIsXG4gICAgKTtcbiAgfSxcblxuICB2YWxpZGF0ZVZpZGVvbWFpbDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICBmaWVsZE1vZGVsID0gZmllbGRNb2RlbCB8fCB0aGlzLmZpZWxkTW9kZWw7XG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KFwidmlkZW9tYWlsLWtleVwiKSB8fCBmYWxzZTtcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldChcImVycm9yc1wiKS5sZW5ndGggPiAwO1xuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZTtcbiAgICBjb25zdCB2aWRlb21haWxTdWJtaXR0ZWQgPSBmb3JtTW9kZWwuZ2V0RXh0cmEoXCJ2aWRlb21haWxcIik7XG4gICAgY29uc3QgdmlkZW9tYWlsUmVjb3JkZWQgPSB0aGlzLnZhbGlkYXRlVmlkZW9tYWlsKCk7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLmhhc0Vycm9ycyhmb3JtTW9kZWwpO1xuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KCk7XG4gICAgICBtYXliZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZTtcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KTtcblxuICAgIC8vIGl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgdXNlciBoYXMgY29uZmlndXJlZCBzb21ldGhpbmcgd3JvbmcsXG4gICAgLy8gaS5FLiBhbiBlbXB0eSBlbWFpbF9mcm9tLiBpbiB0aGF0IGNhc2UganVzdCBpZ25vcmUgLi4uXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICAvLyBhZG1pbiBlbWFpbCBsb2NhbGl6ZWQgZnJvbSBiYWNrZW5kLCBhIGJpdCB1Z2x5XG4gICAgICAvLyB0b2RvIGFzayBmb3IgYW4gZW5kcG9pbnQgdG8gcHJvY2VzcyB0aG9zZSBzcGVjaWFsIG1lcmdlIHRhZ3NcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaW5hcnlraXRjaGVuL3ZpZGVvbWFpbC1mb3ItbmluamEtZm9ybXMvaXNzdWVzLzMwXG4gICAgICBpZiAodmFsdWUgPT09IFwie3dwOmFkbWluX2VtYWlsfVwiKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXlNYXRjaGVzID0gdmFsdWUubWF0Y2goL3tmaWVsZDooLiopfS9pKTtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXkgPSByYXdGaWVsZEtleU1hdGNoZXMgJiYgcmF3RmllbGRLZXlNYXRjaGVzWzFdO1xuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9LFxuXG4gIC8vIHJldHVybnMgYSBtYXAgbGlrZSB0aGlzOlxuICAvLyB7XG4gIC8vICAgZnJvbV9lbWFpbDogXCJtaWNLQGRlYWZvbnouZWhcIlxuICAvLyAgIGZyb21fbmFtZTogXCJNSFwiXG4gIC8vICAgbWVzc2FnZTogXCJzZGZzZGZzZGZcIlxuICAvLyAgIHN1YmplY3Q6IFwic2Rmc2RmXCJcbiAgLy8gICBzdWJtaXQ6IFwiXCJcbiAgLy8gICB2aWRlb19tZXNzYWdlOiBcIjExZWItNjFkNy1kZDU4MzMyMC1hZTYxLTJiODJiZTZjNmUzZVwiXG4gIC8vIH1cbiAgZ2V0Rm9ybVZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIGxldCBjb2xsZWN0aW9uO1xuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKGZvcm1Nb2RlbCkge1xuICAgICAgY29sbGVjdGlvbiA9IGZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIik7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHMpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIikubW9kZWxzO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBjb2xsZWN0aW9uLnJlZHVjZShmdW5jdGlvbiAobWVtbywgZmllbGQpIHtcbiAgICAgIG1lbW9bZmllbGQuZ2V0KFwia2V5XCIpXSA9IGZpZWxkLmdldChcInZhbHVlXCIpO1xuICAgICAgcmV0dXJuIG1lbW87XG4gICAgfSwge30pO1xuXG4gICAgcmV0dXJuIGZvcm1WYWx1ZXM7XG4gIH0sXG5cbiAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXI6IGZ1bmN0aW9uICh2aWRlb21haWwpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKCk7XG5cbiAgICB2aWRlb21haWwuZnJvbSA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX2Zyb21cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnRvID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfdG9cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnN1YmplY3QgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9zdWJqZWN0XCIsIGZvcm1WYWx1ZXMpO1xuICAgIHZpZGVvbWFpbC5ib2R5ID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfYm9keVwiLCBmb3JtVmFsdWVzKTtcblxuICAgIHJldHVybiB2aWRlb21haWw7XG4gIH0sXG5cbiAgb25CZWZvcmVEZXN0cm95OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50O1xuICB9LFxufSk7XG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpO1xufSk7XG4iXSwibmFtZXMiOlsibGV0IiwiREVCVUciLCJWaWRlb21haWxGaWVsZENvbnRyb2xsZXIiLCJNYXJpb25ldHRlIiwiT2JqZWN0IiwiZXh0ZW5kIiwidmlkZW9tYWlsQ2xpZW50IiwiZmllbGRNb2RlbCIsImNoYW5uZWwiLCJCYWNrYm9uZSIsIlJhZGlvIiwiaW5pdGlhbGl6ZSIsInRoaXMiLCJsaXN0ZW5Ub09uY2UiLCJyZWdpc3RlclZpZGVvbWFpbEZpZWxkIiwibG9hZFZpZGVvbWFpbENsaWVudCIsImxpc3RlblRvIiwiZXZlbnROYW1lIiwiY29uc29sZSIsImxvZyIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsInVubG9hZCIsImdldEZvcm1JZCIsImdldCIsInJlcGx5IiwidmFsaWRhdGVSZXF1aXJlZCIsInZhbGlkYXRlVmlkZW9tYWlsIiwibWF5YmVTdWJtaXQiLCJpbWFnZVF1YWxpdHlQZXJjZW50YWdlIiwidmVyYm9zZSIsIlZpZGVvbWFpbENsaWVudCIsInNpdGVOYW1lIiwidmlkZW8iLCJsaW1pdFNlY29uZHMiLCJ3aWR0aCIsInN0cmV0Y2giLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJjb250YWluZXJJZCIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiY2FsbGJhY2tzIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIiLCJiaW5kIiwibG9hZFVzZXJNZWRpYU9uUmVjb3JkIiwiZW5hYmxlQXV0b1ZhbGlkYXRpb24iLCJlbmFibGVBdXRvU3VibWlzc2lvbiIsInZlcnNpb25zIiwibmluamFGb3JtUGx1Z2luIiwib24iLCJvblByZXZpZXciLCJvblN1Ym1pdHRlZCIsIm9uR29pbmdCYWNrIiwic2hvdyIsImtleSIsInNldCIsInJlcXVlc3QiLCJyZXN1bHQiLCJmb3JtTW9kZWwiLCJjb2xsZWN0aW9uIiwib3B0aW9ucyIsInZpZGVvbWFpbCIsImludmFsaWRhdGUiLCJlbCIsInZhbGlkIiwiaGFzRXJyb3JzIiwibGVuZ3RoIiwibWF5YmUiLCJ2aWRlb21haWxTdWJtaXR0ZWQiLCJnZXRFeHRyYSIsInZpZGVvbWFpbFJlY29yZGVkIiwiZXJyb3IiLCJzdWJtaXQiLCJnZXRNZXJnZVRhZ1ZhbHVlIiwiZmllbGRLZXkiLCJmb3JtVmFsdWVzIiwidmFsdWUiLCJ3aW5kb3ciLCJuZlZpZGVvbWFpbCIsImFkbWluX2VtYWlsIiwicmF3RmllbGRLZXkiLCJyYXdGaWVsZEtleU1hdGNoZXMiLCJtYXRjaCIsInJlcGxhY2UiLCJnZXRGb3JtVmFsdWVzIiwicmVkdWNlIiwibWVtbyIsImZpZWxkIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFHQUEsSUFBSUMsTUFBUSxDQUFBLEVBS05DLHlCQUEyQkMsV0FBV0MsT0FBT0MsT0FBTyxDQUN4REMsZ0JBQWlCLEtBRWpCQyxXQUFZLEtBRVpDLFFBQVNDLFNBQVNDLE1BQU1GLFFBQVEsV0FBVyxFQUUzQ0csV0FBWSxXQUNWRixTQUFTQyxNQUFNVCxNQUFRQSxNQUV2QlcsS0FBS0MsYUFBYUQsS0FBS0osUUFBUyxhQUFjSSxLQUFLRSxzQkFBc0IsRUFDekVGLEtBQUtDLGFBQWFELEtBQUtKLFFBQVMsY0FBZUksS0FBS0csbUJBQW1CLEVBR3ZFSCxLQUFLSSxTQUFTSixLQUFLSixRQUFTLE1BQU8sU0FBVVMsR0FDM0NoQixPQUFTaUIsUUFBUUMsSUFBSSxxQ0FBc0NGLENBQVMsRUFJcEVMLEtBQUtJLFNBQVNJLFFBQVFaLFFBQVEsTUFBTSxFQUFHLGNBQWUsU0FBVWEsR0FDOURwQixPQUFTaUIsUUFBUUMsSUFBSSxnQ0FBaUMsYUFBYSxFQUU3REcsRUFDSkQsRUFBT0UsZ0JBQWdCQyxZQUFZQyxpQkFBaUJDLFFBQVUsR0FFaEUsSUFBTUMsRUFBYWYsS0FBS0wsV0FBV3FCLElBRWROLEVBQWNPLEtBQUssU0FBVUMsR0FDaEQsT0FBT0EsRUFBTUYsTUFBUUQsQ0FDdkIsQ0FBQyxFQUdDZixLQUFLRyxvQkFBb0IsRUFFekJILEtBQUtOLGdCQUFnQnlCLE9BQU8sQ0FFaEMsQ0FBQyxDQUNILENBQUMsQ0FDSCxFQUVBQyxVQUFXLFdBQ1QsT0FBT3BCLEtBQUtMLFdBQVcwQixJQUFJLFFBQVEsQ0FDckMsRUFFQW5CLHVCQUF3QixTQUFVUCxHQUNoQ0ssS0FBS0wsV0FBYUEsRUFJbEJLLEtBQUtKLFFBQVEwQixNQUFNLG9CQUFxQnRCLEtBQUt1QixpQkFBa0J2QixJQUFJLEVBRW5FQSxLQUFLSixRQUFRMEIsTUFBTSxxQkFBc0J0QixLQUFLd0Isa0JB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 -
videomail-for-ninja-forms/tags/7.0.2/target/js/videomail-client/index.js
r3223444 r3231806 10189 10189 const pretty = pretty_pretty; 10190 10190 function isAudioEnabled(options) { 10191 return options.audio.enabled;10191 return Boolean(options.audio.enabled); 10192 10192 } 10193 10193 function setAudioEnabled(enabled, options) { … … 13648 13648 const wrappers_form = Form; 13649 13649 var package_namespaceObject = { 13650 i8: "10.1. 0"13650 i8: "10.1.3" 13651 13651 }; 13652 13652 function findOriginalExc(exc) { … … 16140 16140 let cause; 16141 16141 if (e) cause = e.type; 16142 this.options.logger.debug(`Recorder: unload()${cause ? `, cause: ${cause}` : ""}`); 16142 const prettyCause = cause ? `, cause: ${cause}` : ""; 16143 this.options.logger.debug(`Recorder: unload()${prettyCause}`); 16143 16144 this.reset(); 16144 16145 this.clearUserMediaTimeout(); -
videomail-for-ninja-forms/tags/7.0.2/target/php/videomail.php
r3223444 r3231806 3 3 4 4 const NAME = 'Videomail'; 5 const VERSION = '7.0. 1';5 const VERSION = '7.0.2'; 6 6 const AUTHOR = 'Michael Heuberger + Kyle B. Johnson'; 7 7 const SLUG = 'videomail'; -
videomail-for-ninja-forms/tags/7.0.2/videomail-for-ninja-forms.php
r3223444 r3231806 4 4 Plugin URI: https://github.com/binarykitchen/videomail-for-ninja-forms 5 5 Description: Express yourself in more than just words. Record and send a short video from your webcam. 6 Version: 7.0. 16 Version: 7.0.2 7 7 Author: Michael Heuberger + Kyle B. Johnson 8 8 Author URI: https://videomail.io -
videomail-for-ninja-forms/trunk/readme.txt
r3223444 r3231806 5 5 6 6 Requires at least: 6.0 7 Tested up to: 7.0. 18 Stable tag: 7.0. 17 Tested up to: 7.0.2 8 Stable tag: 7.0.2 9 9 Requires PHP: 8.1.0 10 10 Donate link: https://videomail.io/faq … … 71 71 72 72 == Changelog == 73 = 7.0.2 (30 Jan 2025) = 74 *Fix:* 75 * Remove invalid import statement 76 73 77 = 7.0.1 (15 Jan 2025) = 74 78 *Improvement:* -
videomail-for-ninja-forms/trunk/target/js/main.min.js
r3223444 r3231806 1 import{version}from"./../../package.json";let 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: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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsi aW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gXCIuLy4uLy4uL3BhY2thZ2UuanNvblwiO1xuXG4vLyBtYW51YWwgc3dpdGNoIHRvIGhhdmUgbW9yZSBzdHVmZiBwcmludGVkIHRvIGNvbnNvbGVcbmxldCBERUJVRyA9IGZhbHNlO1xuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJ2aWRlb21haWxcIiksXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIEJhY2tib25lLlJhZGlvLkRFQlVHID0gREVCVUc7XG5cbiAgICB0aGlzLmxpc3RlblRvT25jZSh0aGlzLmNoYW5uZWwsIFwiaW5pdDptb2RlbFwiLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpO1xuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJhdHRhY2g6dmlld1wiLCB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQpO1xuXG4gICAgLy8gdWdseSB3b3JrYXJvdW5kIHRvIG1ha2UgaXQgd29yayB3aXRoIHRoZSBjb25kaXRpb25hbCBwbHVnaW5cbiAgICB0aGlzLmxpc3RlblRvKHRoaXMuY2hhbm5lbCwgXCJhbGxcIiwgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJWaWRlb21haWwgY2hhbm5lbCBldmVudCB0cmlnZ2VyZWQ6XCIsIGV2ZW50TmFtZSk7XG5cbiAgICAgIC8vIG11c3QgYmUgY29taW5nIGJhY2sgZnJvbSBhIG11bHRpLXN0ZXAgd2hlcmVcbiAgICAgIC8vIHZpZGVvbWFpbCBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpc2VkLiBzbyBqdXN0IHJlc3VtZSBpdC5cbiAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKFwibmZNUFwiKSwgXCJjaGFuZ2U6cGFydFwiLCBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKFwibmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgXCJjaGFuZ2U6cGFydFwiKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxzID1cbiAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaWQgPSB0aGlzLmZpZWxkTW9kZWwuY2lkO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbCA9IGN1cnJlbnRNb2RlbHMuZmluZChmdW5jdGlvbiAobW9kZWwpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwuY2lkID09PSBjdXJyZW50Q2lkO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgdGhpcy5sb2FkVmlkZW9tYWlsQ2xpZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiZm9ybUlEXCIpO1xuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbDtcblxuICAgIC8vIGN1c3RvbSBmaWVsZCB2YWxpZGF0aW9uLCBzaW5jZSB3ZSBhcmVuJ3QgdXNpbmcgYSBzdGFuZGFyZCBgdmFsdWVgXG4gICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTpyZXF1aXJlZFwiLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpO1xuXG4gICAgdGhpcy5jaGFubmVsLnJlcGx5KFwidmFsaWRhdGU6bW9kZWxEYXRhXCIsIHRoaXMudmFsaWRhdGVWaWRlb21haWwsIHRoaXMpO1xuXG4gICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgIC8vIHNvIHRoYXQgd2UgY2FuIFBPU1QgdG8gdGhlIFZpZGVvbWFpbCBzZXJ2ZXIgZmlyc3RcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcGx5KFxuICAgICAgXCJtYXliZTpzdWJtaXRcIixcbiAgICAgIHRoaXMubWF5YmVTdWJtaXQsXG4gICAgICB0aGlzLFxuICAgICAgZmllbGRNb2RlbCxcbiAgICApO1xuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpbWFnZV9xdWFsaXR5XCIpIHx8IDQwO1xuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgfSBlbHNlIGlmIChpbWFnZVF1YWxpdHlQZXJjZW50YWdlIDwgMSkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDE7XG4gICAgfVxuXG4gICAgY29uc3QgdmVyYm9zZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ2ZXJib3NlXCIpIHx8IERFQlVHO1xuXG4gICAgLy8gbGF0ZSBvdmVycmlkZXNcbiAgICBERUJVRyA9IERFQlVHIHx8IHZlcmJvc2U7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQgPSBuZXcgVmlkZW9tYWlsQ2xpZW50LlZpZGVvbWFpbENsaWVudCh7XG4gICAgICBzaXRlTmFtZTogdGhpcy5maWVsZE1vZGVsLmdldChcInNpdGVfbmFtZVwiKSxcbiAgICAgIHZpZGVvOiB7XG4gICAgICAgIGxpbWl0U2Vjb25kczogdGhpcy5maWVsZE1vZGVsLmdldChcImxpbWl0X3NlY29uZHNcIikgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwid2lkdGhcIikgfHwgMzIwLFxuICAgICAgICAvLyBUT0RPIEltcGxlbWVudCBvbiBWQyBzaWRlXG4gICAgICAgIHN0cmV0Y2g6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJzdHJldGNoXCIpIHx8IGZhbHNlLFxuICAgICAgICBjb3VudGRvd246IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJjb3VudGRvd25cIikgfHwgZmFsc2UsXG4gICAgICB9LFxuICAgICAgYXVkaW86IHtcbiAgICAgICAgZW5hYmxlZDogdGhpcy5maWVsZE1vZGVsLmdldChcImF1ZGlvX2VuYWJsZWRcIiksXG4gICAgICB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLFxuICAgICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIixcbiAgICAgIH0sXG4gICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgLy8gdWdseSBuYW1lIGVoP1xuICAgICAgICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3Rpbmc6XG4gICAgICAgICAgdGhpcy5hZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlci5iaW5kKHRoaXMpLFxuICAgICAgfSxcbiAgICAgIC8vIHdoZW4gdHJ1ZSwgdXNlciBtZWRpYSBpcyBsb2FkZWQgb25seSB3aGVuIHJlY29yZCBidXR0b24gaXMgcHJlc3NlZFxuICAgICAgbG9hZFVzZXJNZWRpYU9uUmVjb3JkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibG9hZF91c2VyX21lZGlhX29uX3JlY29yZFwiKSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byB2YWxpZGF0ZSB0aGUgaW5wdXRzXG4gICAgICBlbmFibGVBdXRvVmFsaWRhdGlvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gZGVhbCB3aXRoIGZvcm0gc3VibWlzc2lvbnNcbiAgICAgIGVuYWJsZUF1dG9TdWJtaXNzaW9uOiBmYWxzZSxcblxuICAgICAgLy8gbG9nIGFjdGlvbnMvZXZlbnRzIHRvIGNvbnNvbGVcbiAgICAgIHZlcmJvc2UsXG5cbiAgICAgIHZlcnNpb25zOiB7XG4gICAgICAgIG5pbmphRm9ybVBsdWdpbjogdmVyc2lvbixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJ2ZXJzaW9uIiwibGV0IiwiREVCVUciLCJWaWRlb21haWxGaWVsZENvbnRyb2xsZXIiLCJNYXJpb25ldHRlIiwiT2JqZWN0IiwiZXh0ZW5kIiwidmlkZW9tYWlsQ2xpZW50IiwiZmllbGRNb2RlbCIsImNoYW5uZWwiLCJCYWNrYm9uZSIsIlJhZGlvIiwiaW5pdGlhbGl6ZSIsInRoaXMiLCJsaXN0ZW5Ub09uY2UiLCJyZWdpc3RlclZpZGVvbWFpbEZpZWxkIiwibG9hZFZpZGVvbWFpbENsaWVudCIsImxpc3RlblRvIiwiZXZlbnROYW1lIiwiY29uc29sZSIsImxvZyIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsInVubG9hZCIsImdldEZvcm1JZCIsImdldCIsInJlcGx5IiwidmFsaWRhdGVSZXF1aXJlZCIsInZhbGlkYXRlVmlkZW9tYWlsIiwibWF5YmVTdWJtaXQiLCJpbWFnZVF1YWxpdHlQZXJjZW50YWdlIiwidmVyYm9zZSIsIlZpZGVvbWFpbENsaWVudCIsInNpdGVOYW1lIiwidmlkZW8iLCJsaW1pdFNlY29uZHMiLCJ3aWR0aCIsInN0cmV0Y2giLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJjb250YWluZXJJZCIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiY2FsbGJhY2tzIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIiLCJiaW5kIiwibG9hZFVzZXJNZWRpYU9uUmVjb3JkIiwiZW5hYmxlQXV0b1ZhbGlkYXRpb24iLCJlbmFibGVBdXRvU3VibWlzc2lvbiIsInZlcnNpb25zIiwibmluamFGb3JtUGx1Z2luIiwib24iLCJvblByZXZpZXciLCJvblN1Ym1pdHRlZCIsIm9uR29pbmdCYWNrIiwic2hvdyIsImtleSIsInNldCIsInJlcXVlc3QiLCJyZXN1bHQiLCJmb3JtTW9kZWwiLCJjb2xsZWN0aW9uIiwib3B0aW9ucyIsInZpZGVvbWFpbCIsImludmFsaWRhdGUiLCJlbCIsInZhbGlkIiwiaGFzRXJyb3JzIiwibGVuZ3RoIiwibWF5YmUiLCJ2aWRlb21haWxTdWJtaXR0ZWQiLCJnZXRFeHRyYSIsInZpZGVvbWFpbFJlY29yZGVkIiwiZXJyb3IiLCJzdWJtaXQiLCJnZXRNZXJnZVRhZ1ZhbHVlIiwiZmllbGRLZXkiLCJmb3JtVmFsdWVzIiwidmFsdWUiLCJ3aW5kb3ciLCJuZlZpZGVvbWFpbCIsImFkbWluX2VtYWlsIiwicmF3RmllbGRLZXkiLCJyYXdGaWVsZEtleU1hdGNoZXMiLCJtYXRjaCIsInJlcGxhY2UiLCJnZXRGb3JtVmFsdWVzIiwicmVkdWNlIiwibWVtbyIsImZpZWxkIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiT0FBU0EsT0FB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1 let 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:"unknown (above v7.0.1)"}}),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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuXG4vLyBtYW51YWwgc3dpdGNoIHRvIGhhdmUgbW9yZSBzdHVmZiBwcmludGVkIHRvIGNvbnNvbGVcbmxldCBERUJVRyA9IGZhbHNlO1xuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJ2aWRlb21haWxcIiksXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIEJhY2tib25lLlJhZGlvLkRFQlVHID0gREVCVUc7XG5cbiAgICB0aGlzLmxpc3RlblRvT25jZSh0aGlzLmNoYW5uZWwsIFwiaW5pdDptb2RlbFwiLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpO1xuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJhdHRhY2g6dmlld1wiLCB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQpO1xuXG4gICAgLy8gdWdseSB3b3JrYXJvdW5kIHRvIG1ha2UgaXQgd29yayB3aXRoIHRoZSBjb25kaXRpb25hbCBwbHVnaW5cbiAgICB0aGlzLmxpc3RlblRvKHRoaXMuY2hhbm5lbCwgXCJhbGxcIiwgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJWaWRlb21haWwgY2hhbm5lbCBldmVudCB0cmlnZ2VyZWQ6XCIsIGV2ZW50TmFtZSk7XG5cbiAgICAgIC8vIG11c3QgYmUgY29taW5nIGJhY2sgZnJvbSBhIG11bHRpLXN0ZXAgd2hlcmVcbiAgICAgIC8vIHZpZGVvbWFpbCBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpc2VkLiBzbyBqdXN0IHJlc3VtZSBpdC5cbiAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKFwibmZNUFwiKSwgXCJjaGFuZ2U6cGFydFwiLCBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKFwibmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgXCJjaGFuZ2U6cGFydFwiKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxzID1cbiAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaWQgPSB0aGlzLmZpZWxkTW9kZWwuY2lkO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbCA9IGN1cnJlbnRNb2RlbHMuZmluZChmdW5jdGlvbiAobW9kZWwpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwuY2lkID09PSBjdXJyZW50Q2lkO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgdGhpcy5sb2FkVmlkZW9tYWlsQ2xpZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiZm9ybUlEXCIpO1xuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbDtcblxuICAgIC8vIGN1c3RvbSBmaWVsZCB2YWxpZGF0aW9uLCBzaW5jZSB3ZSBhcmVuJ3QgdXNpbmcgYSBzdGFuZGFyZCBgdmFsdWVgXG4gICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTpyZXF1aXJlZFwiLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpO1xuXG4gICAgdGhpcy5jaGFubmVsLnJlcGx5KFwidmFsaWRhdGU6bW9kZWxEYXRhXCIsIHRoaXMudmFsaWRhdGVWaWRlb21haWwsIHRoaXMpO1xuXG4gICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgIC8vIHNvIHRoYXQgd2UgY2FuIFBPU1QgdG8gdGhlIFZpZGVvbWFpbCBzZXJ2ZXIgZmlyc3RcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcGx5KFxuICAgICAgXCJtYXliZTpzdWJtaXRcIixcbiAgICAgIHRoaXMubWF5YmVTdWJtaXQsXG4gICAgICB0aGlzLFxuICAgICAgZmllbGRNb2RlbCxcbiAgICApO1xuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpbWFnZV9xdWFsaXR5XCIpIHx8IDQwO1xuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgfSBlbHNlIGlmIChpbWFnZVF1YWxpdHlQZXJjZW50YWdlIDwgMSkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDE7XG4gICAgfVxuXG4gICAgY29uc3QgdmVyYm9zZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ2ZXJib3NlXCIpIHx8IERFQlVHO1xuXG4gICAgLy8gbGF0ZSBvdmVycmlkZXNcbiAgICBERUJVRyA9IERFQlVHIHx8IHZlcmJvc2U7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQgPSBuZXcgVmlkZW9tYWlsQ2xpZW50LlZpZGVvbWFpbENsaWVudCh7XG4gICAgICBzaXRlTmFtZTogdGhpcy5maWVsZE1vZGVsLmdldChcInNpdGVfbmFtZVwiKSxcbiAgICAgIHZpZGVvOiB7XG4gICAgICAgIGxpbWl0U2Vjb25kczogdGhpcy5maWVsZE1vZGVsLmdldChcImxpbWl0X3NlY29uZHNcIikgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwid2lkdGhcIikgfHwgMzIwLFxuICAgICAgICAvLyBUT0RPIEltcGxlbWVudCBvbiBWQyBzaWRlXG4gICAgICAgIHN0cmV0Y2g6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJzdHJldGNoXCIpIHx8IGZhbHNlLFxuICAgICAgICBjb3VudGRvd246IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJjb3VudGRvd25cIikgfHwgZmFsc2UsXG4gICAgICB9LFxuICAgICAgYXVkaW86IHtcbiAgICAgICAgZW5hYmxlZDogdGhpcy5maWVsZE1vZGVsLmdldChcImF1ZGlvX2VuYWJsZWRcIiksXG4gICAgICB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLFxuICAgICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIixcbiAgICAgIH0sXG4gICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgLy8gdWdseSBuYW1lIGVoP1xuICAgICAgICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3Rpbmc6XG4gICAgICAgICAgdGhpcy5hZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlci5iaW5kKHRoaXMpLFxuICAgICAgfSxcbiAgICAgIC8vIHdoZW4gdHJ1ZSwgdXNlciBtZWRpYSBpcyBsb2FkZWQgb25seSB3aGVuIHJlY29yZCBidXR0b24gaXMgcHJlc3NlZFxuICAgICAgbG9hZFVzZXJNZWRpYU9uUmVjb3JkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibG9hZF91c2VyX21lZGlhX29uX3JlY29yZFwiKSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byB2YWxpZGF0ZSB0aGUgaW5wdXRzXG4gICAgICBlbmFibGVBdXRvVmFsaWRhdGlvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gZGVhbCB3aXRoIGZvcm0gc3VibWlzc2lvbnNcbiAgICAgIGVuYWJsZUF1dG9TdWJtaXNzaW9uOiBmYWxzZSxcblxuICAgICAgLy8gbG9nIGFjdGlvbnMvZXZlbnRzIHRvIGNvbnNvbGVcbiAgICAgIHZlcmJvc2UsXG5cbiAgICAgIHZlcnNpb25zOiB7XG4gICAgICAgIG5pbmphRm9ybVBsdWdpbjogXCJ1bmtub3duIChhYm92ZSB2Ny4wLjEpXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJQUkVWSUVXXCIsIHRoaXMub25QcmV2aWV3LmJpbmQodGhpcykpO1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFwiU1VCTUlUVEVEXCIsIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJHT0lOR19CQUNLXCIsIHRoaXMub25Hb2luZ0JhY2suYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KCk7XG4gIH0sXG5cbiAgLy8gbmVlZGVkIHRvIGdldCB0aGUgdmlkZW9tYWlsIGtleSB3aGljaCBpcyByZXF1aXJlZCBiZWZvcmVcbiAgLy8gc3VibWl0dGluZyB0byB0aGUgdmlkZW9tYWlsIHNlcnZlclxuICBvblByZXZpZXc6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBrZXkpO1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2YWx1ZVwiLCBrZXkpO1xuXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KFwicmVtb3ZlOmVycm9yXCIsIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSwgXCJyZXF1aXJlZC1lcnJvclwiKTtcbiAgfSxcblxuICBvblN1Ym1pdHRlZDogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgIGxldCBmb3JtTW9kZWwgPSBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiYXBwXCIpLnJlcXVlc3QoXCJnZXQ6Zm9ybVwiLCB0aGlzLmdldEZvcm1JZCgpKTtcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsO1xuICAgIH1cblxuICAgIC8vIFRPRE8gSXNuJ3QgJ2Zvcm0tJyArIGZvcm1Nb2RlbC5nZXQoJ2lkJykgdGhlIHNhbWUgYXMgdGhlIGZvcm1JRCBhbHJlYWR5P1xuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgZm9ybU1vZGVsLmdldChcImlkXCIpKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXh0cmFcIixcbiAgICAgIFwidmlkZW9tYWlsXCIsXG4gICAgICByZXN1bHQudmlkZW9tYWlsLFxuICAgICk7XG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyB0aGlzLmdldEZvcm1JZCgpKS5yZXF1ZXN0KFwic3VibWl0XCIsIGZvcm1Nb2RlbCk7XG4gIH0sXG5cbiAgb25Hb2luZ0JhY2s6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBudWxsKTtcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbCk7XG5cbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWQ7XG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3Igc28gdGhhdCB3ZSBjYW4gc2V0IG91ciBvd24gZXJyb3IgdGV4dCBoZXJlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXJyb3JcIixcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSxcbiAgICAgIFwicmVxdWlyZWQtZXJyb3JcIixcbiAgICAgIFwiUmVjb3JkIGFuZCBjbGljayBvbiBzdG9wIHRvIHNlZSBhIHByZXZpZXcgdmlkZW8uXCIsXG4gICAgKTtcbiAgfSxcblxuICB2YWxpZGF0ZVZpZGVvbWFpbDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICBmaWVsZE1vZGVsID0gZmllbGRNb2RlbCB8fCB0aGlzLmZpZWxkTW9kZWw7XG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KFwidmlkZW9tYWlsLWtleVwiKSB8fCBmYWxzZTtcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldChcImVycm9yc1wiKS5sZW5ndGggPiAwO1xuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZTtcbiAgICBjb25zdCB2aWRlb21haWxTdWJtaXR0ZWQgPSBmb3JtTW9kZWwuZ2V0RXh0cmEoXCJ2aWRlb21haWxcIik7XG4gICAgY29uc3QgdmlkZW9tYWlsUmVjb3JkZWQgPSB0aGlzLnZhbGlkYXRlVmlkZW9tYWlsKCk7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLmhhc0Vycm9ycyhmb3JtTW9kZWwpO1xuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KCk7XG4gICAgICBtYXliZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZTtcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KTtcblxuICAgIC8vIGl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgdXNlciBoYXMgY29uZmlndXJlZCBzb21ldGhpbmcgd3JvbmcsXG4gICAgLy8gaS5FLiBhbiBlbXB0eSBlbWFpbF9mcm9tLiBpbiB0aGF0IGNhc2UganVzdCBpZ25vcmUgLi4uXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICAvLyBhZG1pbiBlbWFpbCBsb2NhbGl6ZWQgZnJvbSBiYWNrZW5kLCBhIGJpdCB1Z2x5XG4gICAgICAvLyB0b2RvIGFzayBmb3IgYW4gZW5kcG9pbnQgdG8gcHJvY2VzcyB0aG9zZSBzcGVjaWFsIG1lcmdlIHRhZ3NcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaW5hcnlraXRjaGVuL3ZpZGVvbWFpbC1mb3ItbmluamEtZm9ybXMvaXNzdWVzLzMwXG4gICAgICBpZiAodmFsdWUgPT09IFwie3dwOmFkbWluX2VtYWlsfVwiKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXlNYXRjaGVzID0gdmFsdWUubWF0Y2goL3tmaWVsZDooLiopfS9pKTtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXkgPSByYXdGaWVsZEtleU1hdGNoZXMgJiYgcmF3RmllbGRLZXlNYXRjaGVzWzFdO1xuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9LFxuXG4gIC8vIHJldHVybnMgYSBtYXAgbGlrZSB0aGlzOlxuICAvLyB7XG4gIC8vICAgZnJvbV9lbWFpbDogXCJtaWNLQGRlYWZvbnouZWhcIlxuICAvLyAgIGZyb21fbmFtZTogXCJNSFwiXG4gIC8vICAgbWVzc2FnZTogXCJzZGZzZGZzZGZcIlxuICAvLyAgIHN1YmplY3Q6IFwic2Rmc2RmXCJcbiAgLy8gICBzdWJtaXQ6IFwiXCJcbiAgLy8gICB2aWRlb19tZXNzYWdlOiBcIjExZWItNjFkNy1kZDU4MzMyMC1hZTYxLTJiODJiZTZjNmUzZVwiXG4gIC8vIH1cbiAgZ2V0Rm9ybVZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIGxldCBjb2xsZWN0aW9uO1xuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKGZvcm1Nb2RlbCkge1xuICAgICAgY29sbGVjdGlvbiA9IGZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIik7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHMpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIikubW9kZWxzO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBjb2xsZWN0aW9uLnJlZHVjZShmdW5jdGlvbiAobWVtbywgZmllbGQpIHtcbiAgICAgIG1lbW9bZmllbGQuZ2V0KFwia2V5XCIpXSA9IGZpZWxkLmdldChcInZhbHVlXCIpO1xuICAgICAgcmV0dXJuIG1lbW87XG4gICAgfSwge30pO1xuXG4gICAgcmV0dXJuIGZvcm1WYWx1ZXM7XG4gIH0sXG5cbiAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXI6IGZ1bmN0aW9uICh2aWRlb21haWwpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKCk7XG5cbiAgICB2aWRlb21haWwuZnJvbSA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX2Zyb21cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnRvID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfdG9cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnN1YmplY3QgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9zdWJqZWN0XCIsIGZvcm1WYWx1ZXMpO1xuICAgIHZpZGVvbWFpbC5ib2R5ID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfYm9keVwiLCBmb3JtVmFsdWVzKTtcblxuICAgIHJldHVybiB2aWRlb21haWw7XG4gIH0sXG5cbiAgb25CZWZvcmVEZXN0cm95OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50O1xuICB9LFxufSk7XG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpO1xufSk7XG4iXSwibmFtZXMiOlsibGV0IiwiREVCVUciLCJWaWRlb21haWxGaWVsZENvbnRyb2xsZXIiLCJNYXJpb25ldHRlIiwiT2JqZWN0IiwiZXh0ZW5kIiwidmlkZW9tYWlsQ2xpZW50IiwiZmllbGRNb2RlbCIsImNoYW5uZWwiLCJCYWNrYm9uZSIsIlJhZGlvIiwiaW5pdGlhbGl6ZSIsInRoaXMiLCJsaXN0ZW5Ub09uY2UiLCJyZWdpc3RlclZpZGVvbWFpbEZpZWxkIiwibG9hZFZpZGVvbWFpbENsaWVudCIsImxpc3RlblRvIiwiZXZlbnROYW1lIiwiY29uc29sZSIsImxvZyIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsInVubG9hZCIsImdldEZvcm1JZCIsImdldCIsInJlcGx5IiwidmFsaWRhdGVSZXF1aXJlZCIsInZhbGlkYXRlVmlkZW9tYWlsIiwibWF5YmVTdWJtaXQiLCJpbWFnZVF1YWxpdHlQZXJjZW50YWdlIiwidmVyYm9zZSIsIlZpZGVvbWFpbENsaWVudCIsInNpdGVOYW1lIiwidmlkZW8iLCJsaW1pdFNlY29uZHMiLCJ3aWR0aCIsInN0cmV0Y2giLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJjb250YWluZXJJZCIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiY2FsbGJhY2tzIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIiLCJiaW5kIiwibG9hZFVzZXJNZWRpYU9uUmVjb3JkIiwiZW5hYmxlQXV0b1ZhbGlkYXRpb24iLCJlbmFibGVBdXRvU3VibWlzc2lvbiIsInZlcnNpb25zIiwibmluamFGb3JtUGx1Z2luIiwib24iLCJvblByZXZpZXciLCJvblN1Ym1pdHRlZCIsIm9uR29pbmdCYWNrIiwic2hvdyIsImtleSIsInNldCIsInJlcXVlc3QiLCJyZXN1bHQiLCJmb3JtTW9kZWwiLCJjb2xsZWN0aW9uIiwib3B0aW9ucyIsInZpZGVvbWFpbCIsImludmFsaWRhdGUiLCJlbCIsInZhbGlkIiwiaGFzRXJyb3JzIiwibGVuZ3RoIiwibWF5YmUiLCJ2aWRlb21haWxTdWJtaXR0ZWQiLCJnZXRFeHRyYSIsInZpZGVvbWFpbFJlY29yZGVkIiwiZXJyb3IiLCJzdWJtaXQiLCJnZXRNZXJnZVRhZ1ZhbHVlIiwiZmllbGRLZXkiLCJmb3JtVmFsdWVzIiwidmFsdWUiLCJ3aW5kb3ciLCJuZlZpZGVvbWFpbCIsImFkbWluX2VtYWlsIiwicmF3RmllbGRLZXkiLCJyYXdGaWVsZEtleU1hdGNoZXMiLCJtYXRjaCIsInJlcGxhY2UiLCJnZXRGb3JtVmFsdWVzIiwicmVkdWNlIiwibWVtbyIsImZpZWxkIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFHQUEsSUFBSUMsTUFBUSxDQUFBLEVBS05DLHlCQUEyQkMsV0FBV0MsT0FBT0MsT0FBTyxDQUN4REMsZ0JBQWlCLEtBRWpCQyxXQUFZLEtBRVpDLFFBQVNDLFNBQVNDLE1BQU1GLFFBQVEsV0FBVyxFQUUzQ0csV0FBWSxXQUNWRixTQUFTQyxNQUFNVCxNQUFRQSxNQUV2QlcsS0FBS0MsYUFBYUQsS0FBS0osUUFBUyxhQUFjSSxLQUFLRSxzQkFBc0IsRUFDekVGLEtBQUtDLGFBQWFELEtBQUtKLFFBQVMsY0FBZUksS0FBS0csbUJBQW1CLEVBR3ZFSCxLQUFLSSxTQUFTSixLQUFLSixRQUFTLE1BQU8sU0FBVVMsR0FDM0NoQixPQUFTaUIsUUFBUUMsSUFBSSxxQ0FBc0NGLENBQVMsRUFJcEVMLEtBQUtJLFNBQVNJLFFBQVFaLFFBQVEsTUFBTSxFQUFHLGNBQWUsU0FBVWEsR0FDOURwQixPQUFTaUIsUUFBUUMsSUFBSSxnQ0FBaUMsYUFBYSxFQUU3REcsRUFDSkQsRUFBT0UsZ0JBQWdCQyxZQUFZQyxpQkFBaUJDLFFBQVUsR0FFaEUsSUFBTUMsRUFBYWYsS0FBS0wsV0FBV3FCLElBRWROLEVBQWNPLEtBQUssU0FBVUMsR0FDaEQsT0FBT0EsRUFBTUYsTUFBUUQsQ0FDdkIsQ0FBQyxFQUdDZixLQUFLRyxvQkFBb0IsRUFFekJILEtBQUtOLGdCQUFnQnlCLE9BQU8sQ0FFaEMsQ0FBQyxDQUNILENBQUMsQ0FDSCxFQUVBQyxVQUFXLFdBQ1QsT0FBT3BCLEtBQUtMLFdBQVcwQixJQUFJLFFBQVEsQ0FDckMsRUFFQW5CLHVCQUF3QixTQUFVUCxHQUNoQ0ssS0FBS0wsV0FBYUEsRUFJbEJLLEtBQUtKLFFBQVEwQixNQUFNLG9CQUFxQnRCLEtBQUt1QixpQkFBa0J2QixJQUFJLEVBRW5FQSxLQUFLSixRQUFRMEIsTUFBTSxxQkFBc0J0QixLQUFLd0Isa0JB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 -
videomail-for-ninja-forms/trunk/target/js/videomail-client/index.js
r3223444 r3231806 10189 10189 const pretty = pretty_pretty; 10190 10190 function isAudioEnabled(options) { 10191 return options.audio.enabled;10191 return Boolean(options.audio.enabled); 10192 10192 } 10193 10193 function setAudioEnabled(enabled, options) { … … 13648 13648 const wrappers_form = Form; 13649 13649 var package_namespaceObject = { 13650 i8: "10.1. 0"13650 i8: "10.1.3" 13651 13651 }; 13652 13652 function findOriginalExc(exc) { … … 16140 16140 let cause; 16141 16141 if (e) cause = e.type; 16142 this.options.logger.debug(`Recorder: unload()${cause ? `, cause: ${cause}` : ""}`); 16142 const prettyCause = cause ? `, cause: ${cause}` : ""; 16143 this.options.logger.debug(`Recorder: unload()${prettyCause}`); 16143 16144 this.reset(); 16144 16145 this.clearUserMediaTimeout(); -
videomail-for-ninja-forms/trunk/target/php/videomail.php
r3223444 r3231806 3 3 4 4 const NAME = 'Videomail'; 5 const VERSION = '7.0. 1';5 const VERSION = '7.0.2'; 6 6 const AUTHOR = 'Michael Heuberger + Kyle B. Johnson'; 7 7 const SLUG = 'videomail'; -
videomail-for-ninja-forms/trunk/videomail-for-ninja-forms.php
r3223444 r3231806 4 4 Plugin URI: https://github.com/binarykitchen/videomail-for-ninja-forms 5 5 Description: Express yourself in more than just words. Record and send a short video from your webcam. 6 Version: 7.0. 16 Version: 7.0.2 7 7 Author: Michael Heuberger + Kyle B. Johnson 8 8 Author URI: https://videomail.io
Note: See TracChangeset
for help on using the changeset viewer.