"use strict"; class Input_With_Validation extends Component { on_ready() { const $input = this.$sid('input'); if (this.args.value) { $input.val(this.args.value); } if (this.args.name) { $input.attr('name', this.args.name); } if (this.args.required) { $input.prop('required', true); } if (this.args.disabled) { $input.prop('disabled', true); } if (this.args.readonly) { $input.prop('readonly', true); } // Real-time validation if (this.args.validate) { $input.on('blur', () => { this.validate(); }); $input.on('input', () => { if (this.$.hasClass('was-validated')) { this.validate(); } }); } if (this.args.on_change) { $input.on('change', e => { this.args.on_change(e.target.value); }); } } validate() { const value = this.$sid('input').val(); const $input = this.$sid('input'); this.$.addClass('was-validated'); // Run validation function if (this.args.validate) { const result = this.args.validate(value); if (result === true || result === null || result === undefined) { this.set_valid(); return true; } else { this.set_error(result); return false; } } // Basic required check if (this.args.required && !value) { this.set_error('This field is required'); return false; } this.set_valid(); return true; } set_error(message) { const $input = this.$sid('input'); const $error = this.$sid('error'); $input.removeClass('is-valid').addClass('is-invalid'); $error.text(message).css('display', 'block'); this.$sid('success').css('display', 'none'); } set_valid(message) { const $input = this.$sid('input'); const $success = this.$sid('success'); $input.removeClass('is-invalid').addClass('is-valid'); this.$sid('error').css('display', 'none'); if (message) { $success.text(message).css('display', 'block'); } else { $success.css('display', 'none'); } } clear_validation() { const $input = this.$sid('input'); $input.removeClass('is-valid is-invalid'); this.$sid('error').css('display', 'none'); this.$sid('success').css('display', 'none'); this.$.removeClass('was-validated'); } get_value() { return this.$sid('input').val(); } set_value(value) { this.$sid('input').val(value); if (this.$.hasClass('was-validated')) { this.validate(); } } focus() { this.$sid('input').focus(); } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbnB1dF9XaXRoX1ZhbGlkYXRpb24iLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fcmVhZHkiLCIkaW5wdXQiLCIkaWQiLCJhcmdzIiwidmFsdWUiLCJ2YWwiLCJuYW1lIiwiYXR0ciIsInJlcXVpcmVkIiwicHJvcCIsImRpc2FibGVkIiwicmVhZG9ubHkiLCJ2YWxpZGF0ZSIsIm9uIiwiJCIsImhhc0NsYXNzIiwib25fY2hhbmdlIiwiZSIsInRhcmdldCIsImFkZENsYXNzIiwicmVzdWx0IiwidW5kZWZpbmVkIiwic2V0X3ZhbGlkIiwic2V0X2Vycm9yIiwibWVzc2FnZSIsIiRlcnJvciIsInJlbW92ZUNsYXNzIiwidGV4dCIsImNzcyIsIiRzdWNjZXNzIiwiY2xlYXJfdmFsaWRhdGlvbiIsImdldF92YWx1ZSIsInNldF92YWx1ZSIsImZvY3VzIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvSW5wdXRfV2l0aF9WYWxpZGF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIElucHV0X1dpdGhfVmFsaWRhdGlvbiBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIG9uX3JlYWR5KCkge1xuICAgICAgICBjb25zdCAkaW5wdXQgPSB0aGlzLiRpZCgnaW5wdXQnKTtcblxuICAgICAgICBpZiAodGhpcy5hcmdzLnZhbHVlKSB7XG4gICAgICAgICAgICAkaW5wdXQudmFsKHRoaXMuYXJncy52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcmdzLm5hbWUpIHtcbiAgICAgICAgICAgICRpbnB1dC5hdHRyKCduYW1lJywgdGhpcy5hcmdzLm5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYXJncy5yZXF1aXJlZCkge1xuICAgICAgICAgICAgJGlucHV0LnByb3AoJ3JlcXVpcmVkJywgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcmdzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAkaW5wdXQucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFyZ3MucmVhZG9ubHkpIHtcbiAgICAgICAgICAgICRpbnB1dC5wcm9wKCdyZWFkb25seScsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVhbC10aW1lIHZhbGlkYXRpb25cbiAgICAgICAgaWYgKHRoaXMuYXJncy52YWxpZGF0ZSkge1xuICAgICAgICAgICAgJGlucHV0Lm9uKCdibHVyJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAkaW5wdXQub24oJ2lucHV0JywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLiQuaGFzQ2xhc3MoJ3dhcy12YWxpZGF0ZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcmdzLm9uX2NoYW5nZSkge1xuICAgICAgICAgICAgJGlucHV0Lm9uKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJncy5vbl9jaGFuZ2UoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YWxpZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLiRpZCgnaW5wdXQnKS52YWwoKTtcbiAgICAgICAgY29uc3QgJGlucHV0ID0gdGhpcy4kaWQoJ2lucHV0Jyk7XG5cbiAgICAgICAgdGhpcy4kLmFkZENsYXNzKCd3YXMtdmFsaWRhdGVkJyk7XG5cbiAgICAgICAgLy8gUnVuIHZhbGlkYXRpb24gZnVuY3Rpb25cbiAgICAgICAgaWYgKHRoaXMuYXJncy52YWxpZGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5hcmdzLnZhbGlkYXRlKHZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdHJ1ZSB8fCByZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldF92YWxpZCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldF9lcnJvcihyZXN1bHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJhc2ljIHJlcXVpcmVkIGNoZWNrXG4gICAgICAgIGlmICh0aGlzLmFyZ3MucmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNldF9lcnJvcignVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRfdmFsaWQoKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgc2V0X2Vycm9yKG1lc3NhZ2UpIHtcbiAgICAgICAgY29uc3QgJGlucHV0ID0gdGhpcy4kaWQoJ2lucHV0Jyk7XG4gICAgICAgIGNvbnN0ICRlcnJvciA9IHRoaXMuJGlkKCdlcnJvcicpO1xuXG4gICAgICAgICRpbnB1dC5yZW1vdmVDbGFzcygnaXMtdmFsaWQnKS5hZGRDbGFzcygnaXMtaW52YWxpZCcpO1xuICAgICAgICAkZXJyb3IudGV4dChtZXNzYWdlKS5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKTtcbiAgICAgICAgdGhpcy4kaWQoJ3N1Y2Nlc3MnKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgIH1cblxuICAgIHNldF92YWxpZChtZXNzYWdlKSB7XG4gICAgICAgIGNvbnN0ICRpbnB1dCA9IHRoaXMuJGlkKCdpbnB1dCcpO1xuICAgICAgICBjb25zdCAkc3VjY2VzcyA9IHRoaXMuJGlkKCdzdWNjZXNzJyk7XG5cbiAgICAgICAgJGlucHV0LnJlbW92ZUNsYXNzKCdpcy1pbnZhbGlkJykuYWRkQ2xhc3MoJ2lzLXZhbGlkJyk7XG4gICAgICAgIHRoaXMuJGlkKCdlcnJvcicpLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cbiAgICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICRzdWNjZXNzLnRleHQobWVzc2FnZSkuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkc3VjY2Vzcy5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYXJfdmFsaWRhdGlvbigpIHtcbiAgICAgICAgY29uc3QgJGlucHV0ID0gdGhpcy4kaWQoJ2lucHV0Jyk7XG4gICAgICAgICRpbnB1dC5yZW1vdmVDbGFzcygnaXMtdmFsaWQgaXMtaW52YWxpZCcpO1xuICAgICAgICB0aGlzLiRpZCgnZXJyb3InKS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICB0aGlzLiRpZCgnc3VjY2VzcycpLmNzcygnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgIHRoaXMuJC5yZW1vdmVDbGFzcygnd2FzLXZhbGlkYXRlZCcpO1xuICAgIH1cblxuICAgIGdldF92YWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJGlkKCdpbnB1dCcpLnZhbCgpO1xuICAgIH1cblxuICAgIHNldF92YWx1ZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLiRpZCgnaW5wdXQnKS52YWwodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy4kLmhhc0NsYXNzKCd3YXMtdmFsaWRhdGVkJykpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzKCkge1xuICAgICAgICB0aGlzLiRpZCgnaW5wdXQnKS5mb2N1cygpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxxQkFBcUIsU0FBU0MsZ0JBQWdCLENBQUM7RUFDakRDLFFBQVFBLENBQUEsRUFBRztJQUNQLE1BQU1DLE1BQU0sR0FBRyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFFaEMsSUFBSSxJQUFJLENBQUNDLElBQUksQ0FBQ0MsS0FBSyxFQUFFO01BQ2pCSCxNQUFNLENBQUNJLEdBQUcsQ0FBQyxJQUFJLENBQUNGLElBQUksQ0FBQ0MsS0FBSyxDQUFDO0lBQy9CO0lBRUEsSUFBSSxJQUFJLENBQUNELElBQUksQ0FBQ0csSUFBSSxFQUFFO01BQ2hCTCxNQUFNLENBQUNNLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDSixJQUFJLENBQUNHLElBQUksQ0FBQztJQUN2QztJQUVBLElBQUksSUFBSSxDQUFDSCxJQUFJLENBQUNLLFFBQVEsRUFBRTtNQUNwQlAsTUFBTSxDQUFDUSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNqQztJQUVBLElBQUksSUFBSSxDQUFDTixJQUFJLENBQUNPLFFBQVEsRUFBRTtNQUNwQlQsTUFBTSxDQUFDUSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNqQztJQUVBLElBQUksSUFBSSxDQUFDTixJQUFJLENBQUNRLFFBQVEsRUFBRTtNQUNwQlYsTUFBTSxDQUFDUSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNqQzs7SUFFQTtJQUNBLElBQUksSUFBSSxDQUFDTixJQUFJLENBQUNTLFFBQVEsRUFBRTtNQUNwQlgsTUFBTSxDQUFDWSxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU07UUFDcEIsSUFBSSxDQUFDRCxRQUFRLENBQUMsQ0FBQztNQUNuQixDQUFDLENBQUM7TUFFRlgsTUFBTSxDQUFDWSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU07UUFDckIsSUFBSSxJQUFJLENBQUNDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1VBQ2xDLElBQUksQ0FBQ0gsUUFBUSxDQUFDLENBQUM7UUFDbkI7TUFDSixDQUFDLENBQUM7SUFDTjtJQUVBLElBQUksSUFBSSxDQUFDVCxJQUFJLENBQUNhLFNBQVMsRUFBRTtNQUNyQmYsTUFBTSxDQUFDWSxFQUFFLENBQUMsUUFBUSxFQUFHSSxDQUFDLElBQUs7UUFDdkIsSUFBSSxDQUFDZCxJQUFJLENBQUNhLFNBQVMsQ0FBQ0MsQ0FBQyxDQUFDQyxNQUFNLENBQUNkLEtBQUssQ0FBQztNQUN2QyxDQUFDLENBQUM7SUFDTjtFQUNKO0VBRUFRLFFBQVFBLENBQUEsRUFBRztJQUNQLE1BQU1SLEtBQUssR0FBRyxJQUFJLENBQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ0csR0FBRyxDQUFDLENBQUM7SUFDckMsTUFBTUosTUFBTSxHQUFHLElBQUksQ0FBQ0MsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUVoQyxJQUFJLENBQUNZLENBQUMsQ0FBQ0ssUUFBUSxDQUFDLGVBQWUsQ0FBQzs7SUFFaEM7SUFDQSxJQUFJLElBQUksQ0FBQ2hCLElBQUksQ0FBQ1MsUUFBUSxFQUFFO01BQ3BCLE1BQU1RLE1BQU0sR0FBRyxJQUFJLENBQUNqQixJQUFJLENBQUNTLFFBQVEsQ0FBQ1IsS0FBSyxDQUFDO01BRXhDLElBQUlnQixNQUFNLEtBQUssSUFBSSxJQUFJQSxNQUFNLEtBQUssSUFBSSxJQUFJQSxNQUFNLEtBQUtDLFNBQVMsRUFBRTtRQUM1RCxJQUFJLENBQUNDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sSUFBSTtNQUNmLENBQUMsTUFBTTtRQUNILElBQUksQ0FBQ0MsU0FBUyxDQUFDSCxNQUFNLENBQUM7UUFDdEIsT0FBTyxLQUFLO01BQ2hCO0lBQ0o7O0lBRUE7SUFDQSxJQUFJLElBQUksQ0FBQ2pCLElBQUksQ0FBQ0ssUUFBUSxJQUFJLENBQUNKLEtBQUssRUFBRTtNQUM5QixJQUFJLENBQUNtQixTQUFTLENBQUMsd0JBQXdCLENBQUM7TUFDeEMsT0FBTyxLQUFLO0lBQ2hCO0lBRUEsSUFBSSxDQUFDRCxTQUFTLENBQUMsQ0FBQztJQUNoQixPQUFPLElBQUk7RUFDZjtFQUVBQyxTQUFTQSxDQUFDQyxPQUFPLEVBQUU7SUFDZixNQUFNdkIsTUFBTSxHQUFHLElBQUksQ0FBQ0MsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxNQUFNdUIsTUFBTSxHQUFHLElBQUksQ0FBQ3ZCLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFFaENELE1BQU0sQ0FBQ3lCLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQ1AsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUNyRE0sTUFBTSxDQUFDRSxJQUFJLENBQUNILE9BQU8sQ0FBQyxDQUFDSSxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztJQUM1QyxJQUFJLENBQUMxQixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMwQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztFQUM5QztFQUVBTixTQUFTQSxDQUFDRSxPQUFPLEVBQUU7SUFDZixNQUFNdkIsTUFBTSxHQUFHLElBQUksQ0FBQ0MsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxNQUFNMkIsUUFBUSxHQUFHLElBQUksQ0FBQzNCLEdBQUcsQ0FBQyxTQUFTLENBQUM7SUFFcENELE1BQU0sQ0FBQ3lCLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQ1AsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNyRCxJQUFJLENBQUNqQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMwQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUV4QyxJQUFJSixPQUFPLEVBQUU7TUFDVEssUUFBUSxDQUFDRixJQUFJLENBQUNILE9BQU8sQ0FBQyxDQUFDSSxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztJQUNsRCxDQUFDLE1BQU07TUFDSEMsUUFBUSxDQUFDRCxHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNuQztFQUNKO0VBRUFFLGdCQUFnQkEsQ0FBQSxFQUFHO0lBQ2YsTUFBTTdCLE1BQU0sR0FBRyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDaENELE1BQU0sQ0FBQ3lCLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztJQUN6QyxJQUFJLENBQUN4QixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMwQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUN4QyxJQUFJLENBQUMxQixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMwQixHQUFHLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUMxQyxJQUFJLENBQUNkLENBQUMsQ0FBQ1ksV0FBVyxDQUFDLGVBQWUsQ0FBQztFQUN2QztFQUVBSyxTQUFTQSxDQUFBLEVBQUc7SUFDUixPQUFPLElBQUksQ0FBQzdCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ0csR0FBRyxDQUFDLENBQUM7RUFDbEM7RUFFQTJCLFNBQVNBLENBQUM1QixLQUFLLEVBQUU7SUFDYixJQUFJLENBQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ0csR0FBRyxDQUFDRCxLQUFLLENBQUM7SUFDNUIsSUFBSSxJQUFJLENBQUNVLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFO01BQ2xDLElBQUksQ0FBQ0gsUUFBUSxDQUFDLENBQUM7SUFDbkI7RUFDSjtFQUVBcUIsS0FBS0EsQ0FBQSxFQUFHO0lBQ0osSUFBSSxDQUFDL0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDK0IsS0FBSyxDQUFDLENBQUM7RUFDN0I7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==