Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@odda-studio/cms-core

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@odda-studio/cms-core - npm Package Compare versions

Comparing version
0.0.12
to
0.0.13
+14
-17
esm2020/lib/cms-core.service.mjs

@@ -62,18 +62,15 @@ import { Inject, Injectable, Optional } from '@angular/core';

Object.entries(this.meta.tables || {}).forEach(f => {
const [name, table] = f;
table.columns.forEach((f, index) => f.order = f.order ?? index);
if (meta.tables) {
const custom = meta.tables[name];
if (custom) {
custom.columns.forEach(col => {
const index = table
.columns
.findIndex(f => f.field.name === col.field.name);
const column = table.columns[index];
if (column)
table.columns[index] = mergeDeep(column, col);
else
table.columns.push(col);
});
}
const [name, customTable] = f;
if (meta.tables && meta.tables[name]) {
const table = meta.tables[name];
customTable.columns.forEach(customColumn => {
const index = table.columns.findIndex(c => c.field.name === customColumn.field.name);
const column = table.columns[index];
if (column) {
table.columns[index] = mergeDeep(column, customColumn);
}
else {
table.columns.push(customColumn);
}
});
}

@@ -119,2 +116,2 @@ });

}] }, { type: i1.HttpClient }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLWNvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy1jb3JlL3NyYy9saWIvY21zLWNvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFhLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUF1QixHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFjLE1BQU0sZUFBZSxDQUFDOzs7QUFROUYsTUFBTSxRQUFRLEdBQWtGLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3ZHLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBRXZDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQTtBQUVELFNBQVMsU0FBUyxDQUFDLE1BQVcsRUFBRSxNQUFXLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDcEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7SUFFOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQyxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNs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LElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FDRixDQUFBO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWlCO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7OzJHQXJGVSxjQUFjLGtCQWdCSCxRQUFRLDZCQUNSLFdBQVcsNkJBQ1gsZ0JBQWdCLDZCQUNoQixTQUFTOytHQW5CcEIsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOzswQkFpQk4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxXQUFXOzswQkFDOUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUNuQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtJRm9ybSwgSUVudGl0eSwgSVRhYmxlfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG5pbXBvcnQge19fQVBJX0tFWV9fLCBfX0NNU19NRVRBREFUQV9fLCBfX0xPQ0FMX18sIF9fUEFUSF9fLCBDbXNNZXRhZGF0YX0gZnJvbSBcIi4uL3B1YmxpYy1hcGlcIjtcblxudHlwZSBEb3RQcmVmaXg8VCBleHRlbmRzIHN0cmluZz4gPSBUIGV4dGVuZHMgXCJcIiA/IFwiXCIgOiBgLiR7VH1gXG5cbnR5cGUgRG90TmVzdGVkS2V5czxUPiA9IChUIGV4dGVuZHMgb2JqZWN0ID9cbiAgeyBbSyBpbiBFeGNsdWRlPGtleW9mIFQsIHN5bWJvbD5dOiBgJHtLfSR7RG90UHJlZml4PERvdE5lc3RlZEtleXM8VFtLXT4+fWAgfVtFeGNsdWRlPGtleW9mIFQsIHN5bWJvbD5dXG4gIDogXCJcIikgZXh0ZW5kcyBpbmZlciBEID8gRXh0cmFjdDxELCBzdHJpbmc+IDogbmV2ZXI7XG5cbmNvbnN0IHBvcHVsYXRlOiA8VD4oc3RyaW5nOiBEb3ROZXN0ZWRLZXlzPFQ+W10sIHBhcmFtczogSHR0cFBhcmFtcyB8IHVuZGVmaW5lZCkgPT4gSHR0cFBhcmFtcyA9IChhLCBiKSA9PiB7XG4gIGxldCBodHRwUGFyYW1zID0gYiB8fCBuZXcgSHR0cFBhcmFtcygpO1xuXG4gIHJldHVybiBodHRwUGFyYW1zLnNldCgncG9wdWxhdGUnLCBhLmpvaW4oJywnKSk7XG59XG5cbmZ1bmN0aW9uIG1lcmdlRGVlcCh0YXJnZXQ6IGFueSwgc291cmNlOiBhbnksIGxldmVsID0gMCkge1xuICBjb25zdCBpc09iamVjdCA9IChvYmo6IGFueSkgPT4gb2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnO1xuXG4gIGlmICghaXNPYmplY3QodGFyZ2V0KSB8fCAhaXNPYmplY3Qoc291cmNlKSkge1xuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICBPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbnN0IHRhcmdldFZhbHVlID0gdGFyZ2V0W2tleV07XG4gICAgY29uc3Qgc291cmNlVmFsdWUgPSBzb3VyY2Vba2V5XTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRhcmdldFZhbHVlKSAmJiBBcnJheS5pc0FycmF5KHNvdXJjZVZhbHVlKSkge1xuICAgICAgdGFyZ2V0W2tleV0gPSB0YXJnZXRWYWx1ZS5jb25jYXQoc291cmNlVmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QodGFyZ2V0VmFsdWUpICYmIGlzT2JqZWN0KHNvdXJjZVZhbHVlKSkge1xuICAgICAgdGFyZ2V0W2tleV0gPSBtZXJnZURlZXAoT2JqZWN0LmFzc2lnbih7fSwgdGFyZ2V0VmFsdWUpLCBzb3VyY2VWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlVmFsdWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbXNDb3JlU2VydmljZSB7XG4gIHByaXZhdGUgcGF0aHMgPSB7XG4gICAgZW50aXRpZXM6ICcvZW50aXRpZXMnLFxuICAgIGZvcm1zOiAnL2Zvcm1zJ1xuICB9O1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0aWVzOiBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgSUVudGl0eT4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBJRW50aXR5Pj4oe30pO1xuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXMkOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIElFbnRpdHk+PiA9IHRoaXMuZW50aXRpZXMuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoZiA9PiBPYmplY3Qua2V5cyhmKS5sZW5ndGggPiAwKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtczogQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIElGb3JtPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIElGb3JtPj4oe30pO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9ybXMkOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIElGb3JtPj4gPSB0aGlzLmZvcm1zLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKGYgPT4gT2JqZWN0LmtleXMoZikubGVuZ3RoID4gMCkpO1xuXG5cbiAgcHJpdmF0ZSByZWFkb25seSB0YWJsZXM6IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBJVGFibGU+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgSVRhYmxlPj4oe30pO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBJVGFibGU+PiA9IHRoaXMudGFibGVzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKGYgPT4gT2JqZWN0LmtleXMoZikubGVuZ3RoID4gMCkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19QQVRIX18pIHByaXZhdGUgcGF0aDogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19BUElfS0VZX18pIHByaXZhdGUgYXBpOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChfX0NNU19NRVRBREFUQV9fKSBwcml2YXRlIG1ldGE6IENtc01ldGFkYXRhLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19MT0NBTF9fKSBwcml2YXRlIGxvY2FsOiBib29sZWFuLFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudFxuICApIHtcblxuICB9XG5cbiAgbG9hZCgpIHtcbiAgICBpZih0aGlzLmxvY2FsICYmIHRoaXMubWV0YSl7XG4gICAgICB0aGlzLnNldE1ldGFkYXRhKHRoaXMubWV0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQ8Q21zTWV0YWRhdGE+KFxuICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBBUElfS0VZOiB0aGlzLmFwaSB8fCAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoXG4gICAgICAgICAgZiA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IG1ldGEgPSBmO1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoXG4gICAgICAgICAgICAgIHRoaXMubWV0YS50YWJsZXMgfHwge31cbiAgICAgICAgICAgICkuZm9yRWFjaChcbiAgICAgICAgICAgICAgZiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgW25hbWUsIHRhYmxlXSA9IGY7XG4gICAgICAgICAgICAgICAgdGFibGUuY29sdW1ucy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgKGYsIGluZGV4KSA9PiBmLm9yZGVyID0gZi5vcmRlciA/PyBpbmRleFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBpZihtZXRhLnRhYmxlcykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY3VzdG9tID0gbWV0YS50YWJsZXNbbmFtZV07XG4gICAgICAgICAgICAgICAgICBpZiAoY3VzdG9tKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbS5jb2x1bW5zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgICAgY29sID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbHVtbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmRJbmRleChmID0+IGYuZmllbGQubmFtZSA9PT0gY29sLmZpZWxkLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gdGFibGUuY29sdW1uc1tpbmRleF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjb2x1bW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLmNvbHVtbnNbaW5kZXhdID0gbWVyZ2VEZWVwKGNvbHVtbiwgY29sKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUuY29sdW1ucy5wdXNoKGNvbClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIHRoaXMubWV0YSA9IG1ldGE7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGQgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0TWV0YWRhdGEodGhpcy5tZXRhKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHNldE1ldGFkYXRhKG1ldGE6IENtc01ldGFkYXRhKSB7XG4gICAgdGhpcy50YWJsZXMubmV4dChtZXRhLnRhYmxlcyB8fCB7fSk7XG4gICAgdGhpcy5mb3Jtcy5uZXh0KG1ldGEuZm9ybXMgfHwge30pO1xuICAgIHRoaXMuZW50aXRpZXMubmV4dChtZXRhLmVudGl0aWVzIHx8IHt9KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLWNvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy1jb3JlL3NyYy9saWIvY21zLWNvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFhLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUF1QixHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFjLE1BQU0sZUFBZSxDQUFDOzs7QUFROUYsTUFBTSxRQUFRLEdBQWtGLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3ZHLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBRXZDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQTtBQUVELFNBQVMsU0FBUyxDQUFDLE1BQVcsRUFBRSxNQUFXLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDcEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7SUFFOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQyxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNs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QUFpQjtRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOzsyR0FuRlUsY0FBYyxrQkFnQkgsUUFBUSw2QkFDUixXQUFXLDZCQUNYLGdCQUFnQiw2QkFDaEIsU0FBUzsrR0FuQnBCLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBaUJOLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsUUFBUTs7MEJBQzNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsV0FBVzs7MEJBQzlCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDbkMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cFBhcmFtc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgdGFwIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7SUZvcm0sIElFbnRpdHksIElUYWJsZX0gZnJvbSBcIi4uL21vZGVsc1wiO1xuaW1wb3J0IHtfX0FQSV9LRVlfXywgX19DTVNfTUVUQURBVEFfXywgX19MT0NBTF9fLCBfX1BBVEhfXywgQ21zTWV0YWRhdGF9IGZyb20gXCIuLi9wdWJsaWMtYXBpXCI7XG5cbnR5cGUgRG90UHJlZml4PFQgZXh0ZW5kcyBzdHJpbmc+ID0gVCBleHRlbmRzIFwiXCIgPyBcIlwiIDogYC4ke1R9YFxuXG50eXBlIERvdE5lc3RlZEtleXM8VD4gPSAoVCBleHRlbmRzIG9iamVjdCA/XG4gIHsgW0sgaW4gRXhjbHVkZTxrZXlvZiBULCBzeW1ib2w+XTogYCR7S30ke0RvdFByZWZpeDxEb3ROZXN0ZWRLZXlzPFRbS10+Pn1gIH1bRXhjbHVkZTxrZXlvZiBULCBzeW1ib2w+XVxuICA6IFwiXCIpIGV4dGVuZHMgaW5mZXIgRCA/IEV4dHJhY3Q8RCwgc3RyaW5nPiA6IG5ldmVyO1xuXG5jb25zdCBwb3B1bGF0ZTogPFQ+KHN0cmluZzogRG90TmVzdGVkS2V5czxUPltdLCBwYXJhbXM6IEh0dHBQYXJhbXMgfCB1bmRlZmluZWQpID0+IEh0dHBQYXJhbXMgPSAoYSwgYikgPT4ge1xuICBsZXQgaHR0cFBhcmFtcyA9IGIgfHwgbmV3IEh0dHBQYXJhbXMoKTtcblxuICByZXR1cm4gaHR0cFBhcmFtcy5zZXQoJ3BvcHVsYXRlJywgYS5qb2luKCcsJykpO1xufVxuXG5mdW5jdGlvbiBtZXJnZURlZXAodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55LCBsZXZlbCA9IDApIHtcbiAgY29uc3QgaXNPYmplY3QgPSAob2JqOiBhbnkpID0+IG9iaiAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JztcblxuICBpZiAoIWlzT2JqZWN0KHRhcmdldCkgfHwgIWlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICByZXR1cm4gc291cmNlO1xuICB9XG5cbiAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCB0YXJnZXRWYWx1ZSA9IHRhcmdldFtrZXldO1xuICAgIGNvbnN0IHNvdXJjZVZhbHVlID0gc291cmNlW2tleV07XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXRWYWx1ZSkgJiYgQXJyYXkuaXNBcnJheShzb3VyY2VWYWx1ZSkpIHtcbiAgICAgIHRhcmdldFtrZXldID0gdGFyZ2V0VmFsdWUuY29uY2F0KHNvdXJjZVZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KHRhcmdldFZhbHVlKSAmJiBpc09iamVjdChzb3VyY2VWYWx1ZSkpIHtcbiAgICAgIHRhcmdldFtrZXldID0gbWVyZ2VEZWVwKE9iamVjdC5hc3NpZ24oe30sIHRhcmdldFZhbHVlKSwgc291cmNlVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVZhbHVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ21zQ29yZVNlcnZpY2Uge1xuICBwcml2YXRlIHBhdGhzID0ge1xuICAgIGVudGl0aWVzOiAnL2VudGl0aWVzJyxcbiAgICBmb3JtczogJy9mb3JtcydcbiAgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRpdGllczogQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIElFbnRpdHk+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgSUVudGl0eT4+KHt9KTtcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBJRW50aXR5Pj4gPSB0aGlzLmVudGl0aWVzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKGYgPT4gT2JqZWN0LmtleXMoZikubGVuZ3RoID4gMCkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybXM6IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBJRm9ybT4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBJRm9ybT4+KHt9KTtcbiAgcHVibGljIHJlYWRvbmx5IGZvcm1zJDogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBJRm9ybT4+ID0gdGhpcy5mb3Jtcy5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcihmID0+IE9iamVjdC5rZXlzKGYpLmxlbmd0aCA+IDApKTtcblxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGFibGVzOiBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgSVRhYmxlPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIElUYWJsZT4+KHt9KTtcbiAgcHVibGljIHJlYWRvbmx5IHRhYmxlcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgSVRhYmxlPj4gPSB0aGlzLnRhYmxlcy5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcihmID0+IE9iamVjdC5rZXlzKGYpLmxlbmd0aCA+IDApKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KF9fUEFUSF9fKSBwcml2YXRlIHBhdGg6IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KF9fQVBJX0tFWV9fKSBwcml2YXRlIGFwaTogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19DTVNfTUVUQURBVEFfXykgcHJpdmF0ZSBtZXRhOiBDbXNNZXRhZGF0YSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KF9fTE9DQUxfXykgcHJpdmF0ZSBsb2NhbDogYm9vbGVhbixcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnRcbiAgKSB7XG5cbiAgfVxuXG4gIGxvYWQoKSB7XG4gICAgaWYodGhpcy5sb2NhbCAmJiB0aGlzLm1ldGEpe1xuICAgICAgdGhpcy5zZXRNZXRhZGF0YSh0aGlzLm1ldGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0PENtc01ldGFkYXRhPihcbiAgICAgICAgdGhpcy5wYXRoLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgQVBJX0tFWTogdGhpcy5hcGkgfHwgJydcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICkucGlwZShcbiAgICAgICAgdGFwKFxuICAgICAgICAgIGYgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2NhbCA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBtZXRhID0gZjtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKFxuICAgICAgICAgICAgICB0aGlzLm1ldGEudGFibGVzIHx8IHt9XG4gICAgICAgICAgICApLmZvckVhY2goXG4gICAgICAgICAgICAgIGYgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtuYW1lLCBjdXN0b21UYWJsZV0gPSBmO1xuICAgICAgICAgICAgICAgIGlmKG1ldGEudGFibGVzICYmIG1ldGEudGFibGVzW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCB0YWJsZSA9IG1ldGEudGFibGVzW25hbWVdO1xuICAgICAgICAgICAgICAgICAgY3VzdG9tVGFibGUuY29sdW1ucy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21Db2x1bW4gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGFibGUuY29sdW1ucy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgICAgICAgICBjID0+IGMuZmllbGQubmFtZSA9PT0gY3VzdG9tQ29sdW1uLmZpZWxkLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gdGFibGUuY29sdW1uc1tpbmRleF07XG4gICAgICAgICAgICAgICAgICAgICAgaWYoY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5jb2x1bW5zW2luZGV4XSA9IG1lcmdlRGVlcChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uLCBjdXN0b21Db2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLmNvbHVtbnMucHVzaChjdXN0b21Db2x1bW4pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIHRoaXMubWV0YSA9IG1ldGE7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGQgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0TWV0YWRhdGEodGhpcy5tZXRhKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHNldE1ldGFkYXRhKG1ldGE6IENtc01ldGFkYXRhKSB7XG4gICAgdGhpcy50YWJsZXMubmV4dChtZXRhLnRhYmxlcyB8fCB7fSk7XG4gICAgdGhpcy5mb3Jtcy5uZXh0KG1ldGEuZm9ybXMgfHwge30pO1xuICAgIHRoaXMuZW50aXRpZXMubmV4dChtZXRhLmVudGl0aWVzIHx8IHt9KTtcbiAgfVxufVxuIl19

@@ -62,18 +62,15 @@ import * as i0 from '@angular/core';

Object.entries(this.meta.tables || {}).forEach(f => {
const [name, table] = f;
table.columns.forEach((f, index) => { var _a; return f.order = (_a = f.order) !== null && _a !== void 0 ? _a : index; });
if (meta.tables) {
const custom = meta.tables[name];
if (custom) {
custom.columns.forEach(col => {
const index = table
.columns
.findIndex(f => f.field.name === col.field.name);
const column = table.columns[index];
if (column)
table.columns[index] = mergeDeep(column, col);
else
table.columns.push(col);
});
}
const [name, customTable] = f;
if (meta.tables && meta.tables[name]) {
const table = meta.tables[name];
customTable.columns.forEach(customColumn => {
const index = table.columns.findIndex(c => c.field.name === customColumn.field.name);
const column = table.columns[index];
if (column) {
table.columns[index] = mergeDeep(column, customColumn);
}
else {
table.columns.push(customColumn);
}
});
}

@@ -80,0 +77,0 @@ });

@@ -1,1 +0,1 @@

{"version":3,"file":"odda-studio-cms-core.mjs","sources":["../../../projects/cms-core/src/lib/cms-core.service.ts","../../../projects/cms-core/src/lib/cms-core.component.ts","../../../projects/cms-core/src/lib/cms-core.module.ts","../../../projects/cms-core/src/models.ts","../../../projects/cms-core/src/public-api.ts","../../../projects/cms-core/src/odda-studio-cms-core.ts"],"sourcesContent":["import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpClient, HttpParams} from \"@angular/common/http\";\nimport { BehaviorSubject, filter, map, Observable, of, tap } from \"rxjs\";\nimport {IForm, IEntity, ITable} from \"../models\";\nimport {__API_KEY__, __CMS_METADATA__, __LOCAL__, __PATH__, CmsMetadata} from \"../public-api\";\n\ntype DotPrefix<T extends string> = T extends \"\" ? \"\" : `.${T}`\n\ntype DotNestedKeys<T> = (T extends object ?\n { [K in Exclude<keyof T, symbol>]: `${K}${DotPrefix<DotNestedKeys<T[K]>>}` }[Exclude<keyof T, symbol>]\n : \"\") extends infer D ? Extract<D, string> : never;\n\nconst populate: <T>(string: DotNestedKeys<T>[], params: HttpParams | undefined) => HttpParams = (a, b) => {\n let httpParams = b || new HttpParams();\n\n return httpParams.set('populate', a.join(','));\n}\n\nfunction mergeDeep(target: any, source: any, level = 0) {\n const isObject = (obj: any) => obj && typeof obj === 'object';\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue);\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n\n return target;\n}\n\n\n@Injectable()\nexport class CmsCoreService {\n private paths = {\n entities: '/entities',\n forms: '/forms'\n };\n private readonly entities: BehaviorSubject<Record<string, IEntity>> = new BehaviorSubject<Record<string, IEntity>>({});\n public readonly entities$: Observable<Record<string, IEntity>> = this.entities.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n private readonly forms: BehaviorSubject<Record<string, IForm>> = new BehaviorSubject<Record<string, IForm>>({});\n public readonly forms$: Observable<Record<string, IForm>> = this.forms.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n\n private readonly tables: BehaviorSubject<Record<string, ITable>> = new BehaviorSubject<Record<string, ITable>>({});\n public readonly tables$: Observable<Record<string, ITable>> = this.tables.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n constructor(\n @Optional() @Inject(__PATH__) private path: string,\n @Optional() @Inject(__API_KEY__) private api: string,\n @Optional() @Inject(__CMS_METADATA__) private meta: CmsMetadata,\n @Optional() @Inject(__LOCAL__) private local: boolean,\n private httpClient: HttpClient\n ) {\n\n }\n\n load() {\n if(this.local && this.meta){\n this.setMetadata(this.meta);\n } else {\n this.httpClient.get<CmsMetadata>(\n this.path,\n {\n headers: {\n API_KEY: this.api || ''\n }\n }\n ).pipe(\n tap(\n f => {\n this.local = true;\n const meta = f;\n Object.entries(\n this.meta.tables || {}\n ).forEach(\n f => {\n const [name, table] = f;\n table.columns.forEach(\n (f, index) => f.order = f.order ?? index\n )\n if(meta.tables) {\n const custom = meta.tables[name];\n if (custom) {\n custom.columns.forEach(\n col => {\n const index = table\n .columns\n .findIndex(f => f.field.name === col.field.name);\n const column = table.columns[index];\n if(column)\n table.columns[index] = mergeDeep(column, col);\n else\n table.columns.push(col)\n }\n );\n }\n }\n }\n )\n\n this.meta = meta;\n }\n )\n )\n .subscribe(\n d => {\n this.setMetadata(this.meta);\n }\n )\n }\n }\n\n setMetadata(meta: CmsMetadata) {\n this.tables.next(meta.tables || {});\n this.forms.next(meta.forms || {});\n this.entities.next(meta.entities || {});\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-cms-core',\n template: `\n <p>\n cms-core works!\n </p>\n `,\n styles: [\n ]\n})\nexport class CmsCoreComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {NgModule, ModuleWithProviders, InjectionToken} from '@angular/core';\nimport {CmsCoreComponent} from './cms-core.component';\nimport {CmsCoreService} from \"./cms-core.service\";\nimport {__PATH__, __API_KEY__, __CMS_METADATA__, __LOCAL__, IEntity, IForm, ITable} from \"../public-api\";\n\n\nexport type CmsMetadata = {\n entities?: Record<string, IEntity>,\n forms?: Record<string, IForm>,\n tables?: Record<string, ITable>\n}\n\n\n@NgModule({\n declarations: [\n CmsCoreComponent\n ],\n providers: [CmsCoreService],\n imports: [],\n exports: [\n CmsCoreComponent\n ]\n})\nexport class CmsCoreModule {\n\n public static forRoot(configuration: {\n path: string,\n API_KEY: string,\n cache?: boolean,\n preload?: boolean,\n configuration?: CmsMetadata,\n local?: boolean\n }): ModuleWithProviders<CmsCoreModule> {\n return {\n ngModule: CmsCoreModule,\n providers: [\n {\n useValue: configuration.path,\n provide: __PATH__\n },\n {\n useValue: configuration.API_KEY,\n provide: __API_KEY__\n },\n {\n useValue: configuration.configuration,\n provide: __CMS_METADATA__\n },\n {\n useValue: configuration.local,\n provide: __LOCAL__\n }\n ]\n }\n }\n\n}\n","export type RelationType =\n | 'one-to-one'\n | 'one-to-many'\n | 'many-to-one'\n | 'many-to-many';\n\nexport class Actions {\n delete?: boolean;\n update?: boolean;\n details?: boolean;\n create?: boolean;\n}\n\nexport enum FormMethod {\n POST = 'POST',\n PUT = 'PUT',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n}\n\nexport enum FormKind {\n CREATE = 'CREATE',\n UPDATE = 'UPDATE',\n DELETE = 'DELETE',\n DETAILS = 'DETAILS',\n}\n\nexport interface IOption<T> {\n text: string;\n value: T;\n}\n\nexport interface IApplication {\n name?: string;\n endpoint?: string;\n}\n\nexport interface IEntity {\n name?: string;\n endpoint?: string;\n application?: IApplication;\n fields?: IField[];\n forms?: IForm[];\n tables?: ITable[];\n}\n\nexport interface IForm {\n name: string;\n identifier: string;\n rows?: IFieldsGroupEntity[];\n action: string;\n entity: IEntity;\n kind: FormKind;\n meta?: any;\n method: FormMethod;\n isArray?: boolean;\n arrayPath?: string;\n tables?: ITable[];\n}\n\nexport interface IField {\n name: string;\n type?: any;\n options?: IOption<any>[];\n identifier?: boolean;\n required?: boolean;\n minLength?: number;\n maxLength?: number;\n min?: number;\n max?: number;\n entity: IEntity;\n relation?: IEntity & { filteringKeys: string; displayKey: string };\n relationType?: RelationType;\n freeze?: boolean;\n}\n\nexport interface IFieldsGroup {\n id?: number;\n}\n\nexport interface IFormField extends IField {\n requiredTrue: boolean;\n order: number;\n class: string;\n meta: any;\n path: string;\n label18n: string;\n field?: IField;\n group: IFieldsGroup[];\n}\n\nexport interface ITable {\n name: string;\n class: string;\n actions: Actions;\n columns: ITableField[];\n forms: IForm[];\n entity: IEntity;\n meta?: any;\n}\nexport enum Comparator {\n equal,\n notEqual,\n contains,\n notContains,\n greaterThan,\n lessThan,\n}\n\nexport interface ICondition {\n label: string;\n icon: string;\n comparator: Comparator;\n}\n\nexport enum SortingType {\n asc,\n desc\n}\nexport interface ITableField {\n label18n: string;\n field: Partial<IField>;\n order: number;\n sortable: boolean;\n filter?: string;\n freeze?: boolean;\n firstSorting?: SortingType;\n filterCondition?: ICondition & {value?:any};\n filterOptions?: ICondition[];\n filterable: boolean;\n filteringKeys: string[];\n relation?: IEntity;\n relationType?: RelationType;\n path: string;\n customTemplate: string;\n meta: any;\n hidden: boolean;\n table: Partial<ITable>;\n width?: number;\n}\n\nexport interface IFieldsGroupEntity {\n form: IForm;\n order: number;\n class: string;\n fields: IFormField[];\n}\n","/*\n * Public API Surface of cms-core\n */\n\nimport {InjectionToken} from \"@angular/core\";\n\nexport * from './lib/cms-core.service';\nexport * from './lib/cms-core.component';\nexport * from './lib/cms-core.module';\nexport * from './models'\nexport const __PATH__ = new InjectionToken('__PATH__');\nexport const __API_KEY__ = new InjectionToken('__API_KEY__');\nexport const __CMS_METADATA__ = new InjectionToken('__CMS_METADATA__');\nexport const __LOCAL__ = new InjectionToken('__LOCAL__');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
{"version":3,"file":"odda-studio-cms-core.mjs","sources":["../../../projects/cms-core/src/lib/cms-core.service.ts","../../../projects/cms-core/src/lib/cms-core.component.ts","../../../projects/cms-core/src/lib/cms-core.module.ts","../../../projects/cms-core/src/models.ts","../../../projects/cms-core/src/public-api.ts","../../../projects/cms-core/src/odda-studio-cms-core.ts"],"sourcesContent":["import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpClient, HttpParams} from \"@angular/common/http\";\nimport { BehaviorSubject, filter, map, Observable, of, tap } from \"rxjs\";\nimport {IForm, IEntity, ITable} from \"../models\";\nimport {__API_KEY__, __CMS_METADATA__, __LOCAL__, __PATH__, CmsMetadata} from \"../public-api\";\n\ntype DotPrefix<T extends string> = T extends \"\" ? \"\" : `.${T}`\n\ntype DotNestedKeys<T> = (T extends object ?\n { [K in Exclude<keyof T, symbol>]: `${K}${DotPrefix<DotNestedKeys<T[K]>>}` }[Exclude<keyof T, symbol>]\n : \"\") extends infer D ? Extract<D, string> : never;\n\nconst populate: <T>(string: DotNestedKeys<T>[], params: HttpParams | undefined) => HttpParams = (a, b) => {\n let httpParams = b || new HttpParams();\n\n return httpParams.set('populate', a.join(','));\n}\n\nfunction mergeDeep(target: any, source: any, level = 0) {\n const isObject = (obj: any) => obj && typeof obj === 'object';\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue);\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n\n return target;\n}\n\n\n@Injectable()\nexport class CmsCoreService {\n private paths = {\n entities: '/entities',\n forms: '/forms'\n };\n private readonly entities: BehaviorSubject<Record<string, IEntity>> = new BehaviorSubject<Record<string, IEntity>>({});\n public readonly entities$: Observable<Record<string, IEntity>> = this.entities.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n private readonly forms: BehaviorSubject<Record<string, IForm>> = new BehaviorSubject<Record<string, IForm>>({});\n public readonly forms$: Observable<Record<string, IForm>> = this.forms.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n\n private readonly tables: BehaviorSubject<Record<string, ITable>> = new BehaviorSubject<Record<string, ITable>>({});\n public readonly tables$: Observable<Record<string, ITable>> = this.tables.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n constructor(\n @Optional() @Inject(__PATH__) private path: string,\n @Optional() @Inject(__API_KEY__) private api: string,\n @Optional() @Inject(__CMS_METADATA__) private meta: CmsMetadata,\n @Optional() @Inject(__LOCAL__) private local: boolean,\n private httpClient: HttpClient\n ) {\n\n }\n\n load() {\n if(this.local && this.meta){\n this.setMetadata(this.meta);\n } else {\n this.httpClient.get<CmsMetadata>(\n this.path,\n {\n headers: {\n API_KEY: this.api || ''\n }\n }\n ).pipe(\n tap(\n f => {\n this.local = true;\n const meta = f;\n Object.entries(\n this.meta.tables || {}\n ).forEach(\n f => {\n const [name, customTable] = f;\n if(meta.tables && meta.tables[name]) {\n const table = meta.tables[name];\n customTable.columns.forEach(\n customColumn => {\n const index = table.columns.findIndex(\n c => c.field.name === customColumn.field.name\n )\n const column = table.columns[index];\n if(column) {\n table.columns[index] = mergeDeep(\n column, customColumn\n );\n } else {\n table.columns.push(customColumn)\n }\n }\n )\n }\n }\n )\n\n this.meta = meta;\n }\n )\n )\n .subscribe(\n d => {\n this.setMetadata(this.meta);\n }\n )\n }\n }\n\n setMetadata(meta: CmsMetadata) {\n this.tables.next(meta.tables || {});\n this.forms.next(meta.forms || {});\n this.entities.next(meta.entities || {});\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-cms-core',\n template: `\n <p>\n cms-core works!\n </p>\n `,\n styles: [\n ]\n})\nexport class CmsCoreComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {NgModule, ModuleWithProviders, InjectionToken} from '@angular/core';\nimport {CmsCoreComponent} from './cms-core.component';\nimport {CmsCoreService} from \"./cms-core.service\";\nimport {__PATH__, __API_KEY__, __CMS_METADATA__, __LOCAL__, IEntity, IForm, ITable} from \"../public-api\";\n\n\nexport type CmsMetadata = {\n entities?: Record<string, IEntity>,\n forms?: Record<string, IForm>,\n tables?: Record<string, ITable>\n}\n\n\n@NgModule({\n declarations: [\n CmsCoreComponent\n ],\n providers: [CmsCoreService],\n imports: [],\n exports: [\n CmsCoreComponent\n ]\n})\nexport class CmsCoreModule {\n\n public static forRoot(configuration: {\n path: string,\n API_KEY: string,\n cache?: boolean,\n preload?: boolean,\n configuration?: CmsMetadata,\n local?: boolean\n }): ModuleWithProviders<CmsCoreModule> {\n return {\n ngModule: CmsCoreModule,\n providers: [\n {\n useValue: configuration.path,\n provide: __PATH__\n },\n {\n useValue: configuration.API_KEY,\n provide: __API_KEY__\n },\n {\n useValue: configuration.configuration,\n provide: __CMS_METADATA__\n },\n {\n useValue: configuration.local,\n provide: __LOCAL__\n }\n ]\n }\n }\n\n}\n","export type RelationType =\n | 'one-to-one'\n | 'one-to-many'\n | 'many-to-one'\n | 'many-to-many';\n\nexport class Actions {\n delete?: boolean;\n update?: boolean;\n details?: boolean;\n create?: boolean;\n}\n\nexport enum FormMethod {\n POST = 'POST',\n PUT = 'PUT',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n}\n\nexport enum FormKind {\n CREATE = 'CREATE',\n UPDATE = 'UPDATE',\n DELETE = 'DELETE',\n DETAILS = 'DETAILS',\n}\n\nexport interface IOption<T> {\n text: string;\n value: T;\n}\n\nexport interface IApplication {\n name?: string;\n endpoint?: string;\n}\n\nexport interface IEntity {\n name?: string;\n endpoint?: string;\n application?: IApplication;\n fields?: IField[];\n forms?: IForm[];\n tables?: ITable[];\n}\n\nexport interface IForm {\n name: string;\n identifier: string;\n rows?: IFieldsGroupEntity[];\n action: string;\n entity: IEntity;\n kind: FormKind;\n meta?: any;\n method: FormMethod;\n isArray?: boolean;\n arrayPath?: string;\n tables?: ITable[];\n}\n\nexport interface IField {\n name: string;\n type?: any;\n options?: IOption<any>[];\n identifier?: boolean;\n required?: boolean;\n minLength?: number;\n maxLength?: number;\n min?: number;\n max?: number;\n entity: IEntity;\n relation?: IEntity & { filteringKeys: string; displayKey: string };\n relationType?: RelationType;\n freeze?: boolean;\n}\n\nexport interface IFieldsGroup {\n id?: number;\n}\n\nexport interface IFormField extends IField {\n requiredTrue: boolean;\n order: number;\n class: string;\n meta: any;\n path: string;\n label18n: string;\n field?: IField;\n group: IFieldsGroup[];\n}\n\nexport interface ITable {\n name: string;\n class: string;\n actions: Actions;\n columns: ITableField[];\n forms: IForm[];\n entity: IEntity;\n meta?: any;\n}\nexport enum Comparator {\n equal,\n notEqual,\n contains,\n notContains,\n greaterThan,\n lessThan,\n}\n\nexport interface ICondition {\n label: string;\n icon: string;\n comparator: Comparator;\n}\n\nexport enum SortingType {\n asc,\n desc\n}\nexport interface ITableField {\n label18n: string;\n field: Partial<IField>;\n order: number;\n sortable: boolean;\n filter?: string;\n freeze?: boolean;\n firstSorting?: SortingType;\n filterCondition?: ICondition & {value?:any};\n filterOptions?: ICondition[];\n filterable: boolean;\n filteringKeys: string[];\n relation?: IEntity;\n relationType?: RelationType;\n path: string;\n customTemplate: string;\n meta: any;\n hidden: boolean;\n table: Partial<ITable>;\n width?: number;\n}\n\nexport interface IFieldsGroupEntity {\n form: IForm;\n order: number;\n class: string;\n fields: IFormField[];\n}\n","/*\n * Public API Surface of cms-core\n */\n\nimport {InjectionToken} from \"@angular/core\";\n\nexport * from './lib/cms-core.service';\nexport * from './lib/cms-core.component';\nexport * from './lib/cms-core.module';\nexport * from './models'\nexport const __PATH__ = new InjectionToken('__PATH__');\nexport const __API_KEY__ = new InjectionToken('__API_KEY__');\nexport const __CMS_METADATA__ = new InjectionToken('__CMS_METADATA__');\nexport const __LOCAL__ = new InjectionToken('__LOCAL__');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}

@@ -62,18 +62,15 @@ import * as i0 from '@angular/core';

Object.entries(this.meta.tables || {}).forEach(f => {
const [name, table] = f;
table.columns.forEach((f, index) => f.order = f.order ?? index);
if (meta.tables) {
const custom = meta.tables[name];
if (custom) {
custom.columns.forEach(col => {
const index = table
.columns
.findIndex(f => f.field.name === col.field.name);
const column = table.columns[index];
if (column)
table.columns[index] = mergeDeep(column, col);
else
table.columns.push(col);
});
}
const [name, customTable] = f;
if (meta.tables && meta.tables[name]) {
const table = meta.tables[name];
customTable.columns.forEach(customColumn => {
const index = table.columns.findIndex(c => c.field.name === customColumn.field.name);
const column = table.columns[index];
if (column) {
table.columns[index] = mergeDeep(column, customColumn);
}
else {
table.columns.push(customColumn);
}
});
}

@@ -80,0 +77,0 @@ });

@@ -1,1 +0,1 @@

{"version":3,"file":"odda-studio-cms-core.mjs","sources":["../../../projects/cms-core/src/lib/cms-core.service.ts","../../../projects/cms-core/src/lib/cms-core.component.ts","../../../projects/cms-core/src/lib/cms-core.module.ts","../../../projects/cms-core/src/models.ts","../../../projects/cms-core/src/public-api.ts","../../../projects/cms-core/src/odda-studio-cms-core.ts"],"sourcesContent":["import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpClient, HttpParams} from \"@angular/common/http\";\nimport { BehaviorSubject, filter, map, Observable, of, tap } from \"rxjs\";\nimport {IForm, IEntity, ITable} from \"../models\";\nimport {__API_KEY__, __CMS_METADATA__, __LOCAL__, __PATH__, CmsMetadata} from \"../public-api\";\n\ntype DotPrefix<T extends string> = T extends \"\" ? \"\" : `.${T}`\n\ntype DotNestedKeys<T> = (T extends object ?\n { [K in Exclude<keyof T, symbol>]: `${K}${DotPrefix<DotNestedKeys<T[K]>>}` }[Exclude<keyof T, symbol>]\n : \"\") extends infer D ? Extract<D, string> : never;\n\nconst populate: <T>(string: DotNestedKeys<T>[], params: HttpParams | undefined) => HttpParams = (a, b) => {\n let httpParams = b || new HttpParams();\n\n return httpParams.set('populate', a.join(','));\n}\n\nfunction mergeDeep(target: any, source: any, level = 0) {\n const isObject = (obj: any) => obj && typeof obj === 'object';\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue);\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n\n return target;\n}\n\n\n@Injectable()\nexport class CmsCoreService {\n private paths = {\n entities: '/entities',\n forms: '/forms'\n };\n private readonly entities: BehaviorSubject<Record<string, IEntity>> = new BehaviorSubject<Record<string, IEntity>>({});\n public readonly entities$: Observable<Record<string, IEntity>> = this.entities.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n private readonly forms: BehaviorSubject<Record<string, IForm>> = new BehaviorSubject<Record<string, IForm>>({});\n public readonly forms$: Observable<Record<string, IForm>> = this.forms.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n\n private readonly tables: BehaviorSubject<Record<string, ITable>> = new BehaviorSubject<Record<string, ITable>>({});\n public readonly tables$: Observable<Record<string, ITable>> = this.tables.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n constructor(\n @Optional() @Inject(__PATH__) private path: string,\n @Optional() @Inject(__API_KEY__) private api: string,\n @Optional() @Inject(__CMS_METADATA__) private meta: CmsMetadata,\n @Optional() @Inject(__LOCAL__) private local: boolean,\n private httpClient: HttpClient\n ) {\n\n }\n\n load() {\n if(this.local && this.meta){\n this.setMetadata(this.meta);\n } else {\n this.httpClient.get<CmsMetadata>(\n this.path,\n {\n headers: {\n API_KEY: this.api || ''\n }\n }\n ).pipe(\n tap(\n f => {\n this.local = true;\n const meta = f;\n Object.entries(\n this.meta.tables || {}\n ).forEach(\n f => {\n const [name, table] = f;\n table.columns.forEach(\n (f, index) => f.order = f.order ?? index\n )\n if(meta.tables) {\n const custom = meta.tables[name];\n if (custom) {\n custom.columns.forEach(\n col => {\n const index = table\n .columns\n .findIndex(f => f.field.name === col.field.name);\n const column = table.columns[index];\n if(column)\n table.columns[index] = mergeDeep(column, col);\n else\n table.columns.push(col)\n }\n );\n }\n }\n }\n )\n\n this.meta = meta;\n }\n )\n )\n .subscribe(\n d => {\n this.setMetadata(this.meta);\n }\n )\n }\n }\n\n setMetadata(meta: CmsMetadata) {\n this.tables.next(meta.tables || {});\n this.forms.next(meta.forms || {});\n this.entities.next(meta.entities || {});\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-cms-core',\n template: `\n <p>\n cms-core works!\n </p>\n `,\n styles: [\n ]\n})\nexport class CmsCoreComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {NgModule, ModuleWithProviders, InjectionToken} from '@angular/core';\nimport {CmsCoreComponent} from './cms-core.component';\nimport {CmsCoreService} from \"./cms-core.service\";\nimport {__PATH__, __API_KEY__, __CMS_METADATA__, __LOCAL__, IEntity, IForm, ITable} from \"../public-api\";\n\n\nexport type CmsMetadata = {\n entities?: Record<string, IEntity>,\n forms?: Record<string, IForm>,\n tables?: Record<string, ITable>\n}\n\n\n@NgModule({\n declarations: [\n CmsCoreComponent\n ],\n providers: [CmsCoreService],\n imports: [],\n exports: [\n CmsCoreComponent\n ]\n})\nexport class CmsCoreModule {\n\n public static forRoot(configuration: {\n path: string,\n API_KEY: string,\n cache?: boolean,\n preload?: boolean,\n configuration?: CmsMetadata,\n local?: boolean\n }): ModuleWithProviders<CmsCoreModule> {\n return {\n ngModule: CmsCoreModule,\n providers: [\n {\n useValue: configuration.path,\n provide: __PATH__\n },\n {\n useValue: configuration.API_KEY,\n provide: __API_KEY__\n },\n {\n useValue: configuration.configuration,\n provide: __CMS_METADATA__\n },\n {\n useValue: configuration.local,\n provide: __LOCAL__\n }\n ]\n }\n }\n\n}\n","export type RelationType =\n | 'one-to-one'\n | 'one-to-many'\n | 'many-to-one'\n | 'many-to-many';\n\nexport class Actions {\n delete?: boolean;\n update?: boolean;\n details?: boolean;\n create?: boolean;\n}\n\nexport enum FormMethod {\n POST = 'POST',\n PUT = 'PUT',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n}\n\nexport enum FormKind {\n CREATE = 'CREATE',\n UPDATE = 'UPDATE',\n DELETE = 'DELETE',\n DETAILS = 'DETAILS',\n}\n\nexport interface IOption<T> {\n text: string;\n value: T;\n}\n\nexport interface IApplication {\n name?: string;\n endpoint?: string;\n}\n\nexport interface IEntity {\n name?: string;\n endpoint?: string;\n application?: IApplication;\n fields?: IField[];\n forms?: IForm[];\n tables?: ITable[];\n}\n\nexport interface IForm {\n name: string;\n identifier: string;\n rows?: IFieldsGroupEntity[];\n action: string;\n entity: IEntity;\n kind: FormKind;\n meta?: any;\n method: FormMethod;\n isArray?: boolean;\n arrayPath?: string;\n tables?: ITable[];\n}\n\nexport interface IField {\n name: string;\n type?: any;\n options?: IOption<any>[];\n identifier?: boolean;\n required?: boolean;\n minLength?: number;\n maxLength?: number;\n min?: number;\n max?: number;\n entity: IEntity;\n relation?: IEntity & { filteringKeys: string; displayKey: string };\n relationType?: RelationType;\n freeze?: boolean;\n}\n\nexport interface IFieldsGroup {\n id?: number;\n}\n\nexport interface IFormField extends IField {\n requiredTrue: boolean;\n order: number;\n class: string;\n meta: any;\n path: string;\n label18n: string;\n field?: IField;\n group: IFieldsGroup[];\n}\n\nexport interface ITable {\n name: string;\n class: string;\n actions: Actions;\n columns: ITableField[];\n forms: IForm[];\n entity: IEntity;\n meta?: any;\n}\nexport enum Comparator {\n equal,\n notEqual,\n contains,\n notContains,\n greaterThan,\n lessThan,\n}\n\nexport interface ICondition {\n label: string;\n icon: string;\n comparator: Comparator;\n}\n\nexport enum SortingType {\n asc,\n desc\n}\nexport interface ITableField {\n label18n: string;\n field: Partial<IField>;\n order: number;\n sortable: boolean;\n filter?: string;\n freeze?: boolean;\n firstSorting?: SortingType;\n filterCondition?: ICondition & {value?:any};\n filterOptions?: ICondition[];\n filterable: boolean;\n filteringKeys: string[];\n relation?: IEntity;\n relationType?: RelationType;\n path: string;\n customTemplate: string;\n meta: any;\n hidden: boolean;\n table: Partial<ITable>;\n width?: number;\n}\n\nexport interface IFieldsGroupEntity {\n form: IForm;\n order: number;\n class: string;\n fields: IFormField[];\n}\n","/*\n * Public API Surface of cms-core\n */\n\nimport {InjectionToken} from \"@angular/core\";\n\nexport * from './lib/cms-core.service';\nexport * from './lib/cms-core.component';\nexport * from './lib/cms-core.module';\nexport * from './models'\nexport const __PATH__ = new InjectionToken('__PATH__');\nexport const __API_KEY__ = new InjectionToken('__API_KEY__');\nexport const __CMS_METADATA__ = new InjectionToken('__CMS_METADATA__');\nexport const __LOCAL__ = new InjectionToken('__LOCAL__');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,QAAQ,GAAkF,CAAC,CAAC,EAAE,CAAC,KAAI;AACvG,IAAA,IAAI,UAAU,GAAG,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;AAEvC,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjD,CAAC,CAAA;AAED,SAAS,SAAS,CAAC,MAAW,EAAE,MAAW,EAAE,KAAK,GAAG,CAAC,EAAA;AACpD,IAAA,MAAM,QAAQ,GAAG,CAAC,GAAQ,KAAK,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;IAE9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1C,QAAA,OAAO,MAAM,CAAC;AACf,KAAA;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAClC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAChC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAEhC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/C,SAAA;aAAM,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE;AACzD,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;AACtE,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;AAC3B,SAAA;AACH,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;MAIY,cAAc,CAAA;IAezB,WACwC,CAAA,IAAY,EACT,GAAW,EACN,IAAiB,EACxB,KAAc,EAC7C,UAAsB,EAAA;QAJQ,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACT,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACN,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QACxB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAS;QAC7C,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAnBxB,QAAA,IAAA,CAAA,KAAK,GAAG;AACd,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,KAAK,EAAE,QAAQ;SAChB,CAAC;AACe,QAAA,IAAA,CAAA,QAAQ,GAA6C,IAAI,eAAe,CAA0B,EAAE,CAAC,CAAC;AACvG,QAAA,IAAA,CAAA,SAAS,GAAwC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1H,QAAA,IAAA,CAAA,KAAK,GAA2C,IAAI,eAAe,CAAwB,EAAE,CAAC,CAAC;AAChG,QAAA,IAAA,CAAA,MAAM,GAAsC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAGlH,QAAA,IAAA,CAAA,MAAM,GAA4C,IAAI,eAAe,CAAyB,EAAE,CAAC,CAAC;AACnG,QAAA,IAAA,CAAA,OAAO,GAAuC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;KAUrI;IAED,IAAI,GAAA;AACF,QAAA,IAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAC;AACzB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,IAAI,CAAC,IAAI,EACT;AACE,gBAAA,OAAO,EAAE;AACP,oBAAA,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;AACxB,iBAAA;AACF,aAAA,CACF,CAAC,IAAI,CACJ,GAAG,CACD,CAAC,IAAG;AACF,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,MAAM,IAAI,GAAG,CAAC,CAAC;AACf,gBAAA,MAAM,CAAC,OAAO,CACZ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CACvB,CAAC,OAAO,CACP,CAAC,IAAG;AACF,oBAAA,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;oBACxB,KAAK,CAAC,OAAO,CAAC,OAAO,CACnB,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CACzC,CAAA;oBACD,IAAG,IAAI,CAAC,MAAM,EAAE;wBACd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjC,wBAAA,IAAI,MAAM,EAAE;AACV,4BAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CACpB,GAAG,IAAG;gCACJ,MAAM,KAAK,GAAG,KAAK;qCAChB,OAAO;AACP,qCAAA,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gCACnD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpC,gCAAA,IAAG,MAAM;AACP,oCAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;;AAE9C,oCAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC3B,6BAAC,CACF,CAAC;AACH,yBAAA;AACF,qBAAA;AACH,iBAAC,CACF,CAAA;AAED,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,aAAC,CACF,CACF;iBACE,SAAS,CACV,CAAC,IAAG;AACF,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,aAAC,CACF,CAAA;AACF,SAAA;KACF;AAED,IAAA,WAAW,CAAC,IAAiB,EAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;KACzC;;AArFU,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAgBH,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACR,WAAW,EACX,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,gBAAgB,6BAChB,SAAS,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;+GAnBpB,cAAc,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;0BAiBN,QAAQ;;0BAAI,MAAM;2BAAC,QAAQ,CAAA;;0BAC3B,QAAQ;;0BAAI,MAAM;2BAAC,WAAW,CAAA;;0BAC9B,QAAQ;;0BAAI,MAAM;2BAAC,gBAAgB,CAAA;;0BACnC,QAAQ;;0BAAI,MAAM;2BAAC,SAAS,CAAA;;;MClDpB,gBAAgB,CAAA;AAE3B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;6GALU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EARjB,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAIU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACd,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;MCeU,aAAa,CAAA;IAEjB,OAAO,OAAO,CAAC,aAOrB,EAAA;QACC,OAAO;AACL,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,SAAS,EAAE;AACT,gBAAA;oBACE,QAAQ,EAAE,aAAa,CAAC,IAAI;AAC5B,oBAAA,OAAO,EAAE,QAAQ;AAClB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,aAAa,CAAC,OAAO;AAC/B,oBAAA,OAAO,EAAE,WAAW;AACrB,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,aAAa,CAAC,aAAa;AACrC,oBAAA,OAAO,EAAE,gBAAgB;AAC1B,iBAAA;AACD,gBAAA;oBACE,QAAQ,EAAE,aAAa,CAAC,KAAK;AAC7B,oBAAA,OAAO,EAAE,SAAS;AACnB,iBAAA;AACF,aAAA;SACF,CAAA;KACF;;0GA/BU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2GAAb,aAAa,EAAA,YAAA,EAAA,CARtB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAKhB,gBAAgB,CAAA,EAAA,CAAA,CAAA;2GAGP,aAAa,EAAA,SAAA,EANb,CAAC,cAAc,CAAC,EAAA,CAAA,CAAA;2FAMhB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAVzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;AACjB,qBAAA;oBACD,SAAS,EAAE,CAAC,cAAc,CAAC;AAC3B,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,gBAAgB;AACjB,qBAAA;AACF,iBAAA,CAAA;;;MChBY,OAAO,CAAA;AAKnB,CAAA;IAEW,WAKX;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA,CAAA;IAEW,SAKX;AALD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,QAAQ,KAAR,QAAQ,GAKnB,EAAA,CAAA,CAAA,CAAA;IA2EW,WAOX;AAPD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACR,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;AACV,CAAC,EAPW,UAAU,KAAV,UAAU,GAOrB,EAAA,CAAA,CAAA,CAAA;IAQW,YAGX;AAHD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG,CAAA;AACH,IAAA,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACN,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA;;ACtHD;;AAEG;MAQU,QAAQ,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE;MAC1C,WAAW,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE;MAChD,gBAAgB,GAAG,IAAI,cAAc,CAAC,kBAAkB,EAAE;MAC1D,SAAS,GAAG,IAAI,cAAc,CAAC,WAAW;;ACbvD;;AAEG;;;;"}
{"version":3,"file":"odda-studio-cms-core.mjs","sources":["../../../projects/cms-core/src/lib/cms-core.service.ts","../../../projects/cms-core/src/lib/cms-core.component.ts","../../../projects/cms-core/src/lib/cms-core.module.ts","../../../projects/cms-core/src/models.ts","../../../projects/cms-core/src/public-api.ts","../../../projects/cms-core/src/odda-studio-cms-core.ts"],"sourcesContent":["import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpClient, HttpParams} from \"@angular/common/http\";\nimport { BehaviorSubject, filter, map, Observable, of, tap } from \"rxjs\";\nimport {IForm, IEntity, ITable} from \"../models\";\nimport {__API_KEY__, __CMS_METADATA__, __LOCAL__, __PATH__, CmsMetadata} from \"../public-api\";\n\ntype DotPrefix<T extends string> = T extends \"\" ? \"\" : `.${T}`\n\ntype DotNestedKeys<T> = (T extends object ?\n { [K in Exclude<keyof T, symbol>]: `${K}${DotPrefix<DotNestedKeys<T[K]>>}` }[Exclude<keyof T, symbol>]\n : \"\") extends infer D ? Extract<D, string> : never;\n\nconst populate: <T>(string: DotNestedKeys<T>[], params: HttpParams | undefined) => HttpParams = (a, b) => {\n let httpParams = b || new HttpParams();\n\n return httpParams.set('populate', a.join(','));\n}\n\nfunction mergeDeep(target: any, source: any, level = 0) {\n const isObject = (obj: any) => obj && typeof obj === 'object';\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach((key) => {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue);\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n\n return target;\n}\n\n\n@Injectable()\nexport class CmsCoreService {\n private paths = {\n entities: '/entities',\n forms: '/forms'\n };\n private readonly entities: BehaviorSubject<Record<string, IEntity>> = new BehaviorSubject<Record<string, IEntity>>({});\n public readonly entities$: Observable<Record<string, IEntity>> = this.entities.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n private readonly forms: BehaviorSubject<Record<string, IForm>> = new BehaviorSubject<Record<string, IForm>>({});\n public readonly forms$: Observable<Record<string, IForm>> = this.forms.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n\n private readonly tables: BehaviorSubject<Record<string, ITable>> = new BehaviorSubject<Record<string, ITable>>({});\n public readonly tables$: Observable<Record<string, ITable>> = this.tables.asObservable().pipe(filter(f => Object.keys(f).length > 0));\n\n constructor(\n @Optional() @Inject(__PATH__) private path: string,\n @Optional() @Inject(__API_KEY__) private api: string,\n @Optional() @Inject(__CMS_METADATA__) private meta: CmsMetadata,\n @Optional() @Inject(__LOCAL__) private local: boolean,\n private httpClient: HttpClient\n ) {\n\n }\n\n load() {\n if(this.local && this.meta){\n this.setMetadata(this.meta);\n } else {\n this.httpClient.get<CmsMetadata>(\n this.path,\n {\n headers: {\n API_KEY: this.api || ''\n }\n }\n ).pipe(\n tap(\n f => {\n this.local = true;\n const meta = f;\n Object.entries(\n this.meta.tables || {}\n ).forEach(\n f => {\n const [name, customTable] = f;\n if(meta.tables && meta.tables[name]) {\n const table = meta.tables[name];\n customTable.columns.forEach(\n customColumn => {\n const index = table.columns.findIndex(\n c => c.field.name === customColumn.field.name\n )\n const column = table.columns[index];\n if(column) {\n table.columns[index] = mergeDeep(\n column, customColumn\n );\n } else {\n table.columns.push(customColumn)\n }\n }\n )\n }\n }\n )\n\n this.meta = meta;\n }\n )\n )\n .subscribe(\n d => {\n this.setMetadata(this.meta);\n }\n )\n }\n }\n\n setMetadata(meta: CmsMetadata) {\n this.tables.next(meta.tables || {});\n this.forms.next(meta.forms || {});\n this.entities.next(meta.entities || {});\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-cms-core',\n template: `\n <p>\n cms-core works!\n </p>\n `,\n styles: [\n ]\n})\nexport class CmsCoreComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {NgModule, ModuleWithProviders, InjectionToken} from '@angular/core';\nimport {CmsCoreComponent} from './cms-core.component';\nimport {CmsCoreService} from \"./cms-core.service\";\nimport {__PATH__, __API_KEY__, __CMS_METADATA__, __LOCAL__, IEntity, IForm, ITable} from \"../public-api\";\n\n\nexport type CmsMetadata = {\n entities?: Record<string, IEntity>,\n forms?: Record<string, IForm>,\n tables?: Record<string, ITable>\n}\n\n\n@NgModule({\n declarations: [\n CmsCoreComponent\n ],\n providers: [CmsCoreService],\n imports: [],\n exports: [\n CmsCoreComponent\n ]\n})\nexport class CmsCoreModule {\n\n public static forRoot(configuration: {\n path: string,\n API_KEY: string,\n cache?: boolean,\n preload?: boolean,\n configuration?: CmsMetadata,\n local?: boolean\n }): ModuleWithProviders<CmsCoreModule> {\n return {\n ngModule: CmsCoreModule,\n providers: [\n {\n useValue: configuration.path,\n provide: __PATH__\n },\n {\n useValue: configuration.API_KEY,\n provide: __API_KEY__\n },\n {\n useValue: configuration.configuration,\n provide: __CMS_METADATA__\n },\n {\n useValue: configuration.local,\n provide: __LOCAL__\n }\n ]\n }\n }\n\n}\n","export type RelationType =\n | 'one-to-one'\n | 'one-to-many'\n | 'many-to-one'\n | 'many-to-many';\n\nexport class Actions {\n delete?: boolean;\n update?: boolean;\n details?: boolean;\n create?: boolean;\n}\n\nexport enum FormMethod {\n POST = 'POST',\n PUT = 'PUT',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n}\n\nexport enum FormKind {\n CREATE = 'CREATE',\n UPDATE = 'UPDATE',\n DELETE = 'DELETE',\n DETAILS = 'DETAILS',\n}\n\nexport interface IOption<T> {\n text: string;\n value: T;\n}\n\nexport interface IApplication {\n name?: string;\n endpoint?: string;\n}\n\nexport interface IEntity {\n name?: string;\n endpoint?: string;\n application?: IApplication;\n fields?: IField[];\n forms?: IForm[];\n tables?: ITable[];\n}\n\nexport interface IForm {\n name: string;\n identifier: string;\n rows?: IFieldsGroupEntity[];\n action: string;\n entity: IEntity;\n kind: FormKind;\n meta?: any;\n method: FormMethod;\n isArray?: boolean;\n arrayPath?: string;\n tables?: ITable[];\n}\n\nexport interface IField {\n name: string;\n type?: any;\n options?: IOption<any>[];\n identifier?: boolean;\n required?: boolean;\n minLength?: number;\n maxLength?: number;\n min?: number;\n max?: number;\n entity: IEntity;\n relation?: IEntity & { filteringKeys: string; displayKey: string };\n relationType?: RelationType;\n freeze?: boolean;\n}\n\nexport interface IFieldsGroup {\n id?: number;\n}\n\nexport interface IFormField extends IField {\n requiredTrue: boolean;\n order: number;\n class: string;\n meta: any;\n path: string;\n label18n: string;\n field?: IField;\n group: IFieldsGroup[];\n}\n\nexport interface ITable {\n name: string;\n class: string;\n actions: Actions;\n columns: ITableField[];\n forms: IForm[];\n entity: IEntity;\n meta?: any;\n}\nexport enum Comparator {\n equal,\n notEqual,\n contains,\n notContains,\n greaterThan,\n lessThan,\n}\n\nexport interface ICondition {\n label: string;\n icon: string;\n comparator: Comparator;\n}\n\nexport enum SortingType {\n asc,\n desc\n}\nexport interface ITableField {\n label18n: string;\n field: Partial<IField>;\n order: number;\n sortable: boolean;\n filter?: string;\n freeze?: boolean;\n firstSorting?: SortingType;\n filterCondition?: ICondition & {value?:any};\n filterOptions?: ICondition[];\n filterable: boolean;\n filteringKeys: string[];\n relation?: IEntity;\n relationType?: RelationType;\n path: string;\n customTemplate: string;\n meta: any;\n hidden: boolean;\n table: Partial<ITable>;\n width?: number;\n}\n\nexport interface IFieldsGroupEntity {\n form: IForm;\n order: number;\n class: string;\n fields: IFormField[];\n}\n","/*\n * Public API Surface of cms-core\n */\n\nimport {InjectionToken} from \"@angular/core\";\n\nexport * from './lib/cms-core.service';\nexport * from './lib/cms-core.component';\nexport * from './lib/cms-core.module';\nexport * from './models'\nexport const __PATH__ = new InjectionToken('__PATH__');\nexport const __API_KEY__ = new InjectionToken('__API_KEY__');\nexport const __CMS_METADATA__ = new InjectionToken('__CMS_METADATA__');\nexport const __LOCAL__ = new InjectionToken('__LOCAL__');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
{
"name": "@odda-studio/cms-core",
"version": "0.0.12",
"version": "0.0.13",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "^15.2.7",