TIF_E41200821/spk_saw_balita/assets/argon/js/argon.js

2695 lines
50 KiB
JavaScript

/*!
=========================================================
* Argon Dashboard PRO - v1.1.0
=========================================================
* Product Page: https://www.creative-tim.com/product/argon-dashboard
* Copyright 2019 Creative Tim (https://www.creative-tim.com)
* Coded by www.creative-tim.com
=========================================================
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*/
//
// Layout
//
'use strict';
var Layout = (function() {
function pinSidenav() {
$('.sidenav-toggler').addClass('active');
$('.sidenav-toggler').data('action', 'sidenav-unpin');
$('body').removeClass('g-sidenav-hidden').addClass('g-sidenav-show g-sidenav-pinned');
$('body').append('<div class="backdrop d-xl-none" data-action="sidenav-unpin" data-target='+$('#sidenav-main').data('target')+' />');
// Store the sidenav state in a cookie session
Cookies.set('sidenav-state', 'pinned');
}
function unpinSidenav() {
$('.sidenav-toggler').removeClass('active');
$('.sidenav-toggler').data('action', 'sidenav-pin');
$('body').removeClass('g-sidenav-pinned').addClass('g-sidenav-hidden');
$('body').find('.backdrop').remove();
// Store the sidenav state in a cookie session
Cookies.set('sidenav-state', 'unpinned');
}
// Set sidenav state from cookie
var $sidenavState = Cookies.get('sidenav-state') ? Cookies.get('sidenav-state') : 'pinned';
if($(window).width() > 1200) {
if($sidenavState == 'pinned') {
pinSidenav()
}
if(Cookies.get('sidenav-state') == 'unpinned') {
unpinSidenav()
}
}
$("body").on("click", "[data-action]", function(e) {
e.preventDefault();
var $this = $(this);
var action = $this.data('action');
var target = $this.data('target');
// Manage actions
switch (action) {
case 'sidenav-pin':
pinSidenav();
break;
case 'sidenav-unpin':
unpinSidenav();
break;
case 'search-show':
target = $this.data('target');
$('body').removeClass('g-navbar-search-show').addClass('g-navbar-search-showing');
setTimeout(function() {
$('body').removeClass('g-navbar-search-showing').addClass('g-navbar-search-show');
}, 150);
setTimeout(function() {
$('body').addClass('g-navbar-search-shown');
}, 300)
break;
case 'search-close':
target = $this.data('target');
$('body').removeClass('g-navbar-search-shown');
setTimeout(function() {
$('body').removeClass('g-navbar-search-show').addClass('g-navbar-search-hiding');
}, 150);
setTimeout(function() {
$('body').removeClass('g-navbar-search-hiding').addClass('g-navbar-search-hidden');
}, 300);
setTimeout(function() {
$('body').removeClass('g-navbar-search-hidden');
}, 500);
break;
}
})
// Add sidenav modifier classes on mouse events
$('.sidenav').on('mouseenter', function() {
if(! $('body').hasClass('g-sidenav-pinned')) {
$('body').removeClass('g-sidenav-hide').removeClass('g-sidenav-hidden').addClass('g-sidenav-show');
}
})
$('.sidenav').on('mouseleave', function() {
if(! $('body').hasClass('g-sidenav-pinned')) {
$('body').removeClass('g-sidenav-show').addClass('g-sidenav-hide');
setTimeout(function() {
$('body').removeClass('g-sidenav-hide').addClass('g-sidenav-hidden');
}, 300);
}
})
// Make the body full screen size if it has not enough content inside
$(window).on('load resize', function() {
if($('body').height() < 800) {
$('body').css('min-height', '100vh');
$('#footer-main').addClass('footer-auto-bottom')
}
})
})();
//
// Charts
//
'use strict';
var Charts = (function() {
// Variable
var $toggle = $('[data-toggle="chart"]');
var mode = 'light';//(themeMode) ? themeMode : 'light';
var fonts = {
base: 'Open Sans'
}
// Colors
var colors = {
gray: {
100: '#f6f9fc',
200: '#e9ecef',
300: '#dee2e6',
400: '#ced4da',
500: '#adb5bd',
600: '#8898aa',
700: '#525f7f',
800: '#32325d',
900: '#212529'
},
theme: {
'default': '#172b4d',
'primary': '#5e72e4',
'secondary': '#f4f5f7',
'info': '#11cdef',
'success': '#2dce89',
'danger': '#f5365c',
'warning': '#fb6340'
},
black: '#12263F',
white: '#FFFFFF',
transparent: 'transparent',
};
// Methods
// Chart.js global options
function chartOptions() {
// Options
var options = {
defaults: {
global: {
responsive: true,
maintainAspectRatio: false,
defaultColor: (mode == 'dark') ? colors.gray[700] : colors.gray[600],
defaultFontColor: (mode == 'dark') ? colors.gray[700] : colors.gray[600],
defaultFontFamily: fonts.base,
defaultFontSize: 13,
layout: {
padding: 0
},
legend: {
display: false,
position: 'bottom',
labels: {
usePointStyle: true,
padding: 16
}
},
elements: {
point: {
radius: 0,
backgroundColor: colors.theme['primary']
},
line: {
tension: .4,
borderWidth: 4,
borderColor: colors.theme['primary'],
backgroundColor: colors.transparent,
borderCapStyle: 'rounded'
},
rectangle: {
backgroundColor: colors.theme['warning']
},
arc: {
backgroundColor: colors.theme['primary'],
borderColor: (mode == 'dark') ? colors.gray[800] : colors.white,
borderWidth: 4
}
},
tooltips: {
enabled: true,
mode: 'index',
intersect: false,
}
},
doughnut: {
cutoutPercentage: 83,
legendCallback: function(chart) {
var data = chart.data;
var content = '';
data.labels.forEach(function(label, index) {
var bgColor = data.datasets[0].backgroundColor[index];
content += '<span class="chart-legend-item">';
content += '<i class="chart-legend-indicator" style="background-color: ' + bgColor + '"></i>';
content += label;
content += '</span>';
});
return content;
}
}
}
}
// yAxes
Chart.scaleService.updateScaleDefaults('linear', {
gridLines: {
borderDash: [2],
borderDashOffset: [2],
color: (mode == 'dark') ? colors.gray[900] : colors.gray[300],
drawBorder: false,
drawTicks: false,
drawOnChartArea: true,
zeroLineWidth: 0,
zeroLineColor: 'rgba(0,0,0,0)',
zeroLineBorderDash: [2],
zeroLineBorderDashOffset: [2]
},
ticks: {
beginAtZero: true,
padding: 10,
callback: function(value) {
if (!(value % 10)) {
return value
}
}
}
});
// xAxes
Chart.scaleService.updateScaleDefaults('category', {
gridLines: {
drawBorder: false,
drawOnChartArea: false,
drawTicks: false
},
ticks: {
padding: 20
},
maxBarThickness: 10
});
return options;
}
// Parse global options
function parseOptions(parent, options) {
for (var item in options) {
if (typeof options[item] !== 'object') {
parent[item] = options[item];
} else {
parseOptions(parent[item], options[item]);
}
}
}
// Push options
function pushOptions(parent, options) {
for (var item in options) {
if (Array.isArray(options[item])) {
options[item].forEach(function(data) {
parent[item].push(data);
});
} else {
pushOptions(parent[item], options[item]);
}
}
}
// Pop options
function popOptions(parent, options) {
for (var item in options) {
if (Array.isArray(options[item])) {
options[item].forEach(function(data) {
parent[item].pop();
});
} else {
popOptions(parent[item], options[item]);
}
}
}
// Toggle options
function toggleOptions(elem) {
var options = elem.data('add');
var $target = $(elem.data('target'));
var $chart = $target.data('chart');
if (elem.is(':checked')) {
// Add options
pushOptions($chart, options);
// Update chart
$chart.update();
} else {
// Remove options
popOptions($chart, options);
// Update chart
$chart.update();
}
}
// Update options
function updateOptions(elem) {
var options = elem.data('update');
var $target = $(elem.data('target'));
var $chart = $target.data('chart');
// Parse options
parseOptions($chart, options);
// Toggle ticks
toggleTicks(elem, $chart);
// Update chart
$chart.update();
}
// Toggle ticks
function toggleTicks(elem, $chart) {
if (elem.data('prefix') !== undefined || elem.data('prefix') !== undefined) {
var prefix = elem.data('prefix') ? elem.data('prefix') : '';
var suffix = elem.data('suffix') ? elem.data('suffix') : '';
// Update ticks
$chart.options.scales.yAxes[0].ticks.callback = function(value) {
if (!(value % 10)) {
return prefix + value + suffix;
}
}
// Update tooltips
$chart.options.tooltips.callbacks.label = function(item, data) {
var label = data.datasets[item.datasetIndex].label || '';
var yLabel = item.yLabel;
var content = '';
if (data.datasets.length > 1) {
content += '<span class="popover-body-label mr-auto">' + label + '</span>';
}
content += '<span class="popover-body-value">' + prefix + yLabel + suffix + '</span>';
return content;
}
}
}
// Events
// Parse global options
if (window.Chart) {
parseOptions(Chart, chartOptions());
}
// Toggle options
$toggle.on({
'change': function() {
var $this = $(this);
if ($this.is('[data-add]')) {
toggleOptions($this);
}
},
'click': function() {
var $this = $(this);
if ($this.is('[data-update]')) {
updateOptions($this);
}
}
});
// Return
return {
colors: colors,
fonts: fonts,
mode: mode
};
})();
//
// Icon code copy/paste
//
'use strict';
var CopyIcon = (function() {
// Variables
var $element = '.btn-icon-clipboard',
$btn = $($element);
// Methods
function init($this) {
$this.tooltip().on('mouseleave', function() {
// Explicitly hide tooltip, since after clicking it remains
// focused (as it's a button), so tooltip would otherwise
// remain visible until focus is moved away
$this.tooltip('hide');
});
var clipboard = new ClipboardJS($element);
clipboard.on('success', function(e) {
$(e.trigger)
.attr('title', 'Copied!')
.tooltip('_fixTitle')
.tooltip('show')
.attr('title', 'Copy to clipboard')
.tooltip('_fixTitle')
e.clearSelection()
});
}
// Events
if ($btn.length) {
init($btn);
}
})();
//
// Navbar
//
'use strict';
var Navbar = (function() {
// Variables
var $nav = $('.navbar-nav, .navbar-nav .nav');
var $collapse = $('.navbar .collapse');
var $dropdown = $('.navbar .dropdown');
// Methods
function accordion($this) {
$this.closest($nav).find($collapse).not($this).collapse('hide');
}
function closeDropdown($this) {
var $dropdownMenu = $this.find('.dropdown-menu');
$dropdownMenu.addClass('close');
setTimeout(function() {
$dropdownMenu.removeClass('close');
}, 200);
}
// Events
$collapse.on({
'show.bs.collapse': function() {
accordion($(this));
}
})
$dropdown.on({
'hide.bs.dropdown': function() {
closeDropdown($(this));
}
})
})();
//
// Navbar collapse
//
var NavbarCollapse = (function() {
// Variables
var $nav = $('.navbar-nav'),
$collapse = $('.navbar .navbar-custom-collapse');
// Methods
function hideNavbarCollapse($this) {
$this.addClass('collapsing-out');
}
function hiddenNavbarCollapse($this) {
$this.removeClass('collapsing-out');
}
// Events
if ($collapse.length) {
$collapse.on({
'hide.bs.collapse': function() {
hideNavbarCollapse($collapse);
}
})
$collapse.on({
'hidden.bs.collapse': function() {
hiddenNavbarCollapse($collapse);
}
})
}
})();
//
// Popover
//
'use strict';
var Popover = (function() {
// Variables
var $popover = $('[data-toggle="popover"]'),
$popoverClass = '';
// Methods
function init($this) {
if ($this.data('color')) {
$popoverClass = 'popover-' + $this.data('color');
}
var options = {
trigger: 'focus',
template: '<div class="popover ' + $popoverClass + '" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'
};
$this.popover(options);
}
// Events
if ($popover.length) {
$popover.each(function() {
init($(this));
});
}
})();
//
// Scroll to (anchor links)
//
'use strict';
var ScrollTo = (function() {
//
// Variables
//
var $scrollTo = $('.scroll-me, [data-scroll-to], .toc-entry a');
//
// Methods
//
function scrollTo($this) {
var $el = $this.attr('href');
var offset = $this.data('scroll-to-offset') ? $this.data('scroll-to-offset') : 0;
var options = {
scrollTop: $($el).offset().top - offset
};
// Animate scroll to the selected section
$('html, body').stop(true, true).animate(options, 600);
event.preventDefault();
}
//
// Events
//
if ($scrollTo.length) {
$scrollTo.on('click', function(event) {
scrollTo($(this));
});
}
})();
//
// Tooltip
//
'use strict';
var Tooltip = (function() {
// Variables
var $tooltip = $('[data-toggle="tooltip"]');
// Methods
function init() {
$tooltip.tooltip();
}
// Events
if ($tooltip.length) {
init();
}
})();
//
// Checklist
//
'use strict';
var Checklist = (function() {
//
// Variables
//
var $list = $('[data-toggle="checklist"]')
//
// Methods
//
// Init
function init($this) {
var $checkboxes = $this.find('.checklist-entry input[type="checkbox"]');
$checkboxes.each(function() {
checkEntry($(this));
});
}
function checkEntry($checkbox) {
if($checkbox.is(':checked')) {
$checkbox.closest('.checklist-item').addClass('checklist-item-checked');
} else {
$checkbox.closest('.checklist-item').removeClass('checklist-item-checked');
}
}
//
// Events
//
// Init
if ($list.length) {
$list.each(function() {
init($(this));
});
$list.find('input[type="checkbox"]').on('change', function() {
checkEntry($(this));
});
}
})();
//
// Form control
//
'use strict';
var FormControl = (function() {
// Variables
var $input = $('.form-control');
// Methods
function init($this) {
$this.on('focus blur', function(e) {
$(this).parents('.form-group').toggleClass('focused', (e.type === 'focus'));
}).trigger('blur');
}
// Events
if ($input.length) {
init($input);
}
})();
//
// Google maps
//
var $map = $('#map-default'),
map,
lat,
lng,
color = "#5e72e4";
function initMap() {
map = document.getElementById('map-default');
lat = map.getAttribute('data-lat');
lng = map.getAttribute('data-lng');
var myLatlng = new google.maps.LatLng(lat, lng);
var mapOptions = {
zoom: 12,
scrollwheel: false,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
}
map = new google.maps.Map(map, mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
animation: google.maps.Animation.DROP,
title: 'Hello World!'
});
var contentString = '<div class="info-window-content"><h2>Argon Dashboard PRO</h2>' +
'<p>A beautiful premium dashboard for Bootstrap 4.</p></div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
}
if($map.length) {
google.maps.event.addDomListener(window, 'load', initMap);
}
//
// Google maps
//
var $map = $('#map-custom'),
map,
lat,
lng,
color = "#5e72e4";
function initMap() {
map = document.getElementById('map-custom');
lat = map.getAttribute('data-lat');
lng = map.getAttribute('data-lng');
var myLatlng = new google.maps.LatLng(lat, lng);
var mapOptions = {
zoom: 12,
scrollwheel: false,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
styles: [{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#444444"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":color},{"visibility":"on"}]}]
}
map = new google.maps.Map(map, mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
animation: google.maps.Animation.DROP,
title: 'Hello World!'
});
var contentString = '<div class="info-window-content"><h2>Argon Dashboard PRO</h2>' +
'<p>A beautiful premium dashboard for Bootstrap 4.</p></div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
}
if($map.length) {
google.maps.event.addDomListener(window, 'load', initMap);
}
//
// Charts
//
'use strict';
//
// Doughnut chart
//
var BarStackedChart = (function() {
// Variables
var $chart = $('#chart-bar-stacked');
// Methods
function init($this) {
// Only for demo purposes - return a random number to generate datasets
var randomScalingFactor = function() {
return Math.round(Math.random() * 100);
};
// Chart data
var data = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [{
label: 'Dataset 1',
backgroundColor: Charts.colors.theme['danger'],
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
]
}, {
label: 'Dataset 2',
backgroundColor: Charts.colors.theme['primary'],
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
]
}, {
label: 'Dataset 3',
backgroundColor: Charts.colors.theme['success'],
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
]
}]
};
// Options
var options = {
tooltips: {
mode: 'index',
intersect: false
},
responsive: true,
scales: {
xAxes: [{
stacked: true,
}],
yAxes: [{
stacked: true
}]
}
}
// Init chart
var barStackedChart = new Chart($this, {
type: 'bar',
data: data,
options: options
});
// Save to jQuery object
$this.data('chart', barStackedChart);
};
// Events
if ($chart.length) {
init($chart);
}
})();
//
// Charts
//
'use strict';
//
// Doughnut chart
//
var DoughnutChart = (function() {
// Variables
var $chart = $('#chart-doughnut');
// Methods
function init($this) {
var randomScalingFactor = function() {
return Math.round(Math.random() * 100);
};
var doughnutChart = new Chart($this, {
type: 'doughnut',
data: {
labels: [
'Danger',
'Warning',
'Success',
'Primary',
'Info'
],
datasets: [{
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
],
backgroundColor: [
Charts.colors.theme['danger'],
Charts.colors.theme['warning'],
Charts.colors.theme['success'],
Charts.colors.theme['primary'],
Charts.colors.theme['info'],
],
label: 'Dataset 1'
}],
},
options: {
responsive: true,
legend: {
position: 'top',
},
animation: {
animateScale: true,
animateRotate: true
}
}
});
// Save to jQuery object
$this.data('chart', doughnutChart);
};
// Events
if ($chart.length) {
init($chart);
}
})();
//
// Charts
//
'use strict';
//
// Doughnut chart
//
var PieChart = (function() {
// Variables
var $chart = $('#chart-pie');
// Methods
function init($this) {
var randomScalingFactor = function() {
return Math.round(Math.random() * 100);
};
var pieChart = new Chart($this, {
type: 'pie',
data: {
labels: [
'Danger',
'Warning',
'Success',
'Primary',
'Info'
],
datasets: [{
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
],
backgroundColor: [
Charts.colors.theme['danger'],
Charts.colors.theme['warning'],
Charts.colors.theme['success'],
Charts.colors.theme['primary'],
Charts.colors.theme['info'],
],
label: 'Dataset 1'
}],
},
options: {
responsive: true,
legend: {
position: 'top',
},
animation: {
animateScale: true,
animateRotate: true
}
}
});
// Save to jQuery object
$this.data('chart', pieChart);
};
// Events
if ($chart.length) {
init($chart);
}
})();
//
// Charts
//
'use strict';
//
// Points chart
//
var PointsChart = (function() {
// Variables
var $chart = $('#chart-points');
// Methods
function init($this) {
var salesChart = new Chart($this, {
type: 'line',
options: {
scales: {
yAxes: [{
gridLines: {
color: Charts.colors.gray[200],
zeroLineColor: Charts.colors.gray[200]
},
ticks: {
}
}]
}
},
data: {
labels: ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
datasets: [{
label: 'Performance',
data: [10, 18, 28, 23, 28, 40, 36, 46, 52],
pointRadius: 10,
pointHoverRadius: 15,
showLine: false
}]
}
});
// Save to jQuery object
$this.data('chart', salesChart);
};
// Events
if ($chart.length) {
init($chart);
}
})();
//
// Charts
//
'use strict';
//
// Sales chart
//
var SalesChart = (function() {
// Variables
var $chart = $('#chart-sales-dark');
// Methods
function init($this) {
var salesChart = new Chart($this, {
type: 'line',
options: {
scales: {
yAxes: [{
gridLines: {
color: Charts.colors.gray[700],
zeroLineColor: Charts.colors.gray[700]
},
ticks: {
}
}]
}
},
data: {
labels: ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
datasets: [{
label: 'Performance',
data: [0, 20, 10, 30, 15, 40, 20, 60, 60]
}]
}
});
// Save to jQuery object
$this.data('chart', salesChart);
};
// Events
if ($chart.length) {
init($chart);
}
})();
//
// Charts
//
'use strict';
//
// Sales chart
//
var SalesChart = (function() {
// Variables
var $chart = $('#chart-sales');
// Methods
function init($this) {
var salesChart = new Chart($this, {
type: 'line',
options: {
scales: {
yAxes: [{
gridLines: {
color: Charts.colors.gray[200],
zeroLineColor: Charts.colors.gray[200]
},
ticks: {
}
}]
}
},
data: {
labels: ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
datasets: [{
label: 'Performance',
data: [0, 20, 10, 30, 15, 40, 20, 60, 60]
}]
}
});
// Save to jQuery object
$this.data('chart', salesChart);
};
// Events
if ($chart.length) {
init($chart);
}
})();
//
// Bars chart
//
var BarsChart = (function() {
//
// Variables
//
var $chart = $('#chart-bars');
//
// Methods
//
// Init chart
function initChart($chart) {
// Create chart
var ordersChart = new Chart($chart, {
type: 'bar',
data: {
labels: ['Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
datasets: [{
label: 'Sales',
data: [25, 20, 30, 22, 17, 29]
}]
}
});
// Save to jQuery object
$chart.data('chart', ordersChart);
}
// Init chart
if ($chart.length) {
initChart($chart);
}
})();
//
// Charts
//
'use strict';
//
// Sales chart
//
var LineChart = (function() {
// Variables
var $chart = $('#chart-line');
// Methods
function init($this) {
var salesChart = new Chart($this, {
type: 'line',
options: {
scales: {
yAxes: [{
gridLines: {
color: Charts.colors.gray[200],
zeroLineColor: Charts.colors.gray[200]
},
ticks: {
}
}]
}
},
data: {
labels: ['May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
datasets: [{
label: 'Performance',
data: [0, 20, 10, 30, 15, 40, 20, 60, 60]
}]
}
});
// Save to jQuery object
$this.data('chart', salesChart);
};
// Events
if ($chart.length) {
init($chart);
}
})();
//
// Widget Calendar
//
if($('[data-toggle="widget-calendar"]')[0]) {
$('[data-toggle="widget-calendar"]').fullCalendar({
contentHeight: 'auto',
theme: false,
buttonIcons: {
prev: ' ni ni-bold-left',
next: ' ni ni-bold-right'
},
header: {
right: 'next',
center: 'title, ',
left: 'prev'
},
defaultDate: '2018-12-01',
editable: true,
events: [
{
title: 'Call with Dave',
start: '2018-11-18',
end: '2018-11-18',
className: 'bg-red'
},
{
title: 'Lunch meeting',
start: '2018-11-21',
end: '2018-11-22',
className: 'bg-orange'
},
{
title: 'All day conference',
start: '2018-11-29',
end: '2018-11-29',
className: 'bg-green'
},
{
title: 'Meeting with Mary',
start: '2018-12-01',
end: '2018-12-01',
className: 'bg-blue'
},
{
title: 'Winter Hackaton',
start: '2018-12-03',
end: '2018-12-03',
className: 'bg-red'
},
{
title: 'Digital event',
start: '2018-12-07',
end: '2018-12-09',
className: 'bg-warning'
},
{
title: 'Marketing event',
start: '2018-12-10',
end: '2018-12-10',
className: 'bg-purple'
},
{
title: 'Dinner with Family',
start: '2018-12-19',
end: '2018-12-19',
className: 'bg-red'
},
{
title: 'Black Friday',
start: '2018-12-23',
end: '2018-12-23',
className: 'bg-blue'
},
{
title: 'Cyber Week',
start: '2018-12-02',
end: '2018-12-02',
className: 'bg-yellow'
},
]
});
//Display Current Date as Calendar widget header
var mYear = moment().format('YYYY');
var mDay = moment().format('dddd, MMM D');
$('.widget-calendar-year').html(mYear);
$('.widget-calendar-day').html(mDay);
}
//
// Datatable
//
'use strict';
var DatatableBasic = (function() {
// Variables
var $dtBasic = $('#datatable-basic');
// Methods
function init($this) {
// Basic options. For more options check out the Datatables Docs:
// https://datatables.net/manual/options
var options = {
keys: !0,
select: {
style: "multi"
},
language: {
paginate: {
previous: "<i class='fas fa-angle-left'>",
next: "<i class='fas fa-angle-right'>"
}
},
};
// Init the datatable
var table = $this.on( 'init.dt', function () {
$('div.dataTables_length select').removeClass('custom-select custom-select-sm');
}).DataTable(options);
}
// Events
if ($dtBasic.length) {
init($dtBasic);
}
})();
//
// Buttons Datatable
//
var DatatableButtons = (function() {
// Variables
var $dtButtons = $('#datatable-buttons');
// Methods
function init($this) {
// For more options check out the Datatables Docs:
// https://datatables.net/extensions/buttons/
var buttons = ["copy", "print"];
// Basic options. For more options check out the Datatables Docs:
// https://datatables.net/manual/options
var options = {
lengthChange: !1,
dom: 'Bfrtip',
buttons: buttons,
// select: {
// style: "multi"
// },
language: {
paginate: {
previous: "<i class='fas fa-angle-left'>",
next: "<i class='fas fa-angle-right'>"
}
}
};
// Init the datatable
var table = $this.on( 'init.dt', function () {
$('.dt-buttons .btn').removeClass('btn-secondary').addClass('btn-sm btn-default');
}).DataTable(options);
}
// Events
if ($dtButtons.length) {
init($dtButtons);
}
})();
//
// Dropzone
//
'use strict';
var Dropzones = (function() {
//
// Variables
//
var $dropzone = $('[data-toggle="dropzone"]');
var $dropzonePreview = $('.dz-preview');
//
// Methods
//
function init($this) {
var multiple = ($this.data('dropzone-multiple') !== undefined) ? true : false;
var preview = $this.find($dropzonePreview);
var currentFile = undefined;
// Init options
var options = {
url: $this.data('dropzone-url'),
thumbnailWidth: null,
thumbnailHeight: null,
previewsContainer: preview.get(0),
previewTemplate: preview.html(),
maxFiles: (!multiple) ? 1 : null,
acceptedFiles: (!multiple) ? 'image/*' : null,
init: function() {
this.on("addedfile", function(file) {
if (!multiple && currentFile) {
this.removeFile(currentFile);
}
currentFile = file;
})
}
}
// Clear preview html
preview.html('');
// Init dropzone
$this.dropzone(options)
}
function globalOptions() {
Dropzone.autoDiscover = false;
}
//
// Events
//
if ($dropzone.length) {
// Set global options
globalOptions();
// Init dropzones
$dropzone.each(function() {
init($(this));
});
}
})();
//
// Bootstrap Datepicker
//
'use strict';
var Datepicker = (function() {
// Variables
var $datepicker = $('.datepicker');
// Methods
function init($this) {
var options = {
disableTouchKeyboard: true,
autoclose: false
};
$this.datepicker(options);
}
// Events
if ($datepicker.length) {
$datepicker.each(function() {
init($(this));
});
}
})();
//
// Form control
//
'use strict';
var noUiSlider = (function() {
// Variables
// var $sliderContainer = $('.input-slider-container'),
// $slider = $('.input-slider'),
// $sliderId = $slider.attr('id'),
// $sliderMinValue = $slider.data('range-value-min');
// $sliderMaxValue = $slider.data('range-value-max');;
// // Methods
//
// function init($this) {
// $this.on('focus blur', function(e) {
// $this.parents('.form-group').toggleClass('focused', (e.type === 'focus' || this.value.length > 0));
// }).trigger('blur');
// }
//
//
// // Events
//
// if ($input.length) {
// init($input);
// }
if ($(".input-slider-container")[0]) {
$('.input-slider-container').each(function() {
var slider = $(this).find('.input-slider');
var sliderId = slider.attr('id');
var minValue = slider.data('range-value-min');
var maxValue = slider.data('range-value-max');
var sliderValue = $(this).find('.range-slider-value');
var sliderValueId = sliderValue.attr('id');
var startValue = sliderValue.data('range-value-low');
var c = document.getElementById(sliderId),
d = document.getElementById(sliderValueId);
noUiSlider.create(c, {
start: [parseInt(startValue)],
connect: [true, false],
//step: 1000,
range: {
'min': [parseInt(minValue)],
'max': [parseInt(maxValue)]
}
});
c.noUiSlider.on('update', function(a, b) {
d.textContent = a[b];
});
})
}
if ($("#input-slider-range")[0]) {
var c = document.getElementById("input-slider-range"),
d = document.getElementById("input-slider-range-value-low"),
e = document.getElementById("input-slider-range-value-high"),
f = [d, e];
noUiSlider.create(c, {
start: [parseInt(d.getAttribute('data-range-value-low')), parseInt(e.getAttribute('data-range-value-high'))],
connect: !0,
range: {
min: parseInt(c.getAttribute('data-range-value-min')),
max: parseInt(c.getAttribute('data-range-value-max'))
}
}), c.noUiSlider.on("update", function(a, b) {
f[b].textContent = a[b]
})
}
})();
//
// Scrollbar
//
'use strict';
var Scrollbar = (function() {
// Variables
var $scrollbar = $('.scrollbar-inner');
// Methods
function init() {
$scrollbar.scrollbar().scrollLock()
}
// Events
if ($scrollbar.length) {
init();
}
})();
//
// Fullcalendar
//
'use strict';
var Fullcalendar = (function() {
// Variables
var $calendar = $('[data-toggle="calendar"]');
//
// Methods
//
// Init
function init($this) {
// Calendar events
var events = [
{
id: 1,
title: 'Call with Dave',
start: '2018-11-18',
allDay: true,
className: 'bg-red',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
{
id: 2,
title: 'Lunch meeting',
start: '2018-11-21',
allDay: true,
className: 'bg-orange',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
{
id: 3,
title: 'All day conference',
start: '2018-11-29',
allDay: true,
className: 'bg-green',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
{
id: 4,
title: 'Meeting with Mary',
start: '2018-12-01',
allDay: true,
className: 'bg-blue',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
{
id: 5,
title: 'Winter Hackaton',
start: '2018-12-03',
allDay: true,
className: 'bg-red',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
{
id: 6,
title: 'Digital event',
start: '2018-12-07',
allDay: true,
className: 'bg-warning',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
{
id: 7,
title: 'Marketing event',
start: '2018-12-10',
allDay: true,
className: 'bg-purple',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
{
id: 8,
title: 'Dinner with Family',
start: '2018-12-19',
allDay: true,
className: 'bg-red',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
{
id: 9,
title: 'Black Friday',
start: '2018-12-23',
allDay: true,
className: 'bg-blue',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
{
id: 10,
title: 'Cyber Week',
start: '2018-12-02',
allDay: true,
className: 'bg-yellow',
description: 'Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.'
},
],
// Full calendar options
// For more options read the official docs: https://fullcalendar.io/docs
options = {
header: {
right: '',
center: '',
left: ''
},
buttonIcons: {
prev: 'calendar--prev',
next: 'calendar--next'
},
theme: false,
selectable: true,
selectHelper: true,
editable: true,
events: events,
dayClick: function(date) {
var isoDate = moment(date).toISOString();
$('#new-event').modal('show');
$('.new-event--title').val('');
$('.new-event--start').val(isoDate);
$('.new-event--end').val(isoDate);
},
viewRender: function(view) {
var calendarDate = $this.fullCalendar('getDate');
var calendarMonth = calendarDate.month();
//Set data attribute for header. This is used to switch header images using css
// $this.find('.fc-toolbar').attr('data-calendar-month', calendarMonth);
//Set title in page header
$('.fullcalendar-title').html(view.title);
},
// Edit calendar event action
eventClick: function(event, element) {
$('#edit-event input[value=' + event.className + ']').prop('checked', true);
$('#edit-event').modal('show');
$('.edit-event--id').val(event.id);
$('.edit-event--title').val(event.title);
$('.edit-event--description').val(event.description);
}
};
// Initalize the calendar plugin
$this.fullCalendar(options);
//
// Calendar actions
//
//Add new Event
$('body').on('click', '.new-event--add', function() {
var eventTitle = $('.new-event--title').val();
// Generate ID
var GenRandom = {
Stored: [],
Job: function() {
var newId = Date.now().toString().substr(6); // or use any method that you want to achieve this string
if (!this.Check(newId)) {
this.Stored.push(newId);
return newId;
}
return this.Job();
},
Check: function(id) {
for (var i = 0; i < this.Stored.length; i++) {
if (this.Stored[i] == id) return true;
}
return false;
}
};
if (eventTitle != '') {
$this.fullCalendar('renderEvent', {
id: GenRandom.Job(),
title: eventTitle,
start: $('.new-event--start').val(),
end: $('.new-event--end').val(),
allDay: true,
className: $('.event-tag input:checked').val()
}, true);
$('.new-event--form')[0].reset();
$('.new-event--title').closest('.form-group').removeClass('has-danger');
$('#new-event').modal('hide');
} else {
$('.new-event--title').closest('.form-group').addClass('has-danger');
$('.new-event--title').focus();
}
});
//Update/Delete an Event
$('body').on('click', '[data-calendar]', function() {
var calendarAction = $(this).data('calendar');
var currentId = $('.edit-event--id').val();
var currentTitle = $('.edit-event--title').val();
var currentDesc = $('.edit-event--description').val();
var currentClass = $('#edit-event .event-tag input:checked').val();
var currentEvent = $this.fullCalendar('clientEvents', currentId);
//Update
if (calendarAction === 'update') {
if (currentTitle != '') {
currentEvent[0].title = currentTitle;
currentEvent[0].description = currentDesc;
currentEvent[0].className = [currentClass];
console.log(currentClass);
$this.fullCalendar('updateEvent', currentEvent[0]);
$('#edit-event').modal('hide');
} else {
$('.edit-event--title').closest('.form-group').addClass('has-error');
$('.edit-event--title').focus();
}
}
//Delete
if (calendarAction === 'delete') {
$('#edit-event').modal('hide');
// Show confirm dialog
setTimeout(function() {
swal({
title: 'Are you sure?',
text: "You won't be able to revert this!",
type: 'warning',
showCancelButton: true,
buttonsStyling: false,
confirmButtonClass: 'btn btn-danger',
confirmButtonText: 'Yes, delete it!',
cancelButtonClass: 'btn btn-secondary'
}).then((result) => {
if (result.value) {
// Delete event
$this.fullCalendar('removeEvents', currentId);
// Show confirmation
swal({
title: 'Deleted!',
text: 'The event has been deleted.',
type: 'success',
buttonsStyling: false,
confirmButtonClass: 'btn btn-primary'
});
}
})
}, 200);
}
});
//Calendar views switch
$('body').on('click', '[data-calendar-view]', function(e) {
e.preventDefault();
$('[data-calendar-view]').removeClass('active');
$(this).addClass('active');
var calendarView = $(this).attr('data-calendar-view');
$this.fullCalendar('changeView', calendarView);
});
//Calendar Next
$('body').on('click', '.fullcalendar-btn-next', function(e) {
e.preventDefault();
$this.fullCalendar('next');
});
//Calendar Prev
$('body').on('click', '.fullcalendar-btn-prev', function(e) {
e.preventDefault();
$this.fullCalendar('prev');
});
}
//
// Events
//
// Init
if ($calendar.length) {
init($calendar);
}
})();
//
// Quill.js
//
'use strict';
var VectorMap = (function() {
// Variables
var $vectormap = $('[data-toggle="vectormap"]'),
colors = {
gray: {
100: '#f6f9fc',
200: '#e9ecef',
300: '#dee2e6',
400: '#ced4da',
500: '#adb5bd',
600: '#8898aa',
700: '#525f7f',
800: '#32325d',
900: '#212529'
},
theme: {
'default': '#172b4d',
'primary': '#5e72e4',
'secondary': '#f4f5f7',
'info': '#11cdef',
'success': '#2dce89',
'danger': '#f5365c',
'warning': '#fb6340'
},
black: '#12263F',
white: '#FFFFFF',
transparent: 'transparent',
};
// Methods
function init($this) {
// Get placeholder
var map = $this.data('map'),
series = {
"AU": 760,
"BR": 550,
"CA": 120,
"DE": 1300,
"FR": 540,
"GB": 690,
"GE": 200,
"IN": 200,
"RO": 600,
"RU": 300,
"US": 2920,
},
options = {
map: map,
zoomOnScroll: false,
scaleColors: ['#f00', '#0071A4'],
normalizeFunction: 'polynomial',
hoverOpacity: 0.7,
hoverColor: false,
backgroundColor: colors.transparent,
regionStyle: {
initial: {
fill: colors.gray[200],
"fill-opacity": .8,
stroke: 'none',
"stroke-width": 0,
"stroke-opacity": 1
},
hover: {
fill: colors.gray[300],
"fill-opacity": .8,
cursor: 'pointer'
},
selected: {
fill: 'yellow'
},
selectedHover: {
}
},
markerStyle: {
initial: {
fill: colors.theme.warning,
"stroke-width": 0
},
hover: {
fill: colors.theme.info,
"stroke-width": 0
},
},
markers: [
{
latLng: [41.90, 12.45],
name: 'Vatican City'
},
{
latLng: [43.73, 7.41],
name: 'Monaco'
},
{
latLng: [35.88, 14.5],
name: 'Malta'
},
{
latLng: [1.3, 103.8],
name: 'Singapore'
},
{
latLng: [1.46, 173.03],
name: 'Kiribati'
},
{
latLng: [-21.13, -175.2],
name: 'Tonga'
},
{
latLng: [15.3, -61.38],
name: 'Dominica'
},
{
latLng: [-20.2, 57.5],
name: 'Mauritius'
},
{
latLng: [26.02, 50.55],
name: 'Bahrain'
}
],
series: {
regions: [{
values: series,
scale: [colors.gray[400], colors.gray[500]],
normalizeFunction: 'polynomial'
}]
},
};
// Init map
$this.vectorMap(options);
// Customize controls
$this.find('.jvectormap-zoomin').addClass('btn btn-sm btn-primary');
$this.find('.jvectormap-zoomout').addClass('btn btn-sm btn-primary');
}
// Events
if ($vectormap.length) {
$vectormap.each(function() {
init($(this));
});
}
})();
//
// Lavalamp
//
'use strict';
var Lavalamp = (function() {
// Variables
var $nav = $('[data-toggle="lavalamp"]');
// Methods
function init($this) {
var options = {
setOnClick: false,
enableHover: true,
margins: true,
autoUpdate: true,
duration: 200
};
$this.lavalamp(options);
}
// Events
if ($nav.length) {
$nav.each(function() {
init($(this));
});
}
})();
//
// List.js
//
'use strict';
var SortList = (function() {
// //
// Variables
// //
var $lists = $('[data-toggle="list"]');
var $listsSort = $('[data-sort]');
//
// Methods
//
// Init
function init($list) {
new List($list.get(0), getOptions($list));
}
// Get options
function getOptions($list) {
var options = {
valueNames: $list.data('list-values'),
listClass: $list.data('list-class') ? $list.data('list-class') : 'list'
}
return options;
}
//
// Events
//
// Init
if ($lists.length) {
$lists.each(function() {
init($(this));
});
}
// Sort
$listsSort.on('click', function() {
return false;
});
})();
//
// Notify
// init of the bootstrap-notify plugin
//
'use strict';
var Notify = (function() {
// Variables
var $notifyBtn = $('[data-toggle="notify"]');
// Methods
function notify(placement, align, icon, type, animIn, animOut) {
$.notify({
icon: icon,
title: ' Bootstrap Notify',
message: 'Turning standard Bootstrap alerts into awesome notifications',
url: ''
}, {
element: 'body',
type: type,
allow_dismiss: true,
placement: {
from: placement,
align: align
},
offset: {
x: 15, // Keep this as default
y: 15 // Unless there'll be alignment issues as this value is targeted in CSS
},
spacing: 10,
z_index: 1080,
delay: 2500,
timer: 25000,
url_target: '_blank',
mouse_over: false,
animate: {
// enter: animIn,
// exit: animOut
enter: animIn,
exit: animOut
},
template: '<div data-notify="container" class="alert alert-dismissible alert-{0} alert-notify" role="alert">' +
'<span class="alert-icon" data-notify="icon"></span> ' +
'<div class="alert-text"</div> ' +
'<span class="alert-title" data-notify="title">{1}</span> ' +
'<span data-notify="message">{2}</span>' +
'</div>' +
// '<div class="progress" data-notify="progressbar">' +
// '<div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>' +
// '</div>' +
// '<a href="{3}" target="{4}" data-notify="url"></a>' +
'<button type="button" class="close" data-notify="dismiss" aria-label="Close"><span aria-hidden="true">&times;</span></button>' +
'</div>'
});
}
// Events
if ($notifyBtn.length) {
$notifyBtn.on('click', function(e) {
e.preventDefault();
var placement = $(this).attr('data-placement');
var align = $(this).attr('data-align');
var icon = $(this).attr('data-icon');
var type = $(this).attr('data-type');
var animIn = $(this).attr('data-animation-in');
var animOut = $(this).attr('data-animation-out');
notify(placement, align, icon, type, animIn, animOut);
})
}
})();
//
// Onscreen - viewport checker
//
'use strict';
var OnScreen = (function() {
// Variables
var $onscreen = $('[data-toggle="on-screen"]');
// Methods
function init($this) {
var options = {
container: window,
direction: 'vertical',
doIn: function() {
//alert();
},
doOut: function() {
// Do something to the matched elements as they get off scren
},
tolerance: 200,
throttle: 50,
toggleClass: 'on-screen',
debug: false
};
$this.onScreen(options);
}
// Events
if ($onscreen.length) {
init($onscreen);
}
})();
//
// Quill.js
//
'use strict';
var QuillEditor = (function() {
// Variables
var $quill = $('[data-toggle="quill"]');
// Methods
function init($this) {
// Get placeholder
var placeholder = $this.data('quill-placeholder');
// Init editor
var quill = new Quill($this.get(0), {
modules: {
toolbar: [
['bold', 'italic'],
['link', 'blockquote', 'code', 'image'],
[{
'list': 'ordered'
}, {
'list': 'bullet'
}]
]
},
placeholder: placeholder,
theme: 'snow'
});
}
// Events
if ($quill.length) {
$quill.each(function() {
init($(this));
});
}
})();
//
// Select2.js
//
'use strict';
var Select2 = (function() {
//
// Variables
//
var $select = $('[data-toggle="select"]');
//
// Methods
//
function init($this) {
var options = {
// dropdownParent: $this.closest('.modal').length ? $this.closest('.modal') : $(document.body),
// minimumResultsForSearch: $this.data('minimum-results-for-search'),
// templateResult: formatAvatar
};
$this.select2(options);
}
//
// Events
//
if ($select.length) {
// Init selects
$select.each(function() {
init($(this));
});
}
})();
//
// Tags input
//
'use strict';
var Tags = (function() {
//
// Variables
//
var $tags = $('[data-toggle="tags"]');
//
// Methods
//
function init($this) {
var options = {
tagClass: 'badge badge-primary'
};
$this.tagsinput(options);
}
//
// Events
//
if ($tags.length) {
// Init selects
$tags.each(function() {
init($(this));
});
}
})();