@odda-studio/cms-core
Advanced tools
@@ -64,4 +64,4 @@ import { Inject, Injectable, Optional } from '@angular/core'; | ||
| table.columns.forEach((f, index) => f.order = f.order ?? index); | ||
| if (this.meta?.tables) { | ||
| const custom = this.meta.tables[name]; | ||
| if (meta.tables) { | ||
| const custom = meta.tables[name]; | ||
| if (custom) { | ||
@@ -81,2 +81,3 @@ custom.columns.forEach(col => { | ||
| }); | ||
| this.meta = meta; | ||
| })) | ||
@@ -119,2 +120,2 @@ .subscribe(d => { | ||
| }] }, { type: i1.HttpClient }]; } }); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLWNvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy1jb3JlL3NyYy9saWIvY21zLWNvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFhLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUF1QixHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFjLE1BQU0sZUFBZSxDQUFDOzs7QUFROUYsTUFBTSxRQUFRLEdBQWtGLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3ZHLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBRXZDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQTtBQUVELFNBQVMsU0FBUyxDQUFDLE1BQVcsRUFBRSxNQUFXLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDcEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7SUFFOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQyxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNs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Q0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUNGLENBQUE7U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsSUFBaUI7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7MkdBbkZVLGNBQWMsa0JBZ0JILFFBQVEsNkJBQ1IsV0FBVyw2QkFDWCxnQkFBZ0IsNkJBQ2hCLFNBQVM7K0dBbkJwQixjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQWlCTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFdBQVc7OzBCQUM5QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ25DLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHRhcCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0lGb3JtLCBJRW50aXR5LCBJVGFibGV9IGZyb20gXCIuLi9tb2RlbHNcIjtcbmltcG9ydCB7X19BUElfS0VZX18sIF9fQ01TX01FVEFEQVRBX18sIF9fTE9DQUxfXywgX19QQVRIX18sIENtc01ldGFkYXRhfSBmcm9tIFwiLi4vcHVibGljLWFwaVwiO1xuXG50eXBlIERvdFByZWZpeDxUIGV4dGVuZHMgc3RyaW5nPiA9IFQgZXh0ZW5kcyBcIlwiID8gXCJcIiA6IGAuJHtUfWBcblxudHlwZSBEb3ROZXN0ZWRLZXlzPFQ+ID0gKFQgZXh0ZW5kcyBvYmplY3QgP1xuICB7IFtLIGluIEV4Y2x1ZGU8a2V5b2YgVCwgc3ltYm9sPl06IGAke0t9JHtEb3RQcmVmaXg8RG90TmVzdGVkS2V5czxUW0tdPj59YCB9W0V4Y2x1ZGU8a2V5b2YgVCwgc3ltYm9sPl1cbiAgOiBcIlwiKSBleHRlbmRzIGluZmVyIEQgPyBFeHRyYWN0PEQsIHN0cmluZz4gOiBuZXZlcjtcblxuY29uc3QgcG9wdWxhdGU6IDxUPihzdHJpbmc6IERvdE5lc3RlZEtleXM8VD5bXSwgcGFyYW1zOiBIdHRwUGFyYW1zIHwgdW5kZWZpbmVkKSA9PiBIdHRwUGFyYW1zID0gKGEsIGIpID0+IHtcbiAgbGV0IGh0dHBQYXJhbXMgPSBiIHx8IG5ldyBIdHRwUGFyYW1zKCk7XG5cbiAgcmV0dXJuIGh0dHBQYXJhbXMuc2V0KCdwb3B1bGF0ZScsIGEuam9pbignLCcpKTtcbn1cblxuZnVuY3Rpb24gbWVyZ2VEZWVwKHRhcmdldDogYW55LCBzb3VyY2U6IGFueSwgbGV2ZWwgPSAwKSB7XG4gIGNvbnN0IGlzT2JqZWN0ID0gKG9iajogYW55KSA9PiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCc7XG5cbiAgaWYgKCFpc09iamVjdCh0YXJnZXQpIHx8ICFpc09iamVjdChzb3VyY2UpKSB7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIE9iamVjdC5rZXlzKHNvdXJjZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0VmFsdWUgPSB0YXJnZXRba2V5XTtcbiAgICBjb25zdCBzb3VyY2VWYWx1ZSA9IHNvdXJjZVtrZXldO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0VmFsdWUpICYmIEFycmF5LmlzQXJyYXkoc291cmNlVmFsdWUpKSB7XG4gICAgICB0YXJnZXRba2V5XSA9IHRhcmdldFZhbHVlLmNvbmNhdChzb3VyY2VWYWx1ZSk7XG4gICAgfSBlbHNlIGlmIChpc09iamVjdCh0YXJnZXRWYWx1ZSkgJiYgaXNPYmplY3Qoc291cmNlVmFsdWUpKSB7XG4gICAgICB0YXJnZXRba2V5XSA9IG1lcmdlRGVlcChPYmplY3QuYXNzaWduKHt9LCB0YXJnZXRWYWx1ZSksIHNvdXJjZVZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2VWYWx1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENtc0NvcmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwYXRocyA9IHtcbiAgICBlbnRpdGllczogJy9lbnRpdGllcycsXG4gICAgZm9ybXM6ICcvZm9ybXMnXG4gIH07XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50aXRpZXM6IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBJRW50aXR5Pj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIElFbnRpdHk+Pih7fSk7XG4gIHB1YmxpYyByZWFkb25seSBlbnRpdGllcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgSUVudGl0eT4+ID0gdGhpcy5lbnRpdGllcy5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcihmID0+IE9iamVjdC5rZXlzKGYpLmxlbmd0aCA+IDApKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1zOiBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgSUZvcm0+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgSUZvcm0+Pih7fSk7XG4gIHB1YmxpYyByZWFkb25seSBmb3JtcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgSUZvcm0+PiA9IHRoaXMuZm9ybXMuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoZiA9PiBPYmplY3Qua2V5cyhmKS5sZW5ndGggPiAwKSk7XG5cblxuICBwcml2YXRlIHJlYWRvbmx5IHRhYmxlczogQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIElUYWJsZT4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBJVGFibGU+Pih7fSk7XG4gIHB1YmxpYyByZWFkb25seSB0YWJsZXMkOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIElUYWJsZT4+ID0gdGhpcy50YWJsZXMuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoZiA9PiBPYmplY3Qua2V5cyhmKS5sZW5ndGggPiAwKSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChfX1BBVEhfXykgcHJpdmF0ZSBwYXRoOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChfX0FQSV9LRVlfXykgcHJpdmF0ZSBhcGk6IHN0cmluZyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KF9fQ01TX01FVEFEQVRBX18pIHByaXZhdGUgbWV0YTogQ21zTWV0YWRhdGEsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChfX0xPQ0FMX18pIHByaXZhdGUgbG9jYWw6IGJvb2xlYW4sXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XG4gICkge1xuXG4gIH1cblxuICBsb2FkKCkge1xuICAgIGlmKHRoaXMubG9jYWwgJiYgdGhpcy5tZXRhKXtcbiAgICAgIHRoaXMuc2V0TWV0YWRhdGEodGhpcy5tZXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5odHRwQ2xpZW50LmdldDxDbXNNZXRhZGF0YT4oXG4gICAgICAgIHRoaXMucGF0aCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIEFQSV9LRVk6IHRoaXMuYXBpIHx8ICcnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApLnBpcGUoXG4gICAgICAgIHRhcChcbiAgICAgICAgICBmID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9jYWwgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3QgbWV0YSA9IGY7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhcbiAgICAgICAgICAgICAgdGhpcy5tZXRhLnRhYmxlcyB8fCB7fVxuICAgICAgICAgICAgKS5mb3JFYWNoKFxuICAgICAgICAgICAgICBmID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbbmFtZSwgdGFibGVdID0gZjtcbiAgICAgICAgICAgICAgICB0YWJsZS5jb2x1bW5zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAoZiwgaW5kZXgpID0+IGYub3JkZXIgPSBmLm9yZGVyID8/IGluZGV4XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGlmKHRoaXMubWV0YT8udGFibGVzKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXN0b20gPSB0aGlzLm1ldGEudGFibGVzW25hbWVdO1xuICAgICAgICAgICAgICAgICAgaWYgKGN1c3RvbSkge1xuICAgICAgICAgICAgICAgICAgICBjdXN0b20uY29sdW1ucy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgICAgIGNvbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2x1bW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kSW5kZXgoZiA9PiBmLmZpZWxkLm5hbWUgPT09IGNvbC5maWVsZC5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHRhYmxlLmNvbHVtbnNbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYoY29sdW1uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZS5jb2x1bW5zW2luZGV4XSA9IG1lcmdlRGVlcChjb2x1bW4sIGNvbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLmNvbHVtbnMucHVzaChjb2wpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICBkID0+IHtcbiAgICAgICAgICB0aGlzLnNldE1ldGFkYXRhKHRoaXMubWV0YSk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBzZXRNZXRhZGF0YShtZXRhOiBDbXNNZXRhZGF0YSkge1xuICAgIHRoaXMudGFibGVzLm5leHQobWV0YS50YWJsZXMgfHwge30pO1xuICAgIHRoaXMuZm9ybXMubmV4dChtZXRhLmZvcm1zIHx8IHt9KTtcbiAgICB0aGlzLmVudGl0aWVzLm5leHQobWV0YS5lbnRpdGllcyB8fCB7fSk7XG4gIH1cbn1cbiJdfQ== | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLWNvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy1jb3JlL3NyYy9saWIvY21zLWNvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFhLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUF1QixHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFjLE1BQU0sZUFBZSxDQUFDOzs7QUFROUYsTUFBTSxRQUFRLEdBQWtGLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3ZHLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBRXZDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQTtBQUVELFNBQVMsU0FBUyxDQUFDLE1BQVcsRUFBRSxNQUFXLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDcEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7SUFFOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQyxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNs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LElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FDRixDQUFBO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWlCO1FBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7OzJHQXJGVSxjQUFjLGtCQWdCSCxRQUFRLDZCQUNSLFdBQVcsNkJBQ1gsZ0JBQWdCLDZCQUNoQixTQUFTOytHQW5CcEIsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOzswQkFpQk4sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxXQUFXOzswQkFDOUIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUNuQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtJRm9ybSwgSUVudGl0eSwgSVRhYmxlfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG5pbXBvcnQge19fQVBJX0tFWV9fLCBfX0NNU19NRVRBREFUQV9fLCBfX0xPQ0FMX18sIF9fUEFUSF9fLCBDbXNNZXRhZGF0YX0gZnJvbSBcIi4uL3B1YmxpYy1hcGlcIjtcblxudHlwZSBEb3RQcmVmaXg8VCBleHRlbmRzIHN0cmluZz4gPSBUIGV4dGVuZHMgXCJcIiA/IFwiXCIgOiBgLiR7VH1gXG5cbnR5cGUgRG90TmVzdGVkS2V5czxUPiA9IChUIGV4dGVuZHMgb2JqZWN0ID9cbiAgeyBbSyBpbiBFeGNsdWRlPGtleW9mIFQsIHN5bWJvbD5dOiBgJHtLfSR7RG90UHJlZml4PERvdE5lc3RlZEtleXM8VFtLXT4+fWAgfVtFeGNsdWRlPGtleW9mIFQsIHN5bWJvbD5dXG4gIDogXCJcIikgZXh0ZW5kcyBpbmZlciBEID8gRXh0cmFjdDxELCBzdHJpbmc+IDogbmV2ZXI7XG5cbmNvbnN0IHBvcHVsYXRlOiA8VD4oc3RyaW5nOiBEb3ROZXN0ZWRLZXlzPFQ+W10sIHBhcmFtczogSHR0cFBhcmFtcyB8IHVuZGVmaW5lZCkgPT4gSHR0cFBhcmFtcyA9IChhLCBiKSA9PiB7XG4gIGxldCBodHRwUGFyYW1zID0gYiB8fCBuZXcgSHR0cFBhcmFtcygpO1xuXG4gIHJldHVybiBodHRwUGFyYW1zLnNldCgncG9wdWxhdGUnLCBhLmpvaW4oJywnKSk7XG59XG5cbmZ1bmN0aW9uIG1lcmdlRGVlcCh0YXJnZXQ6IGFueSwgc291cmNlOiBhbnksIGxldmVsID0gMCkge1xuICBjb25zdCBpc09iamVjdCA9IChvYmo6IGFueSkgPT4gb2JqICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnO1xuXG4gIGlmICghaXNPYmplY3QodGFyZ2V0KSB8fCAhaXNPYmplY3Qoc291cmNlKSkge1xuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICBPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbnN0IHRhcmdldFZhbHVlID0gdGFyZ2V0W2tleV07XG4gICAgY29uc3Qgc291cmNlVmFsdWUgPSBzb3VyY2Vba2V5XTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRhcmdldFZhbHVlKSAmJiBBcnJheS5pc0FycmF5KHNvdXJjZVZhbHVlKSkge1xuICAgICAgdGFyZ2V0W2tleV0gPSB0YXJnZXRWYWx1ZS5jb25jYXQoc291cmNlVmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QodGFyZ2V0VmFsdWUpICYmIGlzT2JqZWN0KHNvdXJjZVZhbHVlKSkge1xuICAgICAgdGFyZ2V0W2tleV0gPSBtZXJnZURlZXAoT2JqZWN0LmFzc2lnbih7fSwgdGFyZ2V0VmFsdWUpLCBzb3VyY2VWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlVmFsdWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbXNDb3JlU2VydmljZSB7XG4gIHByaXZhdGUgcGF0aHMgPSB7XG4gICAgZW50aXRpZXM6ICcvZW50aXRpZXMnLFxuICAgIGZvcm1zOiAnL2Zvcm1zJ1xuICB9O1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0aWVzOiBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgSUVudGl0eT4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBJRW50aXR5Pj4oe30pO1xuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXMkOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIElFbnRpdHk+PiA9IHRoaXMuZW50aXRpZXMuYXNPYnNlcnZhYmxlKCkucGlwZShmaWx0ZXIoZiA9PiBPYmplY3Qua2V5cyhmKS5sZW5ndGggPiAwKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtczogQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIElGb3JtPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIElGb3JtPj4oe30pO1xuICBwdWJsaWMgcmVhZG9ubHkgZm9ybXMkOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIElGb3JtPj4gPSB0aGlzLmZvcm1zLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKGYgPT4gT2JqZWN0LmtleXMoZikubGVuZ3RoID4gMCkpO1xuXG5cbiAgcHJpdmF0ZSByZWFkb25seSB0YWJsZXM6IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBJVGFibGU+PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgSVRhYmxlPj4oe30pO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFibGVzJDogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBJVGFibGU+PiA9IHRoaXMudGFibGVzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKGYgPT4gT2JqZWN0LmtleXMoZikubGVuZ3RoID4gMCkpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19QQVRIX18pIHByaXZhdGUgcGF0aDogc3RyaW5nLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19BUElfS0VZX18pIHByaXZhdGUgYXBpOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChfX0NNU19NRVRBREFUQV9fKSBwcml2YXRlIG1ldGE6IENtc01ldGFkYXRhLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19MT0NBTF9fKSBwcml2YXRlIGxvY2FsOiBib29sZWFuLFxuICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudFxuICApIHtcblxuICB9XG5cbiAgbG9hZCgpIHtcbiAgICBpZih0aGlzLmxvY2FsICYmIHRoaXMubWV0YSl7XG4gICAgICB0aGlzLnNldE1ldGFkYXRhKHRoaXMubWV0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQ8Q21zTWV0YWRhdGE+KFxuICAgICAgICB0aGlzLnBhdGgsXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBBUElfS0VZOiB0aGlzLmFwaSB8fCAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKS5waXBlKFxuICAgICAgICB0YXAoXG4gICAgICAgICAgZiA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IG1ldGEgPSBmO1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoXG4gICAgICAgICAgICAgIHRoaXMubWV0YS50YWJsZXMgfHwge31cbiAgICAgICAgICAgICkuZm9yRWFjaChcbiAgICAgICAgICAgICAgZiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgW25hbWUsIHRhYmxlXSA9IGY7XG4gICAgICAgICAgICAgICAgdGFibGUuY29sdW1ucy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgKGYsIGluZGV4KSA9PiBmLm9yZGVyID0gZi5vcmRlciA/PyBpbmRleFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBpZihtZXRhLnRhYmxlcykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY3VzdG9tID0gbWV0YS50YWJsZXNbbmFtZV07XG4gICAgICAgICAgICAgICAgICBpZiAoY3VzdG9tKSB7XG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbS5jb2x1bW5zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgICAgY29sID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbHVtbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmRJbmRleChmID0+IGYuZmllbGQubmFtZSA9PT0gY29sLmZpZWxkLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gdGFibGUuY29sdW1uc1tpbmRleF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjb2x1bW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlLmNvbHVtbnNbaW5kZXhdID0gbWVyZ2VEZWVwKGNvbHVtbiwgY29sKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGUuY29sdW1ucy5wdXNoKGNvbClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIHRoaXMubWV0YSA9IG1ldGE7XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGQgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0TWV0YWRhdGEodGhpcy5tZXRhKTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHNldE1ldGFkYXRhKG1ldGE6IENtc01ldGFkYXRhKSB7XG4gICAgdGhpcy50YWJsZXMubmV4dChtZXRhLnRhYmxlcyB8fCB7fSk7XG4gICAgdGhpcy5mb3Jtcy5uZXh0KG1ldGEuZm9ybXMgfHwge30pO1xuICAgIHRoaXMuZW50aXRpZXMubmV4dChtZXRhLmVudGl0aWVzIHx8IHt9KTtcbiAgfVxufVxuIl19 |
@@ -62,7 +62,6 @@ import * as i0 from '@angular/core'; | ||
| Object.entries(this.meta.tables || {}).forEach(f => { | ||
| var _a; | ||
| const [name, table] = f; | ||
| table.columns.forEach((f, index) => { var _a; return f.order = (_a = f.order) !== null && _a !== void 0 ? _a : index; }); | ||
| if ((_a = this.meta) === null || _a === void 0 ? void 0 : _a.tables) { | ||
| const custom = this.meta.tables[name]; | ||
| if (meta.tables) { | ||
| const custom = meta.tables[name]; | ||
| if (custom) { | ||
@@ -82,2 +81,3 @@ custom.columns.forEach(col => { | ||
| }); | ||
| this.meta = meta; | ||
| })) | ||
@@ -84,0 +84,0 @@ .subscribe(d => { |
@@ -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(this.meta?.tables) {\n const custom = this.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 )\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, 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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"} |
@@ -64,4 +64,4 @@ import * as i0 from '@angular/core'; | ||
| table.columns.forEach((f, index) => f.order = f.order ?? index); | ||
| if (this.meta?.tables) { | ||
| const custom = this.meta.tables[name]; | ||
| if (meta.tables) { | ||
| const custom = meta.tables[name]; | ||
| if (custom) { | ||
@@ -81,2 +81,3 @@ custom.columns.forEach(col => { | ||
| }); | ||
| this.meta = meta; | ||
| })) | ||
@@ -83,0 +84,0 @@ .subscribe(d => { |
@@ -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(this.meta?.tables) {\n const custom = this.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 )\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, 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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"} |
+1
-1
| { | ||
| "name": "@odda-studio/cms-core", | ||
| "version": "0.0.11", | ||
| "version": "0.0.12", | ||
| "peerDependencies": { | ||
@@ -5,0 +5,0 @@ "@angular/common": "^15.2.7", |
92233
0.06%873
0.23%