svogv
Version:
A decorator based approach for model driven forms, including an advanced DataGrid and a TreeView component.
26 lines • 3.52 kB
JavaScript
const uiHint = 'uiHint';
/**
* The UiHint decorator.
* Currently it can contain any set of style rules that apply to the <th> element that forms the grid's table header cells.
* The application makes use of the [ngStyle] directive. The object's structure must be made in a way [ngStyle] can handle it.
*
* @param hide The style definition.
*/
export function UiHint(uiHintRule) {
function uiHintInternalSetup(target, key) {
// create a helper property to transport a meta data value
Object.defineProperty(target, `__${uiHint}__${key}`, {
value: uiHintRule,
enumerable: false,
configurable: false
});
}
// the original decorator
function uiHintInternal(target, property) {
uiHintInternalSetup(target, property.toString());
}
// return the decorator
return uiHintInternal;
}
UiHint.HintRule = (target, key, def) => target[`__${uiHint}__${key}`] || def;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC11aWhpbnQuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL3N2b2d2L3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZWNvcmF0b3JzL2hpbnQtdWloaW50LmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFDeEI7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxVQUFzQjtJQUUzQyxTQUFTLG1CQUFtQixDQUFDLE1BQVcsRUFBRSxHQUFXO1FBRW5ELDBEQUEwRDtRQUMxRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLE1BQU0sS0FBSyxHQUFHLEVBQUUsRUFBRTtZQUNuRCxLQUFLLEVBQUUsVUFBVTtZQUNqQixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7SUFFTCxDQUFDO0lBQ0QseUJBQXlCO0lBQ3pCLFNBQVMsY0FBYyxDQUFDLE1BQWMsRUFBRSxRQUF5QjtRQUMvRCxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsR0FBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdHlsZVJ1bGVzIH0gZnJvbSAnLi4vd2lkZ2V0cy9kYXRhZ3JpZC9tb2RlbHMvZGF0YWdyaWRzdHlsZS5tb2RlbCc7XG5cbmNvbnN0IHVpSGludCA9ICd1aUhpbnQnO1xuLyoqXG4gKiBUaGUgVWlIaW50IGRlY29yYXRvci5cbiAqIEN1cnJlbnRseSBpdCBjYW4gY29udGFpbiBhbnkgc2V0IG9mIHN0eWxlIHJ1bGVzIHRoYXQgYXBwbHkgdG8gdGhlICZsdDt0aCZndDsgZWxlbWVudCB0aGF0IGZvcm1zIHRoZSBncmlkJ3MgdGFibGUgaGVhZGVyIGNlbGxzLlxuICogVGhlIGFwcGxpY2F0aW9uIG1ha2VzIHVzZSBvZiB0aGUgW25nU3R5bGVdIGRpcmVjdGl2ZS4gVGhlIG9iamVjdCdzIHN0cnVjdHVyZSBtdXN0IGJlIG1hZGUgaW4gYSB3YXkgW25nU3R5bGVdIGNhbiBoYW5kbGUgaXQuXG4gKlxuICogQHBhcmFtIGhpZGUgIFRoZSBzdHlsZSBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gVWlIaW50KHVpSGludFJ1bGU6IFN0eWxlUnVsZXMpIHtcblxuICBmdW5jdGlvbiB1aUhpbnRJbnRlcm5hbFNldHVwKHRhcmdldDogYW55LCBrZXk6IHN0cmluZykge1xuXG4gICAgLy8gY3JlYXRlIGEgaGVscGVyIHByb3BlcnR5IHRvIHRyYW5zcG9ydCBhIG1ldGEgZGF0YSB2YWx1ZVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGBfXyR7dWlIaW50fV9fJHtrZXl9YCwge1xuICAgICAgdmFsdWU6IHVpSGludFJ1bGUsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2VcbiAgICB9KTtcblxuICB9XG4gIC8vIHRoZSBvcmlnaW5hbCBkZWNvcmF0b3JcbiAgZnVuY3Rpb24gdWlIaW50SW50ZXJuYWwodGFyZ2V0OiBvYmplY3QsIHByb3BlcnR5OiBzdHJpbmcgfCBzeW1ib2wpOiB2b2lkIHtcbiAgICB1aUhpbnRJbnRlcm5hbFNldHVwKHRhcmdldCwgcHJvcGVydHkudG9TdHJpbmcoKSk7XG4gIH1cblxuICAvLyByZXR1cm4gdGhlIGRlY29yYXRvclxuICByZXR1cm4gdWlIaW50SW50ZXJuYWw7XG59XG5cblVpSGludC5IaW50UnVsZSA9ICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcsIGRlZj86IHt9KSA9PiB0YXJnZXRbYF9fJHt1aUhpbnR9X18ke2tleX1gXSB8fCBkZWY7XG4iXX0=