@uiowa/uiowa-mfk-material
Version:
mfk, uiowa-mfk
144 lines • 14.6 kB
JavaScript
/**
* @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