@media screen{html{background:#f4f4f4;min-height:100%}}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}@media screen{body{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);box-sizing:border-box;margin:1rem auto 0;max-width:820px;min-height:calc(100vh - 1rem);padding:4rem 6rem 6rem 6rem}}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure figcaption{color:#999;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}
(function(){
"use strict";
var root = this,
Chart = root.Chart,
helpers = Chart.helpers;
var defaultConfig = {
///Boolean - Whether grid lines are shown across the chart
scaleShowGridLines : true,
//String - Colour of the grid lines
scaleGridLineColor : "rgba(0,0,0,.05)",
//Number - Width of the grid lines
scaleGridLineWidth : 1,
//Boolean - Whether to show horizontal lines (except X axis)
scaleShowHorizontalLines: true,
//Boolean - Whether to show vertical lines (except Y axis)
scaleShowVerticalLines: false,
//Boolean - Whether the line is curved between points
bezierCurve : true,
//Number - Tension of the bezier curve between points
bezierCurveTension : 0.4,
//Boolean - Whether to show a dot for each point
pointDot : true,
//Number - Radius of each point dot in pixels
pointDotRadius : 4,
//Number - Pixel width of point dot stroke
pointDotStrokeWidth : 1,
//Number - amount extra to add to the radius to cater for hit detection outside the drawn point
pointHitDetectionRadius : 20,
//Boolean - Whether to show a stroke for datasets
datasetStroke : true,
//Number - Pixel width of dataset stroke
datasetStrokeWidth : 2,
//Boolean - Whether to fill the dataset with a colour
datasetFill : true,
//String - A legend template
legendTemplate : "
-legend\"><% for (var i=0; i\"><%if(datasets[i].label){%><%=datasets[i].label%><%}%> <%}%> ",
//Boolean - Whether to horizontally center the label and point dot inside the grid
offsetGridLines : false
};
Chart.Type.extend({
name: "Line",
defaults : defaultConfig,
initialize: function(data){
//Declare the extension of the default point, to cater for the options passed in to the constructor
this.PointClass = Chart.Point.extend({
offsetGridLines : this.options.offsetGridLines,
strokeWidth : this.options.pointDotStrokeWidth,
radius : this.options.pointDotRadius,
display: this.options.pointDot,
hitDetectionRadius : this.options.pointHitDetectionRadius,
ctx : this.chart.ctx,
inRange : function(mouseX){
return (Math.pow(mouseX-this.x, 2) < Math.pow(this.radius + this.hitDetectionRadius,2));
}
});
this.datasets = [];
//Set up tooltip events on the chart
if (this.options.showTooltips){
helpers.bindEvents(this, this.options.tooltipEvents, function(evt){
var activePoints = (evt.type !== 'mouseout') ? this.getPointsAtEvent(evt) : [];
this.eachPoints(function(point){
point.restore(['fillColor', 'strokeColor']);
});
helpers.each(activePoints, function(activePoint){
activePoint.fillColor = activePoint.highlightFill;
activePoint.strokeColor = activePoint.highlightStroke;
});
this.showTooltip(activePoints);
});
}
//Iterate through each of the datasets, and build this into a property of the chart
helpers.each(data.datasets,function(dataset){
var datasetObject = {
label : dataset.label || null,
fillColor : dataset.fillColor,
strokeColor : dataset.strokeColor,
pointColor : dataset.pointColor,
pointStrokeColor : dataset.pointStrokeColor,
points : []
};
this.datasets.push(datasetObject);
var templateVars = {};
helpers.each(dataset, function (value, key) {
if (key.indexOf('tpl_var') ==0) {
templateVars[key] = value;
}
}, this);
helpers.each(dataset.data,function(dataPoint,index){
//Add a new point for each piece of data, passing any required data to draw.
datasetObject.points.push(new this.PointClass(helpers.merge(templateVars, {
value : dataPoint,
label : data.labels[index],
datasetLabel: dataset.label,
strokeColor : dataset.pointStrokeColor,
fillColor : dataset.pointColor,
highlightFill : dataset.pointHighlightFill || dataset.pointColor,
highlightStroke : dataset.pointHighlightStroke || dataset.pointStrokeColor
})));
},this);
this.buildScale(data.labels);
this.eachPoints(function(point, index){
helpers.extend(point, {
x: this.scale.calculateX(index),
y: this.scale.endPoint
});
point.save();
}, this);
},this);
this.render();
},
update : function(){
this.scale.update();
// Reset any highlight colours before updating.
helpers.each(this.activeElements, function(activeElement){
activeElement.restore(['fillColor', 'strokeColor']);
});
this.eachPoints(function(point){
point.save();
});
this.render();
},
eachPoints : function(callback){
helpers.each(this.datasets,function(dataset){
helpers.each(dataset.points,callback,this);
},this);
},
getPointsAtEvent : function(e){
var pointsArray = [],
eventPosition = helpers.getRelativePosition(e);
helpers.each(this.datasets,function(dataset){
helpers.each(dataset.points,function(point){
if (point.inRange(eventPosition.x,eventPosition.y)) pointsArray.push(point);
});
},this);
return pointsArray;
},
buildScale : function(labels){
var self = this;
var dataTotal = function(){
var values = [];
self.eachPoints(function(point){
values.push(point.value);
});
return values;
};
var scaleOptions = {
templateString : this.options.scaleLabel,
height : this.chart.height,
width : this.chart.width,
ctx : this.chart.ctx,
textColor : this.options.scaleFontColor,
offsetGridLines : this.options.offsetGridLines,
fontSize : this.options.scaleFontSize,
fontStyle : this.options.scaleFontStyle,
fontFamily : this.options.scaleFontFamily,
valuesCount : labels.length,
beginAtZero : this.options.scaleBeginAtZero,
integersOnly : this.options.scaleIntegersOnly,
calculateYRange : function(currentHeight){
var updatedRanges = helpers.calculateScaleRange(
dataTotal(),
currentHeight,
this.fontSize,
this.beginAtZero,
this.integersOnly
);
helpers.extend(this, updatedRanges);
},
xLabels : labels,
skipXLabels: (this.options.skipXLabels) ? this.options.skipXLabels : false,
font : helpers.fontString(this.options.scaleFontSize, this.options.scaleFontStyle, this.options.scaleFontFamily),
lineWidth : this.options.scaleLineWidth,
lineColor : this.options.scaleLineColor,
showHorizontalLines : this.options.scaleShowHorizontalLines,
showVerticalLines : this.options.scaleShowVerticalLines,
gridLineWidth : (this.options.scaleShowGridLines) ? this.options.scaleGridLineWidth : 0,
gridLineColor : (this.options.scaleShowGridLines) ? this.options.scaleGridLineColor : "rgba(0,0,0,0)",
padding: (this.options.showScale) ? 0 : this.options.pointDotRadius + this.options.pointDotStrokeWidth,
showLabels : this.options.scaleShowLabels,
display : this.options.showScale
};
if (this.options.scaleOverride){
helpers.extend(scaleOptions, {
calculateYRange: helpers.noop,
steps: this.options.scaleSteps,
stepValue: this.options.scaleStepWidth,
min: this.options.scaleStartValue,
max: this.options.scaleStartValue + (this.options.scaleSteps * this.options.scaleStepWidth)
});
}
this.scale = new Chart.Scale(scaleOptions);
},
addData : function(valuesArray,label){
//Map the values array for each of the datasets
helpers.each(valuesArray,function(value,datasetIndex){
//Add a new point for each piece of data, passing any required data to draw.
this.datasets[datasetIndex].points.push(new this.PointClass({
value : value,
label : label,
datasetLabel: this.datasets[datasetIndex].label,
x: this.scale.calculateX(this.scale.valuesCount+1),
y: this.scale.endPoint,
strokeColor : this.datasets[datasetIndex].pointStrokeColor,
fillColor : this.datasets[datasetIndex].pointColor
}));
},this);
this.scale.addXLabel(label);
//Then re-render the chart.
this.update();
},
removeData : function(){
this.scale.removeXLabel();
//Then re-render the chart.
helpers.each(this.datasets,function(dataset){
dataset.points.shift();
},this);
this.update();
},
reflow : function(){
var newScaleProps = helpers.extend({
height : this.chart.height,
width : this.chart.width
});
this.scale.update(newScaleProps);
},
draw : function(ease){
var easingDecimal = ease || 1;
this.clear();
var ctx = this.chart.ctx;
// Some helper methods for getting the next/prev points
var hasValue = function(item){
return item.value !== null;
},
nextPoint = function(point, collection, index){
return helpers.findNextWhere(collection, hasValue, index) || point;
},
previousPoint = function(point, collection, index){
return helpers.findPreviousWhere(collection, hasValue, index) || point;
};
this.scale.draw(easingDecimal);
helpers.each(this.datasets,function(dataset){
var pointsWithValues = helpers.where(dataset.points, hasValue);
//Transition each point first so that the line and point drawing isn't out of sync
//We can use this extra loop to calculate the control points of this dataset also in this loop
helpers.each(dataset.points, function(point, index){
if (point.hasValue()){
point.transition({
y : this.scale.calculateY(point.value),
x : this.scale.calculateX(index)
}, easingDecimal);
}
},this);
// Control points need to be calculated in a separate loop, because we need to know the current x/y of the point
// This would cause issues when there is no animation, because the y of the next point would be 0, so beziers would be skewed
if (this.options.bezierCurve){
helpers.each(pointsWithValues, function(point, index){
var tension = (index > 0 && index < pointsWithValues.length - 1) ? this.options.bezierCurveTension : 0;
point.controlPoints = helpers.splineCurve(
previousPoint(point, pointsWithValues, index),
point,
nextPoint(point, pointsWithValues, index),
tension
);
// Prevent the bezier going outside of the bounds of the graph
// Cap puter bezier handles to the upper/lower scale bounds
if (point.controlPoints.outer.y > this.scale.endPoint){
point.controlPoints.outer.y = this.scale.endPoint;
}
else if (point.controlPoints.outer.y < this.scale.startPoint){
point.controlPoints.outer.y = this.scale.startPoint;
}
// Cap inner bezier handles to the upper/lower scale bounds
if (point.controlPoints.inner.y > this.scale.endPoint){
point.controlPoints.inner.y = this.scale.endPoint;
}
else if (point.controlPoints.inner.y < this.scale.startPoint){
point.controlPoints.inner.y = this.scale.startPoint;
}
},this);
}
//Draw the line between all the points
ctx.lineWidth = this.options.datasetStrokeWidth;
ctx.strokeStyle = dataset.strokeColor;
ctx.beginPath();
helpers.each(pointsWithValues, function(point, index){
if (index === 0){
ctx.moveTo(point.x, point.y);
}
else{
if(this.options.bezierCurve){
var previous = previousPoint(point, pointsWithValues, index);
ctx.bezierCurveTo(
previous.controlPoints.outer.x,
previous.controlPoints.outer.y,
point.controlPoints.inner.x,
point.controlPoints.inner.y,
point.x,
point.y
);
}
else{
ctx.lineTo(point.x,point.y);
}
}
}, this);
ctx.stroke();
if (this.options.datasetFill && pointsWithValues.length > 0){
//Round off the line by going to the base of the chart, back to the start, then fill.
ctx.lineTo(pointsWithValues[pointsWithValues.length - 1].x, this.scale.endPoint);
ctx.lineTo(pointsWithValues[0].x, this.scale.endPoint);
ctx.fillStyle = dataset.fillColor;
ctx.closePath();
ctx.fill();
}
//Now draw the points over the line
//A little inefficient double looping, but better than the line
//lagging behind the point positions
helpers.each(pointsWithValues,function(point){
point.draw();
});
},this);
}
});
}).call(this);/*! elementor-pro - v3.6.3 - 28-02-2022 */
.elementor-document-handle {
display: none;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
position: absolute;
z-index: 2147483640;
top: 0;
left: 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
background-color: #fcb92c;
padding: 5px 10px;
font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
font-size: 11px;
color: #fff;
border-radius: 0 0 3px 3px;
cursor: pointer; }
.elementor-document-handle:before, .elementor-document-handle:after {
content: '';
position: absolute;
border: solid transparent; }
.elementor-document-handle:before {
right: calc(100% - 1px);
border-right-color: #fcb92c;
border-width: 0 14px 23px 0; }
.elementor-document-handle:after {
left: calc(100% - 1px);
border-left-color: #fcb92c;
border-width: 0 0 23px 14px; }
.elementor-document-handle .eicon-edit {
margin-left: 5px; }
.elementor-editor-active .elementor {
position: relative; }
.elementor-editor-active .elementor:not(.elementor-edit-mode):hover {
-webkit-box-shadow: 0 0 0 1px #fcb92c;
box-shadow: 0 0 0 1px #fcb92c; }
.elementor-editor-active .elementor:not(.elementor-edit-mode):hover .elementor-document-handle {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
line-height: initial; }
.elementor-editor-active .elementor.loading {
opacity: 0.5; }
.elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle {
-webkit-transform: translateX(-50%) translateY(-100%);
-ms-transform: translateX(-50%) translateY(-100%);
transform: translateX(-50%) translateY(-100%);
border-radius: 3px 3px 0 0; }
.elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle:before {
border-width: 23px 14px 0 0; }
.elementor-editor-active .elementor[data-elementor-type="single"] > .elementor-document-handle:after {
border-width: 23px 0 0 14px; }
.elementor-embedded-editor.elementor-location-header .elementor-section-wrap:not(:empty) + #elementor-add-new-section {
display: none; }
/*# sourceMappingURL=preview-rtl.css.map */[
{
"key": "group_63db85f18df07",
"title": "Products",
"fields": [
{
"key": "field_63db85f2d1709",
"label": "Test Image",
"name": "test_image",
"aria-label": "",
"type": "image",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"return_format": "array",
"library": "all",
"min_width": "",
"min_height": "",
"min_size": "",
"max_width": "",
"max_height": "",
"max_size": "",
"mime_types": "",
"preview_size": "medium"
},
{
"key": "field_63dcef444bbde",
"label": "Test Video",
"name": "test_video",
"aria-label": "",
"type": "url",
"instructions": "",
"required": 0,
"conditional_logic": 0,
"wrapper": {
"width": "",
"class": "",
"id": ""
},
"default_value": "",
"placeholder": ""
}
],
"location": [
[
{
"param": "post_type",
"operator": "==",
"value": "product"
}
]
],
"menu_order": 0,
"position": "normal",
"style": "default",
"label_placement": "top",
"instruction_placement": "label",
"hide_on_screen": "",
"active": true,
"description": "",
"show_in_rest": 0
}
].wp-block-kadence-iconlist ul.kt-svg-icon-list:not(.this-prevents-issues):not(.this-stops-third-party-issues):not(.tijsloc){list-style:none;padding:0;display:grid}.wp-block-kadence-iconlist ul.kt-svg-icon-list li.kt-svg-icon-list-item-wrap:not(.this-prevents-issues):not(.this-stops-third-party-issues):not(.tijsloc){display:flex}.wp-block-kadence-iconlist ul.kt-svg-icon-list{padding:0;list-style:none;margin:0 0 10px 0;text-align:right;grid-template-rows:auto;display:grid;gap:5px 0}.wp-block-kadence-iconlist ul.kt-svg-icon-list svg{width:1em;height:1em}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap{display:flex;align-items:center;padding:0}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap .kt-svg-icon-list-single{margin-left:10px;padding:4px 0;display:inline-flex;justify-content:center;align-items:center}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap .kt-svg-icon-link{display:flex;align-items:center}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap:last-child{margin-bottom:0}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-level-0{padding-right:0rem}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-level-1{padding-right:2rem}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-level-2{padding-right:4rem}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-level-3{padding-right:6rem}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-level-4{padding-right:8rem}.wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-level-5{padding-right:10rem}.rtl .wp-block-kadence-iconlist ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap .kt-svg-icon-list-single{margin-right:10px;margin-left:0}.kb-icon-list-tooltip-wrap{display:flex;align-items:center}.wp-block-kadence-listitem .kb-icon-list-tooltip:where(:not(.kb-list-tooltip-no-border)){border-bottom:1px dashed currentColor}.wp-block-kadence-listitem .kt-svg-icon-link>.kb-icon-list-tooltip{border-bottom:none}.wp-block-kadence-iconlist.kt-list-icon-aligntop ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap{align-items:flex-start}.wp-block-kadence-iconlist.kt-list-icon-alignbottom ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap{align-items:flex-end}.wp-block-kadence-iconlist.aligncenter .kt-svg-icon-list-item-wrap{justify-content:center}.kt-svg-icon-list-style-stacked .kt-svg-icon-list-single{border-style:solid;border-width:0}.kt-svg-icon-list-columns-2 ul.kt-svg-icon-list{grid-template-columns:repeat(2, minmax(0, 1fr))}.kt-svg-icon-list-columns-3 ul.kt-svg-icon-list{grid-template-columns:repeat(3, minmax(0, 1fr))}.wp-block-kadence-iconlist.kt-list-icon-aligntop ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap a.kt-svg-icon-link{align-items:flex-start}.wp-block-kadence-iconlist.kt-list-icon-alignbottom ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap a.kt-svg-icon-link{align-items:flex-end}@media(max-width: 1024px){.kt-tablet-svg-icon-list-columns-1 ul.kt-svg-icon-list{grid-template-columns:minmax(0, 1fr)}.kt-tablet-svg-icon-list-columns-2 ul.kt-svg-icon-list{grid-template-columns:repeat(2, minmax(0, 1fr))}.kt-tablet-svg-icon-list-columns-3 ul.kt-svg-icon-list{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(max-width: 767px){.kt-mobile-svg-icon-list-columns-1 ul.kt-svg-icon-list{grid-template-columns:minmax(0, 1fr)}.kt-mobile-svg-icon-list-columns-2 ul.kt-svg-icon-list{grid-template-columns:repeat(2, minmax(0, 1fr))}.kt-mobile-svg-icon-list-columns-3 ul.kt-svg-icon-list{grid-template-columns:repeat(3, minmax(0, 1fr))}}
Home - Storage LK - Business Park Road, Letterkenny, Co. Donegal
Skip to content
Storage, covered
We’ve got an affordable and secure home for all your loved belongings.
Book storage online and move in right away
Book storage online
Check out our prices, book everything online and get access immediately. We provide contactless self storage and you do not need to meet us in person.
Adaptable contracts
No one enjoys long contracts. With Storebox.ie, there is no such thing as a notice period. Your contract automatically renews every 28 days unless you get in touch with us.
Secure and safe storage
There is monitored CCTV 24/7 at all of our locations. Storage insurance is also added when you submit your booking to ensure your safety.
Simply access
Simply call the gate from your phone to get inside. A majority of our units have drive up access where you unload your belongings from your car directly into your storage unit.
Simply order a storage unit from the comfort of your home in less than 2 minutes.
We’re have huge pride in being rated “Excellent” by Google
Storage LK is your ultimate self-storage solution for business and personal storage in Letterkenny. Our facilities are situated in JR Business Park and have high security with alarms and monitored CCTV running 24/7. Our facilities offer simple access with a variety of units enabling you to drive up directly. Our storage units are available in a number of different sizes that suit various situations – whether you are planning on moving to that dream home, renovating or decluttering, or looking to store commercial equipment – Storage LK has you covered.
Sort out all your storage needs within minutes
Simply book online or make a reservation with us free of charge
Simply order a storage unit from the comfort of your home in less than 2 minutes.
Call: +353 87 832 9971
Address: Business Park Road Dromore, Letterkenny, Co. Donegal
Scroll to Top