UNPKG

svogv

Version:

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

25 lines 2.84 kB
/** * The Readonly decorator. The field is readonly in the form. It just renders grayed out * and handles the internals using default HTML5 techniques. * * * @param readonly Optional, default is true. * @param description A tooltip that can be used optionally. */ export function Readonly(readonly = true) { function readonlyInternalSetup(target, key) { // create a helper property to transport a meta data value Object.defineProperty(target, `__isReadonly__${key}`, { value: readonly, enumerable: false, configurable: false }); } // the original decorator function readonlyInternal(target, property) { readonlyInternalSetup(target, property.toString()); } // return the decorator return readonlyInternal; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1yZWFkb25seS5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vcHJvamVjdHMvc3ZvZ3Yvc3JjLyIsInNvdXJjZXMiOlsibGliL2RlY29yYXRvcnMvaGludC1yZWFkb25seS5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUk7SUFDdEMsU0FBUyxxQkFBcUIsQ0FBQyxNQUFXLEVBQUUsR0FBVztRQUVyRCwwREFBMEQ7UUFDMUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEdBQUcsRUFBRSxFQUFFO1lBQ3BELEtBQUssRUFBRSxRQUFRO1lBQ2YsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUNELHlCQUF5QjtJQUN6QixTQUFTLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxRQUF5QjtRQUNqRSxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixPQUFPLGdCQUFnQixDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBSZWFkb25seSBkZWNvcmF0b3IuIFRoZSBmaWVsZCBpcyByZWFkb25seSBpbiB0aGUgZm9ybS4gSXQganVzdCByZW5kZXJzIGdyYXllZCBvdXRcbiAqIGFuZCBoYW5kbGVzIHRoZSBpbnRlcm5hbHMgdXNpbmcgZGVmYXVsdCBIVE1MNSB0ZWNobmlxdWVzLlxuICpcbiAqXG4gKiBAcGFyYW0gcmVhZG9ubHkgICAgICBPcHRpb25hbCwgZGVmYXVsdCBpcyB0cnVlLlxuICogQHBhcmFtIGRlc2NyaXB0aW9uICAgQSB0b29sdGlwIHRoYXQgY2FuIGJlIHVzZWQgb3B0aW9uYWxseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJlYWRvbmx5KHJlYWRvbmx5ID0gdHJ1ZSkge1xuICBmdW5jdGlvbiByZWFkb25seUludGVybmFsU2V0dXAodGFyZ2V0OiBhbnksIGtleTogc3RyaW5nKSB7XG5cbiAgICAvLyBjcmVhdGUgYSBoZWxwZXIgcHJvcGVydHkgdG8gdHJhbnNwb3J0IGEgbWV0YSBkYXRhIHZhbHVlXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgYF9faXNSZWFkb25seV9fJHtrZXl9YCwge1xuICAgICAgdmFsdWU6IHJlYWRvbmx5LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlXG4gICAgfSk7XG5cbiAgfVxuICAvLyB0aGUgb3JpZ2luYWwgZGVjb3JhdG9yXG4gIGZ1bmN0aW9uIHJlYWRvbmx5SW50ZXJuYWwodGFyZ2V0OiBvYmplY3QsIHByb3BlcnR5OiBzdHJpbmcgfCBzeW1ib2wpOiB2b2lkIHtcbiAgICByZWFkb25seUludGVybmFsU2V0dXAodGFyZ2V0LCBwcm9wZXJ0eS50b1N0cmluZygpKTtcbiAgfVxuXG4gIC8vIHJldHVybiB0aGUgZGVjb3JhdG9yXG4gIHJldHVybiByZWFkb25seUludGVybmFsO1xufVxuIl19