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

6 Ways to Hide Security Cameras (Indoor & Out)

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

So I just bought a Google Ness Indoor Cam to go along with the one watching my front door. The other sits in clear view directly in front of my door so anyone who is getting recorded, definitely knows they are being watched. 

But this time I wondered, can I hide my new camera in clear sight while still getting a good video feed? 

So the past week I have been trying out 6 of the most cheesy but effective ways to hide security cameras in your home.

Table of Contents

General household objects are your friend

What I found while coming up with ideas was that objects most of us have lying around the hours are your best friend, here are 6 ideas that I found worked best.

Idea 1: Shoebox/tissue box

The tissue box method is pretty simple, basically, you will remove a little circle the size of your camera lens, ideally, you want to use a box that is the same colour as your camera lens so that it blends in and is discrete as possible.

If your box doesn’t match the colour of your lens, you can add a strip of black tape around the box which just looks like part of the design and more importantly makes your lens near impossible to see.

If your camera is wired you are going to want to cut a hole in the back and run the cable up through the back of the box (obviously hide the cable to the best of your ability) but if yours is wireless like mine this can be skipped.

To make your camera disguise even more effective, if your camera is small enough the tissues can then be placed on top of the camera. Which believe me makes it just about impossible to find. 

This idea is ideal for smaller cameras, unfortunately, for me, the Goggle Nest was too big to fit in. 

Idea 2: Inside a stuffed animal  

Similar to the first option, the stuffed toy arguably works even better, well that is depending on it being somewhere natural. It might look a little suspicious if you have a teddy bear in your kitchen. 

You are going to need an unwanted stuffed animal if you are going to try this and make sure the padding can be removed from this inside.

First, cut a hole either out the back or bottom but don’t completely remove the fabric as it can be taped or sewed up. 

Then remove some of the stuffing, just enough to allow your camera to fit in (about half). You will then need to make a hole for your camera lens, I suggest using the eye or the mouth as it blends in quite well. 

When I was trying this I removed the eye and the lens fitted perfectly through it, you could barely tell the eye had been removed. 

Once the camera is placed in the exact position you want, the stuffing can be put back in. This is important as it should look as close to what it did before as possible. 

Find the position you want to sit your stuffed toy, make sure it’s near a power outlet if your security camera is wired. Then go ahead and seal the back hole. 

I particularly liked this idea as the stuffing hides the shape of your camera and who didn’t want to make a spy bear as a child?

Idea 3: Surface skins

This is a slightly different approach to hiding your security camera but can be just as effective and a bit more realistic. 

Many security camera brands also sell skins that can be placed around the camera. This allows for customisation of your camera, these skins come in all sort of cameras and effects which allows you to hide your camera almost anywhere.

These skins are also waterproof so can be used both indoors and out. Making them perfect for bushes, trees or dark corners. 

But the skin that caught my eye had to be the ghillie skin. For any of you who don’t know what ghillie is, it’s basically army camouflage which makes the camera invisible in bushes and foliage. 

Unfortunately, I couldn’t find any skins for the Google Nest Cam, however, Arlo makes multiple kinds of these skins. 

If your camera producer doesn’t make these skins, it doesn’t stop you from getting creative and coming up with your own skin (be careful it doesn’t impact your warranty).

Idea 4: Tree/bush

This is again, quite a general way to hide your cameras but very effective. If you have foliage near where you plan on placing your security camera make sure you take full advantage of it, as it is your best friend.

Whether it be outside and you use a bush or a tree or inside and you have a real or artificial plant there are endless ways to use this to your advantage. 

Paired with the ghillie skin your camera becomes almost invisible to anyone not aware of your security cameras. 

Idea 5: Bird Box

A good alternative to hiding your camera in foliage is if you have a birdbox or birdfeeder, the hole for the bird is ideal for a camera to look out through if at the right height. 

You will need to unscrew one of the sides to be able to place your security camera inside but other than that there’s not much else to other than to hope a bird doesn’t decide to have a chirp at your camera.

Idea 6: Plant pot

I can’t claim credit for this idea but it’s too good to leave it out if you want to make something a little bit more unique. 

The idea came from a guy called Gadget Addict, basically, he hides the camera at the bottom of a plant pot, which he then covers with a fake plant and covers with stones.

To do this you are going to want a decent-sized plant pot, preferably plastic as it will be the easiest to work with. Like the others, you will then need to create a hole at the bottom of the pot.

To make the hole you can either drill it or heat up a metal rod and pierce it. Like the other options if your camera is wired create a small hole at the bottom for your cable.

You will then want some kind of fake bottom, he uses a piece of styrofoam, then inserts a fake plant into the middle of it and places it above the camera.

Finally, you will want to cover the styrofoam, he uses stone chips but bark or soil would work just as well. 

For me, this was one of the most unique ideas I came across and is ideal for both inside and outside cameras (just remember not to water it).

For those of you interested in this idea I will link the video below.

General Tips for Hiding your Cameras Better 

My first tip is to just make the most of your environment, we all have different homes and all have different things we could utilize to hide our cameras, if you find something better than I suggested go with that. 

Secondly, if you are planning on hiding your camera out of sight, take advantage of some of the smaller cameras available, like the new spycams that are being released. 

Another option would be to use a DIY phone security camera which can also be hidden effectively, click here to find out how to make one.

And finally, make sure your camera can upload to the cloud and the app wirelessly or you will be constantly taking the camera out of your hiding spot and it will soon become a chore. 

Why hide your cameras?

Hiding your cameras can help to stop them from getting damaged both by intruders and also the weather as most of the ideas also give the camera some protection.

Visible cameras are sometimes a give away to the people you are trying to catch on video and often if they see them they will either stay out of sight or find a side of the house without a camera. 

And probably the most important, when you catch one of your family or friends doing something funny you don’t want them knowing they are on camera.

Hiding your camera is not an absolute must but it is pretty fun as well as having its uses. 

Wireless or Wired Security Camera?

Although both have their advantages, I prefer to use a wireless camera to hide as it gives you more freedom of where to place it and also is easier to hide without the wire hanging out the back.

However, a wired camera would mean you don’t have to recharge or replace your batteries. Meaning you can just set it up and forget about it. 

So again it really is about you and what suits you best. 

Verdict

I had a lot of fun making some of these ideas and seeing how they turn out, I really recommend giving some of these ideas a go and seeing how they work out for you.

So what idea will you try out?

Leave a comment below of your hidden creations or if I missed anything

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