UNPKG

svogv

Version:

A decorator based approach for model driven forms, including an advanced DataGrid and a TreeView component.

29 lines 3.36 kB
/** * The maxlength decorator assures that a string field contains not more than a number of characters. * * @param len: the maximum length. * @param msg: A custom message. * */ export function MaxLength(len, msg) { function maxLengthInternalSetup(target, key) { // create a helper property to transport a meta data value Object.defineProperty(target, `__hasMaxLength__${key}`, { value: len, enumerable: false, configurable: false }); Object.defineProperty(target, `__errMaxLength__${key}`, { value: msg || `The field ${key} has max length of ${len} characters`, enumerable: false, configurable: false }); } // the original decorator function maxLengthInternal(target, property) { maxLengthInternalSetup(target, property.toString()); } // return the decorator return maxLengthInternal; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsLW1heGxlbmd0aC5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvc3ZvZ3Yvc3JjLyIsInNvdXJjZXMiOlsibGliL2RlY29yYXRvcnMvdmFsLW1heGxlbmd0aC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFXLEVBQUUsR0FBWTtJQUVqRCxTQUFTLHNCQUFzQixDQUFDLE1BQVcsRUFBRSxHQUFXO1FBRXRELDBEQUEwRDtRQUMxRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsR0FBRyxFQUFFLEVBQUU7WUFDdEQsS0FBSyxFQUFFLEdBQUc7WUFDVixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsR0FBRyxFQUFFLEVBQUU7WUFDdEQsS0FBSyxFQUFFLEdBQUcsSUFBSSxhQUFhLEdBQUcsc0JBQXNCLEdBQUcsYUFBYTtZQUNwRSxVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7SUFFTCxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLFNBQVMsaUJBQWlCLENBQUMsTUFBYyxFQUFFLFFBQXlCO1FBQ2xFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLE9BQU8saUJBQWlCLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIG1heGxlbmd0aCBkZWNvcmF0b3IgYXNzdXJlcyB0aGF0IGEgc3RyaW5nIGZpZWxkIGNvbnRhaW5zIG5vdCBtb3JlIHRoYW4gYSBudW1iZXIgb2YgY2hhcmFjdGVycy5cbiAqXG4gKiBAcGFyYW0gbGVuOiB0aGUgbWF4aW11bSBsZW5ndGguXG4gKiBAcGFyYW0gbXNnOiBBIGN1c3RvbSBtZXNzYWdlLlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1heExlbmd0aChsZW46IG51bWJlciwgbXNnPzogc3RyaW5nKSB7XG5cbiAgZnVuY3Rpb24gbWF4TGVuZ3RoSW50ZXJuYWxTZXR1cCh0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcpIHtcblxuICAgIC8vIGNyZWF0ZSBhIGhlbHBlciBwcm9wZXJ0eSB0byB0cmFuc3BvcnQgYSBtZXRhIGRhdGEgdmFsdWVcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBgX19oYXNNYXhMZW5ndGhfXyR7a2V5fWAsIHtcbiAgICAgIHZhbHVlOiBsZW4sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGBfX2Vyck1heExlbmd0aF9fJHtrZXl9YCwge1xuICAgICAgdmFsdWU6IG1zZyB8fCBgVGhlIGZpZWxkICR7a2V5fSBoYXMgbWF4IGxlbmd0aCBvZiAke2xlbn0gY2hhcmFjdGVyc2AsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICB9KTtcblxuICB9XG5cbiAgLy8gdGhlIG9yaWdpbmFsIGRlY29yYXRvclxuICBmdW5jdGlvbiBtYXhMZW5ndGhJbnRlcm5hbCh0YXJnZXQ6IG9iamVjdCwgcHJvcGVydHk6IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQge1xuICAgIG1heExlbmd0aEludGVybmFsU2V0dXAodGFyZ2V0LCBwcm9wZXJ0eS50b1N0cmluZygpKTtcbiAgfVxuXG4gIC8vIHJldHVybiB0aGUgZGVjb3JhdG9yXG4gIHJldHVybiBtYXhMZW5ndGhJbnRlcm5hbDtcbn1cbiJdfQ==