svogv
Version:
A decorator based approach for model driven forms, including an advanced DataGrid and a TreeView component.
30 lines • 3.33 kB
JavaScript
/**
* The Placeholder decorator.
*
* The placeholder adds the given text as a watermark to any input fields.
* There is no function in the {@link DataGridComponent}.
*
* @param name The Name that appears in form fields as a watermark.
*/
export function Placeholder(name) {
function placeholderInternalSetup(target, key) {
// create a helper property to transport a meta data value
Object.defineProperty(target, `__watermark__${key}`, {
value: name,
enumerable: false,
configurable: false
});
Object.defineProperty(target, `__hasWatermark__${key}`, {
value: true,
enumerable: false,
configurable: false
});
}
// the original decorator
function placeholderInternal(target, property) {
placeholderInternalSetup(target, property.toString());
}
// return the decorator
return placeholderInternal;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1wbGFjZWhvbGRlci5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvc3ZvZ3Yvc3JjLyIsInNvdXJjZXMiOlsibGliL2RlY29yYXRvcnMvaGludC1wbGFjZWhvbGRlci5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUV0QyxTQUFTLHdCQUF3QixDQUFDLE1BQVcsRUFBRSxHQUFXO1FBRXhELDBEQUEwRDtRQUMxRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUU7WUFDbkQsS0FBSyxFQUFFLElBQUk7WUFDWCxVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsR0FBRyxFQUFFLEVBQUU7WUFDdEQsS0FBSyxFQUFFLElBQUk7WUFDWCxVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7SUFFTCxDQUFDO0lBQ0QseUJBQXlCO0lBQ3pCLFNBQVMsbUJBQW1CLENBQUMsTUFBYyxFQUFFLFFBQXlCO1FBQ3BFLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIFBsYWNlaG9sZGVyIGRlY29yYXRvci5cbiAqXG4gKiBUaGUgcGxhY2Vob2xkZXIgYWRkcyB0aGUgZ2l2ZW4gdGV4dCBhcyBhIHdhdGVybWFyayB0byBhbnkgaW5wdXQgZmllbGRzLlxuICogVGhlcmUgaXMgbm8gZnVuY3Rpb24gaW4gdGhlIHtAbGluayBEYXRhR3JpZENvbXBvbmVudH0uXG4gKlxuICogQHBhcmFtIG5hbWUgICAgICAgICAgVGhlIE5hbWUgdGhhdCBhcHBlYXJzIGluIGZvcm0gZmllbGRzIGFzIGEgd2F0ZXJtYXJrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUGxhY2Vob2xkZXIobmFtZTogc3RyaW5nKSB7XG5cbiAgZnVuY3Rpb24gcGxhY2Vob2xkZXJJbnRlcm5hbFNldHVwKHRhcmdldDogYW55LCBrZXk6IHN0cmluZykge1xuXG4gICAgLy8gY3JlYXRlIGEgaGVscGVyIHByb3BlcnR5IHRvIHRyYW5zcG9ydCBhIG1ldGEgZGF0YSB2YWx1ZVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGBfX3dhdGVybWFya19fJHtrZXl9YCwge1xuICAgICAgdmFsdWU6IG5hbWUsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGBfX2hhc1dhdGVybWFya19fJHtrZXl9YCwge1xuICAgICAgdmFsdWU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICB9KTtcblxuICB9XG4gIC8vIHRoZSBvcmlnaW5hbCBkZWNvcmF0b3JcbiAgZnVuY3Rpb24gcGxhY2Vob2xkZXJJbnRlcm5hbCh0YXJnZXQ6IG9iamVjdCwgcHJvcGVydHk6IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQge1xuICAgIHBsYWNlaG9sZGVySW50ZXJuYWxTZXR1cCh0YXJnZXQsIHByb3BlcnR5LnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgLy8gcmV0dXJuIHRoZSBkZWNvcmF0b3JcbiAgcmV0dXJuIHBsYWNlaG9sZGVySW50ZXJuYWw7XG59XG4iXX0=