UNPKG

gy-foo

Version:

A library that contains all models for the gy-web-project.

114 lines 13.4 kB
import { __read } from "tslib"; import { Field } from './field.model'; var EntityDef = /** @class */ (function () { function EntityDef(entityDef) { if (entityDef instanceof EntityDef) { this.fields = entityDef.getFields(); this.altdef = entityDef.getAltdef(); this.init = entityDef.getInitMode(); } else { this.fields = entityDef ? Object.entries(entityDef.fields) .map(function (_a) { var _b = __read(_a, 2), fldname = _b[0], fld = _b[1]; return [fldname, new Field(fld)]; }) .reduce(function (fields, _a) { var _b; var _c = __read(_a, 2), fldname = _c[0], fld = _c[1]; return Object.assign(fields, (_b = {}, _b[fldname] = fld, _b)); }, {}) : {}; this.altdef = entityDef ? entityDef.altdef || 0 : 0; this.init = entityDef ? entityDef.init || 0 : 0; } } /** * Gets the fields of this Entity Definition */ EntityDef.prototype.getFields = function () { return this.fields; }; /** * Get the given field from this Entity Definition * @param fld the name of the field */ EntityDef.prototype.getField = function (fld) { if (typeof fld === 'string') { return this.fields ? this.fields[fld.toUpperCase()] : undefined; } else { return undefined; } }; /** * Get a list of all fields, that can be seen. * @param type 'lst' for list views (table), 'occ' for detail views, empty for reading without filter * @param write read and write rights are needed * @returns an array with all fields that fits the rigths */ EntityDef.prototype.getFieldList = function (options) { var _this = this; if (this.fields) { var result = Object.entries(this.fields); if (options.type) { var checkType_1 = 'ar_' + options.type; if (options.write) { result = result.filter(function (_a) { var _b = __read(_a, 2), fld = _b[0], field = _b[1]; return _this.canReadWrite(fld, checkType_1, options.meta ? options.meta[fld] : undefined); }); } else { result = result.filter(function (_a) { var _b = __read(_a, 2), fld = _b[0], field = _b[1]; return _this.canRead(fld, checkType_1, options.meta ? options.meta[fld] : undefined); }); } } return result.map(function (_a) { var _b = __read(_a, 2), fld = _b[0], field = _b[1]; var bez = field.bez; if (options.meta && options.meta[fld] && options.meta[fld].bez) { bez = options.meta[fld].bez; } return { fld: fld, bez: bez }; }); } else { return []; } }; /** * Checks if the altdef flag is set. */ EntityDef.prototype.getAltdef = function () { return this.altdef != null ? this.altdef : 0; }; /** * Checks if the init flag is set. */ EntityDef.prototype.getInitMode = function () { return this.init != null ? this.init : 0; }; /** * Checks if the given field can be seen in a list * @param fld the name of the field * @param field an alternative field definition */ EntityDef.prototype.listCanRead = function (fld, field) { return this.canRead(fld, 'ar_lst', field); }; EntityDef.prototype.canRead = function (fld, checkType, field) { var defaultField = this.getField(fld); return defaultField && defaultField.canRead(checkType, field); }; EntityDef.prototype.canReadWrite = function (fld, checkType, field) { var defaultField = this.getField(fld); return defaultField && defaultField.canReadWrite(checkType, field); }; return EntityDef; }()); export { EntityDef }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5RGVmLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZ3ktZm9vLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9lbnRpdHlEZWYubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQVksTUFBTSxlQUFlLENBQUM7QUFHaEQ7SUFNRSxtQkFBWSxTQUF1RztRQUNqSCxJQUFJLFNBQVMsWUFBWSxTQUFTLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUztnQkFDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztxQkFDN0IsR0FBRyxDQUFDLFVBQUMsRUFBYzt3QkFBZCxrQkFBYyxFQUFiLGVBQU8sRUFBRSxXQUFHO29CQUFNLE9BQUEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQXpCLENBQXlCLENBQUM7cUJBQ2xELE1BQU0sQ0FBQyxVQUFDLE1BQU0sRUFBRSxFQUErQjs7d0JBQS9CLGtCQUErQixFQUE5QixlQUFPLEVBQUUsV0FBRztvQkFBdUIsT0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sWUFBSSxHQUFDLE9BQU8sSUFBRyxHQUFHLE1BQUc7Z0JBQXpDLENBQXlDLEVBQUUsRUFBRSxDQUFDO2dCQUN2RyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFD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QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCwrQkFBVyxHQUFYLFVBQVksR0FBVyxFQUFFLEtBQWE7UUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLDJCQUFPLEdBQWYsVUFBZ0IsR0FBVyxFQUFFLFNBQWlCLEVBQUUsS0FBYTtRQUMzRCxJQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sWUFBWSxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxnQ0FBWSxHQUFwQixVQUFxQixHQUFXLEVBQUUsU0FBaUIsRUFBRSxLQUFhO1FBQ2hFLElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsT0FBTyxZQUFZLElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNILGdCQUFDO0FBQUQsQ0FBQyxBQTVHRCxJQTRHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkLCBGaWVsZERlZiB9IGZyb20gJy4vZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRMaXN0IH0gZnJvbSAnLi9maWVsZExpc3QubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgRW50aXR5RGVmIHtcbiAgcHJpdmF0ZSBmaWVsZHM6IEZpZWxkTGlzdDtcbiAgcHJpdmF0ZSBhbHRkZWY/OiBudW1iZXI7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdmFyaWFibGUtbmFtZVxuICBwcml2YXRlIGluaXQ/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZW50aXR5RGVmPzogeyBmaWVsZHM6IHsgW2ZsZDogc3RyaW5nXTogRmllbGQgfCBGaWVsZERlZiB9OyBhbHRkZWY/OiBudW1iZXI7IGluaXQ/OiBudW1iZXIgfSB8IEVudGl0eURlZikge1xuICAgIGlmIChlbnRpdHlEZWYgaW5zdGFuY2VvZiBFbnRpdHlEZWYpIHtcbiAgICAgIHRoaXMuZmllbGRzID0gZW50aXR5RGVmLmdldEZpZWxkcygpO1xuICAgICAgdGhpcy5hbHRkZWYgPSBlbnRpdHlEZWYuZ2V0QWx0ZGVmKCk7XG4gICAgICB0aGlzLmluaXQgPSBlbnRpdHlEZWYuZ2V0SW5pdE1vZGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWVsZHMgPSBlbnRpdHlEZWZcbiAgICAgICAgPyBPYmplY3QuZW50cmllcyhlbnRpdHlEZWYuZmllbGRzKVxuICAgICAgICAgICAgLm1hcCgoW2ZsZG5hbWUsIGZsZF0pID0+IFtmbGRuYW1lLCBuZXcgRmllbGQoZmxkKV0pXG4gICAgICAgICAgICAucmVkdWNlKChmaWVsZHMsIFtmbGRuYW1lLCBmbGRdOiBbc3RyaW5nLCBGaWVsZF0pID0+IE9iamVjdC5hc3NpZ24oZmllbGRzLCB7IFtmbGRuYW1lXTogZmxkIH0pLCB7fSlcbiAgICAgICAgOiB7fTtcbiAgICAgIHRoaXMuYWx0ZGVmID0gZW50aXR5RGVmID8gZW50aXR5RGVmLmFsdGRlZiB8fCAwIDogMDtcbiAgICAgIHRoaXMuaW5pdCA9IGVudGl0eURlZiA/IGVudGl0eURlZi5pbml0IHx8IDAgOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaWVsZHMgb2YgdGhpcyBFbnRpdHkgRGVmaW5pdGlvblxuICAgKi9cbiAgZ2V0RmllbGRzKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGdpdmVuIGZpZWxkIGZyb20gdGhpcyBFbnRpdHkgRGVmaW5pdGlvblxuICAgKiBAcGFyYW0gZmxkIHRoZSBuYW1lIG9mIHRoZSBmaWVsZFxuICAgKi9cbiAgZ2V0RmllbGQoZmxkOiBzdHJpbmcpOiBGaWVsZCB7XG4gICAgaWYgKHR5cGVvZiBmbGQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWVsZHMgPyB0aGlzLmZpZWxkc1tmbGQudG9VcHBlckNhc2UoKV0gOiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhIGxpc3Qgb2YgYWxsIGZpZWxkcywgdGhhdCBjYW4gYmUgc2Vlbi5cbiAgICogQHBhcmFtIHR5cGUgICdsc3QnIGZvciBsaXN0IHZpZXdzICh0YWJsZSksICdvY2MnIGZvciBkZXRhaWwgdmlld3MsIGVtcHR5IGZvciByZWFkaW5nIHdpdGhvdXQgZmlsdGVyXG4gICAqIEBwYXJhbSB3cml0ZSByZWFkIGFuZCB3cml0ZSByaWdodHMgYXJlIG5lZWRlZFxuICAgKiBAcmV0dXJucyBhbiBhcnJheSB3aXRoIGFsbCBmaWVsZHMgdGhhdCBmaXRzIHRoZSByaWd0aHNcbiAgICovXG4gIGdldEZpZWxkTGlzdChvcHRpb25zOiB7IHR5cGU/OiBzdHJpbmc7IHdyaXRlPzogYm9vbGVhbjsgbWV0YT86IEZpZWxkTGlzdCB9KTogeyBmbGQ6IHN0cmluZzsgYmV6OiBzdHJpbmcgfVtdIHtcbiAgICBpZiAodGhpcy5maWVsZHMpIHtcbiAgICAgIGxldCByZXN1bHQgPSBPYmplY3QuZW50cmllcyh0aGlzLmZpZWxkcyk7XG5cbiAgICAgIGlmIChvcHRpb25zLnR5cGUpIHtcbiAgICAgICAgY29uc3QgY2hlY2tUeXBlID0gJ2FyXycgKyBvcHRpb25zLnR5cGU7XG4gICAgICAgIGlmIChvcHRpb25zLndyaXRlKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcigoW2ZsZCwgZmllbGRdKSA9PlxuICAgICAgICAgICAgdGhpcy5jYW5SZWFkV3JpdGUoZmxkLCBjaGVja1R5cGUsIG9wdGlvbnMubWV0YSA/IG9wdGlvbnMubWV0YVtmbGRdIDogdW5kZWZpbmVkKVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcigoW2ZsZCwgZmllbGRdKSA9PlxuICAgICAgICAgICAgdGhpcy5jYW5SZWFkKGZsZCwgY2hlY2tUeXBlLCBvcHRpb25zLm1ldGEgPyBvcHRpb25zLm1ldGFbZmxkXSA6IHVuZGVmaW5lZClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQubWFwKChbZmxkLCBmaWVsZF0pID0+IHtcbiAgICAgICAgbGV0IGJleiA9IGZpZWxkLmJlejtcbiAgICAgICAgaWYgKG9wdGlvbnMubWV0YSAmJiBvcHRpb25zLm1ldGFbZmxkXSAmJiBvcHRpb25zLm1ldGFbZmxkXS5iZXopIHtcbiAgICAgICAgICBiZXogPSBvcHRpb25zLm1ldGFbZmxkXS5iZXo7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZmxkLCBiZXogfTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgYWx0ZGVmIGZsYWcgaXMgc2V0LlxuICAgKi9cbiAgZ2V0QWx0ZGVmKCkge1xuICAgIHJldHVybiB0aGlzLmFsdGRlZiAhPSBudWxsID8gdGhpcy5hbHRkZWYgOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgaW5pdCBmbGFnIGlzIHNldC5cbiAgICovXG4gIGdldEluaXRNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmluaXQgIT0gbnVsbCA/IHRoaXMuaW5pdCA6IDA7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBmaWVsZCBjYW4gYmUgc2VlbiBpbiBhIGxpc3RcbiAgICogQHBhcmFtIGZsZCB0aGUgbmFtZSBvZiB0aGUgZmllbGRcbiAgICogQHBhcmFtIGZpZWxkIGFuIGFsdGVybmF0aXZlIGZpZWxkIGRlZmluaXRpb25cbiAgICovXG4gIGxpc3RDYW5SZWFkKGZsZDogc3RyaW5nLCBmaWVsZD86IEZpZWxkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FuUmVhZChmbGQsICdhcl9sc3QnLCBmaWVsZCk7XG4gIH1cblxuICBwcml2YXRlIGNhblJlYWQoZmxkOiBzdHJpbmcsIGNoZWNrVHlwZTogc3RyaW5nLCBmaWVsZD86IEZpZWxkKSB7XG4gICAgY29uc3QgZGVmYXVsdEZpZWxkID0gdGhpcy5nZXRGaWVsZChmbGQpO1xuICAgIHJldHVybiBkZWZhdWx0RmllbGQgJiYgZGVmYXVsdEZpZWxkLmNhblJlYWQoY2hlY2tUeXBlLCBmaWVsZCk7XG4gIH1cblxuICBwcml2YXRlIGNhblJlYWRXcml0ZShmbGQ6IHN0cmluZywgY2hlY2tUeXBlOiBzdHJpbmcsIGZpZWxkPzogRmllbGQpIHtcbiAgICBjb25zdCBkZWZhdWx0RmllbGQgPSB0aGlzLmdldEZpZWxkKGZsZCk7XG4gICAgcmV0dXJuIGRlZmF1bHRGaWVsZCAmJiBkZWZhdWx0RmllbGQuY2FuUmVhZFdyaXRlKGNoZWNrVHlwZSwgZmllbGQpO1xuICB9XG59XG4iXX0=