(function (global, factory) {
if (typeof define === "function" && define.amd) {
define("/Plugin/material", ["exports", "jquery", "Plugin"], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require("jquery"), require("Plugin"));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.jQuery, global.Plugin);
global.PluginMaterial = mod.exports;
}
})(this, function (_exports, _jquery, _Plugin2) {
"use strict";
Object.defineProperty(_exports, "__esModule", {
value: true
});
_exports.default = void 0;
_jquery = babelHelpers.interopRequireDefault(_jquery);
_Plugin2 = babelHelpers.interopRequireDefault(_Plugin2);
var NAME = 'formMaterial';
function isChar(e) {
if (typeof e.which === 'undefined') {
return true;
} else if (typeof e.which === 'number' && e.which > 0) {
return !e.ctrlKey && !e.metaKey && !e.altKey && e.which !== 8 && e.which !== 9;
}
return false;
}
var FormMaterial =
/*#__PURE__*/
function (_Plugin) {
babelHelpers.inherits(FormMaterial, _Plugin);
function FormMaterial() {
babelHelpers.classCallCheck(this, FormMaterial);
return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(FormMaterial).apply(this, arguments));
}
babelHelpers.createClass(FormMaterial, [{
key: "getName",
value: function getName() {
return NAME;
}
}, {
key: "render",
value: function render() {
var $el = this.$el;
var $control = this.$control = $el.find('.form-control'); // Add hint label if required
if ($control.attr('data-hint')) {
$control.after("
".concat($control.attr('data-hint'), "
"));
}
if ($el.hasClass('floating')) {
// Add floating label if required
if ($control.hasClass('floating-label')) {
var placeholder = $control.attr('placeholder');
$control.attr('placeholder', null).removeClass('floating-label');
$control.after("".concat(placeholder, "
"));
} // Set as empty if is empty
if ($control.val() === null || $control.val() === 'undefined' || $control.val() === '') {
$control.addClass('empty');
}
} // Support for file input
if ($control.next().is('[type=file]')) {
$el.addClass('form-material-file');
}
this.$file = $el.find('[type=file]');
this.bind();
$el.data('formMaterialAPI', this);
}
}, {
key: "bind",
value: function bind() {
var _this = this;
var $el = this.$el;
var $control = this.$control = $el.find('.form-control');
$el.on('keydown.site.material paste.site.material', '.form-control', function (e) {
if (isChar(e)) {
$control.removeClass('empty');
}
}).on('keyup.site.material change.site.material', '.form-control', function () {
if ($control.val() === '' && typeof $control[0].checkValidity !== 'undefined' && $control[0].checkValidity()) {
$control.addClass('empty');
} else {
$control.removeClass('empty');
}
});
if (this.$file.length > 0) {
this.$file.on('focus', function () {
_this.$el.find('input').addClass('focus');
}).on('blur', function () {
_this.$el.find('input').removeClass('focus');
}).on('change', function () {
var $this = (0, _jquery.default)(this);
var value = '';
_jquery.default.each($this[0].files, function (i, file) {
value += "".concat(file.name, ", ");
});
value = value.substring(0, value.length - 2);
if (value) {
$this.prev().removeClass('empty');
} else {
$this.prev().addClass('empty');
}
$this.prev().val(value);
});
}
}
}]);
return FormMaterial;
}(_Plugin2.default);
_Plugin2.default.register(NAME, FormMaterial);
var _default = FormMaterial;
_exports.default = _default;
});