UNPKG

svogv

Version:

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

42 lines 5.34 kB
/** * The DisplayGroup decorator. Groups fields in auto forms; see {@link AutoFormComponent}. * Just define a name (that appears as the group's name) and * put the very same name on all members of the group. * * @param name The Name or Label that appears in forms as the groups legend. * @param order If one uses {@link AutoFormComponent} to create a whole form from a model, this controls the groups order. * @param description A tooltip, which can be used optionally. */ export function DisplayGroup(name, order = 0, description) { function displayGroupInternalSetup(target, key) { order = parseInt(order.toString(), 10); // create a helper property to transport a meta data value Object.defineProperty(target, `__isGrouped__${key}`, { value: true, enumerable: false, configurable: false }); Object.defineProperty(target, `__groupName__${key}`, { value: name, enumerable: false, configurable: false }); Object.defineProperty(target, `__groupOrder__${key}`, { value: order, enumerable: false, configurable: false }); Object.defineProperty(target, `__groupDesc__${key}`, { value: description, enumerable: false, configurable: false }); } // the original decorator function displayGroupInternal(target, property) { displayGroupInternalSetup(target, property.toString()); } // return the decorator return displayGroupInternal; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGludC1kaXNwbGF5Z3JvdXAuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL3N2b2d2L3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZWNvcmF0b3JzL2hpbnQtZGlzcGxheWdyb3VwLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBWSxFQUFFLFFBQWdCLENBQUMsRUFBRSxXQUFvQjtJQUVoRixTQUFTLHlCQUF5QixDQUFDLE1BQVcsRUFBRSxHQUFXO1FBRXpELEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLDBEQUEwRDtRQUUxRCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUU7WUFDbkQsS0FBSyxFQUFFLElBQUk7WUFDWCxVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUU7WUFDbkQsS0FBSyxFQUFFLElBQUk7WUFDWCxVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsR0FBRyxFQUFFLEVBQUU7WUFDcEQsS0FBSyxFQUFFLEtBQUs7WUFDWixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUU7WUFDbkQsS0FBSyxFQUFFLFdBQVc7WUFDbEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixTQUFTLG9CQUFvQixDQUFDLE1BQWMsRUFBRSxRQUF5QjtRQUNyRSx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixPQUFPLG9CQUFvQixDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBEaXNwbGF5R3JvdXAgZGVjb3JhdG9yLiBHcm91cHMgZmllbGRzIGluIGF1dG8gZm9ybXM7IHNlZSB7QGxpbmsgQXV0b0Zvcm1Db21wb25lbnR9LlxuICogSnVzdCBkZWZpbmUgYSBuYW1lICh0aGF0IGFwcGVhcnMgYXMgdGhlIGdyb3VwJ3MgbmFtZSkgYW5kXG4gKiBwdXQgdGhlIHZlcnkgc2FtZSBuYW1lIG9uIGFsbCBtZW1iZXJzIG9mIHRoZSBncm91cC5cbiAqXG4gKiBAcGFyYW0gbmFtZSAgICAgICAgICBUaGUgTmFtZSBvciBMYWJlbCB0aGF0IGFwcGVhcnMgaW4gZm9ybXMgYXMgdGhlIGdyb3VwcyBsZWdlbmQuXG4gKiBAcGFyYW0gb3JkZXIgICAgICAgICBJZiBvbmUgdXNlcyB7QGxpbmsgQXV0b0Zvcm1Db21wb25lbnR9IHRvIGNyZWF0ZSBhIHdob2xlIGZvcm0gZnJvbSBhIG1vZGVsLCB0aGlzIGNvbnRyb2xzIHRoZSBncm91cHMgb3JkZXIuXG4gKiBAcGFyYW0gZGVzY3JpcHRpb24gICBBIHRvb2x0aXAsIHdoaWNoIGNhbiBiZSB1c2VkIG9wdGlvbmFsbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEaXNwbGF5R3JvdXAobmFtZTogc3RyaW5nLCBvcmRlcjogbnVtYmVyID0gMCwgZGVzY3JpcHRpb24/OiBzdHJpbmcpIHtcblxuICBmdW5jdGlvbiBkaXNwbGF5R3JvdXBJbnRlcm5hbFNldHVwKHRhcmdldDogYW55LCBrZXk6IHN0cmluZykge1xuXG4gICAgb3JkZXIgPSBwYXJzZUludChvcmRlci50b1N0cmluZygpLCAxMCk7XG4gICAgLy8gY3JlYXRlIGEgaGVscGVyIHByb3BlcnR5IHRvIHRyYW5zcG9ydCBhIG1ldGEgZGF0YSB2YWx1ZVxuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgYF9faXNHcm91cGVkX18ke2tleX1gLCB7XG4gICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgYF9fZ3JvdXBOYW1lX18ke2tleX1gLCB7XG4gICAgICB2YWx1ZTogbmFtZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgYF9fZ3JvdXBPcmRlcl9fJHtrZXl9YCwge1xuICAgICAgdmFsdWU6IG9yZGVyLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBgX19ncm91cERlc2NfXyR7a2V5fWAsIHtcbiAgICAgIHZhbHVlOiBkZXNjcmlwdGlvbixcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZVxuICAgIH0pO1xuICB9XG5cbiAgLy8gdGhlIG9yaWdpbmFsIGRlY29yYXRvclxuICBmdW5jdGlvbiBkaXNwbGF5R3JvdXBJbnRlcm5hbCh0YXJnZXQ6IG9iamVjdCwgcHJvcGVydHk6IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQge1xuICAgIGRpc3BsYXlHcm91cEludGVybmFsU2V0dXAodGFyZ2V0LCBwcm9wZXJ0eS50b1N0cmluZygpKTtcbiAgfVxuXG4gIC8vIHJldHVybiB0aGUgZGVjb3JhdG9yXG4gIHJldHVybiBkaXNwbGF5R3JvdXBJbnRlcm5hbDtcbn1cbiJdfQ==