angular-odata
Version:
Client side OData typescript library for Angular
61 lines • 9.23 kB
JavaScript
export const Enums = {
names(enums) {
return Object.values(enums).filter((v) => typeof v === 'string');
},
values(enums) {
return Object.values(enums).filter((v) => typeof v === 'number');
},
toValue(enums, value) {
if (value in enums)
return typeof value === 'string' ? enums[value] : value;
return undefined;
},
toValues(enums, value) {
if (typeof value === 'number') {
return this.values(enums).filter((v) => (value & v) === v);
}
if (typeof value === 'string') {
value = value.split(',').map((o) => o.trim());
}
if (Array.isArray(value) && value.every((v) => v in enums)) {
return value.map((o) => this.toValue(enums, o));
}
return [];
},
toName(enums, value) {
if (value in enums)
return typeof value === 'number' ? enums[value] : value;
return undefined;
},
toNames(enums, value) {
if (typeof value === 'number') {
return this.values(enums)
.filter((v) => (value & v) === v)
.map((v) => this.toName(enums, v));
}
if (typeof value === 'string') {
value = value.split(',').map((o) => o.trim());
}
if (Array.isArray(value) && value.every((v) => v in enums)) {
return value.map((o) => this.toName(enums, o));
}
return [];
},
toFlags(enums, value) {
if (typeof value === 'number') {
return this.values(enums)
.filter((v) => v !== 0 && (value & v) === v)
.map((v) => this.toName(enums, v));
}
if (typeof value === 'string') {
value = value.split(',').map((o) => o.trim());
}
if (Array.isArray(value) && value.every((v) => v in enums)) {
return value
.filter((v) => enums[v])
.map((v) => this.toName(enums, v));
}
return [];
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW9kYXRhL3NyYy9saWIvdXRpbHMvZW51bXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLEtBQUssQ0FBb0MsS0FBUTtRQUMvQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQVMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsTUFBTSxDQUFvQyxLQUFRO1FBQ2hELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBUyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxPQUFPLENBQ0wsS0FBUSxFQUNSLEtBQVU7UUFFVixJQUFJLEtBQUssSUFBSSxLQUFLO1lBQUUsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzVFLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQW9DLEtBQVEsRUFBRSxLQUFVO1FBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsS0FBSyxH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LENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0QsT0FBTyxLQUFLO2lCQUNULE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBVyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgRW51bXMgPSB7XG4gIG5hbWVzPEUgZXh0ZW5kcyB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfT4oZW51bXM6IEUpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXM8c3RyaW5nPihlbnVtcykuZmlsdGVyKCh2KSA9PiB0eXBlb2YgdiA9PT0gJ3N0cmluZycpO1xuICB9LFxuXG4gIHZhbHVlczxFIGV4dGVuZHMgeyBbbmFtZTogc3RyaW5nXTogYW55IH0+KGVudW1zOiBFKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzPG51bWJlcj4oZW51bXMpLmZpbHRlcigodikgPT4gdHlwZW9mIHYgPT09ICdudW1iZXInKTtcbiAgfSxcblxuICB0b1ZhbHVlPEUgZXh0ZW5kcyB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfT4oXG4gICAgZW51bXM6IEUsXG4gICAgdmFsdWU6IGFueSxcbiAgKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodmFsdWUgaW4gZW51bXMpIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gZW51bXNbdmFsdWVdIDogdmFsdWU7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSxcblxuICB0b1ZhbHVlczxFIGV4dGVuZHMgeyBbbmFtZTogc3RyaW5nXTogYW55IH0+KGVudW1zOiBFLCB2YWx1ZTogYW55KTogbnVtYmVyW10ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZXMoZW51bXMpLmZpbHRlcigodikgPT4gKHZhbHVlICYgdikgPT09IHYpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgnLCcpLm1hcCgobykgPT4gby50cmltKCkpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUuZXZlcnkoKHYpID0+IHYgaW4gZW51bXMpKSB7XG4gICAgICByZXR1cm4gdmFsdWUubWFwKChvKSA9PiB0aGlzLnRvVmFsdWUoZW51bXMsIG8pIGFzIG51bWJlcik7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSxcblxuICB0b05hbWU8RSBleHRlbmRzIHsgW25hbWU6IHN0cmluZ106IGFueSB9PihcbiAgICBlbnVtczogRSxcbiAgICB2YWx1ZTogYW55LFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh2YWx1ZSBpbiBlbnVtcykgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyBlbnVtc1t2YWx1ZV0gOiB2YWx1ZTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9LFxuXG4gIHRvTmFtZXM8RSBleHRlbmRzIHsgW25hbWU6IHN0cmluZ106IGFueSB9PihlbnVtczogRSwgdmFsdWU6IGFueSk6IHN0cmluZ1tdIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWVzKGVudW1zKVxuICAgICAgICAuZmlsdGVyKCh2KSA9PiAodmFsdWUgJiB2KSA9PT0gdilcbiAgICAgICAgLm1hcCgodikgPT4gdGhpcy50b05hbWUoZW51bXMsIHYpIGFzIHN0cmluZyk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KCcsJykubWFwKChvKSA9PiBvLnRyaW0oKSk7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5ldmVyeSgodikgPT4gdiBpbiBlbnVtcykpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKG8pID0+IHRoaXMudG9OYW1lKGVudW1zLCBvKSBhcyBzdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0sXG5cbiAgdG9GbGFnczxFIGV4dGVuZHMgeyBbbmFtZTogc3RyaW5nXTogYW55IH0+KGVudW1zOiBFLCB2YWx1ZTogYW55KTogc3RyaW5nW10ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZXMoZW51bXMpXG4gICAgICAgIC5maWx0ZXIoKHYpID0+IHYgIT09IDAgJiYgKHZhbHVlICYgdikgPT09IHYpXG4gICAgICAgIC5tYXAoKHYpID0+IHRoaXMudG9OYW1lKGVudW1zLCB2KSBhcyBzdHJpbmcpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgnLCcpLm1hcCgobykgPT4gby50cmltKCkpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUuZXZlcnkoKHYpID0+IHYgaW4gZW51bXMpKSB7XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgLmZpbHRlcigodikgPT4gZW51bXNbdl0pXG4gICAgICAgIC5tYXAoKHYpID0+IHRoaXMudG9OYW1lKGVudW1zLCB2KSBhcyBzdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0sXG59O1xuIl19