UNPKG

svogv

Version:

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

45 lines 4.61 kB
/** * The TemplateHint decorator. * * One can define the way a property gets rendered. * Currently supported: * - TextArea * - Calendar * - Range * - Number * - Text * * The Calendar creates Date-field. However, in casde of a datatype Date the date field will be created anyway. * * @param template The Name that appears in form fields as a watermark. * @param params Depending of template some additional values as a dictionary. */ export function TemplateHint(template, params) { function templateHintInternalSetup(target, key) { // create a helper property to transport a meta data value Object.defineProperty(target, `__templatehint__${key}`, { value: template, enumerable: false, configurable: false }); if (params) { Object.defineProperty(target, `__templatehintParams__${key}`, { value: params, enumerable: false, configurable: false }); } Object.defineProperty(target, `__hasTemplateHint__${key}`, { value: true, enumerable: false, configurable: false }); } // the original decorator function templateHintInternal(target, name) { templateHintInternalSetup(target, name); } // return the decorator return templateHintInternal; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC10ZW1wbGF0ZWhpbnQuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL3N2b2d2L3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZWNvcmF0b3JzL2hpbnQtdGVtcGxhdGVoaW50LmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLFFBQWdCLEVBQUUsTUFBMkM7SUFFeEYsU0FBUyx5QkFBeUIsQ0FBQyxNQUFXLEVBQUUsR0FBVztRQUN6RCwwREFBMEQ7UUFDMUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLEdBQUcsRUFBRSxFQUFFO1lBQ3RELEtBQUssRUFBRSxRQUFRO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSx5QkFBeUIsR0FBRyxFQUFFLEVBQUU7Z0JBQzVELEtBQUssRUFBRSxNQUFNO2dCQUNiLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixZQUFZLEVBQUUsS0FBSzthQUNwQixDQUFDLENBQUM7U0FDSjtRQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLHNCQUFzQixHQUFHLEVBQUUsRUFBRTtZQUN6RCxLQUFLLEVBQUUsSUFBSTtZQUNYLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCx5QkFBeUI7SUFDekIsU0FBUyxvQkFBb0IsQ0FBQyxNQUFjLEVBQUUsSUFBWTtRQUN4RCx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixPQUFPLG9CQUFvQixDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBUZW1wbGF0ZUhpbnQgZGVjb3JhdG9yLlxuICpcbiAqIE9uZSBjYW4gZGVmaW5lIHRoZSB3YXkgYSBwcm9wZXJ0eSBnZXRzIHJlbmRlcmVkLlxuICogQ3VycmVudGx5IHN1cHBvcnRlZDpcbiAqICAtIFRleHRBcmVhXG4gKiAgLSBDYWxlbmRhclxuICogIC0gUmFuZ2VcbiAqICAtIE51bWJlclxuICogIC0gVGV4dFxuICpcbiAqIFRoZSBDYWxlbmRhciBjcmVhdGVzIERhdGUtZmllbGQuIEhvd2V2ZXIsIGluIGNhc2RlIG9mIGEgZGF0YXR5cGUgRGF0ZSB0aGUgZGF0ZSBmaWVsZCB3aWxsIGJlIGNyZWF0ZWQgYW55d2F5LlxuICpcbiAqIEBwYXJhbSB0ZW1wbGF0ZSAgICAgICAgVGhlIE5hbWUgdGhhdCBhcHBlYXJzIGluIGZvcm0gZmllbGRzIGFzIGEgd2F0ZXJtYXJrLlxuICogQHBhcmFtIHBhcmFtcyAgICAgICAgICBEZXBlbmRpbmcgb2YgdGVtcGxhdGUgc29tZSBhZGRpdGlvbmFsIHZhbHVlcyBhcyBhIGRpY3Rpb25hcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUZW1wbGF0ZUhpbnQodGVtcGxhdGU6IHN0cmluZywgcGFyYW1zPzogQXJyYXk8eyBrZXk6IHN0cmluZzsgdmFsdWU6IGFueSB9Pikge1xuXG4gIGZ1bmN0aW9uIHRlbXBsYXRlSGludEludGVybmFsU2V0dXAodGFyZ2V0OiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgLy8gY3JlYXRlIGEgaGVscGVyIHByb3BlcnR5IHRvIHRyYW5zcG9ydCBhIG1ldGEgZGF0YSB2YWx1ZVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGBfX3RlbXBsYXRlaGludF9fJHtrZXl9YCwge1xuICAgICAgdmFsdWU6IHRlbXBsYXRlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlXG4gICAgfSk7XG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgYF9fdGVtcGxhdGVoaW50UGFyYW1zX18ke2tleX1gLCB7XG4gICAgICAgIHZhbHVlOiBwYXJhbXMsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgYF9faGFzVGVtcGxhdGVIaW50X18ke2tleX1gLCB7XG4gICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZVxuICAgIH0pO1xuICB9XG4gIC8vIHRoZSBvcmlnaW5hbCBkZWNvcmF0b3JcbiAgZnVuY3Rpb24gdGVtcGxhdGVIaW50SW50ZXJuYWwodGFyZ2V0OiBvYmplY3QsIG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRlbXBsYXRlSGludEludGVybmFsU2V0dXAodGFyZ2V0LCBuYW1lKTtcbiAgfVxuXG4gIC8vIHJldHVybiB0aGUgZGVjb3JhdG9yXG4gIHJldHVybiB0ZW1wbGF0ZUhpbnRJbnRlcm5hbDtcbn1cbiJdfQ==