Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/forms / build / dist / new-forms / plugins / PasswordPlugin / ConfirmPasswordState.js
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const mobx_1 = require("xmobx/mobx");
const validators_1 = require("../../../validators");
const inputs_1 = require("../../inputs");
class ConfirmPasswordState {
    constructor() {
        this.password = new inputs_1.InputState();
        this.confirmPassword = new inputs_1.InputState();
    }
    get isValid() {
        return this.password.isValid && this.confirmPassword.isValid;
    }
    toJSON() {
        return {
            password: this.password.value,
        };
    }
    static init() {
        const state = new ConfirmPasswordState();
        state.password.setType('password');
        state.confirmPassword.setType('password');
        /**
         * @todo use `extends string ? ...` as a type conditional to auto do this
         */
        state.password.setValidator(value => {
            // @todo password rules...
            return validators_1.isValidPassword(value) ? true : 'is not valid password';
        });
        /**
         * @todo could disable it if we don't have a value in password
         */
        state.confirmPassword.setValidator(value => {
            if (!validators_1.isValidPassword(value)) {
                // can do password validation here
                return 'is not valid password';
            }
            else if (value !== state.password.value) {
                return 'passwords must match';
            }
            else {
                return true;
            }
        });
        return state;
    }
}
tslib_1.__decorate([
    mobx_1.observable.ref
], ConfirmPasswordState.prototype, "password", void 0);
tslib_1.__decorate([
    mobx_1.observable.ref
], ConfirmPasswordState.prototype, "confirmPassword", void 0);
tslib_1.__decorate([
    mobx_1.computed
], ConfirmPasswordState.prototype, "isValid", null);
exports.ConfirmPasswordState = ConfirmPasswordState;
//# sourceMappingURL=ConfirmPasswordState.js.map