/*! elementor - v3.27.0 - 16-02-2025 */ /*! For license information please see editor-modules.min.js.LICENSE.txt */ (()=>{var t={24617:(t,r,o)=>{"use strict";var i=o(12470).__,a=o(96784);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;a(o(64537));var l=a(o(10564)),u=a(o(18821)),c=a(o(39805)),d=a(o(40989)),p=a(o(15118)),h=a(o(29402)),v=a(o(87861)),y=a(o(85707)),g=a(o(82946)),m=a(o(7568)),_=a(o(87705));function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t})()}var b=r.default=function(t){function Container(t){var r;if((0,c.default)(this,Container),r=function _callSuper(t,r,o){return r=(0,h.default)(r),(0,p.default)(t,_isNativeReflectConstruct()?Reflect.construct(r,o||[],(0,h.default)(t).constructor):r.apply(t,o))}(this,Container,[t]),(0,y.default)(r,"type",void 0),(0,y.default)(r,"id",void 0),(0,y.default)(r,"document",void 0),(0,y.default)(r,"model",void 0),(0,y.default)(r,"settings",void 0),(0,y.default)(r,"view",void 0),(0,y.default)(r,"parent",void 0),(0,y.default)(r,"children",new _.default),(0,y.default)(r,"dynamic",void 0),(0,y.default)(r,"globals",void 0),(0,y.default)(r,"label",void 0),(0,y.default)(r,"controls",{}),(0,y.default)(r,"repeaters",{}),(0,y.default)(r,"renderer",void 0),(0,y.default)(r,"panel",void 0),(0,y.default)(r,"placeholders",{}),r.validateArgs(t),0===(t=Object.entries(t)).length)throw Error("Container cannot be empty.");return t.forEach((function(t){var o=(0,u.default)(t,2),i=o[0],a=o[1];r[i]=void 0===a?r[i]:a})),void 0===r.renderer&&(r.renderer=r),r.document||(r.document=elementor.documents.getCurrent()),r.dynamic=new Backbone.Model(r.settings.get("__dynamic__")),r.globals=new Backbone.Model(r.settings.get("__globals__")),r.panel=new m.default(r),r.initialize(),r}return(0,v.default)(Container,t),(0,d.default)(Container,[{key:"initialize",value:function initialize(){this.isViewElement()&&(this.addToParent(),this.handleChildrenRecursive(),this.view.on("destroy",this.removeFromParent.bind(this))),this.handleRepeaterChildren()}},{key:"validateArgs",value:function validateArgs(t){this.requireArgumentType("type","string",t),this.requireArgumentType("id","string",t),this.requireArgumentInstance("settings",Backbone.Model,t),this.requireArgumentInstance("model",Backbone.Model,t),!1!==t.parent&&this.requireArgumentInstance("parent",elementorModules.editor.Container,t)}},{key:"getGroupRelatedControls",value:function getGroupRelatedControls(t){var r=this,o={};return Object.keys(t).forEach((function(t){Object.values(r.controls).forEach((function(i){var a;if(t===i.name)o[i.name]=i;else if(null!==(a=r.controls[t])&&void 0!==a&&a.groupPrefix){var l=r.controls[t].groupPrefix;i.name.toString().startsWith(l)&&(o[i.name]=i)}}))})),o}},{key:"getAffectingControls",value:function getAffectingControls(){var t=this,r={},o=this.settings.getActiveControls();return Object.entries(o).forEach((function(o){var i,a=(0,u.default)(o,2),c=a[0],d=a[1],p=t.settings.get(d.name);if(d.global&&(null==p||!p.length)&&(null!==(i=t.globals.get(d.name))&&void 0!==i&&i.length||t.getGlobalDefault(c).length))return d.global.utilized=!0,void(r[c]=d);if(d.dynamic&&t.dynamic.get(c))return d.dynamic.utilized=!0,void(r[c]=d);p!==d.default&&p&&("object"===(0,l.default)(p)&&Object.values(p).join()===Object.values(d.default).join()||(r[c]=d))})),r}},{key:"getParentAncestry",value:function getParentAncestry(){for(var t=[],r=this;r;)t.push(r),r=r.parent;return t}},{key:"handleChildrenRecursive",value:function handleChildrenRecursive(){var t;null!==(t=this.view.children)&&void 0!==t&&t.length?Object.values(this.view.children._views).forEach((function(t){if(t.container){var r=t.container;r.parent.children&&(r.parent.children[t._index]=r),r.handleChildrenRecursive()}})):this.children.clear()}},{key:"addToParent",value:function addToParent(){this.parent.children&&!this.isRepeaterItem()&&this.parent.children.splice(this.view._index,0,this)}},{key:"removeFromParent",value:function removeFromParent(){var t=this;this.parent.children&&!this.isRepeater()&&(this.parent.children=this.parent.children.filter((function(r){return r.id!==t.id})))}},{key:"handleRepeaterChildren",value:function handleRepeaterChildren(){var t=this;if(Object.values(this.controls).forEach((function(r){if(r.is_repeater){var o=new Backbone.Model({name:r.name});t.repeaters[r.name]=new elementorModules.editor.Container({type:Container.TYPE_REPEATER,id:r.name,model:o,settings:o,view:t.view,parent:t,label:r.label||r.name,controls:{},renderer:t.renderer}),t.settings.get(r.name).forEach((function(o,i){t.addRepeaterItem(r.name,o,i)}))}})),["widget","document"].includes(this.type)){var r=Object.values(this.controls).filter((function(t){return"repeater"===t.type}));this.model.get("supportRepeaterChildren")||1!==r.length||Object.defineProperty(this,"children",{get:function get(){return elementorDevTools.deprecation.deprecated("children","3.0.0","container.repeaters[ repeaterName ].children"),this.repeaters[r[0].name].children}})}}},{key:"addRepeaterItem",value:function addRepeaterItem(t,r,o){var a=r.get("_id");return a||(a="bc-"+elementorCommon.helpers.getUniqueId(),r.set("_id",a)),this.repeaters[t].children.splice(o,0,new elementorModules.editor.Container({type:Container.TYPE_REPEATER_ITEM,id:r.get("_id"),model:new Backbone.Model({name:t}),settings:r,view:this.view,parent:this.repeaters[t],label:this.label+" "+i("Item","elementor"),controls:r.options.controls,renderer:this.renderer})),this.repeaters[t]}},{key:"lookup",value:function lookup(){var t,r=this;if(!this.renderer)return this;if(this!==this.renderer&&null!==(t=this.renderer.view)&&void 0!==t&&t.isDisconnected&&this.renderer.view.isDisconnected()&&(this.renderer=this.renderer.lookup()),void 0===this.view||!this.view.lookup||!this.view.isDisconnected())return Container.TYPE_REPEATER_ITEM===this.type&&(this.settings=this.parent.parent.settings.get(this.model.get("name")).findWhere({_id:this.id})),r;var lookup=this.view.lookup();if(lookup){if(r=lookup.getContainer(),Container.REPEATER===this.type)return this.settings=r.settings.get(this.model.get("name")).findWhere({_id:this.id}),this;r.parent.children&&(r.parent.children[r.view._index]=r)}return r}},{key:"findChildrenRecursive",value:function findChildrenRecursive(t){return elementorDevTools.deprecation.deprecated("container.findChildrenRecursive( callback )","3.5.0","container.children.findRecursive( callback )"),this.children.findRecursive(t)}},{key:"forEachChildrenRecursive",value:function forEachChildrenRecursive(t){return elementorDevTools.deprecation.deprecated("container.forEachChildrenRecursive( callback )","3.5.0","container.children.forEachRecursive( callback )"),this.children.forEachRecursive(t)}},{key:"render",value:function render(){var t;this.renderer&&this.renderer.view.renderOnChange(this.settings,null===(t=this.view)||void 0===t?void 0:t.$el)}},{key:"renderUI",value:function renderUI(){this.renderer&&this.renderer.view.renderUI()}},{key:"isEditable",value:function isEditable(){return"edit"===elementor.channels.dataEditMode.request("activeMode")&&"open"===this.document.editor.status}},{key:"isDesignable",value:function isDesignable(){return elementor.userCan("design")&&this.isEditable()}},{key:"isGridContainer",value:function isGridContainer(){return"grid"===this.parent.settings.get("container_type")}},{key:"isLocked",value:function isLocked(){return this.model.get("isLocked")}},{key:"isRepeater",value:function isRepeater(){return Container.TYPE_REPEATER===this.type}},{key:"isRepeaterItem",value:function isRepeaterItem(){return Container.TYPE_REPEATER_ITEM===this.type}},{key:"isViewElement",value:function isViewElement(){return this.view&&this.model.get("elType")}},{key:"getSetting",value:function getSetting(t){var r,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.settings.get(t);return o?i:(this.getGlobalKey(t)&&(r=this.getGlobalValue(t)),r||i||this.getGlobalDefault(t))}},{key:"getGlobalKey",value:function getGlobalKey(t){return this.globals.get(t)}},{key:"getGlobalValue",value:function getGlobalValue(t){var r=this.controls[t],o=this.getGlobalKey(t),i=$e.data.commandExtractArgs(o),a=$e.data.getCache($e.components.get("globals"),i.command,i.args.query);if(null!=a&&a.value){var l,u=a.id;if(r.groupType){var c=elementor.breakpoints.getActiveMatchRegex(),d=r.name.replace(r.groupPrefix,"").replace(c,"");if(!a.value[elementor.config.kit_config.typography_prefix+d])return;d=d.replace("_","-"),l="var( --e-global-".concat(r.groupType,"-").concat(u,"-").concat(d," )"),elementor.config.ui.defaultGenericFonts&&r.groupPrefix+"font_family"===r.name&&(l+=", ".concat(elementor.config.ui.defaultGenericFonts))}else l="var( --e-global-".concat(r.type,"-").concat(u," )");return l}}},{key:"isGlobalApplied",value:function isGlobalApplied(t){return this.getSetting(t)!==this.settings.get(t)}},{key:"getGlobalDefault",value:function getGlobalDefault(t){var r,o=null===(r=this.controls[t])||void 0===r?void 0:r.global;if(null!=o&&o.default){var i=this.controls[t].type;if("color"===i&&(i="colors"),!elementor.config.globals.defaults_enabled[i])return"";var a=$e.data.commandExtractArgs(o.default),l=a.command,u=a.args,c=$e.data.getCache($e.components.get("globals"),l,u.query);return null==c?void 0:c.value}return""}}])}(g.default);(0,y.default)(b,"TYPE_REPEATER","repeater-control"),(0,y.default)(b,"TYPE_REPEATER_ITEM","repeater")},87705:(t,r,o)=>{"use strict";var i=o(96784);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=i(o(39805)),l=i(o(40989)),u=i(o(15118)),c=i(o(29402)),d=i(o(87861)),p=i(o(22835));function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o={}.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var i=0,a=function F(){};return{s:a,n:function n(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function e(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();return u=t.done,t},e:function e(t){c=!0,l=t},f:function f(){try{u||null==o.return||o.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,i=Array(r);o{"use strict";var i=o(96784);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=i(o(39805)),l=i(o(40989));r.default=function(){return(0,l.default)((function Panel(t){(0,a.default)(this,Panel),this.container=t}),[{key:"refresh",value:function refresh(){$e.routes.isPartOf("panel/editor")&&$e.routes.refreshContainer("panel")}},{key:"closeEditor",value:function closeEditor(){$e.route("panel/elements/categories")}},{key:"getControlView",value:function getControlView(t){return elementor.getPanelView().getCurrentPageView().children.findByModelCid(this.getControlModel(t).cid)}},{key:"getControlModel",value:function getControlModel(t){return elementor.getPanelView().getCurrentPageView().collection.findWhere({name:t})}}])}()},38828:(t,r,o)=>{"use strict";var i,a=o(96784)(o(10564));i=Backbone.Model.extend({options:{},initialize:function initialize(t,r){var o=this;if(o.options=r,o.controls=elementor.mergeControlsSettings(r.controls),o.validators={},o.controls){var i=t||{},l={};_.each(o.controls,(function(t){if(!(t.features&&-1!==t.features.indexOf("ui"))){var r=t.name;"object"===(0,a.default)(t.default)?l[r]=structuredClone(t.default):l[r]=t.default;var u=t.dynamic&&t.dynamic.active,c=u&&i.__dynamic__&&i.__dynamic__[r];u&&!c&&t.dynamic.default&&(i.__dynamic__||(i.__dynamic__={}),i.__dynamic__[r]=t.dynamic.default,c=!0);var d=jQuery.isPlainObject(t.default);void 0===i[r]||!d||_.isObject(i[r])||c||(elementorCommon.debug.addCustomError(new TypeError("An invalid argument supplied as multiple control value"),"InvalidElementData","Element `"+(o.get("widgetType")||o.get("elType"))+"` got <"+i[r]+"> as `"+r+"` value. Expected array or object."),delete i[r]),void 0===i[r]&&(i[r]=l[r])}})),o.defaults=l,o.handleRepeaterData(i),o.set(i)}},convertRepeaterValueToCollection:function convertRepeaterValueToCollection(t,r){return new Backbone.Collection(t[r.name],{model:function model(t,o){return(o=o||{}).controls={},Object.values(r.fields).forEach((function(t){o.controls[t.name]=t})),t._id||(t._id=elementorCommon.helpers.getUniqueId()),new i(t,o)}})},handleRepeaterData:function handleRepeaterData(t){var r=this;_.each(this.controls,(function(o){o.is_repeater&&(t[o.name]instanceof Backbone.Collection||(t[o.name]=r.convertRepeaterValueToCollection(t,o)))}))},getFontControls:function getFontControls(){return this.getControlsByType("font")},getIconsControls:function getIconsControls(){return this.getControlsByType("icons")},getControlsByType:function getControlsByType(t){return _.filter(this.getActiveControls(),(function(r){return t===r.type}))},getStyleControls:function getStyleControls(t,r){var o=this;t=structuredClone(o.getActiveControls(t,r));var i=[];return jQuery.each(t,(function(){var r,a=this,l=elementor.config.controls[a.type];if((a=jQuery.extend({},l,a)).fields){var u=[];o.attributes[a.name]instanceof Backbone.Collection||(o.attributes[a.name]=o.convertRepeaterValueToCollection(o.attributes,a)),o.attributes[a.name].each((function(t){u.push(o.getStyleControls(a.fields,t.attributes))})),a.styleFields=u}(a.fields||null!==(r=a.dynamic)&&void 0!==r&&r.active||o.isGlobalControl(a,t)||o.isStyleControl(a.name,t))&&i.push(a)})),i},isGlobalControl:function isGlobalControl(t,r){var o,i,a=t.name;t.groupType&&(a=t.groupPrefix+t.groupType);var l=r[a];return!(null==l||null===(o=l.global)||void 0===o||!o.active)&&!!(null===(i=this.attributes.__globals__)||void 0===i?void 0:i[a])},isStyleControl:function isStyleControl(t,r){r=r||this.controls;var o=_.find(r,(function(r){return t===r.name}));return o&&!_.isEmpty(o.selectors)},getClassControls:function getClassControls(t){return t=t||this.controls,_.filter(t,(function(t){return!_.isUndefined(t.prefix_class)}))},isClassControl:function isClassControl(t){var r=_.find(this.controls,(function(r){return t===r.name}));return r&&!_.isUndefined(r.prefix_class)},getControl:function getControl(t){return _.find(this.controls,(function(r){return t===r.name}))},getActiveControls:function getActiveControls(t,r){var o={};return t||(t=this.controls),r||(r=this.attributes),r=this.parseGlobalSettings(r,t),jQuery.each(t,(function(i,a){elementor.helpers.isActiveControl(a,r,t)&&(o[i]=a)})),o},clone:function clone(){return new i(elementorCommon.helpers.cloneObject(this.attributes),elementorCommon.helpers.cloneObject(this.options))},setExternalChange:function setExternalChange(t,r){var o,i=this;"object"===(0,a.default)(t)?o=t:(o={})[t]=r,i.set(o),jQuery.each(o,(function(t,r){i.trigger("change:external:"+t,r)}))},parseDynamicSettings:function parseDynamicSettings(t,r,o){var i=this;return t=elementorCommon.helpers.cloneObject(t||i.attributes),r=r||{},o=o||this.controls,jQuery.each(o,(function(){var o,a=this;if(a.is_repeater)(o=t[a.name]).forEach((function(t,l){o[l]=i.parseDynamicSettings(t,r,a.fields)}));else if(o=t.__dynamic__&&t.__dynamic__[a.name]){var l=a.dynamic;if(void 0===l&&(l=elementor.config.controls[a.type].dynamic),l&&l.active){var u;try{u=elementor.dynamicTags.parseTagsText(o,l,elementor.dynamicTags.getTagDataContent)}catch(t){if(elementor.dynamicTags.CACHE_KEY_NOT_FOUND_ERROR!==t.message)throw t;u="",r.onServerRequestStart&&r.onServerRequestStart(),elementor.dynamicTags.refreshCacheFromServer((function(){r.onServerRequestEnd&&r.onServerRequestEnd()}))}l.property?t[a.name][l.property]=u:t[a.name]=u}}})),t},parseGlobalSettings:function parseGlobalSettings(t,r){var o=this;return t=elementorCommon.helpers.cloneObject(t),r=r||this.controls,jQuery.each(r,(function(r,i){var a,l,u;if(i.is_repeater)(u=t[i.name]).forEach((function(t,r){u[r]=o.parseGlobalSettings(t,i.fields)}));else if(u=null===(a=t.__globals__)||void 0===a?void 0:a[i.name]){var c=i.global;if(void 0===c&&(c=elementor.config.controls[i.type].global),null!==(l=c)&&void 0!==l&&l.active){var d=$e.data.commandExtractArgs(u),p=d.command,h=d.args,v=$e.data.getCache($e.components.get("globals"),p,h.query);i.groupType?t[i.name]="custom":t[i.name]=v}}})),t},removeDataDefaults:function removeDataDefaults(t,r){var o=this;jQuery.each(t,(function(i){var a=r[i];a&&(a.save_default||("text"===a.type||"textarea"===a.type)&&t[i]||(a.is_repeater?t[i].forEach((function(t){o.removeDataDefaults(t,a.fields)})):_.isEqual(t[i],a.default)&&delete t[i]))}))},toJSON:function toJSON(t){var r=Backbone.Model.prototype.toJSON.call(this);return t=t||{},delete r.widgetType,delete r.elType,delete r.isInner,_.each(r,(function(t,o){t&&t.toJSON&&(r[o]=t.toJSON())})),t.remove&&-1!==t.remove.indexOf("default")&&this.removeDataDefaults(r,this.controls),structuredClone(r)}}),t.exports=i},53780:t=>{"use strict";var r;r=Marionette.Behavior.extend({onRenderCollection:function onRenderCollection(){this.handleInnerTabs(this.view)},handleInnerTabs:function handleInnerTabs(t){var r=t.children.filter((function(t){return"tabs"===t.model.get("type")}));_.each(r,(function(r){r.$el.find(".elementor-control-content").remove();var o=r.model.get("name"),i=t.children.filter((function(t){return"tab"===t.model.get("type")&&t.model.get("tabs_wrapper")===o}));_.each(i,(function(o,i){r._addChildView(o);var a=o.model.get("name"),l=t.children.filter((function(t){return a===t.model.get("inner_tab")}));0===i?o.$el.addClass("e-tab-active"):_.each(l,(function(t){t.$el.addClass("e-tab-close")}))}))}))},onChildviewControlTabClicked:function onChildviewControlTabClicked(t){var r="e-tab-close",o="e-tab-active",i=t.model.get("name"),a=this.view.children.filter((function(r){return"tab"!==r.model.get("type")&&t.model.get("tabs_wrapper")===r.model.get("tabs_wrapper")})),l=this.view.children.filter((function(r){return"tab"===r.model.get("type")&&t.model.get("tabs_wrapper")===r.model.get("tabs_wrapper")}));_.each(l,(function(t){t.$el.removeClass(o)})),t.$el.addClass(o),_.each(a,(function(t){t.model.get("inner_tab")===i?t.$el.removeClass(r):t.$el.addClass(r)})),elementor.getPanelView().updateScrollbar()}}),t.exports=r},15213:(t,r)=>{"use strict";function _createForOfIteratorHelper(t,r){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!o){if(Array.isArray(t)||(o=function _unsupportedIterableToArray(t,r){if(t){if("string"==typeof t)return _arrayLikeToArray(t,r);var o={}.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?_arrayLikeToArray(t,r):void 0}}(t))||r&&t&&"number"==typeof t.length){o&&(t=o);var i=0,a=function F(){};return{s:a,n:function n(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function e(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){o=o.call(t)},n:function n(){var t=o.next();return u=t.done,t},e:function e(t){c=!0,l=t},f:function f(){try{u||null==o.return||o.return()}finally{if(c)throw l}}}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var o=0,i=Array(r);o{"use strict";var r=elementorModules.Module.extend({onInit:function onInit(){var t=this,r=jQuery(window);r.on("elementor:init-components",this.onElementorInitComponents.bind(this)),r.on("elementor:loaded",(function(){t.onElementorLoaded(),elementor.on("document:loaded",t.onDocumentLoaded.bind(t))})),r.on("elementor:init",this.onElementorReady)},getEditorControlView:function getEditorControlView(t){return elementor.getPanelView().getCurrentPageView().children.findByModelCid(this.getEditorControlModel(t).cid)},getEditorControlModel:function getEditorControlModel(t){return elementor.getPanelView().getCurrentPageView().collection.findWhere({name:t})},onElementorReady:function onElementorReady(){this.onElementorInit(),elementor.on("frontend:init",this.onElementorFrontendInit.bind(this)).on("preview:loaded",this.onElementorPreviewLoaded.bind(this))}});r.prototype.onElementorLoaded=function(){},r.prototype.onElementorInit=function(){},r.prototype.onElementorPreviewLoaded=function(){},r.prototype.onDocumentLoaded=function(){},r.prototype.onElementorFrontendInit=function(){},r.prototype.onElementorInitComponents=function(){},t.exports=r},33029:(t,r,o)=>{"use strict";var i=o(12470).__,a=o(96784);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var l=a(o(85707)),u=a(o(39805)),c=a(o(40989));r.default=function(){return(0,c.default)((function ControlsPopover(t){(0,u.default)(this,ControlsPopover),this.child=t,this.$popover=jQuery("
",{class:"elementor-controls-popover"}),t.$el.before(this.$popover),this.$popover.append(t.$el),this.popoverToggleView=t._parent.children.findByIndex(t._index-1),"typography"===this.child.model.attributes.groupType&&this.createPopoverHeader()}),[{key:"addChild",value:function addChild(t){this.$popover.append(t.$el)}},{key:"createPopoverHeader",value:function createPopoverHeader(){var t=this,r=this.$popover.prev().find(".elementor-control-popover-toggle-reset-label");this.$popoverHeader=jQuery("
",{class:"e-group-control-header"}).html(""+i("Typography","elementor")+""),this.$headerControlsWrapper=jQuery("
",{class:"e-control-tools"}),r.addClass("e-control-tool").on("click",(function(){return t.onResetButtonClick()})),this.$headerControlsWrapper.append(r),this.$popoverHeader.append(this.$headerControlsWrapper);var o=this.popoverToggleView.model.get("global");null!=o&&o.active&&this.createAddButton(),this.$popover.prepend(this.$popoverHeader).addClass("e-controls-popover--typography")}},{key:"onResetButtonClick",value:function onResetButtonClick(){this.$popover.hide();var t=this.child.model.get("groupPrefix")+"typography",r={container:this.child.options.container,settings:(0,l.default)({},t,"")};this.child.options.container.globals.get(t)?$e.run("document/globals/disable",r):$e.run("document/elements/settings",r)}},{key:"onAddButtonClick",value:function onAddButtonClick(){this.popoverToggleView.onAddGlobalButtonClick()}},{key:"createAddButton",value:function createAddButton(){var t=this;this.$addButton=jQuery("

Blink Xt2 Outdoor Smart Security Camera Review

This site contains affiliate links to products. We may receive a commission for purchases made through these links.

Table of Contents

Finding a suitable security system to protect your home that is both affordable and effective can be a challenge considering the number of options available on the market. 

So we have reviewed the most popular cameras available and today we will give an in-depth review on one of those, the Blink Xt2 outdoor camera. 

q? encoding=UTF8&ASIN=B086DKSYTS&Format= SL400 &ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=andyhouston01 20&language=en US

The Xt2 is built to be highly weather-resistant and is made specifically to be discrete and easily hidden. The unit itself is about the size of your palm, making it one of the smaller cameras available.

The unit comes with a wall mount included allowing for a quick and easy setup as well as allowing it to be placed out of reach of potential intruders. We go into more detail on how to set up the Xt2 in our best outdoor wireless camera review.   

Who is this camera for?

The Blink Xt2 is a great option for those of you looking for a starter system that is simple, basic and easy to set up. If you are after something to monitor your property discreetly, with little maintenance then the Xt2 could be the ideal choice for you.

Overview of features

The Xt2 comes with built-in motion detection which will activate when the sensors are triggered and will send a direct alert to your phone via the Blink app.

The motion detection range can be adjusted through the app which allows you to select the areas that it will detect as well as the range. This is a very useful feature as it minimises the false alerts sent to you.

All Blink cameras are compatible with Alexa meaning you can use some of the Blink features hands-free such as arming, disarming and using the built-in 2-way audio.

Video storage comes in two options- Cloud storage (paid), which is accessible through the Blink subscription plan, allowing you to record, store and share video recordings. It also gives access to some other bonuses but isn’t necessary for those after a free option.

Local storage- Our recommended option (free), allows you to save recordings to the Sync Module. These clips can then be accessed through the Blink app or downloaded using a USB. 

A feature that slightly holds the Xt2 back is the night vision mode, although the contrast can be adjusted we found that it is either too dark or overexposed which leads to quite an average video quality. It can be improved with external lighting.

  • Battery-powered (batteries are not rechargeable)
  • Fitted with 1080p HD video resolution 
  • Wireless (streamed using WI-FI) 

Pros 

  • Multiple cameras can be connected to the one system
  • Quick and easy to set up
  • Low maintenance 
  • All required features are available without a subscription
  • Free storage option
  • Beginner-friendly
  • Good quality resolution through the day

Cons 

  • 2-year battery life is unrealistic (more likely 8-12 months)
  • Night view video works with varying success
  • Motion sensors sometimes triggered by car lights and moving shadows

Alternative

If you feel that the Blink Xt2 camera isn’t for you or you want to compare it with another market leader, then the Ring Spotlight Cam is an impressive alternative but will set you back a little more. 

The Spotlight Camera comes with 1080p HD video resolution, offers 2-way audio, Alexa compatibility and comes with a built-in spotlight making for high-quality video recordings. Along with this is a siren that can be controlled remotely acting as a second deterrent. For a full in-depth review of the Ring Spotlight Cam click here.

Verdict

We firmly believe that the Blink Xt2 security camera is a solid choice for someone looking for a reliable wireless camera without breaking the bank and ensuring you can keep an eye on your property from just about anywhere.

Although it won’t compete with the professional wired security cameras available, in the terms of a wireless, beginner-friendly option we feel it is one of the best cameras available at that price range. 

Leave a Comment

Your email address will not be published.

Special offer for our visitors

Get your Home Security Free Guide

We will never send you spam. By signing up for this you agree with our privacy policy and to receive regular updates via email in regards to industry news and promotions