Plugin Directory

Changeset 3379887


Ignore:
Timestamp:
10/17/2025 06:25:01 AM (6 months ago)
Author:
michael.heuberger
Message:

Update to version 8.3.1 from GitHub

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

Legend:

Unmodified
Added
Removed
  • videomail-for-ninja-forms/tags/8.3.1/.vscode/settings.json

    r3374730 r3379887  
    33  "files.trimTrailingWhitespace": true,
    44  "editor.defaultFormatter": "esbenp.prettier-vscode",
    5   "prettier.configPath": "./prettier.config.cjs",
    6   "cSpell.words": [
    7     "ABSPATH",
    8     "apachectl",
    9     "autoloader",
    10     "binarykitchen",
    11     "bytediff",
    12     "corejs",
    13     "cssnano",
    14     "gulpfile",
    15     "kbjohnson",
    16     "litespeed",
    17     "Metaboxes",
    18     "softprops",
    19     "styl",
    20     "Videomail"
    21   ]
     5  "prettier.configPath": "./prettier.config.cjs"
    226}
  • videomail-for-ninja-forms/tags/8.3.1/readme.txt

    r3374730 r3379887  
    66Requires at least: 6.0
    77Tested up to: 6.8.2
    8 Stable tag: 8.2.0
     8Stable tag: 8.3.1
    99Requires PHP: 8.1.0
    1010Donate link: https://videomail.io/faq
     
    7171
    7272== Changelog ==
     73= 8.3.1 (17 Oct 2025) =
     74**Fix**
     75* Adds one missing comma :)
     76
     77= 8.3.0 (17 Oct 2025) =
     78**Improvement**
     79* Adds new advanced option "disableFormWhenSubmitting" to increase security during form submissions
     80
     81**Change:**
     82* Defaults that new option "disableFormWhenSubmitting" to false, because plugins overlap with each other.
     83
     84**Chore**
     85* Upgrade VC dependency
     86
    7387= 8.2.0 (8 Oct 2025) =
    7488**Fix**
  • videomail-for-ninja-forms/tags/8.3.1/target/js/main-min.js

    r3374730 r3379887  
    1 let PLUGIN_VERSION="8.2.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguMi4wXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIC8vIHVnbHkgbmFtZSBlaD9cbiAgICAgICAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nOlxuICAgICAgICAgIHRoaXMuYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIuYmluZCh0aGlzKSxcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gdmFsaWRhdGUgdGhlIGlucHV0c1xuICAgICAgZW5hYmxlQXV0b1ZhbGlkYXRpb246IGZhbHNlLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIGRlYWwgd2l0aCBmb3JtIHN1Ym1pc3Npb25zXG4gICAgICBlbmFibGVBdXRvU3VibWlzc2lvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxvZyBhY3Rpb25zL2V2ZW50cyB0byBjb25zb2xlXG4gICAgICB2ZXJib3NlLFxuXG4gICAgICB2ZXJzaW9uczogeyBuaW5qYUZvcm1QbHVnaW46IFBMVUdJTl9WRVJTSU9OIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3Qi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
     1let PLUGIN_VERSION="8.3.1",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"),disableFormWhenSubmitting:this.fieldModel.get("disable_form_when_submitting"),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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguMy4xXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIGFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZzpcbiAgICAgICAgICB0aGlzLmFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyLmJpbmQodGhpcyksXG4gICAgICB9LFxuXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIGRpc2FibGVGb3JtV2hlblN1Ym1pdHRpbmc6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJkaXNhYmxlX2Zvcm1fd2hlbl9zdWJtaXR0aW5nXCIpLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIHZhbGlkYXRlIHRoZSBpbnB1dHNcbiAgICAgIGVuYWJsZUF1dG9WYWxpZGF0aW9uOiBmYWxzZSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byBkZWFsIHdpdGggZm9ybSBzdWJtaXNzaW9uc1xuICAgICAgZW5hYmxlQXV0b1N1Ym1pc3Npb246IGZhbHNlLFxuXG4gICAgICAvLyBsb2cgYWN0aW9ucy9ldmVudHMgdG8gY29uc29sZVxuICAgICAgdmVyYm9zZSxcblxuICAgICAgdmVyc2lvbnM6IHsgbmluamFGb3JtUGx1Z2luOiBQTFVHSU5fVkVSU0lPTiB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJQUkVWSUVXXCIsIHRoaXMub25QcmV2aWV3LmJpbmQodGhpcykpO1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFwiU1VCTUlUVEVEXCIsIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJHT0lOR19CQUNLXCIsIHRoaXMub25Hb2luZ0JhY2suYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KCk7XG4gIH0sXG5cbiAgLy8gbmVlZGVkIHRvIGdldCB0aGUgdmlkZW9tYWlsIGtleSB3aGljaCBpcyByZXF1aXJlZCBiZWZvcmVcbiAgLy8gc3VibWl0dGluZyB0byB0aGUgdmlkZW9tYWlsIHNlcnZlclxuICBvblByZXZpZXc6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBrZXkpO1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2YWx1ZVwiLCBrZXkpO1xuXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KFwicmVtb3ZlOmVycm9yXCIsIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSwgXCJyZXF1aXJlZC1lcnJvclwiKTtcbiAgfSxcblxuICBvblN1Ym1pdHRlZDogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgIGxldCBmb3JtTW9kZWwgPSBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiYXBwXCIpLnJlcXVlc3QoXCJnZXQ6Zm9ybVwiLCB0aGlzLmdldEZvcm1JZCgpKTtcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsO1xuICAgIH1cblxuICAgIC8vIFRPRE8gSXNuJ3QgJ2Zvcm0tJyArIGZvcm1Nb2RlbC5nZXQoJ2lkJykgdGhlIHNhbWUgYXMgdGhlIGZvcm1JRCBhbHJlYWR5P1xuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgZm9ybU1vZGVsLmdldChcImlkXCIpKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXh0cmFcIixcbiAgICAgIFwidmlkZW9tYWlsXCIsXG4gICAgICByZXN1bHQudmlkZW9tYWlsLFxuICAgICk7XG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyB0aGlzLmdldEZvcm1JZCgpKS5yZXF1ZXN0KFwic3VibWl0XCIsIGZvcm1Nb2RlbCk7XG4gIH0sXG5cbiAgb25Hb2luZ0JhY2s6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBudWxsKTtcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbCk7XG5cbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWQ7XG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3Igc28gdGhhdCB3ZSBjYW4gc2V0IG91ciBvd24gZXJyb3IgdGV4dCBoZXJlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXJyb3JcIixcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSxcbiAgICAgIFwicmVxdWlyZWQtZXJyb3JcIixcbiAgICAgIFwiUmVjb3JkIGFuZCBjbGljayBvbiBzdG9wIHRvIHNlZSBhIHByZXZpZXcgdmlkZW8uXCIsXG4gICAgKTtcbiAgfSxcblxuICB2YWxpZGF0ZVZpZGVvbWFpbDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICBmaWVsZE1vZGVsID0gZmllbGRNb2RlbCB8fCB0aGlzLmZpZWxkTW9kZWw7XG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KFwidmlkZW9tYWlsLWtleVwiKSB8fCBmYWxzZTtcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldChcImVycm9yc1wiKS5sZW5ndGggPiAwO1xuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZTtcbiAgICBjb25zdCB2aWRlb21haWxTdWJtaXR0ZWQgPSBmb3JtTW9kZWwuZ2V0RXh0cmEoXCJ2aWRlb21haWxcIik7XG4gICAgY29uc3QgdmlkZW9tYWlsUmVjb3JkZWQgPSB0aGlzLnZhbGlkYXRlVmlkZW9tYWlsKCk7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLmhhc0Vycm9ycyhmb3JtTW9kZWwpO1xuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KCk7XG4gICAgICBtYXliZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZTtcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KTtcblxuICAgIC8vIGl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgdXNlciBoYXMgY29uZmlndXJlZCBzb21ldGhpbmcgd3JvbmcsXG4gICAgLy8gaS5FLiBhbiBlbXB0eSBlbWFpbF9mcm9tLiBpbiB0aGF0IGNhc2UganVzdCBpZ25vcmUgLi4uXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICAvLyBhZG1pbiBlbWFpbCBsb2NhbGl6ZWQgZnJvbSBiYWNrZW5kLCBhIGJpdCB1Z2x5XG4gICAgICAvLyB0b2RvIGFzayBmb3IgYW4gZW5kcG9pbnQgdG8gcHJvY2VzcyB0aG9zZSBzcGVjaWFsIG1lcmdlIHRhZ3NcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaW5hcnlraXRjaGVuL3ZpZGVvbWFpbC1mb3ItbmluamEtZm9ybXMvaXNzdWVzLzMwXG4gICAgICBpZiAodmFsdWUgPT09IFwie3dwOmFkbWluX2VtYWlsfVwiKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXlNYXRjaGVzID0gdmFsdWUubWF0Y2goL3tmaWVsZDooLiopfS9pKTtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXkgPSByYXdGaWVsZEtleU1hdGNoZXMgJiYgcmF3RmllbGRLZXlNYXRjaGVzWzFdO1xuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9LFxuXG4gIC8vIHJldHVybnMgYSBtYXAgbGlrZSB0aGlzOlxuICAvLyB7XG4gIC8vICAgZnJvbV9lbWFpbDogXCJtaWNLQGRlYWZvbnouZWhcIlxuICAvLyAgIGZyb21fbmFtZTogXCJNSFwiXG4gIC8vICAgbWVzc2FnZTogXCJzZGZzZGZzZGZcIlxuICAvLyAgIHN1YmplY3Q6IFwic2Rmc2RmXCJcbiAgLy8gICBzdWJtaXQ6IFwiXCJcbiAgLy8gICB2aWRlb19tZXNzYWdlOiBcIjExZWItNjFkNy1kZDU4MzMyMC1hZTYxLTJiODJiZTZjNmUzZVwiXG4gIC8vIH1cbiAgZ2V0Rm9ybVZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIGxldCBjb2xsZWN0aW9uO1xuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKGZvcm1Nb2RlbCkge1xuICAgICAgY29sbGVjdGlvbiA9IGZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIik7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHMpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIikubW9kZWxzO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBjb2xsZWN0aW9uLnJlZHVjZShmdW5jdGlvbiAobWVtbywgZmllbGQpIHtcbiAgICAgIG1lbW9bZmllbGQuZ2V0KFwia2V5XCIpXSA9IGZpZWxkLmdldChcInZhbHVlXCIpO1xuICAgICAgcmV0dXJuIG1lbW87XG4gICAgfSwge30pO1xuXG4gICAgcmV0dXJuIGZvcm1WYWx1ZXM7XG4gIH0sXG5cbiAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXI6IGZ1bmN0aW9uICh2aWRlb21haWwpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKCk7XG5cbiAgICB2aWRlb21haWwuZnJvbSA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX2Zyb21cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnRvID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfdG9cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnN1YmplY3QgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9zdWJqZWN0XCIsIGZvcm1WYWx1ZXMpO1xuICAgIHZpZGVvbWFpbC5ib2R5ID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfYm9keVwiLCBmb3JtVmFsdWVzKTtcblxuICAgIHJldHVybiB2aWRlb21haWw7XG4gIH0sXG5cbiAgb25CZWZvcmVEZXN0cm95OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50O1xuICB9LFxufSk7XG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpO1xufSk7XG4iXSwibmFtZXMiOlsiUExVR0lOX1ZFUlNJT04iLCJERUJVRyIsIlZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciIsIk1hcmlvbmV0dGUiLCJPYmplY3QiLCJleHRlbmQiLCJ2aWRlb21haWxDbGllbnQiLCJmaWVsZE1vZGVsIiwiY2hhbm5lbCIsIkJhY2tib25lIiwiUmFkaW8iLCJpbml0aWFsaXplIiwidGhpcyIsImxpc3RlblRvT25jZSIsInJlZ2lzdGVyVmlkZW9tYWlsRmllbGQiLCJsb2FkVmlkZW9tYWlsQ2xpZW50IiwibGlzdGVuVG8iLCJldmVudE5hbWUiLCJjb25zb2xlIiwibG9nIiwibmZSYWRpbyIsInBhcmFtcyIsImN1cnJlbnRNb2RlbHMiLCJjdXJyZW50RWxlbWVudCIsImF0dHJpYnV0ZXMiLCJmb3JtQ29udGVudERhdGEiLCJtb2RlbHMiLCJjdXJyZW50Q2lkIiwiY2lkIiwiZmluZCIsIm1vZGVsIiwidW5sb2FkIiwiZ2V0Rm9ybUlkIiwiZ2V0IiwicmVwbHkiLCJ2YWxpZGF0ZVJlcXVpcmVkIiwidmFsaWRhdGVWaWRlb21haWwiLCJtYXliZVN1Ym1pdCIsImxldCIsImltYWdlUXVhbGl0eVBlcmNlbnRhZ2UiLCJ2ZXJib3NlIiwiVmlkZW9tYWlsQ2xpZW50Iiwic2l0ZU5hbWUiLCJ2aWRlbyIsImxpbWl0U2Vjb25kcyIsIndpZHRoIiwic3RyZXRjaCIsImNvdW50ZG93biIsImF1ZGlvIiwiZW5hYmxlZCIsImltYWdlIiwicXVhbGl0eSIsInNlbGVjdG9ycyIsImNvbnRhaW5lcklkIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJjYWxsYmFja3MiLCJhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmciLCJhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlciIsImJpbmQiLCJsb2FkVXNlck1lZGlhT25SZWNvcmQiLCJkaXNhYmxlRm9ybVdoZW5TdWJtaXR0aW5nIiwiZW5hYmxlQXV0b1ZhbGlkYXRpb24iLCJlbmFibGVBdXRvU3VibWlzc2lvbiIsInZlcnNpb25zIiwibmluamFGb3JtUGx1Z2luIiwib24iLCJvblByZXZpZXciLCJvblN1Ym1pdHRlZCIsIm9uR29pbmdCYWNrIiwic2hvdyIsImtleSIsInNldCIsInJlcXVlc3QiLCJyZXN1bHQiLCJmb3JtTW9kZWwiLCJjb2xsZWN0aW9uIiwib3B0aW9ucyIsInZpZGVvbWFpbCIsImludmFsaWRhdGUiLCJlbCIsInZhbGlkIiwiaGFzRXJyb3JzIiwibGVuZ3RoIiwibWF5YmUiLCJ2aWRlb21haWxTdWJtaXR0ZWQiLCJnZXRFeHRyYSIsInZpZGVvbWFpbFJlY29yZGVkIiwiZXJyb3IiLCJzdWJtaXQiLCJnZXRNZXJnZVRhZ1ZhbHVlIiwiZmllbGRLZXkiLCJmb3JtVmFsdWVzIiwidmFsdWUiLCJ3aW5kb3ciLCJuZlZpZGVvbWFpbCIsImFkbWluX2VtYWlsIiwicmF3RmllbGRLZXkiLCJyYXdGaWVsZEtleU1hdGNoZXMiLCJtYXRjaCIsInJlcGxhY2UiLCJnZXRGb3JtVmFsdWVzIiwicmVkdWNlIiwibWVtbyIsImZpZWxkIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFDQSxJQUFNQSxlQUFpQixRQUduQkMsTUFBUSxDQUFBLEVBS05DLHlCQUEyQkMsV0FBV0MsT0FBT0MsT0FBTyxDQUN4REMsZ0JBQWlCLEtBRWpCQyxXQUFZLEtBRVpDLFFBQVNDLFNBQVNDLE1BQU1GLFFBQVEsV0FBVyxFQUUzQ0csV0FBWSxXQUNWRixTQUFTQyxNQUFNVCxNQUFRQSxNQUV2QlcsS0FBS0MsYUFBYUQsS0FBS0osUUFBUyxhQUFjSSxLQUFLRSxzQkFBc0IsRUFDekVGLEtBQUtDLGFBQWFELEtBQUtKLFFBQVMsY0FBZUksS0FBS0csbUJBQW1CLEVBR3ZFSCxLQUFLSSxTQUFTSixLQUFLSixRQUFTLE1BQU8sU0FBVVMsR0FDM0NoQixPQUFTaUIsUUFBUUMsSUFBSSxxQ0FBc0NGLENBQVMsRUFJcEVMLEtBQUtJLFNBQVNJLFFBQVFaLFFBQVEsTUFBTSxFQUFHLGNBQWUsU0FBVWEsR0FDOURwQixPQUFTaUIsUUFBUUMsSUFBSSxnQ0FBaUMsYUFBYSxFQUU3REcsRUFDSkQsRUFBT0UsZ0JBQWdCQyxZQUFZQyxpQkFBaUJDLFFBQVUsR0FFaEUsSUFBTUMsRUFBYWYsS0FBS0wsV0FBV3FCLElBRWROLEVBQWNPLEtBQUssU0FBVUMsR0FDaEQsT0FBT0EsRUFBTUYsTUFBUUQsQ0FDdkIsQ0FBQyxFQUdDZixLQUFLRyxvQkFBb0IsRUFFekJILEtBQUtOLGdCQUFnQnlCLE9BQU8sQ0FFaEMsQ0FBQyxDQUNILENBQUMsQ0FDSCxFQUVBQyxVQUFXLFdBQ1QsT0FBT3BCLEtBQUtMLFdBQVcwQixJQUFJLFFBQVEsQ0FDckMsRUFFQW5CLHVCQUF3QixTQUFVUCxHQUNoQ0ssS0FBS0wsV0FBYUEsRUFJbEJLLEtBQUtK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
  • videomail-for-ninja-forms/tags/8.3.1/target/js/videomail-client/index-min.js

    r3374730 r3379887  
    66})(globalThis, ()=>(()=>{
    77        var __webpack_modules__ = {
    8             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl": function(module1, __webpack_exports__, __webpack_require__) {
     8            "./node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl": function(module1, __webpack_exports__, __webpack_require__) {
    99                "use strict";
    1010                __webpack_require__.d(__webpack_exports__, {
    1111                    A: ()=>__WEBPACK_DEFAULT_EXPORT__
    1212                });
    13                 var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js");
    14                 var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
    15                 var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/api.js");
    16                 var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__);
    17                 var ___CSS_LOADER_EXPORT___ = _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());
     13                var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js");
     14                var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
     15                var _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/api.js");
     16                var _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__);
     17                var ___CSS_LOADER_EXPORT___ = _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());
    1818                ___CSS_LOADER_EXPORT___.push([
    1919                    module1.id,
     
    43924392                module1.exports = Function.prototype.bind || implementation;
    43934393            },
     4394            "./node_modules/generator-function/index.js": function(module1) {
     4395                "use strict";
     4396                const cached = (function*() {}).constructor;
     4397                module1.exports = ()=>cached;
     4398            },
    43944399            "./node_modules/get-intrinsic/index.js": function(module1, __unused_webpack_exports, __webpack_require__) {
    43954400                "use strict";
     
    51995204                var toStr = callBound('Object.prototype.toString');
    52005205                var fnToStr = callBound('Function.prototype.toString');
    5201                 var getGeneratorFunc = function() {
    5202                     if (!hasToStringTag) return false;
    5203                     try {
    5204                         return Function('return function*() {}')();
    5205                     } catch (e) {}
    5206                 };
    5207                 var GeneratorFunction;
     5206                var getGeneratorFunction = __webpack_require__("./node_modules/generator-function/index.js");
    52085207                module1.exports = function(fn) {
    52095208                    if ('function' != typeof fn) return false;
     
    52145213                    }
    52155214                    if (!getProto) return false;
    5216                     if (void 0 === GeneratorFunction) {
    5217                         var generatorFunc = getGeneratorFunc();
    5218                         GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;
    5219                     }
    5220                     return getProto(fn) === GeneratorFunction;
     5215                    var GeneratorFunction = getGeneratorFunction();
     5216                    return GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;
    52215217                };
    52225218            },
     
    60116007                    plainObjects: false,
    60126008                    strictDepth: false,
    6013                     strictNullHandling: false
     6009                    strictNullHandling: false,
     6010                    throwOnLimitExceeded: false
    60146011                };
    60156012                var interpretNumericEntities = function(str) {
     
    60186015                    });
    60196016                };
    6020                 var parseArrayValue = function(val, options) {
     6017                var parseArrayValue = function(val, options, currentArrayLength) {
    60216018                    if (val && 'string' == typeof val && options.comma && val.indexOf(',') > -1) return val.split(',');
     6019                    if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (1 === options.arrayLimit ? '' : 's') + ' allowed in an array.');
    60226020                    return val;
    60236021                };
     
    60316029                    cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');
    60326030                    var limit = options.parameterLimit === 1 / 0 ? void 0 : options.parameterLimit;
    6033                     var parts = cleanStr.split(options.delimiter, limit);
     6031                    var parts = cleanStr.split(options.delimiter, options.throwOnLimitExceeded ? limit + 1 : limit);
     6032                    if (options.throwOnLimitExceeded && parts.length > limit) throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (1 === limit ? '' : 's') + ' allowed.');
    60346033                    var skipIndex = -1;
    60356034                    var i;
     
    60476046                        var bracketEqualsPos = part.indexOf(']=');
    60486047                        var pos = -1 === bracketEqualsPos ? part.indexOf('=') : bracketEqualsPos + 1;
    6049                         var key, val;
     6048                        var key;
     6049                        var val;
    60506050                        if (-1 === pos) {
    60516051                            key = options.decoder(part, defaults.decoder, charset, 'key');
     
    60536053                        } else {
    60546054                            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');
    6055                             val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function(encodedVal) {
     6055                            val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options, isArray(obj[key]) ? obj[key].length : 0), function(encodedVal) {
    60566056                                return options.decoder(encodedVal, defaults.decoder, charset, 'value');
    60576057                            });
    60586058                        }
    6059                         if (val && options.interpretNumericEntities && 'iso-8859-1' === charset) val = interpretNumericEntities(val);
     6059                        if (val && options.interpretNumericEntities && 'iso-8859-1' === charset) val = interpretNumericEntities(String(val));
    60606060                        if (part.indexOf('[]=') > -1) val = isArray(val) ? [
    60616061                            val
     
    60686068                };
    60696069                var parseObject = function(chain, val, options, valuesParsed) {
    6070                     var leaf = valuesParsed ? val : parseArrayValue(val, options);
     6070                    var currentArrayLength = 0;
     6071                    if (chain.length > 0 && '[]' === chain[chain.length - 1]) {
     6072                        var parentKey = chain.slice(0, -1).join('');
     6073                        currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;
     6074                    }
     6075                    var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);
    60716076                    for(var i = chain.length - 1; i >= 0; --i){
    60726077                        var obj;
    60736078                        var root = chain[i];
    6074                         if ('[]' === root && options.parseArrays) obj = options.allowEmptyArrays && ('' === leaf || options.strictNullHandling && null === leaf) ? [] : [].concat(leaf);
     6079                        if ('[]' === root && options.parseArrays) obj = options.allowEmptyArrays && ('' === leaf || options.strictNullHandling && null === leaf) ? [] : utils.combine([], leaf);
    60756080                        else {
    6076                             obj = options.plainObjects ? Object.create(null) : {};
     6081                            obj = options.plainObjects ? {
     6082                                __proto__: null
     6083                            } : {};
    60776084                            var cleanRoot = '[' === root.charAt(0) && ']' === root.charAt(root.length - 1) ? root.slice(1, -1) : root;
    60786085                            var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;
     
    61256132                    if (null !== opts.decoder && void 0 !== opts.decoder && 'function' != typeof opts.decoder) throw new TypeError('Decoder has to be a function.');
    61266133                    if (void 0 !== opts.charset && 'utf-8' !== opts.charset && 'iso-8859-1' !== opts.charset) throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
     6134                    if (void 0 !== opts.throwOnLimitExceeded && 'boolean' != typeof opts.throwOnLimitExceeded) throw new TypeError('`throwOnLimitExceeded` option must be a boolean');
    61276135                    var charset = void 0 === opts.charset ? defaults.charset : opts.charset;
    61286136                    var duplicates = void 0 === opts.duplicates ? defaults.duplicates : opts.duplicates;
     
    61496157                        plainObjects: 'boolean' == typeof opts.plainObjects ? opts.plainObjects : defaults.plainObjects,
    61506158                        strictDepth: 'boolean' == typeof opts.strictDepth ? !!opts.strictDepth : defaults.strictDepth,
    6151                         strictNullHandling: 'boolean' == typeof opts.strictNullHandling ? opts.strictNullHandling : defaults.strictNullHandling
     6159                        strictNullHandling: 'boolean' == typeof opts.strictNullHandling ? opts.strictNullHandling : defaults.strictNullHandling,
     6160                        throwOnLimitExceeded: 'boolean' == typeof opts.throwOnLimitExceeded ? opts.throwOnLimitExceeded : false
    61526161                    };
    61536162                };
    61546163                module1.exports = function(str, opts) {
    61556164                    var options = normalizeParseOptions(opts);
    6156                     if ('' === str || null == str) return options.plainObjects ? Object.create(null) : {};
     6165                    if ('' === str || null == str) return options.plainObjects ? {
     6166                        __proto__: null
     6167                    } : {};
    61576168                    var tempObj = 'string' == typeof str ? parseValues(str, options) : str;
    6158                     var obj = options.plainObjects ? Object.create(null) : {};
     6169                    var obj = options.plainObjects ? {
     6170                        __proto__: null
     6171                    } : {};
    61596172                    var keys = Object.keys(tempObj);
    61606173                    for(var i = 0; i < keys.length; ++i){
     
    62016214                    charset: 'utf-8',
    62026215                    charsetSentinel: false,
     6216                    commaRoundTrip: false,
    62036217                    delimiter: '&',
    62046218                    encode: true,
     
    62066220                    encoder: utils.encode,
    62076221                    encodeValuesOnly: false,
     6222                    filter: void 0,
    62086223                    format: defaultFormat,
    62096224                    formatter: formats.formatters[defaultFormat],
     
    62676282                        objKeys = sort ? keys.sort(sort) : keys;
    62686283                    }
    6269                     var encodedPrefix = encodeDotInKeys ? prefix.replace(/\./g, '%2E') : prefix;
     6284                    var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, '%2E') : String(prefix);
    62706285                    var adjustedPrefix = commaRoundTrip && isArray(obj) && 1 === obj.length ? encodedPrefix + '[]' : encodedPrefix;
    62716286                    if (allowEmptyArrays && isArray(obj) && 0 === obj.length) return adjustedPrefix + '[]';
    62726287                    for(var j = 0; j < objKeys.length; ++j){
    62736288                        var key = objKeys[j];
    6274                         var value = 'object' == typeof key && void 0 !== key.value ? key.value : obj[key];
     6289                        var value = 'object' == typeof key && key && void 0 !== key.value ? key.value : obj[key];
    62756290                        if (!skipNulls || null !== value) {
    6276                             var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\./g, '%2E') : key;
     6291                            var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, '%2E') : String(key);
    62776292                            var keyPrefix = isArray(obj) ? 'function' == typeof generateArrayPrefix ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');
    62786293                            sideChannel.set(object, step);
     
    63106325                        charset: charset,
    63116326                        charsetSentinel: 'boolean' == typeof opts.charsetSentinel ? opts.charsetSentinel : defaults.charsetSentinel,
    6312                         commaRoundTrip: opts.commaRoundTrip,
     6327                        commaRoundTrip: !!opts.commaRoundTrip,
    63136328                        delimiter: void 0 === opts.delimiter ? defaults.delimiter : opts.delimiter,
    63146329                        encode: 'boolean' == typeof opts.encode ? opts.encode : defaults.encode,
     
    63466361                    for(var i = 0; i < objKeys.length; ++i){
    63476362                        var key = objKeys[i];
    6348                         if (!options.skipNulls || null !== obj[key]) pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));
     6363                        var value = obj[key];
     6364                        if (!options.skipNulls || null !== value) pushToArray(keys, stringify(value, key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));
    63496365                    }
    63506366                    var joined = keys.join(options.delimiter);
     
    63776393                };
    63786394                var arrayToObject = function(source, options) {
    6379                     var obj = options && options.plainObjects ? Object.create(null) : {};
     6395                    var obj = options && options.plainObjects ? {
     6396                        __proto__: null
     6397                    } : {};
    63806398                    for(var i = 0; i < source.length; ++i)if (void 0 !== source[i]) obj[i] = source[i];
    63816399                    return obj;
     
    63836401                var merge = function merge(target, source, options) {
    63846402                    if (!source) return target;
    6385                     if ('object' != typeof source) {
     6403                    if ('object' != typeof source && 'function' != typeof source) {
    63866404                        if (isArray(target)) target.push(source);
    63876405                        else if (!target || 'object' != typeof target) return [
     
    64206438                    }, target);
    64216439                };
    6422                 var decode = function(str, decoder, charset) {
     6440                var decode = function(str, defaultDecoder, charset) {
    64236441                    var strWithoutPlus = str.replace(/\+/g, ' ');
    64246442                    if ('iso-8859-1' === charset) return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
     
    1018810206            "?9936": function() {},
    1018910207            "?5f55": function() {},
    10190             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/api.js": function(module1) {
     10208            "./node_modules/@rsbuild/core/compiled/css-loader/api.js": function(module1) {
    1019110209                "use strict";
    1019210210                module1.exports = function(cssWithMappingToString) {
     
    1024210260                };
    1024310261            },
    10244             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js": function(module1) {
     10262            "./node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js": function(module1) {
    1024510263                "use strict";
    1024610264                module1.exports = function(i) {
     
    1024810266                };
    1024910267            },
    10250             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js": function(module1) {
     10268            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js": function(module1) {
    1025110269                "use strict";
    1025210270                var stylesInDOM = [];
     
    1032710345                };
    1032810346            },
    10329             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js": function(module1) {
     10347            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js": function(module1) {
    1033010348                "use strict";
    1033110349                var memo = {};
     
    1034910367                module1.exports = insertBySelector;
    1035010368            },
    10351             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js": function(module1) {
     10369            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js": function(module1) {
    1035210370                "use strict";
    1035310371                function insertStyleElement(options) {
     
    1035910377                module1.exports = insertStyleElement;
    1036010378            },
    10361             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js": function(module1, __unused_webpack_exports, __webpack_require__) {
     10379            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js": function(module1, __unused_webpack_exports, __webpack_require__) {
    1036210380                "use strict";
    1036310381                function setAttributesWithoutAttributes(styleElement) {
     
    1036710385                module1.exports = setAttributesWithoutAttributes;
    1036810386            },
    10369             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js": function(module1) {
     10387            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js": function(module1) {
    1037010388                "use strict";
    1037110389                function apply(styleElement, options, obj) {
     
    1040410422                module1.exports = domAPI;
    1040510423            },
    10406             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js": function(module1) {
     10424            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js": function(module1) {
    1040710425                "use strict";
    1040810426                function styleTagTransform(css, styleElement) {
     
    1064910667            var client_default = /*#__PURE__*/ __webpack_require__.n(client);
    1065010668            var package_namespaceObject = {
    10651                 rE: "11.4.9"
     10669                rE: "11.5.2"
    1065210670            };
    1065310671            var defined = __webpack_require__("./node_modules/defined/index.js");
    1065410672            var defined_default = /*#__PURE__*/ __webpack_require__.n(defined);
    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 = [
     10673            var LIBVERSION = '2.0.6', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', TYPEOF = {
     10674                FUNCTION: 'function',
     10675                OBJECT: 'object',
     10676                STRING: 'string',
     10677                UNDEFINED: 'undefined'
     10678            }, BROWSER = 'browser', CPU = 'cpu', DEVICE = 'device', ENGINE = 'engine', OS = 'os', 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 = 'sec-ch-ua', CH_FULL_VER_LIST = CH + '-full-version-list', CH_ARCH = CH + '-arch', CH_BITNESS = CH + '-' + BITNESS, CH_FORM_FACTORS = CH + '-form-factors', CH_MOBILE = CH + '-' + MOBILE, CH_MODEL = CH + '-' + MODEL, CH_PLATFORM = CH + '-' + PLATFORM, CH_PLATFORM_VER = CH_PLATFORM + '-version', CH_ALL_VALUES = [
    1065610679                BRANDS,
    1065710680                FULLVERLIST,
     
    1066410687                BITNESS
    1066510688            ], AMAZON = 'Amazon', APPLE = 'Apple', ASUS = 'ASUS', BLACKBERRY = 'BlackBerry', GOOGLE = 'Google', HUAWEI = 'Huawei', LENOVO = 'Lenovo', HONOR = 'Honor', LG = 'LG', MICROSOFT = 'Microsoft', MOTOROLA = 'Motorola', NVIDIA = 'Nvidia', ONEPLUS = 'OnePlus', OPPO = 'OPPO', SAMSUNG = 'Samsung', SHARP = 'Sharp', SONY = 'Sony', XIAOMI = 'Xiaomi', ZEBRA = 'Zebra', CHROME = 'Chrome', CHROMIUM = 'Chromium', CHROMECAST = 'Chromecast', EDGE = 'Edge', FIREFOX = 'Firefox', OPERA = 'Opera', FACEBOOK = 'Facebook', SOGOU = 'Sogou', PREFIX_MOBILE = 'Mobile ', SUFFIX_BROWSER = ' Browser', WINDOWS = 'Windows';
    10666             var isWindow = typeof window !== UNDEF_TYPE, NAVIGATOR = isWindow && window.navigator ? window.navigator : void 0, NAVIGATOR_UADATA = NAVIGATOR && NAVIGATOR.userAgentData ? NAVIGATOR.userAgentData : void 0;
     10689            var isWindow = typeof window !== TYPEOF.UNDEFINED, NAVIGATOR = isWindow && window.navigator ? window.navigator : void 0, NAVIGATOR_UADATA = NAVIGATOR && NAVIGATOR.userAgentData ? NAVIGATOR.userAgentData : void 0;
    1066710690            var extend = function(defaultRgx, extensions) {
    1066810691                var mergedRgx = {};
     
    1067910702                return enums;
    1068010703            }, has = function(str1, str2) {
    10681                 if (typeof str1 === OBJ_TYPE && str1.length > 0) {
     10704                if (typeof str1 === TYPEOF.OBJECT && str1.length > 0) {
    1068210705                    for(var i in str1)if (lowerize(str2) == lowerize(str1[i])) return true;
    1068310706                    return false;
     
    1068710710                for(var prop in obj)return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);
    1068810711            }, isString = function(val) {
    10689                 return typeof val === STR_TYPE;
     10712                return typeof val === TYPEOF.STRING;
    1069010713            }, itemListToArray = function(header) {
    1069110714                if (!header) return;
     
    1070710730                for(var i in arr)if (arr.hasOwnProperty(i)) {
    1070810731                    var propName = arr[i];
    10709                     if (typeof propName == OBJ_TYPE && 2 == propName.length) this[propName[0]] = propName[1];
     10732                    if (typeof propName == TYPEOF.OBJECT && 2 == propName.length) this[propName[0]] = propName[1];
    1071010733                    else this[propName] = void 0;
    1071110734                }
     
    1071610739                return strip(/\\?\"/g, str);
    1071710740            }, ua_parser_trim = function(str, len) {
    10718                 if (isString(str)) {
    10719                     str = strip(/^\s\s*/, str);
    10720                     return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
    10721                 }
     10741                str = strip(/^\s\s*/, String(str));
     10742                return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);
    1072210743            };
    1072310744            var rgxMapper = function(ua, arrays) {
     
    1073310754                            match = matches[++k];
    1073410755                            q = props[p];
    10735                             if (typeof q === OBJ_TYPE && q.length > 0) {
    10736                                 if (2 === q.length) if (typeof q[1] == FUNC_TYPE) this[q[0]] = q[1].call(this, match);
     10756                            if (typeof q === TYPEOF.OBJECT && q.length > 0) {
     10757                                if (2 === q.length) if (typeof q[1] == TYPEOF.FUNCTION) this[q[0]] = q[1].call(this, match);
    1073710758                                else this[q[0]] = q[1];
    10738                                 else if (q.length >= 3) if (typeof q[1] !== FUNC_TYPE || q[1].exec && q[1].test) {
     10759                                else if (q.length >= 3) if (typeof q[1] !== TYPEOF.FUNCTION || q[1].exec && q[1].test) {
    1073910760                                    if (3 == q.length) this[q[0]] = match ? match.replace(q[1], q[2]) : void 0;
    1074010761                                    else if (4 == q.length) this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : void 0;
     
    1075010771                }
    1075110772            }, strMapper = function(str, map) {
    10752                 for(var i in map)if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {
     10773                for(var i in map)if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {
    1075310774                    for(var j = 0; j < map[i].length; j++)if (has(map[i][j], str)) return i === UNKNOWN ? void 0 : i;
    1075410775                } else if (has(map[i], str)) return i === UNKNOWN ? void 0 : i;
     
    1090110922                        /(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,
    1090210923                        /(?:ms|\()(ie) ([\w\.]+)/i,
    10903                         /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser)\/([-\w\.]+)/i,
    10904                         /(heytap|ovi|115|surf)browser\/([\d\.]+)/i,
     10924                        /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,
     10925                        /(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,
     10926                        /(qwant)(?:ios|mobile)\/([\d\.]+)/i,
    1090510927                        /(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i
    1090610928                    ],
     
    1117911201                        /(alipay)client\/([\w\.]+)/i,
    1118011202                        /(twitter)(?:and| f.+e\/([\w\.]+))/i,
     11203                        /(bing)(?:web|sapphire)\/([\w\.]+)/i,
    1118111204                        /(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i
    1118211205                    ],
     
    1139011413                        /(swiftfox)/i,
    1139111414                        /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
    11392                         /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
     11415                        /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,
    1139311416                        /(firefox)\/([\w\.]+)/i,
    11394                         /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
     11417                        /(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,
    1139511418                        /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
    1139611419                        /\b(links) \(([\w\.]+)/i
     
    1148611509                    ],
    1148711510                    [
     11511                        /mc680.0/i
     11512                    ],
     11513                    [
     11514                        [
     11515                            ARCHITECTURE,
     11516                            '68k'
     11517                        ]
     11518                    ],
     11519                    [
    1148811520                        /winnt.+\[axp/i
    1148911521                    ],
     
    1152711559                    ],
    1152811560                    [
    11529                         /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
     11561                        /(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i
    1153011562                    ],
    1153111563                    [
     
    1154111573                    ],
    1154211574                    [
    11543                         /\((ipad);[-\w\),; ]+apple/i,
    11544                         /applecoremedia\/[\w\.]+ \((ipad)/i,
    11545                         /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
     11575                        /\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,
     11576                        /\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i
    1154611577                    ],
    1154711578                    [
     
    1162311654                    ],
    1162411655                    [
    11625                         /(?:huawei)([-\w ]+)[;\)]/i,
    11626                         /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
     11656                        /(?:huawei) ?([-\w ]+)[;\)]/i,
     11657                        /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i
    1162711658                    ],
    1162811659                    [
     
    1163911670                    [
    1164011671                        /oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
    11641                         /\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
     11672                        /\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
    1164211673                    ],
    1164311674                    [
     
    1166211693                        /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
    1166311694                        /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
    11664                         /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,
     11695                        /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
    1166511696                        / ([\w ]+) miui\/v?\d/i
    1166611697                    ],
     
    1188011911                    [
    1188111912                        /(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
    11882                         /nokia[-_ ]?(([-\w\. ]*))/i
     11913                        /nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i
    1188311914                    ],
    1188411915                    [
     
    1201112042                    [
    1201212043                        /\b((?:bb[a-f]|st[hv])100-\d)/i,
    12013                         /\(bb10; (\w+)/i
     12044                        /(?:blackberry|\(bb10;) (\w+)/i
    1201412045                    ],
    1201512046                    [
     
    1229212323                    [
    1229312324                        /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
    12294                         /; (blu|hmd|imo|infinix|lava|oneplus|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
     12325                        /; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
    1229512326                        /(hp) ([\w ]+\w)/i,
    1229612327                        /(microsoft); (lumia[\w ]+)/i,
    1229712328                        /(oppo) ?([\w ]+) bui/i,
     12329                        /(hisense) ([ehv][\w ]+)\)/i,
    1229812330                        /droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
    1229912331                    ],
     
    1296813000                    ],
    1296913001                    [
    12970                         /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i
     13002                        /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i
    1297113003                    ],
    1297213004                    [
     
    1311813150                    [
    1311913151                        /[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
    13120                         /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
     13152                        /(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w\.]+)/i,
    1312113153                        /cfnetwork\/.+darwin/i
    1312213154                    ],
     
    1336113393                setProps.call(props.init, [
    1336213394                    [
    13363                         UA_BROWSER,
     13395                        BROWSER,
    1336413396                        [
    1336513397                            NAME,
     
    1337013402                    ],
    1337113403                    [
    13372                         UA_CPU,
     13404                        CPU,
    1337313405                        [
    1337413406                            ARCHITECTURE
     
    1337613408                    ],
    1337713409                    [
    13378                         UA_DEVICE,
     13410                        DEVICE,
    1337913411                        [
    1338013412                            TYPE,
     
    1338413416                    ],
    1338513417                    [
    13386                         UA_ENGINE,
     13418                        ENGINE,
    1338713419                        [
    1338813420                            NAME,
     
    1339113423                    ],
    1339213424                    [
    13393                         UA_OS,
     13425                        OS,
    1339413426                        [
    1339513427                            NAME,
     
    1340013432                setProps.call(props.isIgnore, [
    1340113433                    [
    13402                         UA_BROWSER,
     13434                        BROWSER,
    1340313435                        [
    1340413436                            VERSION,
     
    1340713439                    ],
    1340813440                    [
    13409                         UA_ENGINE,
     13441                        ENGINE,
    1341013442                        [
    1341113443                            VERSION
     
    1341313445                    ],
    1341413446                    [
    13415                         UA_OS,
     13447                        OS,
    1341613448                        [
    1341713449                            VERSION
     
    1342113453                setProps.call(props.isIgnoreRgx, [
    1342213454                    [
    13423                         UA_BROWSER,
     13455                        BROWSER,
    1342413456                        / ?browser$/i
    1342513457                    ],
    1342613458                    [
    13427                         UA_OS,
     13459                        OS,
    1342813460                        / ?os$/i
    1342913461                    ]
     
    1343113463                setProps.call(props.toString, [
    1343213464                    [
    13433                         UA_BROWSER,
     13465                        BROWSER,
    1343413466                        [
    1343513467                            NAME,
     
    1343813470                    ],
    1343913471                    [
    13440                         UA_CPU,
     13472                        CPU,
    1344113473                        [
    1344213474                            ARCHITECTURE
     
    1344413476                    ],
    1344513477                    [
    13446                         UA_DEVICE,
     13478                        DEVICE,
    1344713479                        [
    1344813480                            VENDOR,
     
    1345113483                    ],
    1345213484                    [
    13453                         UA_ENGINE,
     13485                        ENGINE,
    1345413486                        [
    1345513487                            NAME,
     
    1345813490                    ],
    1345913491                    [
    13460                         UA_OS,
     13492                        OS,
    1346113493                        [
    1346213494                            NAME,
     
    1348413516                    return item.detectFeature().get();
    1348513517                };
    13486                 if (itemType != UA_RESULT) {
     13518                if (itemType != RESULT) {
    1348713519                    IData.prototype.is = function(strToCheck) {
    1348813520                        var is = false;
    1348913521                        for(var i in this)if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {
    1349013522                            is = true;
    13491                             if (strToCheck != UNDEF_TYPE) break;
    13492                         } else if (strToCheck == UNDEF_TYPE && is) {
     13523                            if (strToCheck != TYPEOF.UNDEFINED) break;
     13524                        } else if (strToCheck == TYPEOF.UNDEFINED && is) {
    1349313525                            is = !is;
    1349413526                            break;
     
    1349813530                    IData.prototype.toString = function() {
    1349913531                        var str = EMPTY;
    13500                         for(var i in toString_props)if (typeof this[toString_props[i]] !== UNDEF_TYPE) str += (str ? ' ' : EMPTY) + this[toString_props[i]];
    13501                         return str || UNDEF_TYPE;
     13532                        for(var i in toString_props)if (typeof this[toString_props[i]] !== TYPEOF.UNDEFINED) str += (str ? ' ' : EMPTY) + this[toString_props[i]];
     13533                        return str || TYPEOF.UNDEFINED;
    1350213534                    };
    1350313535                }
     
    1352313555                    [
    1352413556                        BRANDS,
    13525                         itemListToArray(uach[CH_HEADER])
     13557                        itemListToArray(uach[CH])
    1352613558                    ],
    1352713559                    [
    1352813560                        FULLVERLIST,
    13529                         itemListToArray(uach[CH_HEADER_FULL_VER_LIST])
     13561                        itemListToArray(uach[CH_FULL_VER_LIST])
    1353013562                    ],
    1353113563                    [
    1353213564                        MOBILE,
    13533                         /\?1/.test(uach[CH_HEADER_MOBILE])
     13565                        /\?1/.test(uach[CH_MOBILE])
    1353413566                    ],
    1353513567                    [
    1353613568                        MODEL,
    13537                         stripQuotes(uach[CH_HEADER_MODEL])
     13569                        stripQuotes(uach[CH_MODEL])
    1353813570                    ],
    1353913571                    [
    1354013572                        PLATFORM,
    13541                         stripQuotes(uach[CH_HEADER_PLATFORM])
     13573                        stripQuotes(uach[CH_PLATFORM])
    1354213574                    ],
    1354313575                    [
    1354413576                        PLATFORMVER,
    13545                         stripQuotes(uach[CH_HEADER_PLATFORM_VER])
     13577                        stripQuotes(uach[CH_PLATFORM_VER])
    1354613578                    ],
    1354713579                    [
    1354813580                        ARCHITECTURE,
    13549                         stripQuotes(uach[CH_HEADER_ARCH])
     13581                        stripQuotes(uach[CH_ARCH])
    1355013582                    ],
    1355113583                    [
    1355213584                        FORMFACTORS,
    13553                         itemListToArray(uach[CH_HEADER_FORM_FACTORS])
     13585                        itemListToArray(uach[CH_FORM_FACTORS])
    1355413586                    ],
    1355513587                    [
    1355613588                        BITNESS,
    13557                         stripQuotes(uach[CH_HEADER_BITNESS])
     13589                        stripQuotes(uach[CH_BITNESS])
    1355813590                    ]
    1355913591                ]);
    13560                 else for(var prop in uach)if (this.hasOwnProperty(prop) && typeof uach[prop] !== UNDEF_TYPE) this[prop] = uach[prop];
     13592                else for(var prop in uach)if (this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED) this[prop] = uach[prop];
    1356113593            }
    1356213594            function UAItem(itemType, ua, rgxMap, uaCH) {
     
    1357513607                this.detectFeature = function() {
    1357613608                    if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) switch(this.itemType){
    13577                         case UA_BROWSER:
    13578                             if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == FUNC_TYPE) this.set(NAME, 'Brave');
     13609                        case BROWSER:
     13610                            if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == TYPEOF.FUNCTION) this.set(NAME, 'Brave');
    1357913611                            break;
    13580                         case UA_DEVICE:
     13612                        case DEVICE:
    1358113613                            if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) this.set(TYPE, MOBILE);
    13582                             if ('Macintosh' == this.get(MODEL) && NAVIGATOR && typeof NAVIGATOR.standalone !== UNDEF_TYPE && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) this.set(MODEL, 'iPad').set(TYPE, TABLET);
     13614                            if ('Macintosh' == this.get(MODEL) && NAVIGATOR && typeof NAVIGATOR.standalone !== TYPEOF.UNDEFINED && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) this.set(MODEL, 'iPad').set(TYPE, TABLET);
    1358313615                            break;
    13584                         case UA_OS:
     13616                        case OS:
    1358513617                            if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);
    1358613618                            break;
    13587                         case UA_RESULT:
     13619                        case RESULT:
    1358813620                            var data = this.data;
    1358913621                            var detect = function(itemType) {
    1359013622                                return data[itemType].getItem().detectFeature().get();
    1359113623                            };
    13592                             this.set(UA_BROWSER, detect(UA_BROWSER)).set(UA_CPU, detect(UA_CPU)).set(UA_DEVICE, detect(UA_DEVICE)).set(UA_ENGINE, detect(UA_ENGINE)).set(UA_OS, detect(UA_OS));
     13624                            this.set(BROWSER, detect(BROWSER)).set(CPU, detect(CPU)).set(DEVICE, detect(DEVICE)).set(ENGINE, detect(ENGINE)).set(OS, detect(OS));
    1359313625                    }
    1359413626                    return this;
    1359513627                };
    1359613628                this.parseUA = function() {
    13597                     if (this.itemType != UA_RESULT) rgxMapper.call(this.data, this.ua, this.rgxMap);
    13598                     if (this.itemType == UA_BROWSER) this.set(MAJOR, majorize(this.get(VERSION)));
     13629                    if (this.itemType != RESULT) rgxMapper.call(this.data, this.ua, this.rgxMap);
     13630                    switch(this.itemType){
     13631                        case BROWSER:
     13632                            this.set(MAJOR, majorize(this.get(VERSION)));
     13633                            break;
     13634                        case OS:
     13635                            if ('iOS' == this.get(NAME) && '18.6' == this.get(VERSION)) {
     13636                                var realVersion = /\) Version\/([\d\.]+)/.exec(this.ua);
     13637                                if (realVersion && parseInt(realVersion[1].substring(0, 2), 10) >= 26) this.set(VERSION, realVersion[1]);
     13638                            }
     13639                            break;
     13640                    }
    1359913641                    return this;
    1360013642                };
     
    1360213644                    var uaCH = this.uaCH, rgxMap = this.rgxMap;
    1360313645                    switch(this.itemType){
    13604                         case UA_BROWSER:
    13605                         case UA_ENGINE:
     13646                        case BROWSER:
     13647                        case ENGINE:
    1360613648                            var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;
    1360713649                            if (brands) for(var i = 0; i < brands.length; i++){
    1360813650                                var brandName = brands[i].brand || brands[i], brandVersion = brands[i].version;
    13609                                 if (this.itemType == UA_BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) {
     13651                                if (this.itemType == BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) {
    1361013652                                    brandName = strMapper(brandName, browserHintsMap);
    1361113653                                    prevName = this.get(NAME);
     
    1361313655                                    prevName = brandName;
    1361413656                                }
    13615                                 if (this.itemType == UA_ENGINE && brandName == CHROMIUM) this.set(VERSION, brandVersion);
     13657                                if (this.itemType == ENGINE && brandName == CHROMIUM) this.set(VERSION, brandVersion);
    1361613658                            }
    1361713659                            break;
    13618                         case UA_CPU:
     13660                        case CPU:
    1361913661                            var archName = uaCH[ARCHITECTURE];
    1362013662                            if (archName) {
     
    1362313665                            }
    1362413666                            break;
    13625                         case UA_DEVICE:
     13667                        case DEVICE:
    1362613668                            if (uaCH[MOBILE]) this.set(TYPE, MOBILE);
    1362713669                            if (uaCH[MODEL]) {
     
    1364313685                            }
    1364413686                            break;
    13645                         case UA_OS:
     13687                        case OS:
    1364613688                            var osName = uaCH[PLATFORM];
    1364713689                            if (osName) {
     
    1365213694                            if (this.get(NAME) == WINDOWS && 'Xbox' == uaCH[MODEL]) this.set(NAME, 'Xbox').set(VERSION, void 0);
    1365313695                            break;
    13654                         case UA_RESULT:
     13696                        case RESULT:
    1365513697                            var data = this.data;
    1365613698                            var parse = function(itemType) {
    1365713699                                return data[itemType].getItem().setCH(uaCH).parseCH().get();
    1365813700                            };
    13659                             this.set(UA_BROWSER, parse(UA_BROWSER)).set(UA_CPU, parse(UA_CPU)).set(UA_DEVICE, parse(UA_DEVICE)).set(UA_ENGINE, parse(UA_ENGINE)).set(UA_OS, parse(UA_OS));
     13701                            this.set(BROWSER, parse(BROWSER)).set(CPU, parse(CPU)).set(DEVICE, parse(DEVICE)).set(ENGINE, parse(ENGINE)).set(OS, parse(OS));
    1366013702                    }
    1366113703                    return this;
     
    1368613728            }
    1368713729            function UAParser(ua, extensions, headers) {
    13688                 if (typeof ua === OBJ_TYPE) {
     13730                if (typeof ua === TYPEOF.OBJECT) {
    1368913731                    if (isExtensions(ua, true)) {
    13690                         if (typeof extensions === OBJ_TYPE) headers = extensions;
     13732                        if (typeof extensions === TYPEOF.OBJECT) headers = extensions;
    1369113733                        extensions = ua;
    1369213734                    } else {
     
    1369513737                    }
    1369613738                    ua = void 0;
    13697                 } else if (typeof ua === STR_TYPE && !isExtensions(extensions, true)) {
     13739                } else if (typeof ua === TYPEOF.STRING && !isExtensions(extensions, true)) {
    1369813740                    headers = extensions;
    1369913741                    extensions = void 0;
    1370013742                }
    13701                 if (headers) if (typeof headers.append === FUNC_TYPE) {
     13743                if (headers) if (typeof headers.append === TYPEOF.FUNCTION) {
    1370213744                    var kv = {};
    1370313745                    headers.forEach(function(v, k) {
     
    1371113753                }
    1371213754                if (!(this instanceof UAParser)) return new UAParser(ua, extensions, headers).getResult();
    13713                 var userAgent = typeof ua === STR_TYPE ? ua : headers && headers[USER_AGENT] ? headers[USER_AGENT] : NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : EMPTY, httpUACH = new UACHData(headers, true), regexMap = extensions ? extend(defaultRegexes, extensions) : defaultRegexes, createItemFunc = function(itemType) {
    13714                     if (itemType == UA_RESULT) return function() {
    13715                         return new UAItem(itemType, userAgent, regexMap, httpUACH).set('ua', userAgent).set(UA_BROWSER, this.getBrowser()).set(UA_CPU, this.getCPU()).set(UA_DEVICE, this.getDevice()).set(UA_ENGINE, this.getEngine()).set(UA_OS, this.getOS()).get();
     13755                var userAgent = typeof ua === TYPEOF.STRING ? ua : headers && headers[USER_AGENT] ? headers[USER_AGENT] : NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : EMPTY, httpUACH = new UACHData(headers, true), regexMap = extensions ? extend(defaultRegexes, extensions) : defaultRegexes, createItemFunc = function(itemType) {
     13756                    if (itemType == RESULT) return function() {
     13757                        return new UAItem(itemType, userAgent, regexMap, httpUACH).set('ua', userAgent).set(BROWSER, this.getBrowser()).set(CPU, this.getCPU()).set(DEVICE, this.getDevice()).set(ENGINE, this.getEngine()).set(OS, this.getOS()).get();
    1371613758                    };
    1371713759                    return function() {
     
    1372213764                    [
    1372313765                        'getBrowser',
    13724                         createItemFunc(UA_BROWSER)
     13766                        createItemFunc(BROWSER)
    1372513767                    ],
    1372613768                    [
    1372713769                        'getCPU',
    13728                         createItemFunc(UA_CPU)
     13770                        createItemFunc(CPU)
    1372913771                    ],
    1373013772                    [
    1373113773                        'getDevice',
    13732                         createItemFunc(UA_DEVICE)
     13774                        createItemFunc(DEVICE)
    1373313775                    ],
    1373413776                    [
    1373513777                        'getEngine',
    13736                         createItemFunc(UA_ENGINE)
     13778                        createItemFunc(ENGINE)
    1373713779                    ],
    1373813780                    [
    1373913781                        'getOS',
    13740                         createItemFunc(UA_OS)
     13782                        createItemFunc(OS)
    1374113783                    ],
    1374213784                    [
    1374313785                        'getResult',
    13744                         createItemFunc(UA_RESULT)
     13786                        createItemFunc(RESULT)
    1374513787                    ],
    1374613788                    [
     
    1375313795                        'setUA',
    1375413796                        function(ua) {
    13755                             if (isString(ua)) userAgent = ua.length > UA_MAX_LENGTH ? ua_parser_trim(ua, UA_MAX_LENGTH) : ua;
     13797                            if (isString(ua)) userAgent = ua_parser_trim(ua, UA_MAX_LENGTH);
    1375613798                            return this;
    1375713799                        }
     
    1396114003                        screen.height,
    1396214004                        screen.colorDepth
    13963                     ].join("\xd7");
     14005                    ].join("×");
    1396414006                    if (screen.orientation) this.orientation = screen.orientation.type;
    1396514007                    this.err = errData?.err;
     
    1483014872                adjustFormOnBrowserError: true,
    1483114873                reportErrors: true,
     14874                disableFormWhenSubmitting: true,
    1483214875                fakeUaString: void 0,
    1483314876                versions: {
     
    1489314936            }
    1489414937            const mergeWithDefaultOptions = mergeWithDefaultOptions_mergeWithDefaultOptions;
    14895             var injectStylesIntoStyleTag = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js");
     14938            var injectStylesIntoStyleTag = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js");
    1489614939            var injectStylesIntoStyleTag_default = /*#__PURE__*/ __webpack_require__.n(injectStylesIntoStyleTag);
    14897             var styleDomAPI = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js");
     14940            var styleDomAPI = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js");
    1489814941            var styleDomAPI_default = /*#__PURE__*/ __webpack_require__.n(styleDomAPI);
    14899             var insertBySelector = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js");
     14942            var insertBySelector = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js");
    1490014943            var insertBySelector_default = /*#__PURE__*/ __webpack_require__.n(insertBySelector);
    14901             var setAttributesWithoutAttributes = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js");
     14944            var setAttributesWithoutAttributes = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js");
    1490214945            var setAttributesWithoutAttributes_default = /*#__PURE__*/ __webpack_require__.n(setAttributesWithoutAttributes);
    14903             var insertStyleElement = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js");
     14946            var insertStyleElement = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js");
    1490414947            var insertStyleElement_default = /*#__PURE__*/ __webpack_require__.n(insertStyleElement);
    14905             var styleTagTransform = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js");
     14948            var styleTagTransform = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js");
    1490614949            var styleTagTransform_default = /*#__PURE__*/ __webpack_require__.n(styleTagTransform);
    14907             var main = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl");
     14950            var main = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl");
    1490814951            var main_options = {};
    1490914952            main_options.styleTagTransform = styleTagTransform_default();
     
    1546415507                        this.facingModeElement = document.createElement("button");
    1546515508                        this.facingModeElement.classList.add("facingMode");
    15466                         this.facingModeElement.innerHTML = "\u293E";
     15509                        this.facingModeElement.innerHTML = "";
    1546715510                        this.facingModeElement.onclick = (e)=>{
    1546815511                            e?.preventDefault();
     
    1581115854                        lead += `${this.options.text.limitReached}.<br/>`;
    1581215855                    }
    15813                     lead += `${this.options.text.sending} \u{2026}`;
     15856                    lead += `${this.options.text.sending} `;
    1581415857                    this.notify(lead, void 0, {
    1581515858                        stillWait: true,
     
    1581815861                }
    1581915862                onConnecting() {
    15820                     this.notify("Connecting \u2026");
     15863                    this.notify("Connecting ");
    1582115864                }
    1582215865                onLoadingUserMedia() {
    15823                     this.notify("Loading webcam \u2026");
     15866                    this.notify("Loading webcam ");
    1582415867                }
    1582515868                onProgress(frameProgress, sampleProgress) {
     
    1583315876                onBeginVideoEncoding() {
    1583415877                    this.visuals.beginWaiting();
    15835                     const lead = `${this.options.text.encoding} \u{2026}`;
     15878                    const lead = `${this.options.text.encoding} `;
    1583615879                    this.notify(lead, void 0, {
    1583715880                        stillWait: true,
     
    1586515908                    });
    1586615909                    this.on("UNLOADING", ()=>{
    15867                         this.notify("Unloading \u2026");
     15910                        this.notify("Unloading ");
    1586815911                    });
    1586915912                    this.on("DISCONNECTED", ()=>{
     
    1626216305            ];
    1626316306            const mediaEvents = MEDIA_EVENTS;
    16264             const EVENT_ASCII = "|\u2014O\u2014|";
     16307            const EVENT_ASCII = "|—O—|";
    1626516308            class UserMedia extends util_Despot {
    1626616309                recorder;
     
    1655216595            const visuals_userMedia = UserMedia;
    1655316596            var Buffer = __webpack_require__("./node_modules/buffer/index.js")["Buffer"];
    16554             const PIPE_SYMBOL = "\xb0\xba\xa4\xf8,\xb8\xb8,\xf8\xa4\xba\xb0`\xb0\xba\xa4\xf8,\xb8,\xf8\xa4\xb0\xba\xa4\xf8,\xb8\xb8,\xf8\xa4\xba\xb0`\xb0\xba\xa4\xf8,\xb8 ";
     16597            const PIPE_SYMBOL = "°º¤ø,¸¸,ø¤º°`°º¤ø,¸,ø¤°º¤ø,¸¸,ø¤º°`°º¤ø,¸ ";
    1655516598            class Recorder extends util_Despot {
    1655616599                visuals;
     
    1673516778                    const width = this.getRecorderWidth(true);
    1673616779                    const height = this.getRecorderHeight(true);
     16780                    const duration = args.duration ?? -1;
    1673716781                    this.emit("PREVIEW", {
    1673816782                        key: this.key,
    1673916783                        width,
    1674016784                        height,
    16741                         hasAudio
     16785                        hasAudio,
     16786                        duration
    1674216787                    });
    1674316788                    if (this.stopTime) this.waitingTime = Date.now() - this.stopTime;
     
    1705217097                        }
    1705317098                    } else {
    17054                         this.options.logger.debug(`Reconnecting for the command ${command} \u{2026}`);
     17099                        this.options.logger.debug(`Reconnecting for the command ${command} `);
    1705517100                        this.initSocket(()=>{
    1705617101                            this.writeCommand(command, args);
     
    1784017885                }
    1784117886                removeChild(child) {
    17842                     this.visualsElement?.removeChild(child);
     17887                    child.remove();
    1784317888                }
    1784417889                reset() {
     
    1833218377                                valid = false;
    1833318378                                if (name) {
    18334                                     whyInvalid = `Input "${name}" seems wrong \u{1F914}`;
     18379                                    whyInvalid = `Input "${name}" seems wrong 🤔`;
    1833518380                                    invalidData = {
    1833618381                                        [name]: invalidInput.getAttribute("value")
     
    1834018385                                if (this.buttonsAreReady() || this.isRecording() || this.isPaused() || this.isCountingDown()) {
    1834118386                                    valid = false;
    18342                                     whyInvalid = "Don't forget to record a video \uD83D\uDE09";
     18387                                    whyInvalid = "Don't forget to record a video 😉";
    1834318388                                    invalidData = {
    1834418389                                        key: void 0
     
    1840818453                        this.options.logger.debug(`Container: submitAll(${output})`);
    1840918454                        this.beginWaiting();
    18410                         this.disableForm(true);
     18455                        if (this.options.disableFormWhenSubmitting) this.disableForm(true);
    1841118456                        this.emit("SUBMITTING");
    1841218457                        if (hasVideomailKey) {
  • videomail-for-ninja-forms/tags/8.3.1/target/php/config/videomail-field-settings.php

    r3257516 r3379887  
    1919    'width' => 'one-half',
    2020    'group' => 'primary',
    21     'value' => TRUE,
     21    'value' => true,
    2222    'help' => __('The audio feature is in beta and needs feedback for improvement. Otherwise leave it disabled and stick to Sign Language, grins')
    2323  ),
     
    4141    'value' => '',
    4242    'width' => 'full',
    43     'use_merge_tags' => TRUE
     43    'use_merge_tags' => true
    4444  ),
    4545
     
    5252    'value' => '',
    5353    'width' => 'full',
    54     'use_merge_tags' => TRUE
     54    'use_merge_tags' => true
    5555  ),
    5656
     
    6363    'value' => '',
    6464    'width' => 'full',
    65     'use_merge_tags' => TRUE
     65    'use_merge_tags' => true
    6666  ),
    6767
     
    7474    'value' => '',
    7575    'width' => 'full',
    76     'use_merge_tags' => TRUE
     76    'use_merge_tags' => true
    7777  ),
    7878
     
    120120    'width' => 'one-half',
    121121    'group' => 'display',
    122     'value' => FALSE,
     122    'value' => false,
    123123    'help' => __('Stretch video to full width of the parent container.', 'videomail-for-ninja-forms')
    124124  ),
     
    130130    'width' => 'one-half',
    131131    'group' => 'advanced',
    132     'value' => FALSE,
     132    'value' => false,
    133133    'help' => __('Show verbose comments in the developer console.', 'videomail-for-ninja-forms')
    134134  ),
     
    140140    'width' => 'one-half',
    141141    'group' => 'advanced',
    142     'value' => FALSE,
     142    'value' => false,
    143143    'help' => __('With this option enabled, the user will not be asked for camera permissions unless the record button is clicked. When disabled (default), permissions are being asked on page load which is preferred. This option is only for when the there is a conflict with the application when already many other events occur on page load.', 'videomail-for-ninja-forms')
     144  ),
     145
     146  'disable_form_when_submitting' => array(
     147    'name' => 'disable_form_when_submitting',
     148    'type' => 'toggle',
     149    'label' => __('Disable form inputs once submitted', 'videomail-for-ninja-forms'),
     150    'width' => 'one-half',
     151    'group' => 'advanced',
     152    'value' => false,
     153    'help' => __('With this option enabled, all form inputs become disabled once submitted and cannot be changed which the ideal during any submissions. Unfortunately WordPress plugins can overlap with each other the submit button, hence it is disabled by default. Only enable if you are sure and have fully tested it.', 'videomail-for-ninja-forms')
    144154  )
    145155));
  • videomail-for-ninja-forms/tags/8.3.1/target/php/videomail.php

    r3374730 r3379887  
    33
    44  const NAME = 'Videomail';
    5   const VERSION = '8.2.0';
     5  const VERSION = '8.3.1';
    66  const AUTHOR = 'Michael Heuberger + Kyle B. Johnson';
    77  const SLUG = 'videomail';
  • videomail-for-ninja-forms/tags/8.3.1/videomail-for-ninja-forms.php

    r3374730 r3379887  
    44  Plugin URI: https://github.com/binarykitchen/videomail-for-ninja-forms
    55  Description: Express yourself in more than just words. Record and send a short video from your webcam.
    6   Version: 8.2.0
     6  Version: 8.3.1
    77  Author: Michael Heuberger + Kyle B. Johnson
    88  Author URI: https://videomail.io
     
    1414
    1515if (version_compare(get_option('ninja_forms_version', '0.0.0'), '3', '<') ||
    16     get_option('ninja_forms_load_deprecated', FALSE)) {
     16    get_option('ninja_forms_load_deprecated', false)) {
    1717
    1818  return;
  • videomail-for-ninja-forms/trunk/.vscode/settings.json

    r3374730 r3379887  
    33  "files.trimTrailingWhitespace": true,
    44  "editor.defaultFormatter": "esbenp.prettier-vscode",
    5   "prettier.configPath": "./prettier.config.cjs",
    6   "cSpell.words": [
    7     "ABSPATH",
    8     "apachectl",
    9     "autoloader",
    10     "binarykitchen",
    11     "bytediff",
    12     "corejs",
    13     "cssnano",
    14     "gulpfile",
    15     "kbjohnson",
    16     "litespeed",
    17     "Metaboxes",
    18     "softprops",
    19     "styl",
    20     "Videomail"
    21   ]
     5  "prettier.configPath": "./prettier.config.cjs"
    226}
  • videomail-for-ninja-forms/trunk/readme.txt

    r3374730 r3379887  
    66Requires at least: 6.0
    77Tested up to: 6.8.2
    8 Stable tag: 8.2.0
     8Stable tag: 8.3.1
    99Requires PHP: 8.1.0
    1010Donate link: https://videomail.io/faq
     
    7171
    7272== Changelog ==
     73= 8.3.1 (17 Oct 2025) =
     74**Fix**
     75* Adds one missing comma :)
     76
     77= 8.3.0 (17 Oct 2025) =
     78**Improvement**
     79* Adds new advanced option "disableFormWhenSubmitting" to increase security during form submissions
     80
     81**Change:**
     82* Defaults that new option "disableFormWhenSubmitting" to false, because plugins overlap with each other.
     83
     84**Chore**
     85* Upgrade VC dependency
     86
    7387= 8.2.0 (8 Oct 2025) =
    7488**Fix**
  • videomail-for-ninja-forms/trunk/target/js/main-min.js

    r3374730 r3379887  
    1 let PLUGIN_VERSION="8.2.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguMi4wXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIC8vIHVnbHkgbmFtZSBlaD9cbiAgICAgICAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nOlxuICAgICAgICAgIHRoaXMuYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIuYmluZCh0aGlzKSxcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gdmFsaWRhdGUgdGhlIGlucHV0c1xuICAgICAgZW5hYmxlQXV0b1ZhbGlkYXRpb246IGZhbHNlLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIGRlYWwgd2l0aCBmb3JtIHN1Ym1pc3Npb25zXG4gICAgICBlbmFibGVBdXRvU3VibWlzc2lvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxvZyBhY3Rpb25zL2V2ZW50cyB0byBjb25zb2xlXG4gICAgICB2ZXJib3NlLFxuXG4gICAgICB2ZXJzaW9uczogeyBuaW5qYUZvcm1QbHVnaW46IFBMVUdJTl9WRVJTSU9OIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3Qi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
     1let PLUGIN_VERSION="8.3.1",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"),disableFormWhenSubmitting:this.fieldModel.get("disable_form_when_submitting"),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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjguMy4xXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzogeyBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7IGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLCBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIiB9LFxuICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgIGFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZzpcbiAgICAgICAgICB0aGlzLmFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyLmJpbmQodGhpcyksXG4gICAgICB9LFxuXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldChcImxvYWRfdXNlcl9tZWRpYV9vbl9yZWNvcmRcIiksXG5cbiAgICAgIGRpc2FibGVGb3JtV2hlblN1Ym1pdHRpbmc6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJkaXNhYmxlX2Zvcm1fd2hlbl9zdWJtaXR0aW5nXCIpLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIHZhbGlkYXRlIHRoZSBpbnB1dHNcbiAgICAgIGVuYWJsZUF1dG9WYWxpZGF0aW9uOiBmYWxzZSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byBkZWFsIHdpdGggZm9ybSBzdWJtaXNzaW9uc1xuICAgICAgZW5hYmxlQXV0b1N1Ym1pc3Npb246IGZhbHNlLFxuXG4gICAgICAvLyBsb2cgYWN0aW9ucy9ldmVudHMgdG8gY29uc29sZVxuICAgICAgdmVyYm9zZSxcblxuICAgICAgdmVyc2lvbnM6IHsgbmluamFGb3JtUGx1Z2luOiBQTFVHSU5fVkVSU0lPTiB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJQUkVWSUVXXCIsIHRoaXMub25QcmV2aWV3LmJpbmQodGhpcykpO1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFwiU1VCTUlUVEVEXCIsIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJHT0lOR19CQUNLXCIsIHRoaXMub25Hb2luZ0JhY2suYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KCk7XG4gIH0sXG5cbiAgLy8gbmVlZGVkIHRvIGdldCB0aGUgdmlkZW9tYWlsIGtleSB3aGljaCBpcyByZXF1aXJlZCBiZWZvcmVcbiAgLy8gc3VibWl0dGluZyB0byB0aGUgdmlkZW9tYWlsIHNlcnZlclxuICBvblByZXZpZXc6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBrZXkpO1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2YWx1ZVwiLCBrZXkpO1xuXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KFwicmVtb3ZlOmVycm9yXCIsIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSwgXCJyZXF1aXJlZC1lcnJvclwiKTtcbiAgfSxcblxuICBvblN1Ym1pdHRlZDogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgIGxldCBmb3JtTW9kZWwgPSBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiYXBwXCIpLnJlcXVlc3QoXCJnZXQ6Zm9ybVwiLCB0aGlzLmdldEZvcm1JZCgpKTtcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsO1xuICAgIH1cblxuICAgIC8vIFRPRE8gSXNuJ3QgJ2Zvcm0tJyArIGZvcm1Nb2RlbC5nZXQoJ2lkJykgdGhlIHNhbWUgYXMgdGhlIGZvcm1JRCBhbHJlYWR5P1xuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgZm9ybU1vZGVsLmdldChcImlkXCIpKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXh0cmFcIixcbiAgICAgIFwidmlkZW9tYWlsXCIsXG4gICAgICByZXN1bHQudmlkZW9tYWlsLFxuICAgICk7XG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyB0aGlzLmdldEZvcm1JZCgpKS5yZXF1ZXN0KFwic3VibWl0XCIsIGZvcm1Nb2RlbCk7XG4gIH0sXG5cbiAgb25Hb2luZ0JhY2s6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBudWxsKTtcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbCk7XG5cbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWQ7XG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3Igc28gdGhhdCB3ZSBjYW4gc2V0IG91ciBvd24gZXJyb3IgdGV4dCBoZXJlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXJyb3JcIixcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSxcbiAgICAgIFwicmVxdWlyZWQtZXJyb3JcIixcbiAgICAgIFwiUmVjb3JkIGFuZCBjbGljayBvbiBzdG9wIHRvIHNlZSBhIHByZXZpZXcgdmlkZW8uXCIsXG4gICAgKTtcbiAgfSxcblxuICB2YWxpZGF0ZVZpZGVvbWFpbDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICBmaWVsZE1vZGVsID0gZmllbGRNb2RlbCB8fCB0aGlzLmZpZWxkTW9kZWw7XG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KFwidmlkZW9tYWlsLWtleVwiKSB8fCBmYWxzZTtcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldChcImVycm9yc1wiKS5sZW5ndGggPiAwO1xuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZTtcbiAgICBjb25zdCB2aWRlb21haWxTdWJtaXR0ZWQgPSBmb3JtTW9kZWwuZ2V0RXh0cmEoXCJ2aWRlb21haWxcIik7XG4gICAgY29uc3QgdmlkZW9tYWlsUmVjb3JkZWQgPSB0aGlzLnZhbGlkYXRlVmlkZW9tYWlsKCk7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLmhhc0Vycm9ycyhmb3JtTW9kZWwpO1xuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KCk7XG4gICAgICBtYXliZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZTtcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KTtcblxuICAgIC8vIGl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgdXNlciBoYXMgY29uZmlndXJlZCBzb21ldGhpbmcgd3JvbmcsXG4gICAgLy8gaS5FLiBhbiBlbXB0eSBlbWFpbF9mcm9tLiBpbiB0aGF0IGNhc2UganVzdCBpZ25vcmUgLi4uXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICAvLyBhZG1pbiBlbWFpbCBsb2NhbGl6ZWQgZnJvbSBiYWNrZW5kLCBhIGJpdCB1Z2x5XG4gICAgICAvLyB0b2RvIGFzayBmb3IgYW4gZW5kcG9pbnQgdG8gcHJvY2VzcyB0aG9zZSBzcGVjaWFsIG1lcmdlIHRhZ3NcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaW5hcnlraXRjaGVuL3ZpZGVvbWFpbC1mb3ItbmluamEtZm9ybXMvaXNzdWVzLzMwXG4gICAgICBpZiAodmFsdWUgPT09IFwie3dwOmFkbWluX2VtYWlsfVwiKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXlNYXRjaGVzID0gdmFsdWUubWF0Y2goL3tmaWVsZDooLiopfS9pKTtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXkgPSByYXdGaWVsZEtleU1hdGNoZXMgJiYgcmF3RmllbGRLZXlNYXRjaGVzWzFdO1xuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9LFxuXG4gIC8vIHJldHVybnMgYSBtYXAgbGlrZSB0aGlzOlxuICAvLyB7XG4gIC8vICAgZnJvbV9lbWFpbDogXCJtaWNLQGRlYWZvbnouZWhcIlxuICAvLyAgIGZyb21fbmFtZTogXCJNSFwiXG4gIC8vICAgbWVzc2FnZTogXCJzZGZzZGZzZGZcIlxuICAvLyAgIHN1YmplY3Q6IFwic2Rmc2RmXCJcbiAgLy8gICBzdWJtaXQ6IFwiXCJcbiAgLy8gICB2aWRlb19tZXNzYWdlOiBcIjExZWItNjFkNy1kZDU4MzMyMC1hZTYxLTJiODJiZTZjNmUzZVwiXG4gIC8vIH1cbiAgZ2V0Rm9ybVZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIGxldCBjb2xsZWN0aW9uO1xuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKGZvcm1Nb2RlbCkge1xuICAgICAgY29sbGVjdGlvbiA9IGZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIik7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHMpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIikubW9kZWxzO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBjb2xsZWN0aW9uLnJlZHVjZShmdW5jdGlvbiAobWVtbywgZmllbGQpIHtcbiAgICAgIG1lbW9bZmllbGQuZ2V0KFwia2V5XCIpXSA9IGZpZWxkLmdldChcInZhbHVlXCIpO1xuICAgICAgcmV0dXJuIG1lbW87XG4gICAgfSwge30pO1xuXG4gICAgcmV0dXJuIGZvcm1WYWx1ZXM7XG4gIH0sXG5cbiAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXI6IGZ1bmN0aW9uICh2aWRlb21haWwpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKCk7XG5cbiAgICB2aWRlb21haWwuZnJvbSA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX2Zyb21cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnRvID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfdG9cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnN1YmplY3QgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9zdWJqZWN0XCIsIGZvcm1WYWx1ZXMpO1xuICAgIHZpZGVvbWFpbC5ib2R5ID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfYm9keVwiLCBmb3JtVmFsdWVzKTtcblxuICAgIHJldHVybiB2aWRlb21haWw7XG4gIH0sXG5cbiAgb25CZWZvcmVEZXN0cm95OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50O1xuICB9LFxufSk7XG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpO1xufSk7XG4iXSwibmFtZXMiOlsiUExVR0lOX1ZFUlNJT04iLCJERUJVRyIsIlZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciIsIk1hcmlvbmV0dGUiLCJPYmplY3QiLCJleHRlbmQiLCJ2aWRlb21haWxDbGllbnQiLCJmaWVsZE1vZGVsIiwiY2hhbm5lbCIsIkJhY2tib25lIiwiUmFkaW8iLCJpbml0aWFsaXplIiwidGhpcyIsImxpc3RlblRvT25jZSIsInJlZ2lzdGVyVmlkZW9tYWlsRmllbGQiLCJsb2FkVmlkZW9tYWlsQ2xpZW50IiwibGlzdGVuVG8iLCJldmVudE5hbWUiLCJjb25zb2xlIiwibG9nIiwibmZSYWRpbyIsInBhcmFtcyIsImN1cnJlbnRNb2RlbHMiLCJjdXJyZW50RWxlbWVudCIsImF0dHJpYnV0ZXMiLCJmb3JtQ29udGVudERhdGEiLCJtb2RlbHMiLCJjdXJyZW50Q2lkIiwiY2lkIiwiZmluZCIsIm1vZGVsIiwidW5sb2FkIiwiZ2V0Rm9ybUlkIiwiZ2V0IiwicmVwbHkiLCJ2YWxpZGF0ZVJlcXVpcmVkIiwidmFsaWRhdGVWaWRlb21haWwiLCJtYXliZVN1Ym1pdCIsImxldCIsImltYWdlUXVhbGl0eVBlcmNlbnRhZ2UiLCJ2ZXJib3NlIiwiVmlkZW9tYWlsQ2xpZW50Iiwic2l0ZU5hbWUiLCJ2aWRlbyIsImxpbWl0U2Vjb25kcyIsIndpZHRoIiwic3RyZXRjaCIsImNvdW50ZG93biIsImF1ZGlvIiwiZW5hYmxlZCIsImltYWdlIiwicXVhbGl0eSIsInNlbGVjdG9ycyIsImNvbnRhaW5lcklkIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJjYWxsYmFja3MiLCJhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmciLCJhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlciIsImJpbmQiLCJsb2FkVXNlck1lZGlhT25SZWNvcmQiLCJkaXNhYmxlRm9ybVdoZW5TdWJtaXR0aW5nIiwiZW5hYmxlQXV0b1ZhbGlkYXRpb24iLCJlbmFibGVBdXRvU3VibWlzc2lvbiIsInZlcnNpb25zIiwibmluamFGb3JtUGx1Z2luIiwib24iLCJvblByZXZpZXciLCJvblN1Ym1pdHRlZCIsIm9uR29pbmdCYWNrIiwic2hvdyIsImtleSIsInNldCIsInJlcXVlc3QiLCJyZXN1bHQiLCJmb3JtTW9kZWwiLCJjb2xsZWN0aW9uIiwib3B0aW9ucyIsInZpZGVvbWFpbCIsImludmFsaWRhdGUiLCJlbCIsInZhbGlkIiwiaGFzRXJyb3JzIiwibGVuZ3RoIiwibWF5YmUiLCJ2aWRlb21haWxTdWJtaXR0ZWQiLCJnZXRFeHRyYSIsInZpZGVvbWFpbFJlY29yZGVkIiwiZXJyb3IiLCJzdWJtaXQiLCJnZXRNZXJnZVRhZ1ZhbHVlIiwiZmllbGRLZXkiLCJmb3JtVmFsdWVzIiwidmFsdWUiLCJ3aW5kb3ciLCJuZlZpZGVvbWFpbCIsImFkbWluX2VtYWlsIiwicmF3RmllbGRLZXkiLCJyYXdGaWVsZEtleU1hdGNoZXMiLCJtYXRjaCIsInJlcGxhY2UiLCJnZXRGb3JtVmFsdWVzIiwicmVkdWNlIiwibWVtbyIsImZpZWxkIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFDQSxJQUFNQSxlQUFpQixRQUduQkMsTUFBUSxDQUFBLEVBS05DLHlCQUEyQkMsV0FBV0MsT0FBT0MsT0FBTyxDQUN4REMsZ0JBQWlCLEtBRWpCQyxXQUFZLEtBRVpDLFFBQVNDLFNBQVNDLE1BQU1GLFFBQVEsV0FBVyxFQUUzQ0csV0FBWSxXQUNWRixTQUFTQyxNQUFNVCxNQUFRQSxNQUV2QlcsS0FBS0MsYUFBYUQsS0FBS0osUUFBUyxhQUFjSSxLQUFLRSxzQkFBc0IsRUFDekVGLEtBQUtDLGFBQWFELEtBQUtKLFFBQVMsY0FBZUksS0FBS0csbUJBQW1CLEVBR3ZFSCxLQUFLSSxTQUFTSixLQUFLSixRQUFTLE1BQU8sU0FBVVMsR0FDM0NoQixPQUFTaUIsUUFBUUMsSUFBSSxxQ0FBc0NGLENBQVMsRUFJcEVMLEtBQUtJLFNBQVNJLFFBQVFaLFFBQVEsTUFBTSxFQUFHLGNBQWUsU0FBVWEsR0FDOURwQixPQUFTaUIsUUFBUUMsSUFBSSxnQ0FBaUMsYUFBYSxFQUU3REcsRUFDSkQsRUFBT0UsZ0JBQWdCQyxZQUFZQyxpQkFBaUJDLFFBQVUsR0FFaEUsSUFBTUMsRUFBYWYsS0FBS0wsV0FBV3FCLElBRWROLEVBQWNPLEtBQUssU0FBVUMsR0FDaEQsT0FBT0EsRUFBTUYsTUFBUUQsQ0FDdkIsQ0FBQyxFQUdDZixLQUFLRyxvQkFBb0IsRUFFekJILEtBQUtOLGdCQUFnQnlCLE9BQU8sQ0FFaEMsQ0FBQyxDQUNILENBQUMsQ0FDSCxFQUVBQyxVQUFXLFdBQ1QsT0FBT3BCLEtBQUtMLFdBQVcwQixJQUFJLFFBQVEsQ0FDckMsRUFFQW5CLHVCQUF3QixTQUFVUCxHQUNoQ0ssS0FBS0wsV0FBYUEsRUFJbEJLLEtBQUtKLFFBQVEwQixNQUFNLG9CQUFxQnRCLEtBQUt1QixpQkFBa0J2QixJQUFJLEVBRW5FQSxLQUFLSixRQUFRMEIsTUFBTSxxQkFBc0J0QixLQUFLd0Isa0JBQW1CeEIsSUFBSSxFQUlyRUgsU0FBU0MsTUFBTUYsUUFBUSxRQUFVSSxLQUFLb0IsVUFBVSxDQUFDLEVBQUVFLE1BQ2pELGVBQ0F0QixLQUFLeUIsWUFDTHpCLEtBQ0FMLENBQ0YsQ0FDRixFQUVBUSxvQkFBcUIsV0FDbkJ1QixJQUFJQyxFQUF5QjNCLEtBQUtMLFdBQVcwQixJQUFJLGVBQWUsR0FBSyxHQUV4QyxJQUF6Qk0sRUFDRkEsRUFBeUIsSUFDaEJBLEVBQXlCLElBQ2xDQSxFQUF5QixHQUczQixJQUFNQyxFQUFVNUIsS0FBS0wsV0FBVzBCLElBQUksU0FBUyxHQUFLaEMsTUFHbERBLE1BQVFBLE9BQVN1QyxFQUNqQi9CLFNBQVNDLE1BQU1ULE1BQVFRLFNBQVNDLE1BQU1ULE9BQVN1QyxFQUUvQzVCLEtBQUtOLGdCQUFrQixJQUFJbUMsZ0JBQWdCQSxnQkFBZ0IsQ0FDekRDLFNBQVU5QixLQUFLTCxXQUFXMEIsSUFBSSxXQUFXLEVBQ3pDVSxNQUFPLENBQ0xDLGFBQWNoQyxLQUFLTCxXQUFXMEIsSUFBSSxlQUFlLEdBQUssR0FDdERZLE1BQU9qQyxLQUFLTCxXQUFXMEIsSUFBSSxPQUFPLEdBQUssSUFFdkNhLFFBQVNsQyxLQUFLTCxXQUFXMEIsSUFBSSxTQUFTLEdBQUssQ0FBQSxFQUMzQ2MsVUFBV25DLEtBQUtMLFdBQVcwQixJQUFJLFdBQVcsR0FBSyxDQUFBLENBQ2pELEVBQ0FlLE1BQU8sQ0FBRUMsUUFBU3JDLEtBQUtMLFdBQVcwQixJQUFJLGVBQWUsQ0FBRSxFQUN2RGlCLE1BQU8sQ0FDTEMsUUFBU1osRUFBeUIsR0FDcEMsRUFDQWEsVUFBVyxDQUFFQyxZQUFhLFlBQWFDLHFCQUFzQixvQkFBcUIsRUFDbEZDLFVBQVcsQ0FDVEMsNEJBQ0U1QyxLQUFLNkMsNkNBQTZDQyxLQUFLOUMsSUFBSSxDQUMvRCxFQUdBK0Msc0JBQXVCL0MsS0FBS0wsV0FBVzBCLElBQUksMkJBQTJCLEVBRXRFMkIsMEJBQTJCaEQsS0FBS0wsV0FBVzBCLElBQUksOEJBQThCLEVBRzdFNEIscUJBQXNCLENBQUEsRUFHdEJDLHFCQUFzQixDQUFBLEVBR3RCdEIsUUFBQUEsRUFFQXVCLFNBQVUsQ0FBRUMsZ0JBQWlCaEUsY0FBZSxDQUM5QyxDQUFDLEVBRURZLEtBQUtOLGdCQUFnQjJELEdBQUcsVUFBV3JELEtBQUtzRCxVQUFVUixLQUFLOUMsSUFBSSxDQUFDLEVBQzVEQSxLQUFLTixnQkFBZ0IyRCxHQUFHLFlBQWFyRCxLQUFLdUQsWUFBWVQsS0FBSzlDLElBQUksQ0FBQyxFQUNoRUEsS0FBS04sZ0JBQWdCMkQsR0FBRyxhQUFjckQsS0FBS3dELFlBQVlWLEtBQUs5QyxJQUFJLENBQUMsRUFFakVBLEtBQUtOLGdCQUFnQitELEtBQUssQ0FDNUIsRUFJQUgsVUFBVyxTQUFVSSxHQUNuQjFELEtBQUtMLFdBQVdnRSxJQUFJLGdCQUFpQkQsQ0FBRyxFQUN4QzFELEtBQUtMLFdBQVdnRSxJQUFJLFFBQVNELENBQUcsRUFFaEM3RCxTQUFTQyxNQUFNRixRQUFRLFFBQVEsRUFFNUJnRSxRQUFRLGVBQWdCNUQsS0FBS0wsV0FBVzBCLElBQUksSUFBSSxFQUFHLGdCQUFnQixDQUN4RSxFQUVBa0MsWUFBYSxTQUFVTSxHQUNyQm5DLElBQUlvQyxFQUFZakUsU0FBU0MsTUFBTUYsUUFBUSxLQUFLLEVBQUVnRSxRQUFRLFdBQVk1RCxLQUFLb0IsVUFBVSxDQUFDLEVBRTdFMEMsRUFBQUEsR0FFUzlELEtBQUtMLFdBQVdvRSxXQUFXQyxRQUFRRixVQUlqRGpFLFNBQVNDLE1BQU1GLFFBQVEsUUFBVWtFLEVBQVV6QyxJQUFJLElBQUksQ0FBQyxFQUFFdUMsUUFDcEQsWUFDQSxZQUNBQyxFQUFPSSxTQUNULEVBR0FwRSxTQUFTQyxNQUFNRixRQUFRLFFBQVVJLEtBQUtvQixVQUFVLENBQUMsRUFBRXdDLFFBQVEsU0FBVUUsQ0FBUyxDQUNoRixFQUVBTixZQUFhLFdBQ1h4RCxLQUFLTCxXQUFXZ0UsSUFBSSxnQkFBaUIsSUFBSSxFQUN6QzNELEtBQUtrRSxXQUFXLENBQ2xCLEVBRUEzQyxpQkFBa0IsU0FBVTRDLEVBQUl4RSxHQUN4QnlFLEVBQVFwRSxLQUFLd0Isa0JBQWtCN0IsQ0FBVSxFQU0vQyxPQUpLeUUsR0FDSHBFLEtBQUtrRSxXQUFXLEVBR1hFLENBQ1QsRUFFQUYsV0FBWSxXQUVWckUsU0FBU0MsTUFBTUYsUUFBUSxRQUFRLEVBQUVnRSxRQUMvQixZQUNBNUQsS0FBS0wsV0FBVzBCLElBQUksSUFBSSxFQUN4QixpQkFDQSxrREFDRixDQUNGLEVBRUFHLGtCQUFtQixTQUFVN0IsR0FFM0IsT0FEQUEsRUFBYUEsR0FBY0ssS0FBS0wsWUFDZDBCLElBQUksZUFBZSxHQUFLLENBQUEsQ0FDNUMsRUFFQWdELFVBQVcsU0FBVVAsR0FDbkIsT0FBd0MsRUFBakNBLEVBQVV6QyxJQUFJLFFBQVEsRUFBRWlELE1BQ2pDLEVBRUE3QyxZQUFhLFNBQVVxQyxHQUNyQnBDLElBQUk2QyxFQUFRLENBQUEsRUFDWixJQUFNQyxFQUFxQlYsRUFBVVcsU0FBUyxXQUFXLEVBQ25EQyxFQUFvQjFFLEtBQUt3QixrQkFBa0IsRUFDM0NtRCxFQUFRM0UsS0FBS3FFLFVBQVVQLENBQVMsRUFTdEMsT0FMS1UsR0FBdUJHLEdBQVNELENBQUFBLElBQ25DMUUsS0FBS04sZ0JBQWdCa0YsT0FBTyxFQUM1QkwsRUFBUSxDQUFBLEdBR0hBLENBQ1QsRUFFQU0saUJBQWtCLFNBQVVDLEVBQVVDLEdBQ3BDckQsSUFBSXNELEVBQVFoRixLQUFLTCxXQUFXMEIsSUFBSXlELENBQVEsRUFxQnhDLEdBakJJRSxJQUlZLHFCQUFWQSxFQUNGQSxFQUFRQyxPQUFPQyxZQUFZQyxhQUdyQkMsR0FEQUMsRUFBcUJMLEVBQU1NLE1BQU0sZUFBZSxJQUNaRCxFQUFtQixNQUV6Q0wsSUFFbEJBLEVBQVFBLEVBQU1PLFFBQVEsZ0JBQWlCUixFQUFXSyxFQUFZLElBS3RELGNBQVZKLEVBSUosT0FBT0EsQ0FDVCxFQVdBUSxjQUFlLFdBQ2I5RCxJQUFJcUMsRUFDSixJQUFNRCxFQUFZakUsU0FBU0MsTUFBTUYsUUFBUSxLQUFLLEVBQUVnRSxRQUFRLFdBQVk1RCxLQUFLb0IsVUFBVSxDQUFDLEVBUzlFMkQsR0FQRmpCLEVBQ0ZDLEVBQWFELEVBQVV6QyxJQUFJLFFBQVEsRUFFMUJyQixLQUFLTCxXQUFXb0UsV0FBV0MsUUFBUUYsVUFBVXpDLElBQUksUUFBUSxFQUFFUCxTQUNwRWlELEVBQWEvRCxLQUFLTCxXQUFXb0UsV0FBV0MsUUFBUUYsVUFBVXpDLElBQUksUUFBUSxFQUFFUCxRQUd2RGlELEVBQVcwQixPQUFPLFNBQVVDLEVBQU1DLEdBRW5ELE9BREFELEVBQUtDLEVBQU10RSxJQUFJLEtBQUssR0FBS3NFLEVBQU10RSxJQUFJLE9BQU8sRUFDbkNxRSxDQUNULEVBQUcsRUFBRSxHQUVMLE9BQU9YLENBQ1QsRUFFQWxDLDZDQUE4QyxTQUFVb0IsR0FDdEQsSUFBTWMsRUFBYS9FLEtBQUt3RixjQUFjLEVBT3RDLE9BTEF2QixFQUFVMkIsS0FBTzVGLEtBQUs2RSxpQkFBaUIsYUFBY0UsQ0FBVSxFQUMvRGQsRUFBVTRCLEdBQUs3RixLQUFLNkUsaUJBQWlCLFdBQVlFLENBQVUsRUFDM0RkLEVBQVU2QixRQUFVOUYsS0FBSzZFLGlCQUFpQixnQkFBaUJFLENBQVUsRUFDckVkLEVBQVU4QixLQUFPL0YsS0FBSzZFLGlCQUFpQixhQUFjRSxDQUFVLEVBRXhEZCxDQUNULEVBRUErQixnQkFBaUIsV0FDZmhHLEtBQUtOLGdCQUFnQnlCLE9BQU8sRUFDNUIsT0FBT25CLEtBQUtOLGVBQ2QsQ0FDRixDQUFDLEVBRUR1RyxPQUFPQyxRQUFRLEVBQUVDLE1BQU0sV0FDckIsT0FBTyxJQUFJN0csd0JBQ2IsQ0FBQyJ9
  • videomail-for-ninja-forms/trunk/target/js/videomail-client/index-min.js

    r3374730 r3379887  
    66})(globalThis, ()=>(()=>{
    77        var __webpack_modules__ = {
    8             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl": function(module1, __webpack_exports__, __webpack_require__) {
     8            "./node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl": function(module1, __webpack_exports__, __webpack_require__) {
    99                "use strict";
    1010                __webpack_require__.d(__webpack_exports__, {
    1111                    A: ()=>__WEBPACK_DEFAULT_EXPORT__
    1212                });
    13                 var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js");
    14                 var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
    15                 var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/api.js");
    16                 var _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__);
    17                 var ___CSS_LOADER_EXPORT___ = _node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_rslib_core_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());
     13                var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js");
     14                var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
     15                var _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/api.js");
     16                var _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__);
     17                var ___CSS_LOADER_EXPORT___ = _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());
    1818                ___CSS_LOADER_EXPORT___.push([
    1919                    module1.id,
     
    43924392                module1.exports = Function.prototype.bind || implementation;
    43934393            },
     4394            "./node_modules/generator-function/index.js": function(module1) {
     4395                "use strict";
     4396                const cached = (function*() {}).constructor;
     4397                module1.exports = ()=>cached;
     4398            },
    43944399            "./node_modules/get-intrinsic/index.js": function(module1, __unused_webpack_exports, __webpack_require__) {
    43954400                "use strict";
     
    51995204                var toStr = callBound('Object.prototype.toString');
    52005205                var fnToStr = callBound('Function.prototype.toString');
    5201                 var getGeneratorFunc = function() {
    5202                     if (!hasToStringTag) return false;
    5203                     try {
    5204                         return Function('return function*() {}')();
    5205                     } catch (e) {}
    5206                 };
    5207                 var GeneratorFunction;
     5206                var getGeneratorFunction = __webpack_require__("./node_modules/generator-function/index.js");
    52085207                module1.exports = function(fn) {
    52095208                    if ('function' != typeof fn) return false;
     
    52145213                    }
    52155214                    if (!getProto) return false;
    5216                     if (void 0 === GeneratorFunction) {
    5217                         var generatorFunc = getGeneratorFunc();
    5218                         GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;
    5219                     }
    5220                     return getProto(fn) === GeneratorFunction;
     5215                    var GeneratorFunction = getGeneratorFunction();
     5216                    return GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;
    52215217                };
    52225218            },
     
    60116007                    plainObjects: false,
    60126008                    strictDepth: false,
    6013                     strictNullHandling: false
     6009                    strictNullHandling: false,
     6010                    throwOnLimitExceeded: false
    60146011                };
    60156012                var interpretNumericEntities = function(str) {
     
    60186015                    });
    60196016                };
    6020                 var parseArrayValue = function(val, options) {
     6017                var parseArrayValue = function(val, options, currentArrayLength) {
    60216018                    if (val && 'string' == typeof val && options.comma && val.indexOf(',') > -1) return val.split(',');
     6019                    if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (1 === options.arrayLimit ? '' : 's') + ' allowed in an array.');
    60226020                    return val;
    60236021                };
     
    60316029                    cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');
    60326030                    var limit = options.parameterLimit === 1 / 0 ? void 0 : options.parameterLimit;
    6033                     var parts = cleanStr.split(options.delimiter, limit);
     6031                    var parts = cleanStr.split(options.delimiter, options.throwOnLimitExceeded ? limit + 1 : limit);
     6032                    if (options.throwOnLimitExceeded && parts.length > limit) throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (1 === limit ? '' : 's') + ' allowed.');
    60346033                    var skipIndex = -1;
    60356034                    var i;
     
    60476046                        var bracketEqualsPos = part.indexOf(']=');
    60486047                        var pos = -1 === bracketEqualsPos ? part.indexOf('=') : bracketEqualsPos + 1;
    6049                         var key, val;
     6048                        var key;
     6049                        var val;
    60506050                        if (-1 === pos) {
    60516051                            key = options.decoder(part, defaults.decoder, charset, 'key');
     
    60536053                        } else {
    60546054                            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');
    6055                             val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options), function(encodedVal) {
     6055                            val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options, isArray(obj[key]) ? obj[key].length : 0), function(encodedVal) {
    60566056                                return options.decoder(encodedVal, defaults.decoder, charset, 'value');
    60576057                            });
    60586058                        }
    6059                         if (val && options.interpretNumericEntities && 'iso-8859-1' === charset) val = interpretNumericEntities(val);
     6059                        if (val && options.interpretNumericEntities && 'iso-8859-1' === charset) val = interpretNumericEntities(String(val));
    60606060                        if (part.indexOf('[]=') > -1) val = isArray(val) ? [
    60616061                            val
     
    60686068                };
    60696069                var parseObject = function(chain, val, options, valuesParsed) {
    6070                     var leaf = valuesParsed ? val : parseArrayValue(val, options);
     6070                    var currentArrayLength = 0;
     6071                    if (chain.length > 0 && '[]' === chain[chain.length - 1]) {
     6072                        var parentKey = chain.slice(0, -1).join('');
     6073                        currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;
     6074                    }
     6075                    var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);
    60716076                    for(var i = chain.length - 1; i >= 0; --i){
    60726077                        var obj;
    60736078                        var root = chain[i];
    6074                         if ('[]' === root && options.parseArrays) obj = options.allowEmptyArrays && ('' === leaf || options.strictNullHandling && null === leaf) ? [] : [].concat(leaf);
     6079                        if ('[]' === root && options.parseArrays) obj = options.allowEmptyArrays && ('' === leaf || options.strictNullHandling && null === leaf) ? [] : utils.combine([], leaf);
    60756080                        else {
    6076                             obj = options.plainObjects ? Object.create(null) : {};
     6081                            obj = options.plainObjects ? {
     6082                                __proto__: null
     6083                            } : {};
    60776084                            var cleanRoot = '[' === root.charAt(0) && ']' === root.charAt(root.length - 1) ? root.slice(1, -1) : root;
    60786085                            var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;
     
    61256132                    if (null !== opts.decoder && void 0 !== opts.decoder && 'function' != typeof opts.decoder) throw new TypeError('Decoder has to be a function.');
    61266133                    if (void 0 !== opts.charset && 'utf-8' !== opts.charset && 'iso-8859-1' !== opts.charset) throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');
     6134                    if (void 0 !== opts.throwOnLimitExceeded && 'boolean' != typeof opts.throwOnLimitExceeded) throw new TypeError('`throwOnLimitExceeded` option must be a boolean');
    61276135                    var charset = void 0 === opts.charset ? defaults.charset : opts.charset;
    61286136                    var duplicates = void 0 === opts.duplicates ? defaults.duplicates : opts.duplicates;
     
    61496157                        plainObjects: 'boolean' == typeof opts.plainObjects ? opts.plainObjects : defaults.plainObjects,
    61506158                        strictDepth: 'boolean' == typeof opts.strictDepth ? !!opts.strictDepth : defaults.strictDepth,
    6151                         strictNullHandling: 'boolean' == typeof opts.strictNullHandling ? opts.strictNullHandling : defaults.strictNullHandling
     6159                        strictNullHandling: 'boolean' == typeof opts.strictNullHandling ? opts.strictNullHandling : defaults.strictNullHandling,
     6160                        throwOnLimitExceeded: 'boolean' == typeof opts.throwOnLimitExceeded ? opts.throwOnLimitExceeded : false
    61526161                    };
    61536162                };
    61546163                module1.exports = function(str, opts) {
    61556164                    var options = normalizeParseOptions(opts);
    6156                     if ('' === str || null == str) return options.plainObjects ? Object.create(null) : {};
     6165                    if ('' === str || null == str) return options.plainObjects ? {
     6166                        __proto__: null
     6167                    } : {};
    61576168                    var tempObj = 'string' == typeof str ? parseValues(str, options) : str;
    6158                     var obj = options.plainObjects ? Object.create(null) : {};
     6169                    var obj = options.plainObjects ? {
     6170                        __proto__: null
     6171                    } : {};
    61596172                    var keys = Object.keys(tempObj);
    61606173                    for(var i = 0; i < keys.length; ++i){
     
    62016214                    charset: 'utf-8',
    62026215                    charsetSentinel: false,
     6216                    commaRoundTrip: false,
    62036217                    delimiter: '&',
    62046218                    encode: true,
     
    62066220                    encoder: utils.encode,
    62076221                    encodeValuesOnly: false,
     6222                    filter: void 0,
    62086223                    format: defaultFormat,
    62096224                    formatter: formats.formatters[defaultFormat],
     
    62676282                        objKeys = sort ? keys.sort(sort) : keys;
    62686283                    }
    6269                     var encodedPrefix = encodeDotInKeys ? prefix.replace(/\./g, '%2E') : prefix;
     6284                    var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, '%2E') : String(prefix);
    62706285                    var adjustedPrefix = commaRoundTrip && isArray(obj) && 1 === obj.length ? encodedPrefix + '[]' : encodedPrefix;
    62716286                    if (allowEmptyArrays && isArray(obj) && 0 === obj.length) return adjustedPrefix + '[]';
    62726287                    for(var j = 0; j < objKeys.length; ++j){
    62736288                        var key = objKeys[j];
    6274                         var value = 'object' == typeof key && void 0 !== key.value ? key.value : obj[key];
     6289                        var value = 'object' == typeof key && key && void 0 !== key.value ? key.value : obj[key];
    62756290                        if (!skipNulls || null !== value) {
    6276                             var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\./g, '%2E') : key;
     6291                            var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, '%2E') : String(key);
    62776292                            var keyPrefix = isArray(obj) ? 'function' == typeof generateArrayPrefix ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');
    62786293                            sideChannel.set(object, step);
     
    63106325                        charset: charset,
    63116326                        charsetSentinel: 'boolean' == typeof opts.charsetSentinel ? opts.charsetSentinel : defaults.charsetSentinel,
    6312                         commaRoundTrip: opts.commaRoundTrip,
     6327                        commaRoundTrip: !!opts.commaRoundTrip,
    63136328                        delimiter: void 0 === opts.delimiter ? defaults.delimiter : opts.delimiter,
    63146329                        encode: 'boolean' == typeof opts.encode ? opts.encode : defaults.encode,
     
    63466361                    for(var i = 0; i < objKeys.length; ++i){
    63476362                        var key = objKeys[i];
    6348                         if (!options.skipNulls || null !== obj[key]) pushToArray(keys, stringify(obj[key], key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));
     6363                        var value = obj[key];
     6364                        if (!options.skipNulls || null !== value) pushToArray(keys, stringify(value, key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));
    63496365                    }
    63506366                    var joined = keys.join(options.delimiter);
     
    63776393                };
    63786394                var arrayToObject = function(source, options) {
    6379                     var obj = options && options.plainObjects ? Object.create(null) : {};
     6395                    var obj = options && options.plainObjects ? {
     6396                        __proto__: null
     6397                    } : {};
    63806398                    for(var i = 0; i < source.length; ++i)if (void 0 !== source[i]) obj[i] = source[i];
    63816399                    return obj;
     
    63836401                var merge = function merge(target, source, options) {
    63846402                    if (!source) return target;
    6385                     if ('object' != typeof source) {
     6403                    if ('object' != typeof source && 'function' != typeof source) {
    63866404                        if (isArray(target)) target.push(source);
    63876405                        else if (!target || 'object' != typeof target) return [
     
    64206438                    }, target);
    64216439                };
    6422                 var decode = function(str, decoder, charset) {
     6440                var decode = function(str, defaultDecoder, charset) {
    64236441                    var strWithoutPlus = str.replace(/\+/g, ' ');
    64246442                    if ('iso-8859-1' === charset) return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
     
    1018810206            "?9936": function() {},
    1018910207            "?5f55": function() {},
    10190             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/api.js": function(module1) {
     10208            "./node_modules/@rsbuild/core/compiled/css-loader/api.js": function(module1) {
    1019110209                "use strict";
    1019210210                module1.exports = function(cssWithMappingToString) {
     
    1024210260                };
    1024310261            },
    10244             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js": function(module1) {
     10262            "./node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js": function(module1) {
    1024510263                "use strict";
    1024610264                module1.exports = function(i) {
     
    1024810266                };
    1024910267            },
    10250             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js": function(module1) {
     10268            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js": function(module1) {
    1025110269                "use strict";
    1025210270                var stylesInDOM = [];
     
    1032710345                };
    1032810346            },
    10329             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js": function(module1) {
     10347            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js": function(module1) {
    1033010348                "use strict";
    1033110349                var memo = {};
     
    1034910367                module1.exports = insertBySelector;
    1035010368            },
    10351             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js": function(module1) {
     10369            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js": function(module1) {
    1035210370                "use strict";
    1035310371                function insertStyleElement(options) {
     
    1035910377                module1.exports = insertStyleElement;
    1036010378            },
    10361             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js": function(module1, __unused_webpack_exports, __webpack_require__) {
     10379            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js": function(module1, __unused_webpack_exports, __webpack_require__) {
    1036210380                "use strict";
    1036310381                function setAttributesWithoutAttributes(styleElement) {
     
    1036710385                module1.exports = setAttributesWithoutAttributes;
    1036810386            },
    10369             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js": function(module1) {
     10387            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js": function(module1) {
    1037010388                "use strict";
    1037110389                function apply(styleElement, options, obj) {
     
    1040410422                module1.exports = domAPI;
    1040510423            },
    10406             "./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js": function(module1) {
     10424            "./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js": function(module1) {
    1040710425                "use strict";
    1040810426                function styleTagTransform(css, styleElement) {
     
    1064910667            var client_default = /*#__PURE__*/ __webpack_require__.n(client);
    1065010668            var package_namespaceObject = {
    10651                 rE: "11.4.9"
     10669                rE: "11.5.2"
    1065210670            };
    1065310671            var defined = __webpack_require__("./node_modules/defined/index.js");
    1065410672            var defined_default = /*#__PURE__*/ __webpack_require__.n(defined);
    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 = [
     10673            var LIBVERSION = '2.0.6', UA_MAX_LENGTH = 500, USER_AGENT = 'user-agent', EMPTY = '', UNKNOWN = '?', TYPEOF = {
     10674                FUNCTION: 'function',
     10675                OBJECT: 'object',
     10676                STRING: 'string',
     10677                UNDEFINED: 'undefined'
     10678            }, BROWSER = 'browser', CPU = 'cpu', DEVICE = 'device', ENGINE = 'engine', OS = 'os', 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 = 'sec-ch-ua', CH_FULL_VER_LIST = CH + '-full-version-list', CH_ARCH = CH + '-arch', CH_BITNESS = CH + '-' + BITNESS, CH_FORM_FACTORS = CH + '-form-factors', CH_MOBILE = CH + '-' + MOBILE, CH_MODEL = CH + '-' + MODEL, CH_PLATFORM = CH + '-' + PLATFORM, CH_PLATFORM_VER = CH_PLATFORM + '-version', CH_ALL_VALUES = [
    1065610679                BRANDS,
    1065710680                FULLVERLIST,
     
    1066410687                BITNESS
    1066510688            ], AMAZON = 'Amazon', APPLE = 'Apple', ASUS = 'ASUS', BLACKBERRY = 'BlackBerry', GOOGLE = 'Google', HUAWEI = 'Huawei', LENOVO = 'Lenovo', HONOR = 'Honor', LG = 'LG', MICROSOFT = 'Microsoft', MOTOROLA = 'Motorola', NVIDIA = 'Nvidia', ONEPLUS = 'OnePlus', OPPO = 'OPPO', SAMSUNG = 'Samsung', SHARP = 'Sharp', SONY = 'Sony', XIAOMI = 'Xiaomi', ZEBRA = 'Zebra', CHROME = 'Chrome', CHROMIUM = 'Chromium', CHROMECAST = 'Chromecast', EDGE = 'Edge', FIREFOX = 'Firefox', OPERA = 'Opera', FACEBOOK = 'Facebook', SOGOU = 'Sogou', PREFIX_MOBILE = 'Mobile ', SUFFIX_BROWSER = ' Browser', WINDOWS = 'Windows';
    10666             var isWindow = typeof window !== UNDEF_TYPE, NAVIGATOR = isWindow && window.navigator ? window.navigator : void 0, NAVIGATOR_UADATA = NAVIGATOR && NAVIGATOR.userAgentData ? NAVIGATOR.userAgentData : void 0;
     10689            var isWindow = typeof window !== TYPEOF.UNDEFINED, NAVIGATOR = isWindow && window.navigator ? window.navigator : void 0, NAVIGATOR_UADATA = NAVIGATOR && NAVIGATOR.userAgentData ? NAVIGATOR.userAgentData : void 0;
    1066710690            var extend = function(defaultRgx, extensions) {
    1066810691                var mergedRgx = {};
     
    1067910702                return enums;
    1068010703            }, has = function(str1, str2) {
    10681                 if (typeof str1 === OBJ_TYPE && str1.length > 0) {
     10704                if (typeof str1 === TYPEOF.OBJECT && str1.length > 0) {
    1068210705                    for(var i in str1)if (lowerize(str2) == lowerize(str1[i])) return true;
    1068310706                    return false;
     
    1068710710                for(var prop in obj)return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);
    1068810711            }, isString = function(val) {
    10689                 return typeof val === STR_TYPE;
     10712                return typeof val === TYPEOF.STRING;
    1069010713            }, itemListToArray = function(header) {
    1069110714                if (!header) return;
     
    1070710730                for(var i in arr)if (arr.hasOwnProperty(i)) {
    1070810731                    var propName = arr[i];
    10709                     if (typeof propName == OBJ_TYPE && 2 == propName.length) this[propName[0]] = propName[1];
     10732                    if (typeof propName == TYPEOF.OBJECT && 2 == propName.length) this[propName[0]] = propName[1];
    1071010733                    else this[propName] = void 0;
    1071110734                }
     
    1071610739                return strip(/\\?\"/g, str);
    1071710740            }, ua_parser_trim = function(str, len) {
    10718                 if (isString(str)) {
    10719                     str = strip(/^\s\s*/, str);
    10720                     return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
    10721                 }
     10741                str = strip(/^\s\s*/, String(str));
     10742                return typeof len === TYPEOF.UNDEFINED ? str : str.substring(0, len);
    1072210743            };
    1072310744            var rgxMapper = function(ua, arrays) {
     
    1073310754                            match = matches[++k];
    1073410755                            q = props[p];
    10735                             if (typeof q === OBJ_TYPE && q.length > 0) {
    10736                                 if (2 === q.length) if (typeof q[1] == FUNC_TYPE) this[q[0]] = q[1].call(this, match);
     10756                            if (typeof q === TYPEOF.OBJECT && q.length > 0) {
     10757                                if (2 === q.length) if (typeof q[1] == TYPEOF.FUNCTION) this[q[0]] = q[1].call(this, match);
    1073710758                                else this[q[0]] = q[1];
    10738                                 else if (q.length >= 3) if (typeof q[1] !== FUNC_TYPE || q[1].exec && q[1].test) {
     10759                                else if (q.length >= 3) if (typeof q[1] !== TYPEOF.FUNCTION || q[1].exec && q[1].test) {
    1073910760                                    if (3 == q.length) this[q[0]] = match ? match.replace(q[1], q[2]) : void 0;
    1074010761                                    else if (4 == q.length) this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : void 0;
     
    1075010771                }
    1075110772            }, strMapper = function(str, map) {
    10752                 for(var i in map)if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {
     10773                for(var i in map)if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {
    1075310774                    for(var j = 0; j < map[i].length; j++)if (has(map[i][j], str)) return i === UNKNOWN ? void 0 : i;
    1075410775                } else if (has(map[i], str)) return i === UNKNOWN ? void 0 : i;
     
    1090110922                        /(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,
    1090210923                        /(?:ms|\()(ie) ([\w\.]+)/i,
    10903                         /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser)\/([-\w\.]+)/i,
    10904                         /(heytap|ovi|115|surf)browser\/([\d\.]+)/i,
     10924                        /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser|palemoon)\/([-\w\.]+)/i,
     10925                        /(heytap|ovi|115|surf|qwant)browser\/([\d\.]+)/i,
     10926                        /(qwant)(?:ios|mobile)\/([\d\.]+)/i,
    1090510927                        /(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i
    1090610928                    ],
     
    1117911201                        /(alipay)client\/([\w\.]+)/i,
    1118011202                        /(twitter)(?:and| f.+e\/([\w\.]+))/i,
     11203                        /(bing)(?:web|sapphire)\/([\w\.]+)/i,
    1118111204                        /(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i
    1118211205                    ],
     
    1139011413                        /(swiftfox)/i,
    1139111414                        /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
    11392                         /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
     11415                        /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|basilisk|waterfox)\/([-\w\.]+)$/i,
    1139311416                        /(firefox)\/([\w\.]+)/i,
    11394                         /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
     11417                        /(mozilla)\/([\w\.]+(?= .+rv\:.+gecko\/\d+)|[0-4][\w\.]+(?!.+compatible))/i,
    1139511418                        /(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
    1139611419                        /\b(links) \(([\w\.]+)/i
     
    1148611509                    ],
    1148711510                    [
     11511                        /mc680.0/i
     11512                    ],
     11513                    [
     11514                        [
     11515                            ARCHITECTURE,
     11516                            '68k'
     11517                        ]
     11518                    ],
     11519                    [
    1148811520                        /winnt.+\[axp/i
    1148911521                    ],
     
    1152711559                    ],
    1152811560                    [
    11529                         /(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
     11561                        /(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i
    1153011562                    ],
    1153111563                    [
     
    1154111573                    ],
    1154211574                    [
    11543                         /\((ipad);[-\w\),; ]+apple/i,
    11544                         /applecoremedia\/[\w\.]+ \((ipad)/i,
    11545                         /\b(ipad)\d\d?,\d\d?[;\]].+ios/i
     11575                        /\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,
     11576                        /\b(ipad)[\d,]*[;\] ].+(mac |i(pad)?)os/i
    1154611577                    ],
    1154711578                    [
     
    1162311654                    ],
    1162411655                    [
    11625                         /(?:huawei)([-\w ]+)[;\)]/i,
    11626                         /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
     11656                        /(?:huawei) ?([-\w ]+)[;\)]/i,
     11657                        /\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i
    1162711658                    ],
    1162811659                    [
     
    1163911670                    [
    1164011671                        /oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
    11641                         /\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
     11672                        /\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
    1164211673                    ],
    1164311674                    [
     
    1166211693                        /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
    1166311694                        /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
    11664                         /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i,
     11695                        /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
    1166511696                        / ([\w ]+) miui\/v?\d/i
    1166611697                    ],
     
    1188011911                    [
    1188111912                        /(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
    11882                         /nokia[-_ ]?(([-\w\. ]*))/i
     11913                        /nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i
    1188311914                    ],
    1188411915                    [
     
    1201112042                    [
    1201212043                        /\b((?:bb[a-f]|st[hv])100-\d)/i,
    12013                         /\(bb10; (\w+)/i
     12044                        /(?:blackberry|\(bb10;) (\w+)/i
    1201412045                    ],
    1201512046                    [
     
    1229212323                    [
    1229312324                        /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
    12294                         /; (blu|hmd|imo|infinix|lava|oneplus|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
     12325                        /; (blu|hmd|imo|infinix|lava|oneplus|tcl|wiko)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,
    1229512326                        /(hp) ([\w ]+\w)/i,
    1229612327                        /(microsoft); (lumia[\w ]+)/i,
    1229712328                        /(oppo) ?([\w ]+) bui/i,
     12329                        /(hisense) ([ehv][\w ]+)\)/i,
    1229812330                        /droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
    1229912331                    ],
     
    1296813000                    ],
    1296913001                    [
    12970                         /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i
     13002                        /droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew|; hmsc).+?(mobile|vr|\d) safari/i
    1297113003                    ],
    1297213004                    [
     
    1311813150                    [
    1311913151                        /[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
    13120                         /(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
     13152                        /(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w\.]+)/i,
    1312113153                        /cfnetwork\/.+darwin/i
    1312213154                    ],
     
    1336113393                setProps.call(props.init, [
    1336213394                    [
    13363                         UA_BROWSER,
     13395                        BROWSER,
    1336413396                        [
    1336513397                            NAME,
     
    1337013402                    ],
    1337113403                    [
    13372                         UA_CPU,
     13404                        CPU,
    1337313405                        [
    1337413406                            ARCHITECTURE
     
    1337613408                    ],
    1337713409                    [
    13378                         UA_DEVICE,
     13410                        DEVICE,
    1337913411                        [
    1338013412                            TYPE,
     
    1338413416                    ],
    1338513417                    [
    13386                         UA_ENGINE,
     13418                        ENGINE,
    1338713419                        [
    1338813420                            NAME,
     
    1339113423                    ],
    1339213424                    [
    13393                         UA_OS,
     13425                        OS,
    1339413426                        [
    1339513427                            NAME,
     
    1340013432                setProps.call(props.isIgnore, [
    1340113433                    [
    13402                         UA_BROWSER,
     13434                        BROWSER,
    1340313435                        [
    1340413436                            VERSION,
     
    1340713439                    ],
    1340813440                    [
    13409                         UA_ENGINE,
     13441                        ENGINE,
    1341013442                        [
    1341113443                            VERSION
     
    1341313445                    ],
    1341413446                    [
    13415                         UA_OS,
     13447                        OS,
    1341613448                        [
    1341713449                            VERSION
     
    1342113453                setProps.call(props.isIgnoreRgx, [
    1342213454                    [
    13423                         UA_BROWSER,
     13455                        BROWSER,
    1342413456                        / ?browser$/i
    1342513457                    ],
    1342613458                    [
    13427                         UA_OS,
     13459                        OS,
    1342813460                        / ?os$/i
    1342913461                    ]
     
    1343113463                setProps.call(props.toString, [
    1343213464                    [
    13433                         UA_BROWSER,
     13465                        BROWSER,
    1343413466                        [
    1343513467                            NAME,
     
    1343813470                    ],
    1343913471                    [
    13440                         UA_CPU,
     13472                        CPU,
    1344113473                        [
    1344213474                            ARCHITECTURE
     
    1344413476                    ],
    1344513477                    [
    13446                         UA_DEVICE,
     13478                        DEVICE,
    1344713479                        [
    1344813480                            VENDOR,
     
    1345113483                    ],
    1345213484                    [
    13453                         UA_ENGINE,
     13485                        ENGINE,
    1345413486                        [
    1345513487                            NAME,
     
    1345813490                    ],
    1345913491                    [
    13460                         UA_OS,
     13492                        OS,
    1346113493                        [
    1346213494                            NAME,
     
    1348413516                    return item.detectFeature().get();
    1348513517                };
    13486                 if (itemType != UA_RESULT) {
     13518                if (itemType != RESULT) {
    1348713519                    IData.prototype.is = function(strToCheck) {
    1348813520                        var is = false;
    1348913521                        for(var i in this)if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {
    1349013522                            is = true;
    13491                             if (strToCheck != UNDEF_TYPE) break;
    13492                         } else if (strToCheck == UNDEF_TYPE && is) {
     13523                            if (strToCheck != TYPEOF.UNDEFINED) break;
     13524                        } else if (strToCheck == TYPEOF.UNDEFINED && is) {
    1349313525                            is = !is;
    1349413526                            break;
     
    1349813530                    IData.prototype.toString = function() {
    1349913531                        var str = EMPTY;
    13500                         for(var i in toString_props)if (typeof this[toString_props[i]] !== UNDEF_TYPE) str += (str ? ' ' : EMPTY) + this[toString_props[i]];
    13501                         return str || UNDEF_TYPE;
     13532                        for(var i in toString_props)if (typeof this[toString_props[i]] !== TYPEOF.UNDEFINED) str += (str ? ' ' : EMPTY) + this[toString_props[i]];
     13533                        return str || TYPEOF.UNDEFINED;
    1350213534                    };
    1350313535                }
     
    1352313555                    [
    1352413556                        BRANDS,
    13525                         itemListToArray(uach[CH_HEADER])
     13557                        itemListToArray(uach[CH])
    1352613558                    ],
    1352713559                    [
    1352813560                        FULLVERLIST,
    13529                         itemListToArray(uach[CH_HEADER_FULL_VER_LIST])
     13561                        itemListToArray(uach[CH_FULL_VER_LIST])
    1353013562                    ],
    1353113563                    [
    1353213564                        MOBILE,
    13533                         /\?1/.test(uach[CH_HEADER_MOBILE])
     13565                        /\?1/.test(uach[CH_MOBILE])
    1353413566                    ],
    1353513567                    [
    1353613568                        MODEL,
    13537                         stripQuotes(uach[CH_HEADER_MODEL])
     13569                        stripQuotes(uach[CH_MODEL])
    1353813570                    ],
    1353913571                    [
    1354013572                        PLATFORM,
    13541                         stripQuotes(uach[CH_HEADER_PLATFORM])
     13573                        stripQuotes(uach[CH_PLATFORM])
    1354213574                    ],
    1354313575                    [
    1354413576                        PLATFORMVER,
    13545                         stripQuotes(uach[CH_HEADER_PLATFORM_VER])
     13577                        stripQuotes(uach[CH_PLATFORM_VER])
    1354613578                    ],
    1354713579                    [
    1354813580                        ARCHITECTURE,
    13549                         stripQuotes(uach[CH_HEADER_ARCH])
     13581                        stripQuotes(uach[CH_ARCH])
    1355013582                    ],
    1355113583                    [
    1355213584                        FORMFACTORS,
    13553                         itemListToArray(uach[CH_HEADER_FORM_FACTORS])
     13585                        itemListToArray(uach[CH_FORM_FACTORS])
    1355413586                    ],
    1355513587                    [
    1355613588                        BITNESS,
    13557                         stripQuotes(uach[CH_HEADER_BITNESS])
     13589                        stripQuotes(uach[CH_BITNESS])
    1355813590                    ]
    1355913591                ]);
    13560                 else for(var prop in uach)if (this.hasOwnProperty(prop) && typeof uach[prop] !== UNDEF_TYPE) this[prop] = uach[prop];
     13592                else for(var prop in uach)if (this.hasOwnProperty(prop) && typeof uach[prop] !== TYPEOF.UNDEFINED) this[prop] = uach[prop];
    1356113593            }
    1356213594            function UAItem(itemType, ua, rgxMap, uaCH) {
     
    1357513607                this.detectFeature = function() {
    1357613608                    if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) switch(this.itemType){
    13577                         case UA_BROWSER:
    13578                             if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == FUNC_TYPE) this.set(NAME, 'Brave');
     13609                        case BROWSER:
     13610                            if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == TYPEOF.FUNCTION) this.set(NAME, 'Brave');
    1357913611                            break;
    13580                         case UA_DEVICE:
     13612                        case DEVICE:
    1358113613                            if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) this.set(TYPE, MOBILE);
    13582                             if ('Macintosh' == this.get(MODEL) && NAVIGATOR && typeof NAVIGATOR.standalone !== UNDEF_TYPE && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) this.set(MODEL, 'iPad').set(TYPE, TABLET);
     13614                            if ('Macintosh' == this.get(MODEL) && NAVIGATOR && typeof NAVIGATOR.standalone !== TYPEOF.UNDEFINED && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) this.set(MODEL, 'iPad').set(TYPE, TABLET);
    1358313615                            break;
    13584                         case UA_OS:
     13616                        case OS:
    1358513617                            if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);
    1358613618                            break;
    13587                         case UA_RESULT:
     13619                        case RESULT:
    1358813620                            var data = this.data;
    1358913621                            var detect = function(itemType) {
    1359013622                                return data[itemType].getItem().detectFeature().get();
    1359113623                            };
    13592                             this.set(UA_BROWSER, detect(UA_BROWSER)).set(UA_CPU, detect(UA_CPU)).set(UA_DEVICE, detect(UA_DEVICE)).set(UA_ENGINE, detect(UA_ENGINE)).set(UA_OS, detect(UA_OS));
     13624                            this.set(BROWSER, detect(BROWSER)).set(CPU, detect(CPU)).set(DEVICE, detect(DEVICE)).set(ENGINE, detect(ENGINE)).set(OS, detect(OS));
    1359313625                    }
    1359413626                    return this;
    1359513627                };
    1359613628                this.parseUA = function() {
    13597                     if (this.itemType != UA_RESULT) rgxMapper.call(this.data, this.ua, this.rgxMap);
    13598                     if (this.itemType == UA_BROWSER) this.set(MAJOR, majorize(this.get(VERSION)));
     13629                    if (this.itemType != RESULT) rgxMapper.call(this.data, this.ua, this.rgxMap);
     13630                    switch(this.itemType){
     13631                        case BROWSER:
     13632                            this.set(MAJOR, majorize(this.get(VERSION)));
     13633                            break;
     13634                        case OS:
     13635                            if ('iOS' == this.get(NAME) && '18.6' == this.get(VERSION)) {
     13636                                var realVersion = /\) Version\/([\d\.]+)/.exec(this.ua);
     13637                                if (realVersion && parseInt(realVersion[1].substring(0, 2), 10) >= 26) this.set(VERSION, realVersion[1]);
     13638                            }
     13639                            break;
     13640                    }
    1359913641                    return this;
    1360013642                };
     
    1360213644                    var uaCH = this.uaCH, rgxMap = this.rgxMap;
    1360313645                    switch(this.itemType){
    13604                         case UA_BROWSER:
    13605                         case UA_ENGINE:
     13646                        case BROWSER:
     13647                        case ENGINE:
    1360613648                            var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;
    1360713649                            if (brands) for(var i = 0; i < brands.length; i++){
    1360813650                                var brandName = brands[i].brand || brands[i], brandVersion = brands[i].version;
    13609                                 if (this.itemType == UA_BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) {
     13651                                if (this.itemType == BROWSER && !/not.a.brand/i.test(brandName) && (!prevName || /Chrom/.test(prevName) && brandName != CHROMIUM || prevName == EDGE && /WebView2/.test(brandName))) {
    1361013652                                    brandName = strMapper(brandName, browserHintsMap);
    1361113653                                    prevName = this.get(NAME);
     
    1361313655                                    prevName = brandName;
    1361413656                                }
    13615                                 if (this.itemType == UA_ENGINE && brandName == CHROMIUM) this.set(VERSION, brandVersion);
     13657                                if (this.itemType == ENGINE && brandName == CHROMIUM) this.set(VERSION, brandVersion);
    1361613658                            }
    1361713659                            break;
    13618                         case UA_CPU:
     13660                        case CPU:
    1361913661                            var archName = uaCH[ARCHITECTURE];
    1362013662                            if (archName) {
     
    1362313665                            }
    1362413666                            break;
    13625                         case UA_DEVICE:
     13667                        case DEVICE:
    1362613668                            if (uaCH[MOBILE]) this.set(TYPE, MOBILE);
    1362713669                            if (uaCH[MODEL]) {
     
    1364313685                            }
    1364413686                            break;
    13645                         case UA_OS:
     13687                        case OS:
    1364613688                            var osName = uaCH[PLATFORM];
    1364713689                            if (osName) {
     
    1365213694                            if (this.get(NAME) == WINDOWS && 'Xbox' == uaCH[MODEL]) this.set(NAME, 'Xbox').set(VERSION, void 0);
    1365313695                            break;
    13654                         case UA_RESULT:
     13696                        case RESULT:
    1365513697                            var data = this.data;
    1365613698                            var parse = function(itemType) {
    1365713699                                return data[itemType].getItem().setCH(uaCH).parseCH().get();
    1365813700                            };
    13659                             this.set(UA_BROWSER, parse(UA_BROWSER)).set(UA_CPU, parse(UA_CPU)).set(UA_DEVICE, parse(UA_DEVICE)).set(UA_ENGINE, parse(UA_ENGINE)).set(UA_OS, parse(UA_OS));
     13701                            this.set(BROWSER, parse(BROWSER)).set(CPU, parse(CPU)).set(DEVICE, parse(DEVICE)).set(ENGINE, parse(ENGINE)).set(OS, parse(OS));
    1366013702                    }
    1366113703                    return this;
     
    1368613728            }
    1368713729            function UAParser(ua, extensions, headers) {
    13688                 if (typeof ua === OBJ_TYPE) {
     13730                if (typeof ua === TYPEOF.OBJECT) {
    1368913731                    if (isExtensions(ua, true)) {
    13690                         if (typeof extensions === OBJ_TYPE) headers = extensions;
     13732                        if (typeof extensions === TYPEOF.OBJECT) headers = extensions;
    1369113733                        extensions = ua;
    1369213734                    } else {
     
    1369513737                    }
    1369613738                    ua = void 0;
    13697                 } else if (typeof ua === STR_TYPE && !isExtensions(extensions, true)) {
     13739                } else if (typeof ua === TYPEOF.STRING && !isExtensions(extensions, true)) {
    1369813740                    headers = extensions;
    1369913741                    extensions = void 0;
    1370013742                }
    13701                 if (headers) if (typeof headers.append === FUNC_TYPE) {
     13743                if (headers) if (typeof headers.append === TYPEOF.FUNCTION) {
    1370213744                    var kv = {};
    1370313745                    headers.forEach(function(v, k) {
     
    1371113753                }
    1371213754                if (!(this instanceof UAParser)) return new UAParser(ua, extensions, headers).getResult();
    13713                 var userAgent = typeof ua === STR_TYPE ? ua : headers && headers[USER_AGENT] ? headers[USER_AGENT] : NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : EMPTY, httpUACH = new UACHData(headers, true), regexMap = extensions ? extend(defaultRegexes, extensions) : defaultRegexes, createItemFunc = function(itemType) {
    13714                     if (itemType == UA_RESULT) return function() {
    13715                         return new UAItem(itemType, userAgent, regexMap, httpUACH).set('ua', userAgent).set(UA_BROWSER, this.getBrowser()).set(UA_CPU, this.getCPU()).set(UA_DEVICE, this.getDevice()).set(UA_ENGINE, this.getEngine()).set(UA_OS, this.getOS()).get();
     13755                var userAgent = typeof ua === TYPEOF.STRING ? ua : headers && headers[USER_AGENT] ? headers[USER_AGENT] : NAVIGATOR && NAVIGATOR.userAgent ? NAVIGATOR.userAgent : EMPTY, httpUACH = new UACHData(headers, true), regexMap = extensions ? extend(defaultRegexes, extensions) : defaultRegexes, createItemFunc = function(itemType) {
     13756                    if (itemType == RESULT) return function() {
     13757                        return new UAItem(itemType, userAgent, regexMap, httpUACH).set('ua', userAgent).set(BROWSER, this.getBrowser()).set(CPU, this.getCPU()).set(DEVICE, this.getDevice()).set(ENGINE, this.getEngine()).set(OS, this.getOS()).get();
    1371613758                    };
    1371713759                    return function() {
     
    1372213764                    [
    1372313765                        'getBrowser',
    13724                         createItemFunc(UA_BROWSER)
     13766                        createItemFunc(BROWSER)
    1372513767                    ],
    1372613768                    [
    1372713769                        'getCPU',
    13728                         createItemFunc(UA_CPU)
     13770                        createItemFunc(CPU)
    1372913771                    ],
    1373013772                    [
    1373113773                        'getDevice',
    13732                         createItemFunc(UA_DEVICE)
     13774                        createItemFunc(DEVICE)
    1373313775                    ],
    1373413776                    [
    1373513777                        'getEngine',
    13736                         createItemFunc(UA_ENGINE)
     13778                        createItemFunc(ENGINE)
    1373713779                    ],
    1373813780                    [
    1373913781                        'getOS',
    13740                         createItemFunc(UA_OS)
     13782                        createItemFunc(OS)
    1374113783                    ],
    1374213784                    [
    1374313785                        'getResult',
    13744                         createItemFunc(UA_RESULT)
     13786                        createItemFunc(RESULT)
    1374513787                    ],
    1374613788                    [
     
    1375313795                        'setUA',
    1375413796                        function(ua) {
    13755                             if (isString(ua)) userAgent = ua.length > UA_MAX_LENGTH ? ua_parser_trim(ua, UA_MAX_LENGTH) : ua;
     13797                            if (isString(ua)) userAgent = ua_parser_trim(ua, UA_MAX_LENGTH);
    1375613798                            return this;
    1375713799                        }
     
    1396114003                        screen.height,
    1396214004                        screen.colorDepth
    13963                     ].join("\xd7");
     14005                    ].join("×");
    1396414006                    if (screen.orientation) this.orientation = screen.orientation.type;
    1396514007                    this.err = errData?.err;
     
    1483014872                adjustFormOnBrowserError: true,
    1483114873                reportErrors: true,
     14874                disableFormWhenSubmitting: true,
    1483214875                fakeUaString: void 0,
    1483314876                versions: {
     
    1489314936            }
    1489414937            const mergeWithDefaultOptions = mergeWithDefaultOptions_mergeWithDefaultOptions;
    14895             var injectStylesIntoStyleTag = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js");
     14938            var injectStylesIntoStyleTag = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/injectStylesIntoStyleTag.js");
    1489614939            var injectStylesIntoStyleTag_default = /*#__PURE__*/ __webpack_require__.n(injectStylesIntoStyleTag);
    14897             var styleDomAPI = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js");
     14940            var styleDomAPI = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleDomAPI.js");
    1489814941            var styleDomAPI_default = /*#__PURE__*/ __webpack_require__.n(styleDomAPI);
    14899             var insertBySelector = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js");
     14942            var insertBySelector = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertBySelector.js");
    1490014943            var insertBySelector_default = /*#__PURE__*/ __webpack_require__.n(insertBySelector);
    14901             var setAttributesWithoutAttributes = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js");
     14944            var setAttributesWithoutAttributes = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/setAttributesWithoutAttributes.js");
    1490214945            var setAttributesWithoutAttributes_default = /*#__PURE__*/ __webpack_require__.n(setAttributesWithoutAttributes);
    14903             var insertStyleElement = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js");
     14946            var insertStyleElement = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/insertStyleElement.js");
    1490414947            var insertStyleElement_default = /*#__PURE__*/ __webpack_require__.n(insertStyleElement);
    14905             var styleTagTransform = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js");
     14948            var styleTagTransform = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js");
    1490614949            var styleTagTransform_default = /*#__PURE__*/ __webpack_require__.n(styleTagTransform);
    14907             var main = __webpack_require__("./node_modules/@rslib/core/node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl");
     14950            var main = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl");
    1490814951            var main_options = {};
    1490914952            main_options.styleTagTransform = styleTagTransform_default();
     
    1546415507                        this.facingModeElement = document.createElement("button");
    1546515508                        this.facingModeElement.classList.add("facingMode");
    15466                         this.facingModeElement.innerHTML = "\u293E";
     15509                        this.facingModeElement.innerHTML = "";
    1546715510                        this.facingModeElement.onclick = (e)=>{
    1546815511                            e?.preventDefault();
     
    1581115854                        lead += `${this.options.text.limitReached}.<br/>`;
    1581215855                    }
    15813                     lead += `${this.options.text.sending} \u{2026}`;
     15856                    lead += `${this.options.text.sending} `;
    1581415857                    this.notify(lead, void 0, {
    1581515858                        stillWait: true,
     
    1581815861                }
    1581915862                onConnecting() {
    15820                     this.notify("Connecting \u2026");
     15863                    this.notify("Connecting ");
    1582115864                }
    1582215865                onLoadingUserMedia() {
    15823                     this.notify("Loading webcam \u2026");
     15866                    this.notify("Loading webcam ");
    1582415867                }
    1582515868                onProgress(frameProgress, sampleProgress) {
     
    1583315876                onBeginVideoEncoding() {
    1583415877                    this.visuals.beginWaiting();
    15835                     const lead = `${this.options.text.encoding} \u{2026}`;
     15878                    const lead = `${this.options.text.encoding} `;
    1583615879                    this.notify(lead, void 0, {
    1583715880                        stillWait: true,
     
    1586515908                    });
    1586615909                    this.on("UNLOADING", ()=>{
    15867                         this.notify("Unloading \u2026");
     15910                        this.notify("Unloading ");
    1586815911                    });
    1586915912                    this.on("DISCONNECTED", ()=>{
     
    1626216305            ];
    1626316306            const mediaEvents = MEDIA_EVENTS;
    16264             const EVENT_ASCII = "|\u2014O\u2014|";
     16307            const EVENT_ASCII = "|—O—|";
    1626516308            class UserMedia extends util_Despot {
    1626616309                recorder;
     
    1655216595            const visuals_userMedia = UserMedia;
    1655316596            var Buffer = __webpack_require__("./node_modules/buffer/index.js")["Buffer"];
    16554             const PIPE_SYMBOL = "\xb0\xba\xa4\xf8,\xb8\xb8,\xf8\xa4\xba\xb0`\xb0\xba\xa4\xf8,\xb8,\xf8\xa4\xb0\xba\xa4\xf8,\xb8\xb8,\xf8\xa4\xba\xb0`\xb0\xba\xa4\xf8,\xb8 ";
     16597            const PIPE_SYMBOL = "°º¤ø,¸¸,ø¤º°`°º¤ø,¸,ø¤°º¤ø,¸¸,ø¤º°`°º¤ø,¸ ";
    1655516598            class Recorder extends util_Despot {
    1655616599                visuals;
     
    1673516778                    const width = this.getRecorderWidth(true);
    1673616779                    const height = this.getRecorderHeight(true);
     16780                    const duration = args.duration ?? -1;
    1673716781                    this.emit("PREVIEW", {
    1673816782                        key: this.key,
    1673916783                        width,
    1674016784                        height,
    16741                         hasAudio
     16785                        hasAudio,
     16786                        duration
    1674216787                    });
    1674316788                    if (this.stopTime) this.waitingTime = Date.now() - this.stopTime;
     
    1705217097                        }
    1705317098                    } else {
    17054                         this.options.logger.debug(`Reconnecting for the command ${command} \u{2026}`);
     17099                        this.options.logger.debug(`Reconnecting for the command ${command} `);
    1705517100                        this.initSocket(()=>{
    1705617101                            this.writeCommand(command, args);
     
    1784017885                }
    1784117886                removeChild(child) {
    17842                     this.visualsElement?.removeChild(child);
     17887                    child.remove();
    1784317888                }
    1784417889                reset() {
     
    1833218377                                valid = false;
    1833318378                                if (name) {
    18334                                     whyInvalid = `Input "${name}" seems wrong \u{1F914}`;
     18379                                    whyInvalid = `Input "${name}" seems wrong 🤔`;
    1833518380                                    invalidData = {
    1833618381                                        [name]: invalidInput.getAttribute("value")
     
    1834018385                                if (this.buttonsAreReady() || this.isRecording() || this.isPaused() || this.isCountingDown()) {
    1834118386                                    valid = false;
    18342                                     whyInvalid = "Don't forget to record a video \uD83D\uDE09";
     18387                                    whyInvalid = "Don't forget to record a video 😉";
    1834318388                                    invalidData = {
    1834418389                                        key: void 0
     
    1840818453                        this.options.logger.debug(`Container: submitAll(${output})`);
    1840918454                        this.beginWaiting();
    18410                         this.disableForm(true);
     18455                        if (this.options.disableFormWhenSubmitting) this.disableForm(true);
    1841118456                        this.emit("SUBMITTING");
    1841218457                        if (hasVideomailKey) {
  • videomail-for-ninja-forms/trunk/target/php/config/videomail-field-settings.php

    r3257516 r3379887  
    1919    'width' => 'one-half',
    2020    'group' => 'primary',
    21     'value' => TRUE,
     21    'value' => true,
    2222    'help' => __('The audio feature is in beta and needs feedback for improvement. Otherwise leave it disabled and stick to Sign Language, grins')
    2323  ),
     
    4141    'value' => '',
    4242    'width' => 'full',
    43     'use_merge_tags' => TRUE
     43    'use_merge_tags' => true
    4444  ),
    4545
     
    5252    'value' => '',
    5353    'width' => 'full',
    54     'use_merge_tags' => TRUE
     54    'use_merge_tags' => true
    5555  ),
    5656
     
    6363    'value' => '',
    6464    'width' => 'full',
    65     'use_merge_tags' => TRUE
     65    'use_merge_tags' => true
    6666  ),
    6767
     
    7474    'value' => '',
    7575    'width' => 'full',
    76     'use_merge_tags' => TRUE
     76    'use_merge_tags' => true
    7777  ),
    7878
     
    120120    'width' => 'one-half',
    121121    'group' => 'display',
    122     'value' => FALSE,
     122    'value' => false,
    123123    'help' => __('Stretch video to full width of the parent container.', 'videomail-for-ninja-forms')
    124124  ),
     
    130130    'width' => 'one-half',
    131131    'group' => 'advanced',
    132     'value' => FALSE,
     132    'value' => false,
    133133    'help' => __('Show verbose comments in the developer console.', 'videomail-for-ninja-forms')
    134134  ),
     
    140140    'width' => 'one-half',
    141141    'group' => 'advanced',
    142     'value' => FALSE,
     142    'value' => false,
    143143    'help' => __('With this option enabled, the user will not be asked for camera permissions unless the record button is clicked. When disabled (default), permissions are being asked on page load which is preferred. This option is only for when the there is a conflict with the application when already many other events occur on page load.', 'videomail-for-ninja-forms')
     144  ),
     145
     146  'disable_form_when_submitting' => array(
     147    'name' => 'disable_form_when_submitting',
     148    'type' => 'toggle',
     149    'label' => __('Disable form inputs once submitted', 'videomail-for-ninja-forms'),
     150    'width' => 'one-half',
     151    'group' => 'advanced',
     152    'value' => false,
     153    'help' => __('With this option enabled, all form inputs become disabled once submitted and cannot be changed which the ideal during any submissions. Unfortunately WordPress plugins can overlap with each other the submit button, hence it is disabled by default. Only enable if you are sure and have fully tested it.', 'videomail-for-ninja-forms')
    144154  )
    145155));
  • videomail-for-ninja-forms/trunk/target/php/videomail.php

    r3374730 r3379887  
    33
    44  const NAME = 'Videomail';
    5   const VERSION = '8.2.0';
     5  const VERSION = '8.3.1';
    66  const AUTHOR = 'Michael Heuberger + Kyle B. Johnson';
    77  const SLUG = 'videomail';
  • videomail-for-ninja-forms/trunk/videomail-for-ninja-forms.php

    r3374730 r3379887  
    44  Plugin URI: https://github.com/binarykitchen/videomail-for-ninja-forms
    55  Description: Express yourself in more than just words. Record and send a short video from your webcam.
    6   Version: 8.2.0
     6  Version: 8.3.1
    77  Author: Michael Heuberger + Kyle B. Johnson
    88  Author URI: https://videomail.io
     
    1414
    1515if (version_compare(get_option('ninja_forms_version', '0.0.0'), '3', '<') ||
    16     get_option('ninja_forms_load_deprecated', FALSE)) {
     16    get_option('ninja_forms_load_deprecated', false)) {
    1717
    1818  return;
Note: See TracChangeset for help on using the changeset viewer.