Changeset 3366104
- Timestamp:
- 09/23/2025 12:13:28 AM (6 months ago)
- Location:
- videomail-for-ninja-forms
- Files:
-
- 12 edited
- 1 copied
-
tags/8.1.0 (copied) (copied from videomail-for-ninja-forms/trunk)
-
tags/8.1.0/readme.txt (modified) (2 diffs)
-
tags/8.1.0/target/js/main.min.js (modified) (1 diff)
-
tags/8.1.0/target/js/videomail-client/index.min.js (modified) (50 diffs)
-
tags/8.1.0/target/php/fields/videomail.php (modified) (1 diff)
-
tags/8.1.0/target/php/videomail.php (modified) (3 diffs)
-
tags/8.1.0/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.min.js (modified) (50 diffs)
-
trunk/target/php/fields/videomail.php (modified) (1 diff)
-
trunk/target/php/videomail.php (modified) (3 diffs)
-
trunk/videomail-for-ninja-forms.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
videomail-for-ninja-forms/tags/8.1.0/readme.txt
r3354424 r3366104 6 6 Requires at least: 6.0 7 7 Tested up to: 6.8.2 8 Stable tag: 8. 0.38 Stable tag: 8.1.0 9 9 Requires PHP: 8.1.0 10 10 Donate link: https://videomail.io/faq … … 71 71 72 72 == 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 73 80 = 8.0.3 (2 Sept 2025) = 74 81 **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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguM C4zXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIC8vIHVnbHkgbmFtZSBlaD9cbiAgICAgICAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nOlxuICAgICAgICAgIHRoaXMuYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIuYmluZCh0aGlzKSxcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gdmFsaWRhdGUgdGhlIGlucHV0c1xuICAgICAgZW5hYmxlQXV0b1ZhbGlkYXRpb246IGZhbHNlLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIGRlYWwgd2l0aCBmb3JtIHN1Ym1pc3Npb25zXG4gICAgICBlbmFibGVBdXRvU3VibWlzc2lvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxvZyBhY3Rpb25zL2V2ZW50cyB0byBjb25zb2xlXG4gICAgICB2ZXJib3NlLFxuXG4gICAgICB2ZXJzaW9uczogeyBuaW5qYUZvcm1QbHVnaW46IFBMVUdJTl9WRVJTSU9OIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3QiLCJib2R5Iiwib25CZWZvcmVEZXN0cm95IiwialF1ZXJ5IiwiZG9jdW1lbnQiLCJyZWFkeSJdLCJtYXBwaW5ncyI6IkFBQ0EsSUFBTUEsZUFBaUIsUUFHbkJDLE1BQVEsQ0FBQSxFQUtOQyx5QkFBMkJDLFdBQVdDLE9BQU9DLE9BQU8sQ0FDeERDLGdCQUFpQixLQUVqQkMsV0FBWSxLQUVaQyxRQ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1 let 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 4994 4994 module1.exports = bind.call(call, $hasOwn); 4995 4995 }, 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 },5003 4996 "./node_modules/ieee754/index.js": function(__unused_webpack_module, exports1) { 5004 4997 /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ exports1.read = function(buffer, offset, isLE, mLen, nBytes) { … … 10656 10649 var client_default = /*#__PURE__*/ __webpack_require__.n(client); 10657 10650 var package_namespaceObject = { 10658 rE: "11.0. 5"10651 rE: "11.0.8" 10659 10652 }; 10660 10653 var defined = __webpack_require__("./node_modules/defined/index.js"); 10661 10654 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 = [ 10663 10656 BRANDS, 10664 10657 FULLVERLIST, … … 10712 10705 return isString(version) ? strip(/[^\d\.]/g, version).split('.')[0] : void 0; 10713 10706 }, setProps = function(arr) { 10714 for(var i in arr) {10707 for(var i in arr)if (arr.hasOwnProperty(i)) { 10715 10708 var propName = arr[i]; 10716 10709 if (typeof propName == OBJ_TYPE && 2 == propName.length) this[propName[0]] = propName[1]; … … 11235 11228 ], 11236 11229 [ 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 [ 11237 11245 /(chromium)[\/ ]([-\w\.]+)/i 11238 11246 ], … … 11456 11464 ], 11457 11465 [ 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 11459 11478 ], 11460 11479 [ … … 11467 11486 ], 11468 11487 [ 11469 / sun4\w[;\)]/i11488 /winnt.+\[axp/i 11470 11489 ], 11471 11490 [ 11472 11491 [ 11473 11492 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' 11484 11494 ] 11485 11495 ] … … 12285 12295 /(hp) ([\w ]+\w)/i, 12286 12296 /(microsoft); (lumia[\w ]+)/i, 12287 /(oppo) ?([\w ]+) bui/i 12297 /(oppo) ?([\w ]+) bui/i, 12298 /droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i 12288 12299 ], 12289 12300 [ … … 12408 12419 ], 12409 12420 [ 12421 /(philips)[\w ]+tv/i, 12410 12422 /smart-tv.+(samsung)/i 12411 12423 ], … … 12663 12675 ], 12664 12676 [ 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 12666 12952 ], 12667 12953 [ … … 12673 12959 ], 12674 12960 [ 12675 /\b( android tv|smart[- ]?tv|operatv|tv; rv:|large screen[\w ]+safari)\b/i12961 /\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i 12676 12962 ], 12677 12963 [ … … 12679 12965 TYPE, 12680 12966 SMARTTV 12681 ]12682 ],12683 [12684 /(playstation \w+)/i12685 ],12686 [12687 MODEL,12688 [12689 VENDOR,12690 SONY12691 ],12692 [12693 TYPE,12694 CONSOLE12695 ]12696 ],12697 [12698 /\b(xbox(?: one)?(?!; xbox))[\); ]/i12699 ],12700 [12701 MODEL,12702 [12703 VENDOR,12704 MICROSOFT12705 ],12706 [12707 TYPE,12708 CONSOLE12709 ]12710 ],12711 [12712 /(ouya)/i,12713 /(nintendo) (\w+)/i,12714 /(retroid) (pocket ([^\)]+))/i12715 ],12716 [12717 VENDOR,12718 MODEL,12719 [12720 TYPE,12721 CONSOLE12722 ]12723 ],12724 [12725 /droid.+; (shield)( bui|\))/i12726 ],12727 [12728 MODEL,12729 [12730 VENDOR,12731 NVIDIA12732 ],12733 [12734 TYPE,12735 CONSOLE12736 ]12737 ],12738 [12739 /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i12740 ],12741 [12742 MODEL,12743 [12744 VENDOR,12745 SAMSUNG12746 ],12747 [12748 TYPE,12749 WEARABLE12750 ]12751 ],12752 [12753 /((pebble))app/i,12754 /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i12755 ],12756 [12757 VENDOR,12758 MODEL,12759 [12760 TYPE,12761 WEARABLE12762 ]12763 ],12764 [12765 /(ow(?:19|20)?we?[1-3]{1,3})/i12766 ],12767 [12768 MODEL,12769 [12770 VENDOR,12771 OPPO12772 ],12773 [12774 TYPE,12775 WEARABLE12776 ]12777 ],12778 [12779 /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i12780 ],12781 [12782 MODEL,12783 [12784 VENDOR,12785 APPLE12786 ],12787 [12788 TYPE,12789 WEARABLE12790 ]12791 ],12792 [12793 /(opwwe\d{3})/i12794 ],12795 [12796 MODEL,12797 [12798 VENDOR,12799 ONEPLUS12800 ],12801 [12802 TYPE,12803 WEARABLE12804 ]12805 ],12806 [12807 /(moto 360)/i12808 ],12809 [12810 MODEL,12811 [12812 VENDOR,12813 MOTOROLA12814 ],12815 [12816 TYPE,12817 WEARABLE12818 ]12819 ],12820 [12821 /(smartwatch 3)/i12822 ],12823 [12824 MODEL,12825 [12826 VENDOR,12827 SONY12828 ],12829 [12830 TYPE,12831 WEARABLE12832 ]12833 ],12834 [12835 /(g watch r)/i12836 ],12837 [12838 MODEL,12839 [12840 VENDOR,12841 LG12842 ],12843 [12844 TYPE,12845 WEARABLE12846 ]12847 ],12848 [12849 /droid.+; (wt63?0{2,3})\)/i12850 ],12851 [12852 MODEL,12853 [12854 VENDOR,12855 ZEBRA12856 ],12857 [12858 TYPE,12859 WEARABLE12860 ]12861 ],12862 [12863 /droid.+; (glass) \d/i12864 ],12865 [12866 MODEL,12867 [12868 VENDOR,12869 GOOGLE12870 ],12871 [12872 TYPE,12873 XR12874 ]12875 ],12876 [12877 /(pico) (4|neo3(?: link|pro)?)/i12878 ],12879 [12880 VENDOR,12881 MODEL,12882 [12883 TYPE,12884 XR12885 ]12886 ],12887 [12888 /(quest( \d| pro)?s?).+vr/i12889 ],12890 [12891 MODEL,12892 [12893 VENDOR,12894 FACEBOOK12895 ],12896 [12897 TYPE,12898 XR12899 ]12900 ],12901 [12902 /mobile vr; rv.+firefox/i12903 ],12904 [12905 [12906 TYPE,12907 XR12908 ]12909 ],12910 [12911 /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i12912 ],12913 [12914 VENDOR,12915 [12916 TYPE,12917 EMBEDDED12918 ]12919 ],12920 [12921 /(aeobc)\b/i12922 ],12923 [12924 MODEL,12925 [12926 VENDOR,12927 AMAZON12928 ],12929 [12930 TYPE,12931 EMBEDDED12932 ]12933 ],12934 [12935 /(homepod).+mac os/i12936 ],12937 [12938 MODEL,12939 [12940 VENDOR,12941 APPLE12942 ],12943 [12944 TYPE,12945 EMBEDDED12946 ]12947 ],12948 [12949 /windows iot/i12950 ],12951 [12952 [12953 TYPE,12954 EMBEDDED12955 12967 ] 12956 12968 ], … … 13593 13605 case UA_ENGINE: 13594 13606 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++){ 13596 13608 var brandName = brands[i].brand || brands[i], brandVersion = brands[i].version; 13597 13609 if (this.itemType == UA_BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) { … … 13687 13699 extensions = void 0; 13688 13700 } 13689 if (headers &&typeof headers.append === FUNC_TYPE) {13701 if (headers) if (typeof headers.append === FUNC_TYPE) { 13690 13702 var kv = {}; 13691 13703 headers.forEach(function(v, k) { 13692 kv[ k] = v;13704 kv[String(k).toLowerCase()] = v; 13693 13705 }); 13694 13706 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; 13695 13711 } 13696 13712 if (!(this instanceof UAParser)) return new UAParser(ua, extensions, headers).getResult(); … … 14202 14218 } 14203 14219 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);14206 14220 let createNanoEvents = ()=>({ 14207 14221 emit (event, ...args) { … … 14262 14276 } 14263 14277 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; 14264 14283 function isNotButton(element) { 14265 14284 return "BUTTON" !== element.tagName && "submit" !== element.getAttribute("type"); 14266 14285 } 14267 14286 const html_isNotButton = isNotButton; 14287 function showElement(element) { 14288 if (!element) return; 14289 element.style.removeProperty("display"); 14290 } 14291 const html_showElement = showElement; 14268 14292 const REGEX = /[ ,]+/u; 14269 14293 function trimEmail(email) { … … 14368 14392 } 14369 14393 hideAll() { 14370 for (const formElement of this.formElement.elements)h idden_default()(formElement, true);14371 if (!this.formElement.classList.contains(this.options.selectors.containerClass)) h idden_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); 14372 14396 } 14373 14397 isRegisteredFormField(formElement) { … … 14453 14477 hideSubmitButton() { 14454 14478 const submitButton = this.findSubmitButton(); 14455 h idden_default()(submitButton, true);14479 html_hideElement(submitButton); 14456 14480 } 14457 14481 unload() { … … 14512 14536 } 14513 14537 hide() { 14514 h idden_default()(this.formElement, true);14538 html_hideElement(this.formElement); 14515 14539 } 14516 14540 show() { 14517 h idden_default()(this.formElement, false);14541 html_showElement(this.formElement); 14518 14542 } 14519 14543 } … … 14927 14951 } 14928 14952 const html_disableElement = disableElement; 14929 function hideElement_hideElement(element) {14930 if (!element) return;14931 hidden_default()(element, true);14932 }14933 const hideElement = hideElement_hideElement;14934 14953 function adjustButton(buttonElement, show, type, disabled) { 14935 14954 if (disabled) html_disableElement(buttonElement); 14936 14955 if (type) buttonElement.type = type; 14937 if (!show) h ideElement(buttonElement);14956 if (!show) html_hideElement(buttonElement); 14938 14957 return buttonElement; 14939 14958 } … … 14947 14966 function isShown(element) { 14948 14967 if (!element) return false; 14949 return !hidden_default()(element); 14968 const display = element.style.getPropertyValue("display"); 14969 return !display.includes("none"); 14950 14970 } 14951 14971 const html_isShown = isShown; 14952 function showElement(element) {14953 if (!element) return;14954 hidden_default()(element, false);14955 }14956 const html_showElement = showElement;14957 14972 class Buttons extends util_Despot { 14958 14973 container; … … 15067 15082 if (!params?.paused) { 15068 15083 html_disableElement(this.previewButton); 15069 h ideElement(this.previewButton);15084 html_hideElement(this.previewButton); 15070 15085 } 15071 15086 if (!this.options.enableAutoValidation) html_enableElement(this.submitButton); 15072 15087 } 15073 15088 onGoingBack() { 15074 h ideElement(this.recordAgainButton);15089 html_hideElement(this.recordAgainButton); 15075 15090 html_showElement(this.recordButton); 15076 15091 html_showElement(this.submitButton); … … 15097 15112 } 15098 15113 onPreview() { 15099 h ideElement(this.recordButton);15100 h ideElement(this.previewButton);15114 html_hideElement(this.recordButton); 15115 html_hideElement(this.previewButton); 15101 15116 html_disableElement(this.audioOnRadioPair); 15102 15117 html_disableElement(this.audioOffRadioPair); … … 15110 15125 adjustButtonsForPause() { 15111 15126 if (!this.isCountingDown()) { 15112 if (this.pauseButton) h ideElement(this.pauseButton);15127 if (this.pauseButton) html_hideElement(this.pauseButton); 15113 15128 html_showElement(this.resumeButton); 15114 15129 html_enableElement(this.resumeButton); 15115 h ideElement(this.recordButton);15130 html_hideElement(this.recordButton); 15116 15131 html_showElement(this.previewButton); 15117 15132 html_enableElement(this.previewButton); … … 15119 15134 } 15120 15135 onFirstFrameSent() { 15121 h ideElement(this.recordButton);15122 h ideElement(this.recordAgainButton);15136 html_hideElement(this.recordButton); 15137 html_hideElement(this.recordAgainButton); 15123 15138 if (this.pauseButton) { 15124 15139 html_showElement(this.pauseButton); … … 15138 15153 } 15139 15154 onResuming() { 15140 h ideElement(this.resumeButton);15141 h ideElement(this.recordButton);15155 html_hideElement(this.resumeButton); 15156 html_hideElement(this.recordButton); 15142 15157 if (this.pauseButton) { 15143 15158 html_enableElement(this.pauseButton); … … 15148 15163 html_disableElement(this.previewButton); 15149 15164 html_disableElement(this.recordButton); 15150 h ideElement(this.pauseButton);15151 h ideElement(this.resumeButton);15165 html_hideElement(this.pauseButton); 15166 html_hideElement(this.resumeButton); 15152 15167 } 15153 15168 onCountdown() { … … 15174 15189 } 15175 15190 onHidden() { 15176 h ideElement(this.recordButton);15177 h ideElement(this.previewButton);15178 h ideElement(this.recordAgainButton);15179 h ideElement(this.resumeButton);15180 h ideElement(this.audioOnRadioPair);15181 h ideElement(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); 15182 15197 } 15183 15198 onEnablingAudio() { … … 15317 15332 this.container.appendChild(this.buttonsElement); 15318 15333 } 15319 h ideElement(this.buttonsElement);15334 html_hideElement(this.buttonsElement); 15320 15335 this.buildButtons(); 15321 15336 if (!this.built) this.initEvents(); … … 15332 15347 } 15333 15348 hide(deep = false) { 15334 h ideElement(this.buttonsElement);15349 html_hideElement(this.buttonsElement); 15335 15350 if (deep) { 15336 h ideElement(this.recordButton);15337 h ideElement(this.pauseButton);15338 h ideElement(this.resumeButton);15339 h ideElement(this.previewButton);15340 h ideElement(this.recordAgainButton);15341 h ideElement(this.submitButton);15342 h ideElement(this.audioOnRadioPair);15343 h ideElement(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); 15344 15359 } 15345 15360 } … … 15352 15367 } 15353 15368 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; 15354 15375 class Countdown { 15355 15376 visuals; … … 15405 15426 } 15406 15427 show() { 15407 h idden_default()(this.countdownElement, false);15428 html_showElement(this.countdownElement); 15408 15429 } 15409 15430 isCountingDown() { … … 15416 15437 } 15417 15438 hide() { 15418 h idden_default()(this.countdownElement, true);15439 html_hideElement(this.countdownElement); 15419 15440 this.unload(); 15420 15441 } … … 15456 15477 } 15457 15478 hide() { 15458 h idden_default()(this.facingModeElement, true);15479 html_hideElement(this.facingModeElement); 15459 15480 } 15460 15481 show() { 15461 h idden_default()(this.facingModeElement, false);15482 html_showElement(this.facingModeElement); 15462 15483 } 15463 15484 } … … 15504 15525 } 15505 15526 hide() { 15506 h idden_default()(this.pausedBlockElement, true);15527 html_hideElement(this.pausedBlockElement); 15507 15528 } 15508 15529 show() { 15509 h idden_default()(this.pausedBlockElement, false);15530 html_showElement(this.pausedBlockElement); 15510 15531 } 15511 15532 } … … 15539 15560 } 15540 15561 hide() { 15541 h idden_default()(this.recordNoteElement, true);15562 html_hideElement(this.recordNoteElement); 15542 15563 } 15543 15564 show() { 15544 h idden_default()(this.recordNoteElement, false);15565 html_showElement(this.recordNoteElement); 15545 15566 } 15546 15567 } … … 15616 15637 } 15617 15638 hide() { 15618 h idden_default()(this.recordTimerElement, true);15639 html_hideElement(this.recordTimerElement); 15619 15640 } 15620 15641 show() { 15621 15642 this.recordTimerElement?.classList.remove("near"); 15622 15643 this.recordTimerElement?.classList.remove("nigh"); 15623 h idden_default()(this.recordTimerElement, false);15644 html_showElement(this.recordTimerElement); 15624 15645 } 15625 15646 getSecondsRecorded() { … … 15861 15882 } 15862 15883 show() { 15863 if (this.notifyElement) hidden_default()(this.notifyElement, false);15884 html_showElement(this.notifyElement); 15864 15885 } 15865 15886 runEntertainment() { … … 15909 15930 } else this.options.logger.warn("There is no message element for displaying a message"); 15910 15931 else this.options.logger.warn("Not going to update notifierMessage element because message is empty"); 15911 h idden_default()(this.messageElement, false);15932 html_showElement(this.messageElement); 15912 15933 } 15913 15934 setExplanation(explanation) { … … 15920 15941 } 15921 15942 this.explanationElement.innerHTML = explanation; 15922 h idden_default()(this.explanationElement, false);15943 html_showElement(this.explanationElement); 15923 15944 } 15924 15945 build() { … … 15935 15956 } 15936 15957 hideMessage() { 15937 if (this.getMessageElement()) hidden_default()(this.messageElement, true);15958 html_hideElement(this.getMessageElement()); 15938 15959 } 15939 15960 hideExplanation() { 15940 if (this.explanationElement) hidden_default()(this.explanationElement, true);15961 html_hideElement(this.explanationElement); 15941 15962 } 15942 15963 hide() { 15943 15964 this.cancelEntertainment(); 15944 15965 if (this.notifyElement) { 15945 h idden_default()(this.notifyElement, true);15966 html_hideElement(this.notifyElement); 15946 15967 this.notifyElement.classList.remove("blocking"); 15947 15968 } … … 15951 15972 isVisible() { 15952 15973 if (!this.built) return false; 15953 return this.notifyElement && ! hidden_default()(this.notifyElement);15974 return this.notifyElement && !isHidden(this.notifyElement); 15954 15975 } 15955 15976 isBuilt() { … … 16626 16647 } 16627 16648 show() { 16628 if (this.recorderElement) hidden_default()(this.recorderElement, false);16649 html_showElement(this.recorderElement); 16629 16650 } 16630 16651 onUserMediaReady(params) { … … 17010 17031 } 17011 17032 isHidden() { 17012 return !this.recorderElement || hidden_default()(this.recorderElement);17033 return !this.recorderElement || isHidden(this.recorderElement); 17013 17034 } 17014 17035 writeCommand(command, args, cb) { … … 17400 17421 hide() { 17401 17422 if (!this.isHidden()) { 17402 if (this.recorderElement) h idden_default()(this.recorderElement, true);17423 if (this.recorderElement) html_hideElement(this.recorderElement); 17403 17424 this.clearUserMediaTimeout(); 17404 17425 this.clearRetryTimeout(); … … 17544 17565 if (hasMedia) this.correctDimensions(true, videomailWidth ?? this.replayElement.videoWidth, videomailHeight ?? this.replayElement.videoHeight); 17545 17566 if (playerOnly) { 17546 if (hasMedia) h idden_default()(this.replayElement, false);17547 } else h idden_default()(this.replayElement, false);17548 if (playerOnly) h idden_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); 17549 17570 else this.visuals.show(); 17550 17571 if (hasAudio) this.replayElement.setAttribute("volume", "1"); … … 17693 17714 } 17694 17715 hide() { 17695 if (this.isStandalone()) hidden_default()(this.visuals, true);17716 if (this.isStandalone()) this.visuals.hide(); 17696 17717 else if (this.replayElement) { 17697 h idden_default()(this.replayElement, true);17698 h idden_default()(this.replayElement.parentNode, true);17718 html_hideElement(this.replayElement); 17719 html_hideElement(this.replayElement.parentElement); 17699 17720 } 17700 17721 } 17701 17722 isShown() { 17702 17723 if (!this.replayElement) return false; 17703 return ! hidden_default()(this.replayElement) && !this.visuals.isHidden();17724 return !isHidden(this.replayElement) && !this.visuals.isHidden(); 17704 17725 } 17705 17726 getVisuals() { … … 17904 17925 hide() { 17905 17926 if (this.visualsElement) { 17906 h idden_default()(this.visualsElement, true);17927 html_hideElement(this.visualsElement); 17907 17928 this.emit("HIDE"); 17908 17929 } … … 17910 17931 isHidden() { 17911 17932 if (!this.built) return true; 17912 if (this.visualsElement) return hidden_default()(this.visualsElement);17933 return isHidden(this.visualsElement); 17913 17934 } 17914 17935 showVisuals() { 17915 h idden_default()(this.visualsElement, false);17936 html_showElement(this.visualsElement); 17916 17937 } 17917 17938 show(params) { … … 18141 18162 } 18142 18163 hideMySelf() { 18143 h idden_default()(this.containerElement, true);18164 html_hideElement(this.containerElement); 18144 18165 } 18145 18166 async submitVideomail(formInputs, method) { … … 18214 18235 options: this.options 18215 18236 }); 18216 h idden_default()(this.containerElement, false);18237 html_showElement(this.containerElement); 18217 18238 this.visuals.show(params); 18218 18239 if (!this.hasError) { -
videomail-for-ninja-forms/tags/8.1.0/target/php/fields/videomail.php
r3354424 r3366104 173 173 'nf-videomail-main', 174 174 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. 175 177 array('nf-front-end', 'nf-videomail-client'), 176 178 NF_Videomail::VERSION -
videomail-for-ninja-forms/tags/8.1.0/target/php/videomail.php
r3354424 r3366104 3 3 4 4 const NAME = 'Videomail'; 5 const VERSION = '8. 0.3';5 const VERSION = '8.1.0'; 6 6 const AUTHOR = 'Michael Heuberger + Kyle B. Johnson'; 7 7 const SLUG = 'videomail'; … … 58 58 public function __construct() { 59 59 add_action('admin_init', array($this, 'setup_license')); 60 add_action('plugins_loaded', array($this, 'plugin_update_check')); 60 61 add_action('ninja_forms_loaded', array($this, 'ninja_forms_loaded')); 61 62 add_filter('ninja_forms_register_fields', array($this, 'register_fields')); … … 114 115 ); 115 116 } 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 } 116 129 } -
videomail-for-ninja-forms/tags/8.1.0/videomail-for-ninja-forms.php
r3354424 r3366104 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: 8. 0.36 Version: 8.1.0 7 7 Author: Michael Heuberger + Kyle B. Johnson 8 8 Author URI: https://videomail.io -
videomail-for-ninja-forms/trunk/readme.txt
r3354424 r3366104 6 6 Requires at least: 6.0 7 7 Tested up to: 6.8.2 8 Stable tag: 8. 0.38 Stable tag: 8.1.0 9 9 Requires PHP: 8.1.0 10 10 Donate link: https://videomail.io/faq … … 71 71 72 72 == 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 73 80 = 8.0.3 (2 Sept 2025) = 74 81 **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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguM C4zXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIC8vIHVnbHkgbmFtZSBlaD9cbiAgICAgICAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nOlxuICAgICAgICAgIHRoaXMuYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIuYmluZCh0aGlzKSxcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gdmFsaWRhdGUgdGhlIGlucHV0c1xuICAgICAgZW5hYmxlQXV0b1ZhbGlkYXRpb246IGZhbHNlLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIGRlYWwgd2l0aCBmb3JtIHN1Ym1pc3Npb25zXG4gICAgICBlbmFibGVBdXRvU3VibWlzc2lvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxvZyBhY3Rpb25zL2V2ZW50cyB0byBjb25zb2xlXG4gICAgICB2ZXJib3NlLFxuXG4gICAgICB2ZXJzaW9uczogeyBuaW5qYUZvcm1QbHVnaW46IFBMVUdJTl9WRVJTSU9OIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3QiLCJib2R5Iiwib25CZWZvcmVEZXN0cm95IiwialF1ZXJ5IiwiZG9jdW1lbnQiLCJyZWFkeSJdLCJtYXBwaW5ncyI6IkFBQ0EsSUFBTUEsZUFBaUIsUUFHbkJDLE1BQVEsQ0FBQSxFQUtOQyx5QkFBMkJDLFdBQVdDLE9BQU9DLE9BQU8sQ0FDeERDLGdCQUFpQixLQUVqQkMsV0FBWSxLQUVaQyxRQ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1 let 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 4994 4994 module1.exports = bind.call(call, $hasOwn); 4995 4995 }, 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 },5003 4996 "./node_modules/ieee754/index.js": function(__unused_webpack_module, exports1) { 5004 4997 /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ exports1.read = function(buffer, offset, isLE, mLen, nBytes) { … … 10656 10649 var client_default = /*#__PURE__*/ __webpack_require__.n(client); 10657 10650 var package_namespaceObject = { 10658 rE: "11.0. 5"10651 rE: "11.0.8" 10659 10652 }; 10660 10653 var defined = __webpack_require__("./node_modules/defined/index.js"); 10661 10654 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 = [ 10663 10656 BRANDS, 10664 10657 FULLVERLIST, … … 10712 10705 return isString(version) ? strip(/[^\d\.]/g, version).split('.')[0] : void 0; 10713 10706 }, setProps = function(arr) { 10714 for(var i in arr) {10707 for(var i in arr)if (arr.hasOwnProperty(i)) { 10715 10708 var propName = arr[i]; 10716 10709 if (typeof propName == OBJ_TYPE && 2 == propName.length) this[propName[0]] = propName[1]; … … 11235 11228 ], 11236 11229 [ 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 [ 11237 11245 /(chromium)[\/ ]([-\w\.]+)/i 11238 11246 ], … … 11456 11464 ], 11457 11465 [ 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 11459 11478 ], 11460 11479 [ … … 11467 11486 ], 11468 11487 [ 11469 / sun4\w[;\)]/i11488 /winnt.+\[axp/i 11470 11489 ], 11471 11490 [ 11472 11491 [ 11473 11492 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' 11484 11494 ] 11485 11495 ] … … 12285 12295 /(hp) ([\w ]+\w)/i, 12286 12296 /(microsoft); (lumia[\w ]+)/i, 12287 /(oppo) ?([\w ]+) bui/i 12297 /(oppo) ?([\w ]+) bui/i, 12298 /droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i 12288 12299 ], 12289 12300 [ … … 12408 12419 ], 12409 12420 [ 12421 /(philips)[\w ]+tv/i, 12410 12422 /smart-tv.+(samsung)/i 12411 12423 ], … … 12663 12675 ], 12664 12676 [ 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 12666 12952 ], 12667 12953 [ … … 12673 12959 ], 12674 12960 [ 12675 /\b( android tv|smart[- ]?tv|operatv|tv; rv:|large screen[\w ]+safari)\b/i12961 /\b((4k|android|smart|opera)[- ]?tv|tv; rv:|large screen[\w ]+safari)\b/i 12676 12962 ], 12677 12963 [ … … 12679 12965 TYPE, 12680 12966 SMARTTV 12681 ]12682 ],12683 [12684 /(playstation \w+)/i12685 ],12686 [12687 MODEL,12688 [12689 VENDOR,12690 SONY12691 ],12692 [12693 TYPE,12694 CONSOLE12695 ]12696 ],12697 [12698 /\b(xbox(?: one)?(?!; xbox))[\); ]/i12699 ],12700 [12701 MODEL,12702 [12703 VENDOR,12704 MICROSOFT12705 ],12706 [12707 TYPE,12708 CONSOLE12709 ]12710 ],12711 [12712 /(ouya)/i,12713 /(nintendo) (\w+)/i,12714 /(retroid) (pocket ([^\)]+))/i12715 ],12716 [12717 VENDOR,12718 MODEL,12719 [12720 TYPE,12721 CONSOLE12722 ]12723 ],12724 [12725 /droid.+; (shield)( bui|\))/i12726 ],12727 [12728 MODEL,12729 [12730 VENDOR,12731 NVIDIA12732 ],12733 [12734 TYPE,12735 CONSOLE12736 ]12737 ],12738 [12739 /\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i12740 ],12741 [12742 MODEL,12743 [12744 VENDOR,12745 SAMSUNG12746 ],12747 [12748 TYPE,12749 WEARABLE12750 ]12751 ],12752 [12753 /((pebble))app/i,12754 /(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i12755 ],12756 [12757 VENDOR,12758 MODEL,12759 [12760 TYPE,12761 WEARABLE12762 ]12763 ],12764 [12765 /(ow(?:19|20)?we?[1-3]{1,3})/i12766 ],12767 [12768 MODEL,12769 [12770 VENDOR,12771 OPPO12772 ],12773 [12774 TYPE,12775 WEARABLE12776 ]12777 ],12778 [12779 /(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i12780 ],12781 [12782 MODEL,12783 [12784 VENDOR,12785 APPLE12786 ],12787 [12788 TYPE,12789 WEARABLE12790 ]12791 ],12792 [12793 /(opwwe\d{3})/i12794 ],12795 [12796 MODEL,12797 [12798 VENDOR,12799 ONEPLUS12800 ],12801 [12802 TYPE,12803 WEARABLE12804 ]12805 ],12806 [12807 /(moto 360)/i12808 ],12809 [12810 MODEL,12811 [12812 VENDOR,12813 MOTOROLA12814 ],12815 [12816 TYPE,12817 WEARABLE12818 ]12819 ],12820 [12821 /(smartwatch 3)/i12822 ],12823 [12824 MODEL,12825 [12826 VENDOR,12827 SONY12828 ],12829 [12830 TYPE,12831 WEARABLE12832 ]12833 ],12834 [12835 /(g watch r)/i12836 ],12837 [12838 MODEL,12839 [12840 VENDOR,12841 LG12842 ],12843 [12844 TYPE,12845 WEARABLE12846 ]12847 ],12848 [12849 /droid.+; (wt63?0{2,3})\)/i12850 ],12851 [12852 MODEL,12853 [12854 VENDOR,12855 ZEBRA12856 ],12857 [12858 TYPE,12859 WEARABLE12860 ]12861 ],12862 [12863 /droid.+; (glass) \d/i12864 ],12865 [12866 MODEL,12867 [12868 VENDOR,12869 GOOGLE12870 ],12871 [12872 TYPE,12873 XR12874 ]12875 ],12876 [12877 /(pico) (4|neo3(?: link|pro)?)/i12878 ],12879 [12880 VENDOR,12881 MODEL,12882 [12883 TYPE,12884 XR12885 ]12886 ],12887 [12888 /(quest( \d| pro)?s?).+vr/i12889 ],12890 [12891 MODEL,12892 [12893 VENDOR,12894 FACEBOOK12895 ],12896 [12897 TYPE,12898 XR12899 ]12900 ],12901 [12902 /mobile vr; rv.+firefox/i12903 ],12904 [12905 [12906 TYPE,12907 XR12908 ]12909 ],12910 [12911 /(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i12912 ],12913 [12914 VENDOR,12915 [12916 TYPE,12917 EMBEDDED12918 ]12919 ],12920 [12921 /(aeobc)\b/i12922 ],12923 [12924 MODEL,12925 [12926 VENDOR,12927 AMAZON12928 ],12929 [12930 TYPE,12931 EMBEDDED12932 ]12933 ],12934 [12935 /(homepod).+mac os/i12936 ],12937 [12938 MODEL,12939 [12940 VENDOR,12941 APPLE12942 ],12943 [12944 TYPE,12945 EMBEDDED12946 ]12947 ],12948 [12949 /windows iot/i12950 ],12951 [12952 [12953 TYPE,12954 EMBEDDED12955 12967 ] 12956 12968 ], … … 13593 13605 case UA_ENGINE: 13594 13606 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++){ 13596 13608 var brandName = brands[i].brand || brands[i], brandVersion = brands[i].version; 13597 13609 if (this.itemType == UA_BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) { … … 13687 13699 extensions = void 0; 13688 13700 } 13689 if (headers &&typeof headers.append === FUNC_TYPE) {13701 if (headers) if (typeof headers.append === FUNC_TYPE) { 13690 13702 var kv = {}; 13691 13703 headers.forEach(function(v, k) { 13692 kv[ k] = v;13704 kv[String(k).toLowerCase()] = v; 13693 13705 }); 13694 13706 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; 13695 13711 } 13696 13712 if (!(this instanceof UAParser)) return new UAParser(ua, extensions, headers).getResult(); … … 14202 14218 } 14203 14219 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);14206 14220 let createNanoEvents = ()=>({ 14207 14221 emit (event, ...args) { … … 14262 14276 } 14263 14277 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; 14264 14283 function isNotButton(element) { 14265 14284 return "BUTTON" !== element.tagName && "submit" !== element.getAttribute("type"); 14266 14285 } 14267 14286 const html_isNotButton = isNotButton; 14287 function showElement(element) { 14288 if (!element) return; 14289 element.style.removeProperty("display"); 14290 } 14291 const html_showElement = showElement; 14268 14292 const REGEX = /[ ,]+/u; 14269 14293 function trimEmail(email) { … … 14368 14392 } 14369 14393 hideAll() { 14370 for (const formElement of this.formElement.elements)h idden_default()(formElement, true);14371 if (!this.formElement.classList.contains(this.options.selectors.containerClass)) h idden_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); 14372 14396 } 14373 14397 isRegisteredFormField(formElement) { … … 14453 14477 hideSubmitButton() { 14454 14478 const submitButton = this.findSubmitButton(); 14455 h idden_default()(submitButton, true);14479 html_hideElement(submitButton); 14456 14480 } 14457 14481 unload() { … … 14512 14536 } 14513 14537 hide() { 14514 h idden_default()(this.formElement, true);14538 html_hideElement(this.formElement); 14515 14539 } 14516 14540 show() { 14517 h idden_default()(this.formElement, false);14541 html_showElement(this.formElement); 14518 14542 } 14519 14543 } … … 14927 14951 } 14928 14952 const html_disableElement = disableElement; 14929 function hideElement_hideElement(element) {14930 if (!element) return;14931 hidden_default()(element, true);14932 }14933 const hideElement = hideElement_hideElement;14934 14953 function adjustButton(buttonElement, show, type, disabled) { 14935 14954 if (disabled) html_disableElement(buttonElement); 14936 14955 if (type) buttonElement.type = type; 14937 if (!show) h ideElement(buttonElement);14956 if (!show) html_hideElement(buttonElement); 14938 14957 return buttonElement; 14939 14958 } … … 14947 14966 function isShown(element) { 14948 14967 if (!element) return false; 14949 return !hidden_default()(element); 14968 const display = element.style.getPropertyValue("display"); 14969 return !display.includes("none"); 14950 14970 } 14951 14971 const html_isShown = isShown; 14952 function showElement(element) {14953 if (!element) return;14954 hidden_default()(element, false);14955 }14956 const html_showElement = showElement;14957 14972 class Buttons extends util_Despot { 14958 14973 container; … … 15067 15082 if (!params?.paused) { 15068 15083 html_disableElement(this.previewButton); 15069 h ideElement(this.previewButton);15084 html_hideElement(this.previewButton); 15070 15085 } 15071 15086 if (!this.options.enableAutoValidation) html_enableElement(this.submitButton); 15072 15087 } 15073 15088 onGoingBack() { 15074 h ideElement(this.recordAgainButton);15089 html_hideElement(this.recordAgainButton); 15075 15090 html_showElement(this.recordButton); 15076 15091 html_showElement(this.submitButton); … … 15097 15112 } 15098 15113 onPreview() { 15099 h ideElement(this.recordButton);15100 h ideElement(this.previewButton);15114 html_hideElement(this.recordButton); 15115 html_hideElement(this.previewButton); 15101 15116 html_disableElement(this.audioOnRadioPair); 15102 15117 html_disableElement(this.audioOffRadioPair); … … 15110 15125 adjustButtonsForPause() { 15111 15126 if (!this.isCountingDown()) { 15112 if (this.pauseButton) h ideElement(this.pauseButton);15127 if (this.pauseButton) html_hideElement(this.pauseButton); 15113 15128 html_showElement(this.resumeButton); 15114 15129 html_enableElement(this.resumeButton); 15115 h ideElement(this.recordButton);15130 html_hideElement(this.recordButton); 15116 15131 html_showElement(this.previewButton); 15117 15132 html_enableElement(this.previewButton); … … 15119 15134 } 15120 15135 onFirstFrameSent() { 15121 h ideElement(this.recordButton);15122 h ideElement(this.recordAgainButton);15136 html_hideElement(this.recordButton); 15137 html_hideElement(this.recordAgainButton); 15123 15138 if (this.pauseButton) { 15124 15139 html_showElement(this.pauseButton); … … 15138 15153 } 15139 15154 onResuming() { 15140 h ideElement(this.resumeButton);15141 h ideElement(this.recordButton);15155 html_hideElement(this.resumeButton); 15156 html_hideElement(this.recordButton); 15142 15157 if (this.pauseButton) { 15143 15158 html_enableElement(this.pauseButton); … … 15148 15163 html_disableElement(this.previewButton); 15149 15164 html_disableElement(this.recordButton); 15150 h ideElement(this.pauseButton);15151 h ideElement(this.resumeButton);15165 html_hideElement(this.pauseButton); 15166 html_hideElement(this.resumeButton); 15152 15167 } 15153 15168 onCountdown() { … … 15174 15189 } 15175 15190 onHidden() { 15176 h ideElement(this.recordButton);15177 h ideElement(this.previewButton);15178 h ideElement(this.recordAgainButton);15179 h ideElement(this.resumeButton);15180 h ideElement(this.audioOnRadioPair);15181 h ideElement(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); 15182 15197 } 15183 15198 onEnablingAudio() { … … 15317 15332 this.container.appendChild(this.buttonsElement); 15318 15333 } 15319 h ideElement(this.buttonsElement);15334 html_hideElement(this.buttonsElement); 15320 15335 this.buildButtons(); 15321 15336 if (!this.built) this.initEvents(); … … 15332 15347 } 15333 15348 hide(deep = false) { 15334 h ideElement(this.buttonsElement);15349 html_hideElement(this.buttonsElement); 15335 15350 if (deep) { 15336 h ideElement(this.recordButton);15337 h ideElement(this.pauseButton);15338 h ideElement(this.resumeButton);15339 h ideElement(this.previewButton);15340 h ideElement(this.recordAgainButton);15341 h ideElement(this.submitButton);15342 h ideElement(this.audioOnRadioPair);15343 h ideElement(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); 15344 15359 } 15345 15360 } … … 15352 15367 } 15353 15368 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; 15354 15375 class Countdown { 15355 15376 visuals; … … 15405 15426 } 15406 15427 show() { 15407 h idden_default()(this.countdownElement, false);15428 html_showElement(this.countdownElement); 15408 15429 } 15409 15430 isCountingDown() { … … 15416 15437 } 15417 15438 hide() { 15418 h idden_default()(this.countdownElement, true);15439 html_hideElement(this.countdownElement); 15419 15440 this.unload(); 15420 15441 } … … 15456 15477 } 15457 15478 hide() { 15458 h idden_default()(this.facingModeElement, true);15479 html_hideElement(this.facingModeElement); 15459 15480 } 15460 15481 show() { 15461 h idden_default()(this.facingModeElement, false);15482 html_showElement(this.facingModeElement); 15462 15483 } 15463 15484 } … … 15504 15525 } 15505 15526 hide() { 15506 h idden_default()(this.pausedBlockElement, true);15527 html_hideElement(this.pausedBlockElement); 15507 15528 } 15508 15529 show() { 15509 h idden_default()(this.pausedBlockElement, false);15530 html_showElement(this.pausedBlockElement); 15510 15531 } 15511 15532 } … … 15539 15560 } 15540 15561 hide() { 15541 h idden_default()(this.recordNoteElement, true);15562 html_hideElement(this.recordNoteElement); 15542 15563 } 15543 15564 show() { 15544 h idden_default()(this.recordNoteElement, false);15565 html_showElement(this.recordNoteElement); 15545 15566 } 15546 15567 } … … 15616 15637 } 15617 15638 hide() { 15618 h idden_default()(this.recordTimerElement, true);15639 html_hideElement(this.recordTimerElement); 15619 15640 } 15620 15641 show() { 15621 15642 this.recordTimerElement?.classList.remove("near"); 15622 15643 this.recordTimerElement?.classList.remove("nigh"); 15623 h idden_default()(this.recordTimerElement, false);15644 html_showElement(this.recordTimerElement); 15624 15645 } 15625 15646 getSecondsRecorded() { … … 15861 15882 } 15862 15883 show() { 15863 if (this.notifyElement) hidden_default()(this.notifyElement, false);15884 html_showElement(this.notifyElement); 15864 15885 } 15865 15886 runEntertainment() { … … 15909 15930 } else this.options.logger.warn("There is no message element for displaying a message"); 15910 15931 else this.options.logger.warn("Not going to update notifierMessage element because message is empty"); 15911 h idden_default()(this.messageElement, false);15932 html_showElement(this.messageElement); 15912 15933 } 15913 15934 setExplanation(explanation) { … … 15920 15941 } 15921 15942 this.explanationElement.innerHTML = explanation; 15922 h idden_default()(this.explanationElement, false);15943 html_showElement(this.explanationElement); 15923 15944 } 15924 15945 build() { … … 15935 15956 } 15936 15957 hideMessage() { 15937 if (this.getMessageElement()) hidden_default()(this.messageElement, true);15958 html_hideElement(this.getMessageElement()); 15938 15959 } 15939 15960 hideExplanation() { 15940 if (this.explanationElement) hidden_default()(this.explanationElement, true);15961 html_hideElement(this.explanationElement); 15941 15962 } 15942 15963 hide() { 15943 15964 this.cancelEntertainment(); 15944 15965 if (this.notifyElement) { 15945 h idden_default()(this.notifyElement, true);15966 html_hideElement(this.notifyElement); 15946 15967 this.notifyElement.classList.remove("blocking"); 15947 15968 } … … 15951 15972 isVisible() { 15952 15973 if (!this.built) return false; 15953 return this.notifyElement && ! hidden_default()(this.notifyElement);15974 return this.notifyElement && !isHidden(this.notifyElement); 15954 15975 } 15955 15976 isBuilt() { … … 16626 16647 } 16627 16648 show() { 16628 if (this.recorderElement) hidden_default()(this.recorderElement, false);16649 html_showElement(this.recorderElement); 16629 16650 } 16630 16651 onUserMediaReady(params) { … … 17010 17031 } 17011 17032 isHidden() { 17012 return !this.recorderElement || hidden_default()(this.recorderElement);17033 return !this.recorderElement || isHidden(this.recorderElement); 17013 17034 } 17014 17035 writeCommand(command, args, cb) { … … 17400 17421 hide() { 17401 17422 if (!this.isHidden()) { 17402 if (this.recorderElement) h idden_default()(this.recorderElement, true);17423 if (this.recorderElement) html_hideElement(this.recorderElement); 17403 17424 this.clearUserMediaTimeout(); 17404 17425 this.clearRetryTimeout(); … … 17544 17565 if (hasMedia) this.correctDimensions(true, videomailWidth ?? this.replayElement.videoWidth, videomailHeight ?? this.replayElement.videoHeight); 17545 17566 if (playerOnly) { 17546 if (hasMedia) h idden_default()(this.replayElement, false);17547 } else h idden_default()(this.replayElement, false);17548 if (playerOnly) h idden_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); 17549 17570 else this.visuals.show(); 17550 17571 if (hasAudio) this.replayElement.setAttribute("volume", "1"); … … 17693 17714 } 17694 17715 hide() { 17695 if (this.isStandalone()) hidden_default()(this.visuals, true);17716 if (this.isStandalone()) this.visuals.hide(); 17696 17717 else if (this.replayElement) { 17697 h idden_default()(this.replayElement, true);17698 h idden_default()(this.replayElement.parentNode, true);17718 html_hideElement(this.replayElement); 17719 html_hideElement(this.replayElement.parentElement); 17699 17720 } 17700 17721 } 17701 17722 isShown() { 17702 17723 if (!this.replayElement) return false; 17703 return ! hidden_default()(this.replayElement) && !this.visuals.isHidden();17724 return !isHidden(this.replayElement) && !this.visuals.isHidden(); 17704 17725 } 17705 17726 getVisuals() { … … 17904 17925 hide() { 17905 17926 if (this.visualsElement) { 17906 h idden_default()(this.visualsElement, true);17927 html_hideElement(this.visualsElement); 17907 17928 this.emit("HIDE"); 17908 17929 } … … 17910 17931 isHidden() { 17911 17932 if (!this.built) return true; 17912 if (this.visualsElement) return hidden_default()(this.visualsElement);17933 return isHidden(this.visualsElement); 17913 17934 } 17914 17935 showVisuals() { 17915 h idden_default()(this.visualsElement, false);17936 html_showElement(this.visualsElement); 17916 17937 } 17917 17938 show(params) { … … 18141 18162 } 18142 18163 hideMySelf() { 18143 h idden_default()(this.containerElement, true);18164 html_hideElement(this.containerElement); 18144 18165 } 18145 18166 async submitVideomail(formInputs, method) { … … 18214 18235 options: this.options 18215 18236 }); 18216 h idden_default()(this.containerElement, false);18237 html_showElement(this.containerElement); 18217 18238 this.visuals.show(params); 18218 18239 if (!this.hasError) { -
videomail-for-ninja-forms/trunk/target/php/fields/videomail.php
r3354424 r3366104 173 173 'nf-videomail-main', 174 174 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. 175 177 array('nf-front-end', 'nf-videomail-client'), 176 178 NF_Videomail::VERSION -
videomail-for-ninja-forms/trunk/target/php/videomail.php
r3354424 r3366104 3 3 4 4 const NAME = 'Videomail'; 5 const VERSION = '8. 0.3';5 const VERSION = '8.1.0'; 6 6 const AUTHOR = 'Michael Heuberger + Kyle B. Johnson'; 7 7 const SLUG = 'videomail'; … … 58 58 public function __construct() { 59 59 add_action('admin_init', array($this, 'setup_license')); 60 add_action('plugins_loaded', array($this, 'plugin_update_check')); 60 61 add_action('ninja_forms_loaded', array($this, 'ninja_forms_loaded')); 61 62 add_filter('ninja_forms_register_fields', array($this, 'register_fields')); … … 114 115 ); 115 116 } 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 } 116 129 } -
videomail-for-ninja-forms/trunk/videomail-for-ninja-forms.php
r3354424 r3366104 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: 8. 0.36 Version: 8.1.0 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.