import * as Uniform from 'uniform';
window.Uniform = Uniform;
if($) {
/*
Dropdown
*/
$.fn.uniformDropdown = function() {
return this.each(function(){
var el = $(this);
var options = {
el: this
};
if (el.data('dropdown-align') !== undefined) options.align = el.data('dropdown-align');
if (el.data('dropdown-trigger') !== undefined) options.trigger = el.data('dropdown-trigger');
if (el.data('dropdown-show_arrow') !== undefined) options.show_arrow = el.data('dropdown-show_arrow');
if (el.data('dropdown-square') !== undefined) options.square = el.data('dropdown-square');
if (el.data('dropdown-hide_sm') !== undefined) options.hide_sm = el.data('dropdown-hide_sm');
if (el.data('dropdown-content') !== undefined) options.content = `
${el.data('dropdown-content')}
`;
if (el.data('dropdown-target') !== undefined) options.content = $(el.data('dropdown-target'))[0];
var dropdown = new Uniform.Dropdown(options);
dropdown.on('*', function (event_key, dropdown) {
el.trigger('dropdown-' + event_key, dropdown);
});
dropdown.render();
});
};
/*
Checkbox
*/
$.fn.uniformCheckbox = function() {
return this.each(function(){
var el = $(this);
var checkbox = new Uniform.Checkbox({
el: this
});
checkbox.render();
});
};
$.fn.uniformRadio = $.fn.uniformCheckbox;
/*
FloatingLabel
*/
$.fn.uniformFloatingLabel = function() {
return this.each(function(){
new Uniform.FloatingLabel({
el: this
}).render();
});
};
/*
Modal
*/
$.fn.uniformModal = function() {
return this.click(function(){
var el = $(this);
var options = {
klass: el.data('modal-klass'),
content: el.data('modal-content')
};
if (el.data('modal-target')) {
var target = $(el.data('modal-target')).clone()
target.removeClass('hidden');
options.content = target[0];
}
var modal = new Uniform.Modal(options).render();
modal.on('*', function (event_type, modal) {
el.trigger('modal-' + event_type, modal);
});
})
};
/*
Resizer
*/
$.fn.uniformResizer = function() {
return this.each(function(){
new Uniform.Resizer({
el: this
});
});
};
/*
Select
*/
$.fn.uniformSelect = function() {
return this.each(function(){
var options = {
el: this
};
Object.assign(options, $(this).data());
new Uniform.Select(options).render();
});
};
/*
Tooltip
*/
$.fn.uniformTooltip = function() {
return this.each(function(){
var el = $(this);
var tooltip = new Uniform.Tooltip({
message: el.data('tooltip-message'),
container: el.data('tooltip-container'),
el: this
});
tooltip.on('*', function (event_type, tooltip) {
el.trigger('tooltip-' + event_type, tooltip);
});
tooltip.render();
});
};
$.fn.uniformTristate = function () {
return this.each(function(){
var el = $(this);
function updateTristateStatus(checked_input){
if (checked_input.length == 0) {
el.addClass('-null');
$(el.find('input')[1]).prop('checked', true);
} else {
var index = checked_input.index();
var klass = index == 0 ? "-true" : (index == 1 ? "-null" : "-false");
el.removeClass('-true -null -false');
el.addClass(klass);
}
}
el.on('change', 'input', function (e) {
updateTristateStatus($(e.currentTarget));
});
updateTristateStatus(el.find('input:checked'));
el.on('blur', 'input', function (e) {
el.removeClass('-focus');
});
el.on('focus', 'input', function (e) {
el.addClass('-focus');
});
});
}
}