/*! 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("

Google Nest Outdoor Cam Review

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

With dog theft, break-ins and package theft as common as ever, many of us are looking for security cameras to protect our family, property and pets.

Picking the right camera, that suits your needs while at a reasonable price can be challenging. With the huge quantity of security cameras available, it can be hard to find a camera that is worth your money.

However today we will be reviewing one of the standout cameras available for you to buy, the Google Nest Outdoor Cam. 
q? encoding=UTF8&ASIN=B01I3I9L8M&Format= SL500 &ID=AsinImage&MarketPlace=US&ServiceVersion=20070822&WS=1&tag=andyhouston01 20&language=en US

Table of Contents

Overview of features

As expected from Google the Nest Cam offers up to 1080p HD resolution video feed with 30 frames per second, in both live view and recordings. This provides clear, detailed images, making it easy to identify people day and night.

One of the unique features available with the Nest Cam is sound alerts, these alerts are triggered by unusual sounds and will be directly sent to your smartphone meaning even if the motion detection isn’t triggered you can still be alerted. 

Night Vision isn’t really a standout feature in security cameras nowadays however what does make it stand out is the quality of its night vision. It comes with 8 built-in infrared LEDs which allows for a bright, clear picture even at night.

Another neat feature is the familiar face alerts, faces can be registered through the app and AI can then detect these people when in range of the camera. An alert will then be sent to your phone telling you it’s someone you know.

However, if a person is detected who isn’t registered it will immediately let you know that a stranger is detected. 

One of our favourite features of the Nest Camera or more the Nest Cam app is how customisable everything is. Just about every feature and element can be altered or adjusted through this app such as the video quality and microphone sensitivity.

Another example is it allows you to customise the smart alerts, so if you are home and don’t want alerts it can be set to only send alerts when you are not home. Overall, we haven’t seen many if any cameras with this level of customisation.

Other features include:
  • Emergency calling- emergency services can be called through the app if there is an emergency and you aren’t home
  • 2-way audio allowing you to both talk and listen
  • Cable powered (no replacing batteries but can be slightly trickier to set up
  • Can be connected to Google devices such as Google assistant
  • The camera has 3-megapixel colour sensor, with 8x digital zoom
  • Nest Aware- Nest subscription plan that gives access to extra features such as 24/7 continuous recording and friendly face alerts

Pros 

  • Unique and exclusive features
  • 130° field of view
  • Cable powered meaning a more reliable feed and no need for battery replacements
  • Quick and simple set-up process with easy to follow instructions
  • Settings are extremely customizable for personal preference
  • Can be connected to other devices like google assistant for hands-free use
  • 30 day free trial to Nest Aware plan

Cons

  • Some features you might expect on the free plan, require the paid subscription
  • Camera placement is limited due to the power cable
  • Relatively expensive 

What’s included?

Included with the Google Nest Outdoor package is everything needed to set up your camera as well as the instructions on how to do so:

  • Camera wall plate
  • Mounting magnet 
  • Adapter wall plate
  • Power adapter
  • Cable clips
  • Wall screws
  • Wall anchors
  • Installation guide

How to set up?

Google Nest Outdoor Cam

The installation is actually pretty simple and it should be quite straightforward for most people.

Firstly, screw the metal plate that is included into the position you would like it, ideally high enough to stop people interfering with it. Then the magnetic base should just attach to the metal plate.

Alternatively, if you have a metal door or anything else metal-based, the magnetic base can actually be attached straight to that surface without the metal plate. 

The Nest Cam can then just be placed against the magnet and that’s it basically secured. It sounds too simple but that is literally all it takes. 

The cable can then be secured in position using the provided cable clips (only a couple of clips are required) and then plugged into a nearby power socket. Make sure before you fix the camera in position it is within range of the socket, the cable is about 25ft (7.5m) in length.

Then all you have left to do is set up an account in the Nest app and sign in, it will ask you to do a couple more steps however the app explains these pretty well. 

Verdict

The Google Nest Outdoor Cam is a modern, unique and high-quality camera, which you would expect from Google. Some of the features included, like the friendly faces alerts, is something we haven’t come across before and shows Google has gone all out on this camera. 

However as a result of the quality comes an extra cost, the price for the Nest Cam plus the Nest Aware plan can set you back a considerable amount (we recommend getting the Nest Aware subscription if you do plan on buying the camera). But if you are looking for a quality wired camera and your budget allows, we can highly recommend the Nest Cam to you.

After using this camera for the past few weeks we have been extremely impressed with its performance, specs and features, we firmly believe the Nest Cam is a great camera in this price

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