UNPKG

@uiowa/uiowa-mfk-material

Version:

mfk, uiowa-mfk

144 lines 14.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { MfkFieldName } from './mfk-field-name'; /** * Options for MFK field. * * allows to set field default value, set readonly attribute, set validation regex pattern. Example usage: * * ```typescript * new MfkFieldOption(MfkFieldName.IACT, '6218') * new MfkFieldOption(MfkFieldName.IACT, '6218', true) * new MfkFieldOption(MfkFieldName.BRF) * ``` */ export class MfkFieldOption { /** * Options for MFK field. * * allows to set field default value, set readonly attribute, set validation regex pattern. Example usage: * * ```typescript * new MfkFieldOption(MfkFieldName.IACT, '6218') * new MfkFieldOption(MfkFieldName.IACT, '6218', true) * new MfkFieldOption(MfkFieldName.BRF) * ``` * * @param {?} name (Required) the input field name. Use MfkFieldName type to get a proper value. * @param {?=} defaultValue (Optional) set a default value for this field. Default: ''. * @param {?=} readonly (Optional) set to true if the input field is readonly. Default: false. * @param {?=} valuePattern (Optional) set a regex for this field. Default: '^[0-9]+$'. */ constructor(name, defaultValue = '', readonly = false, valuePattern = '^[0-9]+$') { this.name = name; this.defaultValue = defaultValue; this.readonly = readonly; this.valuePattern = valuePattern; this.numericRegex = '^[0-9]+$'; this.getFieldLabelAndLength(); this.width = this.length * 0.65 + 0.75; if (!valuePattern) { valuePattern = this.numericRegex; } if (this.readonly) { if (!this.defaultValue) { throw new Error(`Default value for readonly field [${name}] is required.`); } return; // if readonly, then don't validate default value } if (defaultValue) { if (defaultValue.length !== this.length) { throw new Error(`The default value [${defaultValue}] for ${name} is not ${this.length} digits long.`); } /** @type {?} */ let reg = new RegExp(this.numericRegex); if (!reg.test(defaultValue)) { throw new Error(`The default value [${defaultValue}] for ${name} is not a number.`); } if (valuePattern !== this.numericRegex) { reg = new RegExp(valuePattern); if (!reg.test(defaultValue)) { throw new Error(`The default value [${defaultValue}] for ${name} doesn't match RegEx "${valuePattern}".`); } } } } /** * @private * @return {?} */ getFieldLabelAndLength() { switch (this.name) { case MfkFieldName.FUND: this.label = 'Fund'; this.length = 3; break; case MfkFieldName.ORG: this.label = 'Org'; this.length = 2; break; case MfkFieldName.DEPT: this.label = 'Dept'; this.length = 4; break; case MfkFieldName.SUBDEPT: this.label = 'Subdept'; this.length = 5; break; case MfkFieldName.GRANTPGM: this.label = `Grant/Pgm`; this.length = 8; break; case MfkFieldName.IACT: this.label = 'Iact'; this.length = 4; break; case MfkFieldName.OACT: this.label = 'Oact'; this.length = 3; break; case MfkFieldName.DACT: this.label = 'Dact'; this.length = 5; break; case MfkFieldName.FN: this.label = 'Fn'; this.length = 2; break; case MfkFieldName.CCTR: this.label = 'Cctr'; this.length = 4; break; case MfkFieldName.BRF: this.label = 'Brf'; this.length = 2; break; default: throw new Error(`MFK field name [${this.name}] is invalid.`); } } } if (false) { /** @type {?} */ MfkFieldOption.prototype.label; /** @type {?} */ MfkFieldOption.prototype.width; /** @type {?} */ MfkFieldOption.prototype.length; /** * @type {?} * @private */ MfkFieldOption.prototype.numericRegex; /** @type {?} */ MfkFieldOption.prototype.name; /** @type {?} */ MfkFieldOption.prototype.defaultValue; /** @type {?} */ MfkFieldOption.prototype.readonly; /** @type {?} */ MfkFieldOption.prototype.valuePattern; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZrLWZpZWxkLW9wdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1aW93YS91aW93YS1tZmstbWF0ZXJpYWwvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL21may1maWVsZC1vcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYWhELE1BQU0sT0FBTyxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7OztJQXFCekIsWUFDa0IsSUFBWSxFQUNaLGVBQXVCLEVBQUUsRUFDekIsV0FBb0IsS0FBSyxFQUN6QixlQUF1QixVQUFVO1FBSGpDLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFyQmxDLGlCQUFZLEdBQUcsVUFBVSxDQUFDO1FBdUJ6QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN0QixNQUFNLElBQUksS0FBSyxDQUNiLHFDQUFxQyxJQUFJLGdCQUFnQixDQUMxRCxDQUFDO2FBQ0g7WUFDRCxPQUFPLENBQUMsaURBQWlEO1NBQzFEO1FBQ0QsSUFBSSxZQUFZLEVBQUU7WUFDaEIsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0JBQXNCLFlBQVksU0FBUyxJQUFJLFdB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SUFDSCxDQUFDO0NBQ0Y7OztJQXJIQywrQkFBcUI7O0lBQ3JCLCtCQUFxQjs7SUFDckIsZ0NBQXNCOzs7OztJQUN0QixzQ0FBMkM7O0lBa0J6Qyw4QkFBNEI7O0lBQzVCLHNDQUF5Qzs7SUFDekMsa0NBQXlDOztJQUN6QyxzQ0FBaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZmtGaWVsZE5hbWUgfSBmcm9tICcuL21may1maWVsZC1uYW1lJztcclxuXHJcbi8qKlxyXG4gKiBPcHRpb25zIGZvciBNRksgZmllbGQuXHJcbiAqXHJcbiAqIGFsbG93cyB0byBzZXQgZmllbGQgZGVmYXVsdCB2YWx1ZSwgc2V0IHJlYWRvbmx5IGF0dHJpYnV0ZSwgc2V0IHZhbGlkYXRpb24gcmVnZXggcGF0dGVybi4gIEV4YW1wbGUgdXNhZ2U6XHJcbiAqXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogbmV3IE1ma0ZpZWxkT3B0aW9uKE1ma0ZpZWxkTmFtZS5JQUNULCAnNjIxOCcpXHJcbiAqIG5ldyBNZmtGaWVsZE9wdGlvbihNZmtGaWVsZE5hbWUuSUFDVCwgJzYyMTgnLCB0cnVlKVxyXG4gKiBuZXcgTWZrRmllbGRPcHRpb24oTWZrRmllbGROYW1lLkJSRilcclxuICogYGBgXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWZrRmllbGRPcHRpb24ge1xyXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG4gIHB1YmxpYyB3aWR0aDogbnVtYmVyO1xyXG4gIHB1YmxpYyBsZW5ndGg6IG51bWJlcjtcclxuICBwcml2YXRlIHJlYWRvbmx5IG51bWVyaWNSZWdleCA9ICdeWzAtOV0rJCc7XHJcbiAgLyoqXHJcbiAgICogT3B0aW9ucyBmb3IgTUZLIGZpZWxkLlxyXG4gICAqXHJcbiAgICogYWxsb3dzIHRvIHNldCBmaWVsZCBkZWZhdWx0IHZhbHVlLCBzZXQgcmVhZG9ubHkgYXR0cmlidXRlLCBzZXQgdmFsaWRhdGlvbiByZWdleCBwYXR0ZXJuLiAgRXhhbXBsZSB1c2FnZTpcclxuICAgKlxyXG4gICAqIGBgYHR5cGVzY3JpcHRcclxuICAgKiBuZXcgTWZrRmllbGRPcHRpb24oTWZrRmllbGROYW1lLklBQ1QsICc2MjE4JylcclxuICAgKiBuZXcgTWZrRmllbGRPcHRpb24oTWZrRmllbGROYW1lLklBQ1QsICc2MjE4JywgdHJ1ZSlcclxuICAgKiBuZXcgTWZrRmllbGRPcHRpb24oTWZrRmllbGROYW1lLkJSRilcclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEBwYXJhbSBuYW1lICAgICAgICAgKFJlcXVpcmVkKSB0aGUgaW5wdXQgZmllbGQgbmFtZS4gVXNlIE1ma0ZpZWxkTmFtZSB0eXBlIHRvIGdldCBhIHByb3BlciB2YWx1ZS5cclxuICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIChPcHRpb25hbCkgc2V0IGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhpcyBmaWVsZC4gRGVmYXVsdDogJycuXHJcbiAgICogQHBhcmFtIHJlYWRvbmx5ICAgICAoT3B0aW9uYWwpIHNldCB0byB0cnVlIGlmIHRoZSBpbnB1dCBmaWVsZCBpcyByZWFkb25seS4gRGVmYXVsdDogZmFsc2UuXHJcbiAgICogQHBhcmFtIHZhbHVlUGF0dGVybiAoT3B0aW9uYWwpIHNldCBhIHJlZ2V4IGZvciB0aGlzIGZpZWxkLiBEZWZhdWx0OiAnXlswLTldKyQnLlxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcclxuICAgIHB1YmxpYyByZWFkb25seSBkZWZhdWx0VmFsdWU6IHN0cmluZyA9ICcnLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVQYXR0ZXJuOiBzdHJpbmcgPSAnXlswLTldKyQnXHJcbiAgKSB7XHJcbiAgICB0aGlzLmdldEZpZWxkTGFiZWxBbmRMZW5ndGgoKTtcclxuXHJcbiAgICB0aGlzLndpZHRoID0gdGhpcy5sZW5ndGggKiAwLjY1ICsgMC43NTtcclxuICAgIGlmICghdmFsdWVQYXR0ZXJuKSB7XHJcbiAgICAgIHZhbHVlUGF0dGVybiA9IHRoaXMubnVtZXJpY1JlZ2V4O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgaWYgKCF0aGlzLmRlZmF1bHRWYWx1ZSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgIGBEZWZhdWx0IHZhbHVlIGZvciByZWFkb25seSBmaWVsZCBbJHtuYW1lfV0gaXMgcmVxdWlyZWQuYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuOyAvLyBpZiByZWFkb25seSwgdGhlbiBkb24ndCB2YWxpZGF0ZSBkZWZhdWx0IHZhbHVlXHJcbiAgICB9XHJcbiAgICBpZiAoZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgIGlmIChkZWZhdWx0VmFsdWUubGVuZ3RoICE9PSB0aGlzLmxlbmd0aCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgIGBUaGUgZGVmYXVsdCB2YWx1ZSBbJHtkZWZhdWx0VmFsdWV9XSBmb3IgJHtuYW1lfSBpcyBub3QgJHtcclxuICAgICAgICAgICAgdGhpcy5sZW5ndGhcclxuICAgICAgICAgIH0gZGlnaXRzIGxvbmcuYFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCByZWcgPSBuZXcgUmVnRXhwKHRoaXMubnVtZXJpY1JlZ2V4KTtcclxuICAgICAgaWYgKCFyZWcudGVzdChkZWZhdWx0VmFsdWUpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgYFRoZSBkZWZhdWx0IHZhbHVlIFske2RlZmF1bHRWYWx1ZX1dIGZvciAke25hbWV9IGlzIG5vdCBhIG51bWJlci5gXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHZhbHVlUGF0dGVybiAhPT0gdGhpcy5udW1lcmljUmVnZXgpIHtcclxuICAgICAgICByZWcgPSBuZXcgUmVnRXhwKHZhbHVlUGF0dGVybik7XHJcbiAgICAgICAgaWYgKCFyZWcudGVzdChkZWZhdWx0VmFsdWUpKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgIGBUaGUgZGVmYXVsdCB2YWx1ZSBbJHtkZWZhdWx0VmFsdWV9XSBmb3IgJHtuYW1lfSBkb2Vzbid0IG1hdGNoIFJlZ0V4IFwiJHt2YWx1ZVBhdHRlcm59XCIuYFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmllbGRMYWJlbEFuZExlbmd0aCgpIHtcclxuICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7XHJcbiAgICAgIGNhc2UgTWZrRmllbGROYW1lLkZVTkQ6XHJcbiAgICAgICAgdGhpcy5sYWJlbCA9ICdGdW5kJztcclxuICAgICAgICB0aGlzLmxlbmd0aCA9IDM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWZrRmllbGROYW1lLk9SRzpcclxuICAgICAgICB0aGlzLmxhYmVsID0gJ09yZyc7XHJcbiAgICAgICAgdGhpcy5sZW5ndGggPSAyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ma0ZpZWxkTmFtZS5ERVBUOlxyXG4gICAgICAgIHRoaXMubGFiZWwgPSAnRGVwdCc7XHJcbiAgICAgICAgdGhpcy5sZW5ndGggPSA0O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ma0ZpZWxkTmFtZS5TVUJERVBUOlxyXG4gICAgICAgIHRoaXMubGFiZWwgPSAnU3ViZGVwdCc7XHJcbiAgICAgICAgdGhpcy5sZW5ndGggPSA1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ma0ZpZWxkTmFtZS5HUkFOVFBHTTpcclxuICAgICAgICB0aGlzLmxhYmVsID0gYEdyYW50L1BnbWA7XHJcbiAgICAgICAgdGhpcy5sZW5ndGggPSA4O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ma0ZpZWxkTmFtZS5JQUNUOlxyXG4gICAgICAgIHRoaXMubGFiZWwgPSAnSWFjdCc7XHJcbiAgICAgICAgdGhpcy5sZW5ndGggPSA0O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ma0ZpZWxkTmFtZS5PQUNUOlxyXG4gICAgICAgIHRoaXMubGFiZWwgPSAnT2FjdCc7XHJcbiAgICAgICAgdGhpcy5sZW5ndGggPSAzO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ma0ZpZWxkTmFtZS5EQUNUOlxyXG4gICAgICAgIHRoaXMubGFiZWwgPSAnRGFjdCc7XHJcbiAgICAgICAgdGhpcy5sZW5ndGggPSA1O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ma0ZpZWxkTmFtZS5GTjpcclxuICAgICAgICB0aGlzLmxhYmVsID0gJ0ZuJztcclxuICAgICAgICB0aGlzLmxlbmd0aCA9IDI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWZrRmllbGROYW1lLkNDVFI6XHJcbiAgICAgICAgdGhpcy5sYWJlbCA9ICdDY3RyJztcclxuICAgICAgICB0aGlzLmxlbmd0aCA9IDQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWZrRmllbGROYW1lLkJSRjpcclxuICAgICAgICB0aGlzLmxhYmVsID0gJ0JyZic7XHJcbiAgICAgICAgdGhpcy5sZW5ndGggPSAyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTUZLIGZpZWxkIG5hbWUgWyR7dGhpcy5uYW1lfV0gaXMgaW52YWxpZC5gKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19