sf-crud 12.0.1-beta24 → 12.0.1-beta25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -92,7 +92,8 @@ export class TableroComponent {
92
92
  endpoint = endpoint.replace(key.key, this.idKatios);
93
93
  break;
94
94
  default:
95
- endpoint = endpoint.replace(key.key, jsonpath.query(data, (key === null || key === void 0 ? void 0 : key.scope) || '')[0]);
95
+ if (endpoint.includes(key.key) && data)
96
+ endpoint = endpoint.replace(key.key, jsonpath.query(data, (key === null || key === void 0 ? void 0 : key.scope) || '')[0]);
96
97
  break;
97
98
  }
98
99
  });
@@ -116,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
116
117
  }], user: [{
117
118
  type: Input
118
119
  }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVyby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZi1jcnVkL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXJvL3RhYmxlcm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVyby90YWJsZXJvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBaUIsVUFBVSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxLQUFLLFFBQVEsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFNckMsTUFBTSxPQUFPLGdCQUFnQjtJQVkzQixZQUNVLGNBQThCLEVBQzlCLE1BQWM7UUFEZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVpmLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBR3hCLGVBQVUsR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzFDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUNqQixRQUFHLEdBQXlELEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFBO0lBSzNJLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFB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Q0UsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxLQUFLLEtBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEYsTUFBTTthQUNUO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs4R0E1RlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0Isb0pDVjdCLGlqR0FtRE07NEZEekNPLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsMEJBQTBCO2lCQUN4QzswSEFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgR2VuZXJhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZ2VuZXJhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlnVGFibGVybywgQ3J1ZENvbmZpZyB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9tb2RlbHMvY3J1ZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgKiBhcyBqc29ucGF0aCBmcm9tICdqc29ucGF0aCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NmLWNydWR0YWJsZXJvJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGVyby5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlcm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBvcGNpb25lczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBpZEVudGlkYWQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGlkS2F0aW9zOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSB1c2VyOiBhbnk7XHJcblxyXG4gIHB1YmxpYyBjcnVkQ29uZmlnOiBDcnVkQ29uZmlnID0gbmV3IENydWRDb25maWcoKTtcclxuICBwdWJsaWMgZW5Qcm9jZXNvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRhdGE6IGFueVtdID0gW107XHJcbiAgcHVibGljIGJ0bjogeyBjcmVhdGU6IGFueSwgcmVhZDogYW55LCB1cGRhdGU6IGFueSwgZGVsZXRlOiBhbnkgfSA9IHsgY3JlYXRlOiB1bmRlZmluZWQsIHJlYWQ6IHVuZGVmaW5lZCwgdXBkYXRlOiB1bmRlZmluZWQsIGRlbGV0ZTogdW5kZWZpbmVkIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdlbmVyYWxTZXJ2aWNlOiBHZW5lcmFsU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZENvbmZpZ0NydWQoKVxyXG4gIH1cclxuXHJcbiAgbG9hZENvbmZpZ0NydWQoKSB7XHJcbiAgICB0aGlzLmVuUHJvY2VzbyA9IHRydWU7XHJcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLmdldENydWRCeUVudGlkYWQodGhpcy5pZEthdGlvcywgdGhpcy5pZEVudGlkYWQpXHJcbiAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5jcnVkQ29uZmlnID0gcmVzO1xyXG4gICAgICAgIHRoaXMuZ2V0SW5mb1RhYmxlcm8odGhpcy5jcnVkQ29uZmlnLnRhYmxlcm8pO1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB0aGlzLmVuUHJvY2VzbyA9IGZhbHNlO1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0SW5mb1RhYmxlcm8oY29uZmlnVGFibGVybzogQ29uZmlnVGFibGVybykge1xyXG4gICAgbGV0IGVuZHBvaW50ID0gdGhpcy5hcGx5S2V5cyhjb25maWdUYWJsZXJvLmtleXMsIGNvbmZpZ1RhYmxlcm8uZW5kcG9pbnQpXHJcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLmdlbmVyaWNSZXF1ZXN0KGNvbmZpZ1RhYmxlcm8ubWV0aG9kLCBjb25maWdUYWJsZXJvLnNlcnZlciwgZW5kcG9pbnQpXHJcbiAgICAgIC50aGVuKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IHJlcy5kYXRhO1xyXG4gICAgICAgIHRoaXMuZW5Qcm9jZXNvID0gZmFsc2U7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGxvYWRPcHRpb25zKCkge1xyXG4gICAgdGhpcy5idG4uY3JlYXRlID0gdGhpcy5vcGNpb25lcy5maW5kKHggPT4geC5sYWJlbCA9PSAnQ3JlYXInKTtcclxuICAgIHRoaXMuYnRuLnJlYWQgPSB0aGlzLm9wY2lvbmVzLmZpbmQoeCA9PiB4LmxhYmVsID09ICdWaXN1YWxpemFyJyk7XHJcbiAgICB0aGlzLmJ0bi51cGRhdGUgPSB0aGlzLm9wY2lvbmVzLmZpbmQoeCA9PiB4LmxhYmVsID09ICdFZGl0YXInKTtcclxuICAgIHRoaXMuYnRuLmRlbGV0ZSA9IHRoaXMub3BjaW9uZXMuZmluZCh4ID0+IHgubGFiZWwgPT0gJ0VsaW1pbmFyJyk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdChhY2Npb246IHN0cmluZywgZGF0YT86IGFueSkge1xyXG4gICAgc3dpdGNoIChhY2Npb24pIHtcclxuICAgICAgY2FzZSAnY3JlYXRlJzpcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuYnRuLmNyZWF0ZT8udmFsb3I/LnJlZGlyZWN0IHx8ICcnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncmVhZCc6XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLmFwbHlLZXlzKHRoaXMuY3J1ZENvbmZpZy50YWJsZXJvLmtleXMsIHRoaXMuYnRuLnJlYWQudmFsb3IucmVkaXJlY3QsIGRhdGEpKTtcclxuICAgICAgICBicmVha1xyXG4gICAgICBjYXNlICd1cGRhdGUnOlxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5hcGx5S2V5cyh0aGlzLmNydWRDb25maWcudGFibGVyby5rZXlzLCB0aGlzLmJ0bi51cGRhdGUudmFsb3IucmVkaXJlY3QsIGRhdGEpKTtcclxuICAgICAgICBicmVha1xyXG4gICAgICBjYXNlICdkZWxldGUnOlxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5hcGx5S2V5cyh0aGlzLmNydWRDb25maWcudGFibGVyby5rZXlzLCB0aGlzLmJ0bi5kZWxldGUudmFsb3IucmVkaXJlY3QsIGRhdGEpKTtcclxuICAgICAgICBicmVha1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhcGx5S2V5cyhrZXlzOiB7IGtleTogc3RyaW5nLCBzY29wZT86IHN0cmluZyB9W10sIGVuZHBvaW50OiBzdHJpbmcsIGRhdGE/OiBhbnkpIHtcclxuICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGtleS5rZXkpIHtcclxuICAgICAgICBjYXNlICdAbmRvYyc6XHJcbiAgICAgICAgICBlbmRwb2ludCA9IGVuZHBvaW50LnJlcGxhY2Uoa2V5LmtleSwgdGhpcy51c2VyPy5Vc3VhcmlvU2lzdGVtYT8uTkRPQyB8fCAnJylcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0B0ZG9jJzpcclxuICAgICAgICAgIGVuZHBvaW50ID0gZW5kcG9pbnQucmVwbGFjZShrZXkua2V5LCB0aGlzLnVzZXI/LlVzdWFyaW9TaXN0ZW1hPy5URE9DIHx8ICcnKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnQGlkS2F0aW9zJzpcclxuICAgICAgICAgIGVuZHBvaW50ID0gZW5kcG9pbnQucmVwbGFjZShrZXkua2V5LCB0aGlzLmlkS2F0aW9zKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGVuZHBvaW50ID0gZW5kcG9pbnQucmVwbGFjZShrZXkua2V5LCBqc29ucGF0aC5xdWVyeShkYXRhLCBrZXk/LnNjb3BlIHx8ICcnKVswXSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZW5kcG9pbnQ7XHJcbiAgfVxyXG59XHJcbiIsIjxwLWJsb2NrVUkgW2Jsb2NrZWRdPVwiZW5Qcm9jZXNvXCI+XHJcbiAgICA8aSBjbGFzcz1cInBpIHBpLWNvZyBwaS1zcGluXCIgc3R5bGU9XCJmb250LXNpemU6IDUwcHhcIj48L2k+XHJcbjwvcC1ibG9ja1VJPlxyXG5cclxuPGRpdiBjbGFzcz1cImNhcmRcIiAqbmdJZj1cIiFlblByb2Nlc29cIj5cclxuICAgIDxwLXRvb2xiYXIgc3R5bGVDbGFzcz1cIm1iLTQgZ2FwLTJcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibGVmdFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYnRuLmNyZWF0ZVwiIHBCdXR0b24gcFJpcHBsZSBbbGFiZWxdPVwiYnRuLmNyZWF0ZS5sYWJlbFwiIFtpY29uXT1cImJ0bi5jcmVhdGUuaWNvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXN1Y2Nlc3MgbXItMlwiIChjbGljayk9XCJyZWRpcmVjdCgnY3JlYXRlJylcIj48L2J1dHRvbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLXRvb2xiYXI+XHJcbiAgICA8cC10YWJsZSAjZHQgW2NvbHVtbnNdPVwiY3J1ZENvbmZpZy50YWJsZXJvLmNvbHVtbnNcIiBbdmFsdWVdPVwiZGF0YVwiIFtyb3dIb3Zlcl09XCJ0cnVlXCIgW3Jvd3NdPVwiMTBcIiBbcGFnaW5hdG9yXT1cInRydWVcIlxyXG4gICAgICAgIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiY3J1ZENvbmZpZy50YWJsZXJvPy5maWx0ZXJzIHx8IFtdXCIgW3RhYmxlU3R5bGVdPVwieydtaW4td2lkdGgnOiAnNzVyZW0nfVwiXHJcbiAgICAgICAgY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIlJlZ2lzdHJvIHtmaXJzdH0gYWwge2xhc3R9IGRlIHt0b3RhbFJlY29yZHN9XCJcclxuICAgICAgICBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm0tMFwiPnt7Y3J1ZENvbmZpZy50YWJsZXJvPy5sYWJlbCB8fCBpZEVudGlkYWR9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtaW5wdXQtaWNvbi1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHBJbnB1dFRleHQgdHlwZT1cInRleHRcIiAoaW5wdXQpPVwiZHQuZmlsdGVyR2xvYmFsKCRldmVudC50YXJnZXQudmFsdWUsICdjb250YWlucycpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJCdXNjYXIuLi5cIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7Y29sLmxhYmVsfX1cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+QWNjacOzbjwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiIFtuZ1N3aXRjaF09XCJjb2wudHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+e3tyb3dEYXRhW2NvbC5jb2xdfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGU6eXl5eS1tbS1kZCdcIj57e3Jvd0RhdGFbY29sLmNvbF0gfCBkYXRlOiAneXl5eS1NTS1kZCd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkICpuZ1N3aXRjaENhc2U9XCInY3VycmVuY3k6VVNEJ1wiPnt7cm93RGF0YVtjb2wuY29sXSB8IGN1cnJlbmN5OiAnVVNEJ319PC90ZD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidG4ucmVhZFwiIHBCdXR0b24gcFJpcHBsZSBbcFRvb2x0aXBdPVwiYnRuLnJlYWQubGFiZWxcIiBbaWNvbl09XCJidG4ucmVhZC5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWluZm8gbXItMlwiIChjbGljayk9XCJyZWRpcmVjdCgncmVhZCcsIHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ0bi51cGRhdGVcIiBwQnV0dG9uIHBSaXBwbGUgW3BUb29sdGlwXT1cImJ0bi51cGRhdGUubGFiZWxcIiBbaWNvbl09XCJidG4udXBkYXRlLmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24td2FybmluZyBtci0yXCIgKGNsaWNrKT1cInJlZGlyZWN0KCd1cGRhdGUnLCByb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidG4uZGVsZXRlXCIgcEJ1dHRvbiBwUmlwcGxlIFtwVG9vbHRpcF09XCJidG4uZGVsZXRlLmxhYmVsXCIgW2ljb25dPVwiYnRuLmRlbGV0ZS5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWRhbmdlciBtci0yXCIgKGNsaWNrKT1cInJlZGlyZWN0KCdkZWxldGUnLCByb3dEYXRhKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLXRhYmxlPlxyXG48L2Rpdj4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVyby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZi1jcnVkL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXJvL3RhYmxlcm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2YtY3J1ZC9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVyby90YWJsZXJvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBaUIsVUFBVSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxLQUFLLFFBQVEsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFNckMsTUFBTSxPQUFPLGdCQUFnQjtJQVkzQixZQUNVLGNBQThCLEVBQzlCLE1BQWM7UUFEZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVpmLGFBQVEsR0FBVSxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUN2QixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBR3hCLGVBQVUsR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzFDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsU0FBSSxHQUFVLEVBQUUsQ0FBQztRQUNqQixRQUFHLEdBQXlELEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFBO0lBSzNJLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFB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Q0UsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJO3dCQUFFLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsS0FBSyxLQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3hILE1BQU07YUFDVDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7OEdBNUZVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLG9KQ1Y3QixpakdBbURNOzRGRHpDTyxnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDBCQUEwQjtpQkFDeEM7MEhBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEdlbmVyYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2dlbmVyYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbmZpZ1RhYmxlcm8sIENydWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvbW9kZWxzL2NydWQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0ICogYXMganNvbnBhdGggZnJvbSAnanNvbnBhdGgnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZi1jcnVkdGFibGVybycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlcm8uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZXJvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgb3BjaW9uZXM6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgaWRFbnRpZGFkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpZEthdGlvczogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdXNlcjogYW55O1xyXG5cclxuICBwdWJsaWMgY3J1ZENvbmZpZzogQ3J1ZENvbmZpZyA9IG5ldyBDcnVkQ29uZmlnKCk7XHJcbiAgcHVibGljIGVuUHJvY2VzbzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkYXRhOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBidG46IHsgY3JlYXRlOiBhbnksIHJlYWQ6IGFueSwgdXBkYXRlOiBhbnksIGRlbGV0ZTogYW55IH0gPSB7IGNyZWF0ZTogdW5kZWZpbmVkLCByZWFkOiB1bmRlZmluZWQsIHVwZGF0ZTogdW5kZWZpbmVkLCBkZWxldGU6IHVuZGVmaW5lZCB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBnZW5lcmFsU2VydmljZTogR2VuZXJhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRDb25maWdDcnVkKClcclxuICB9XHJcblxyXG4gIGxvYWRDb25maWdDcnVkKCkge1xyXG4gICAgdGhpcy5lblByb2Nlc28gPSB0cnVlO1xyXG4gICAgdGhpcy5nZW5lcmFsU2VydmljZS5nZXRDcnVkQnlFbnRpZGFkKHRoaXMuaWRLYXRpb3MsIHRoaXMuaWRFbnRpZGFkKVxyXG4gICAgICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuY3J1ZENvbmZpZyA9IHJlcztcclxuICAgICAgICB0aGlzLmdldEluZm9UYWJsZXJvKHRoaXMuY3J1ZENvbmZpZy50YWJsZXJvKTtcclxuICAgICAgICB0aGlzLmxvYWRPcHRpb25zKCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaChlcnIgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgdGhpcy5lblByb2Nlc28gPSBmYWxzZTtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldEluZm9UYWJsZXJvKGNvbmZpZ1RhYmxlcm86IENvbmZpZ1RhYmxlcm8pIHtcclxuICAgIGxldCBlbmRwb2ludCA9IHRoaXMuYXBseUtleXMoY29uZmlnVGFibGVyby5rZXlzLCBjb25maWdUYWJsZXJvLmVuZHBvaW50KVxyXG4gICAgdGhpcy5nZW5lcmFsU2VydmljZS5nZW5lcmljUmVxdWVzdChjb25maWdUYWJsZXJvLm1ldGhvZCwgY29uZmlnVGFibGVyby5zZXJ2ZXIsIGVuZHBvaW50KVxyXG4gICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmRhdGEgPSByZXMuZGF0YTtcclxuICAgICAgICB0aGlzLmVuUHJvY2VzbyA9IGZhbHNlO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goZXJyID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRoaXMuZW5Qcm9jZXNvID0gZmFsc2U7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBsb2FkT3B0aW9ucygpIHtcclxuICAgIHRoaXMuYnRuLmNyZWF0ZSA9IHRoaXMub3BjaW9uZXMuZmluZCh4ID0+IHgubGFiZWwgPT0gJ0NyZWFyJyk7XHJcbiAgICB0aGlzLmJ0bi5yZWFkID0gdGhpcy5vcGNpb25lcy5maW5kKHggPT4geC5sYWJlbCA9PSAnVmlzdWFsaXphcicpO1xyXG4gICAgdGhpcy5idG4udXBkYXRlID0gdGhpcy5vcGNpb25lcy5maW5kKHggPT4geC5sYWJlbCA9PSAnRWRpdGFyJyk7XHJcbiAgICB0aGlzLmJ0bi5kZWxldGUgPSB0aGlzLm9wY2lvbmVzLmZpbmQoeCA9PiB4LmxhYmVsID09ICdFbGltaW5hcicpO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3QoYWNjaW9uOiBzdHJpbmcsIGRhdGE/OiBhbnkpIHtcclxuICAgIHN3aXRjaCAoYWNjaW9uKSB7XHJcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLmJ0bi5jcmVhdGU/LnZhbG9yPy5yZWRpcmVjdCB8fCAnJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JlYWQnOlxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5hcGx5S2V5cyh0aGlzLmNydWRDb25maWcudGFibGVyby5rZXlzLCB0aGlzLmJ0bi5yZWFkLnZhbG9yLnJlZGlyZWN0LCBkYXRhKSk7XHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAndXBkYXRlJzpcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuYXBseUtleXModGhpcy5jcnVkQ29uZmlnLnRhYmxlcm8ua2V5cywgdGhpcy5idG4udXBkYXRlLnZhbG9yLnJlZGlyZWN0LCBkYXRhKSk7XHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgY2FzZSAnZGVsZXRlJzpcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMuYXBseUtleXModGhpcy5jcnVkQ29uZmlnLnRhYmxlcm8ua2V5cywgdGhpcy5idG4uZGVsZXRlLnZhbG9yLnJlZGlyZWN0LCBkYXRhKSk7XHJcbiAgICAgICAgYnJlYWtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVha1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXBseUtleXMoa2V5czogeyBrZXk6IHN0cmluZywgc2NvcGU/OiBzdHJpbmcgfVtdLCBlbmRwb2ludDogc3RyaW5nLCBkYXRhPzogYW55KSB7XHJcbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgc3dpdGNoIChrZXkua2V5KSB7XHJcbiAgICAgICAgY2FzZSAnQG5kb2MnOlxyXG4gICAgICAgICAgZW5kcG9pbnQgPSBlbmRwb2ludC5yZXBsYWNlKGtleS5rZXksIHRoaXMudXNlcj8uVXN1YXJpb1Npc3RlbWE/Lk5ET0MgfHwgJycpXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdAdGRvYyc6XHJcbiAgICAgICAgICBlbmRwb2ludCA9IGVuZHBvaW50LnJlcGxhY2Uoa2V5LmtleSwgdGhpcy51c2VyPy5Vc3VhcmlvU2lzdGVtYT8uVERPQyB8fCAnJylcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0BpZEthdGlvcyc6XHJcbiAgICAgICAgICBlbmRwb2ludCA9IGVuZHBvaW50LnJlcGxhY2Uoa2V5LmtleSwgdGhpcy5pZEthdGlvcylcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBpZiAoZW5kcG9pbnQuaW5jbHVkZXMoa2V5LmtleSkgJiYgZGF0YSkgZW5kcG9pbnQgPSBlbmRwb2ludC5yZXBsYWNlKGtleS5rZXksIGpzb25wYXRoLnF1ZXJ5KGRhdGEsIGtleT8uc2NvcGUgfHwgJycpWzBdKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBlbmRwb2ludDtcclxuICB9XHJcbn1cclxuIiwiPHAtYmxvY2tVSSBbYmxvY2tlZF09XCJlblByb2Nlc29cIj5cclxuICAgIDxpIGNsYXNzPVwicGkgcGktY29nIHBpLXNwaW5cIiBzdHlsZT1cImZvbnQtc2l6ZTogNTBweFwiPjwvaT5cclxuPC9wLWJsb2NrVUk+XHJcblxyXG48ZGl2IGNsYXNzPVwiY2FyZFwiICpuZ0lmPVwiIWVuUHJvY2Vzb1wiPlxyXG4gICAgPHAtdG9vbGJhciBzdHlsZUNsYXNzPVwibWItNCBnYXAtMlwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJsZWZ0XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidG4uY3JlYXRlXCIgcEJ1dHRvbiBwUmlwcGxlIFtsYWJlbF09XCJidG4uY3JlYXRlLmxhYmVsXCIgW2ljb25dPVwiYnRuLmNyZWF0ZS5pY29uXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc3VjY2VzcyBtci0yXCIgKGNsaWNrKT1cInJlZGlyZWN0KCdjcmVhdGUnKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3AtdG9vbGJhcj5cclxuICAgIDxwLXRhYmxlICNkdCBbY29sdW1uc109XCJjcnVkQ29uZmlnLnRhYmxlcm8uY29sdW1uc1wiIFt2YWx1ZV09XCJkYXRhXCIgW3Jvd0hvdmVyXT1cInRydWVcIiBbcm93c109XCIxMFwiIFtwYWdpbmF0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2dsb2JhbEZpbHRlckZpZWxkc109XCJjcnVkQ29uZmlnLnRhYmxlcm8/LmZpbHRlcnMgfHwgW11cIiBbdGFibGVTdHlsZV09XCJ7J21pbi13aWR0aCc6ICc3NXJlbSd9XCJcclxuICAgICAgICBjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwiUmVnaXN0cm8ge2ZpcnN0fSBhbCB7bGFzdH0gZGUge3RvdGFsUmVjb3Jkc31cIlxyXG4gICAgICAgIFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibS0wXCI+e3tjcnVkQ29uZmlnLnRhYmxlcm8/LmxhYmVsIHx8IGlkRW50aWRhZH19PC9oNT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1pbnB1dC1pY29uLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXNlYXJjaFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCB0eXBlPVwidGV4dFwiIChpbnB1dCk9XCJkdC5maWx0ZXJHbG9iYWwoJGV2ZW50LnRhcmdldC52YWx1ZSwgJ2NvbnRhaW5zJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkJ1c2Nhci4uLlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tjb2wubGFiZWx9fVxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aD5BY2Npw7NuPC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCIgW25nU3dpdGNoXT1cImNvbC50eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj57e3Jvd0RhdGFbY29sLmNvbF19fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkICpuZ1N3aXRjaENhc2U9XCInZGF0ZTp5eXl5LW1tLWRkJ1wiPnt7cm93RGF0YVtjb2wuY29sXSB8IGRhdGU6ICd5eXl5LU1NLWRkJ319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeTpVU0QnXCI+e3tyb3dEYXRhW2NvbC5jb2xdIHwgY3VycmVuY3k6ICdVU0QnfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ0bi5yZWFkXCIgcEJ1dHRvbiBwUmlwcGxlIFtwVG9vbHRpcF09XCJidG4ucmVhZC5sYWJlbFwiIFtpY29uXT1cImJ0bi5yZWFkLmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24taW5mbyBtci0yXCIgKGNsaWNrKT1cInJlZGlyZWN0KCdyZWFkJywgcm93RGF0YSlcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYnRuLnVwZGF0ZVwiIHBCdXR0b24gcFJpcHBsZSBbcFRvb2x0aXBdPVwiYnRuLnVwZGF0ZS5sYWJlbFwiIFtpY29uXT1cImJ0bi51cGRhdGUuaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi13YXJuaW5nIG1yLTJcIiAoY2xpY2spPVwicmVkaXJlY3QoJ3VwZGF0ZScsIHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ0bi5kZWxldGVcIiBwQnV0dG9uIHBSaXBwbGUgW3BUb29sdGlwXT1cImJ0bi5kZWxldGUubGFiZWxcIiBbaWNvbl09XCJidG4uZGVsZXRlLmljb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tZGFuZ2VyIG1yLTJcIiAoY2xpY2spPVwicmVkaXJlY3QoJ2RlbGV0ZScsIHJvd0RhdGEpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L3AtdGFibGU+XHJcbjwvZGl2PiJdfQ==
@@ -272,7 +272,8 @@ class TableroComponent {
272
272
  endpoint = endpoint.replace(key.key, this.idKatios);
273
273
  break;
274
274
  default:
275
- endpoint = endpoint.replace(key.key, jsonpath.query(data, (key === null || key === void 0 ? void 0 : key.scope) || '')[0]);
275
+ if (endpoint.includes(key.key) && data)
276
+ endpoint = endpoint.replace(key.key, jsonpath.query(data, (key === null || key === void 0 ? void 0 : key.scope) || '')[0]);
276
277
  break;
277
278
  }
278
279
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sf-crud.js","sources":["../../../projects/sf-crud/src/lib/shared/services/models/shema.model.ts","../../../projects/sf-crud/src/lib/shared/services/models/crud-config.model.ts","../../../projects/sf-crud/src/lib/shared/services/general.service.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.html","../../../projects/sf-crud/src/lib/components/control/control.component.ts","../../../projects/sf-crud/src/lib/components/control/control.component.html","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.ts","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.html","../../../projects/sf-crud/src/lib/components/registro/registro.component.ts","../../../projects/sf-crud/src/lib/components/registro/registro.component.html","../../../projects/sf-crud/src/lib/sf-crud.component.ts","../../../projects/sf-crud/src/lib/sf-crud.module.ts","../../../projects/sf-crud/src/lib/sf-crud.service.ts","../../../projects/sf-crud/src/public-api.ts","../../../projects/sf-crud/src/sf-crud.ts"],"sourcesContent":["export class Shema {\r\n type: string = '';\r\n subtype: string = '';\r\n config?: any;\r\n properties?: any;\r\n enum?: any[];\r\n default?:any;\r\n validations?: any\r\n}\r\n\r\n","import { Shema } from \"./shema.model\";\r\n\r\nexport class CrudConfig {\r\n idEntidad: string = '';\r\n tablero: ConfigTablero = new ConfigTablero();\r\n uiEsquema: any;\r\n esquema: Shema = new Shema();\r\n registro: ConfigRegistro = new ConfigRegistro();\r\n}\r\n\r\n\r\nexport class ConfigTablero {\r\n columns: string[] = [];\r\n endpoint: string = '';\r\n method: string = '';\r\n server: string = '';\r\n filters: string[] = [];\r\n keys: { key: string, scope?: string }[] = [];\r\n}\r\n\r\nexport class ConfigRegistro {\r\n operations: Operations[] = [];\r\n btnBack: string = '';\r\n label?: string;\r\n}\r\n\r\nexport class Operations {\r\n type: string = '';\r\n server: string = '';\r\n endpoint: string = ''\r\n method: string = '';\r\n validations: Validations = new Validations();\r\n}\r\n\r\nexport class Validations {\r\n type: string = '';\r\n required: { field: string, message: string }[] = [];\r\n server: string = '';\r\n endpoint: string = '';\r\n operations: any;\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CrudConfig } from './models/crud-config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeneralService {\r\n\r\n public generales: string = '';\r\n public jsonConfig: any;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\r\n this.jsonConfig = JSON.parse(sessionStorage.getItem('ConfigJSON') || '{}');\r\n this.generales = this.jsonConfig?.ServidorGenerales;\r\n }\r\n\r\n async getCrudByEntidad(idKatios: string, idEntidad: string) {\r\n return this.http.get(`${this.generales}crud/${idKatios}/${idEntidad}`)\r\n .toPromise()\r\n .then((res: any) => <CrudConfig>res.data)\r\n .then(data => { return data })\r\n }\r\n\r\n async genericRequest(method: string, servidor: string, endpoint: string, data?: any) {\r\n switch (method) {\r\n case 'GET':\r\n return this.http.get(`${this.jsonConfig[servidor]}${endpoint}`)\r\n .toPromise();\r\n case 'POST':\r\n return this.http.post(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'PUT':\r\n return this.http.put(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'DELETE':\r\n return this.http.delete(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n default:\r\n return\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { ConfigTablero, CrudConfig } from '../../shared/services/models/crud-config.model';\r\nimport * as jsonpath from 'jsonpath';\r\n\r\n@Component({\r\n selector: 'sf-crudtablero',\r\n templateUrl: './tablero.component.html'\r\n})\r\nexport class TableroComponent implements OnInit {\r\n\r\n @Input() opciones: any[] = [];\r\n @Input() idEntidad: string = '';\r\n @Input() idKatios: string = '';\r\n @Input() user: any;\r\n\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public data: any[] = [];\r\n public btn: { create: any, read: any, update: any, delete: any } = { create: undefined, read: undefined, update: undefined, delete: undefined }\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud()\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.crudConfig = res;\r\n this.getInfoTablero(this.crudConfig.tablero);\r\n this.loadOptions();\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n getInfoTablero(configTablero: ConfigTablero) {\r\n let endpoint = this.aplyKeys(configTablero.keys, configTablero.endpoint)\r\n this.generalService.genericRequest(configTablero.method, configTablero.server, endpoint)\r\n .then((res: any) => {\r\n this.data = res.data;\r\n this.enProceso = false;\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n loadOptions() {\r\n this.btn.create = this.opciones.find(x => x.label == 'Crear');\r\n this.btn.read = this.opciones.find(x => x.label == 'Visualizar');\r\n this.btn.update = this.opciones.find(x => x.label == 'Editar');\r\n this.btn.delete = this.opciones.find(x => x.label == 'Eliminar');\r\n }\r\n\r\n redirect(accion: string, data?: any) {\r\n switch (accion) {\r\n case 'create':\r\n this.router.navigateByUrl(this.btn.create?.valor?.redirect || '');\r\n break;\r\n case 'read':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.read.valor.redirect, data));\r\n break\r\n case 'update':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.update.valor.redirect, data));\r\n break\r\n case 'delete':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.delete.valor.redirect, data));\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n aplyKeys(keys: { key: string, scope?: string }[], endpoint: string, data?: any) {\r\n keys.forEach(key => {\r\n switch (key.key) {\r\n case '@ndoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.NDOC || '')\r\n break;\r\n case '@tdoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.TDOC || '')\r\n break;\r\n case '@idKatios':\r\n endpoint = endpoint.replace(key.key, this.idKatios)\r\n break;\r\n default:\r\n endpoint = endpoint.replace(key.key, jsonpath.query(data, key?.scope || '')[0]);\r\n break;\r\n }\r\n });\r\n return endpoint;\r\n }\r\n}\r\n","<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <p-toolbar styleClass=\"mb-4 gap-2\">\r\n <ng-template pTemplate=\"left\">\r\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\r\n class=\"p-button-success mr-2\" (click)=\"redirect('create')\"></button>\r\n </ng-template>\r\n </p-toolbar>\r\n <p-table #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\r\n [globalFilterFields]=\"crudConfig.tablero?.filters || []\" [tableStyle]=\"{'min-width': '75rem'}\"\r\n currentPageReportTemplate=\"Registro {first} al {last} de {totalRecords}\"\r\n [showCurrentPageReport]=\"true\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <h5 class=\"m-0\">{{crudConfig.tablero?.label || idEntidad}}</h5>\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\r\n placeholder=\"Buscar...\" />\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <th>Acción</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <td *ngSwitchCase=\"'text'\">{{rowData[col.col]}}</td>\r\n <td *ngSwitchCase=\"'date:yyyy-mm-dd'\">{{rowData[col.col] | date: 'yyyy-MM-dd'}}</td>\r\n <td *ngSwitchCase=\"'currency:USD'\">{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n <td>\r\n <button *ngIf=\"btn.read\" pButton pRipple [pTooltip]=\"btn.read.label\" [icon]=\"btn.read.icon\"\r\n class=\"p-button-rounded p-button-info mr-2\" (click)=\"redirect('read', rowData)\"></button>\r\n <button *ngIf=\"btn.update\" pButton pRipple [pTooltip]=\"btn.update.label\" [icon]=\"btn.update.icon\"\r\n class=\"p-button-rounded p-button-warning mr-2\" (click)=\"redirect('update', rowData)\"></button>\r\n <button *ngIf=\"btn.delete\" pButton pRipple [pTooltip]=\"btn.delete.label\" [icon]=\"btn.delete.icon\"\r\n class=\"p-button-rounded p-button-danger mr-2\" (click)=\"redirect('delete', rowData)\"></button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Message } from 'primeng/api';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Shema } from '../../shared/services/models/shema.model';\r\n\r\n@Component({\r\n selector: 'sf-control',\r\n templateUrl: './control.component.html'\r\n})\r\nexport class ControlComponent implements OnInit {\r\n\r\n @Input() control: Shema = new Shema();\r\n @Input() label: string = '';\r\n @Input() value: any;\r\n @Input() appendTo: any;\r\n @Output() setValue: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() sendNotification: EventEmitter<Message> = new EventEmitter<Message>();\r\n\r\n public isLoading: boolean = false;\r\n public dataFromService: any[] = [];\r\n public uploadedFiles: any[] = [];\r\n public displayAdd: boolean = false;\r\n\r\n constructor(\r\n private generalService: GeneralService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.control?.config && this.control.subtype == 'dropdown') this.loadDataFromService();\r\n }\r\n\r\n sendValue() {\r\n this.setValue.emit(this.value);\r\n }\r\n\r\n sendValueFromObject(event: any) {\r\n switch (typeof (this.control.config.optionValue)) {\r\n case 'object':\r\n this.control.config.optionValue.forEach((op: any) => op['value'] = event[op.key])\r\n this.setValue.emit(this.control.config.optionValue);\r\n break;\r\n default:\r\n this.setValue.emit(event[this.control.config.optionValue]);\r\n break;\r\n }\r\n }\r\n\r\n validateValue(type: string) {\r\n switch (type) {\r\n case 'email':\r\n let regex: RegExp = new RegExp(/([\\w\\.\\-_]+)?\\w+@[\\w-_]+(\\.\\w+){1,}/igm);\r\n if (regex.test(this.value)) this.sendValue();\r\n else {\r\n this.value = null;\r\n this.sendValue()\r\n this.sendNotification.emit({ severity: 'warn', detail: 'El correo no es válido' })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n loadDataFromService() {\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint)\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n loadDataFromControlBusquedaService(event: any) {\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint.replace('@query', event?.query || ''))\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n onUpload(event: any) {\r\n let file = event.files[0];\r\n let formData = new FormData();\r\n let path = 'Imagenes/CRUD/temp';\r\n formData.append('uploadFile', file);\r\n formData.append('Ruta', `/${path}`);\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint, formData)\r\n .then(() => {\r\n this.sendNotification.emit({ severity: 'info', detail: `Archivo cargado correctamente!` })\r\n this.uploadedFiles.push(file);\r\n this.isLoading = false;\r\n this.value = `${this.generalService.jsonConfig.Server}${path}/${file.name}`\r\n this.sendValue()\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n this.isLoading = false\r\n this.sendNotification.emit({ severity: 'error', detail: `Error al cargar el archivo!` })\r\n })\r\n }\r\n}\r\n","<!-- <p-blockUI [blocked]=\"isLoading\" [target]=\"cc\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI> -->\r\n\r\n<ng-container [ngSwitch]=\"control.type\">\r\n <label>{{label}}</label>\r\n <ng-container *ngSwitchCase=\"'string'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'input'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <input pInputText type=\"password\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" placeholder=\"email@example.com\"\r\n (focusout)=\"validateValue('email')\" [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <p-inputMask mask=\"(999) 999-9999\" [(ngModel)]=\"value\" placeholder=\"(999) 999-9999\"\r\n (focusout)=\"sendValue()\" [disabled]=\"control?.disabled || false\"></p-inputMask>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'enum'\">\r\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\" appendTo=\"body\"\r\n placeholder=\"Seleccione una opción\" [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <p-dropdown [lazy]=\"isLoading\" [options]=\"dataFromService\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n [optionLabel]=\"control.config.optionLabel\" [optionValue]=\"control.config.optionValue\"\r\n appendTo=\"body\" placeholder=\"Seleccione una opción\"\r\n [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <p-autoComplete [showEmptyMessage]=\"true\" [suggestions]=\"dataFromService\" appendTo=\"body\"\r\n (completeMethod)=\"loadDataFromControlBusquedaService($event)\" [field]=\"control.field\"\r\n [minLength]=\"1\" (onSelect)=\"sendValueFromObject($event)\"\r\n [disabled]=\"control?.disabled || false\"></p-autoComplete>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'calendar'\">\r\n <p-calendar [(ngModel)]=\"value\" (onSelect)=\"sendValue()\" [monthNavigator]=\"true\" [yearNavigator]=\"true\"\r\n yearRange=\"1900:2035\" [dateFormat]=\"control?.format || 'yy-mm-dd'\" appendTo=\"body\"\r\n [disabled]=\"control?.disabled || false\"></p-calendar>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'numeric'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"currency\" [minFractionDigits]=\"control?.minFractionDigits || 0\"\r\n [min]=\"control?.min || null\" [max]=\"control?.max || null\" (focusout)=\"sendValue()\"\r\n [currency]=\"control?.currency || 'USD'\" [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"decimal\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 0\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'percentage'\">\r\n <p-inputNumber [(ngModel)]=\"value\" suffix=\" %\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 2\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'file'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'filetmp'\">\r\n <p-fileUpload [accept]=\"control.config.accept\" [customUpload]=\"true\" (uploadHandler)=\"onUpload($event)\"\r\n [maxFileSize]=\"control.config?.maxFileSize || null\" fileLimit=\"1\">\r\n <ng-template pTemplate=\"content\">\r\n <ul *ngIf=\"uploadedFiles.length\">\r\n <li *ngFor=\"let file of uploadedFiles\">{{file.name}} - {{file.size}} bytes</li>\r\n </ul>\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>","import { Component, OnInit } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Shema } from '../../shared/services/models/shema.model';\nimport * as jsonpath from 'jsonpath';\nimport { MessageService } from 'primeng/api';\nimport { Message } from '@angular/compiler/src/i18n/i18n_ast';\n\n@Component({\n selector: 'lib-registro-child',\n templateUrl: './registro-child.component.html',\n providers: [MessageService]\n})\nexport class RegistroChildComponent implements OnInit {\n\n public uiEsquema: any;\n public esquema: Shema = new Shema();\n public data: any;\n\n constructor(\n public ref: DynamicDialogRef,\n public config: DynamicDialogConfig,\n private messageService: MessageService\n ) { }\n\n ngOnInit(): void {\n this.uiEsquema = this.config.data.uiEsquema[0];\n this.esquema = this.config.data.esquema;\n this.data = this.config.data?.data;\n if (!this.data) {\n this.data = this.createObject(this.esquema);\n jsonpath.value(this.data, '$..id', this.config.data.id);\n }\n }\n\n getControl(scope: string) {\n return jsonpath.query(this.esquema, scope)[0];\n }\n\n getValue(scope: string) {\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\n }\n\n setValue(value: any, scope: string) {\n switch (typeof (value)) {\n case 'object':\n if (Array.isArray(value)) value.forEach((val: any) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value))\n else jsonpath.value(this.data, scope.replace('.properties', ''), value);\n break;\n default:\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\n break;\n }\n this.applyValuesOnEvent('onChange', this.esquema);\n }\n\n createObject(esquema: Shema) {\n let object = {};\n switch (esquema.type) {\n case 'numeric':\n return esquema?.default || 0;\n case 'string':\n case 'date':\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\n case 'boolean':\n return esquema?.default || false;\n case 'file':\n return null;\n case 'array':\n case 'object':\n for (const key in esquema?.properties) {\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\n }\n break;\n default:\n break;\n }\n return object;\n }\n\n setDefaultValue(value: string) {\n let data = null;\n let uactivo;\n switch (value) {\n case '@uactivo':\n uactivo = JSON.parse(localStorage.getItem('oSessionTFM') || '{}')\n if (!uactivo) console.log('Validar configuracion de sesion')\n else data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.UsuarioSistema.NDOC}`\n break;\n case '@tdocactivo':\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\n if (!uactivo) console.log('Validar configuracion de sesion')\n else data = uactivo.UsuarioSistema.TDOC\n break;\n case '@ndocactivo':\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\n if (!uactivo) console.log('Validar configuracion de sesion')\n else data = uactivo.UsuarioSistema.NDOC\n break;\n case '@hoy':\n data = new Date();\n break;\n default:\n data = value;\n break;\n }\n return data\n }\n\n submit() {\n this.applyValuesOnEvent('onSubmit', this.esquema);\n if (!this.validateData()) return;\n this.ref.close(this.data);\n }\n\n cancel() {\n this.ref.close();\n }\n\n validateData() {\n if (this.esquema.validations.type == 'local') return this.validateDataLocal();\n return true;\n }\n\n validateDataLocal() {\n let err: string[] = []\n this.esquema.validations.required.forEach((x: any) => {\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\n })\n if (err.length != 0) this.messageService.add({ severity: 'warn', detail: err.join('. ') })\n return err.length == 0;\n }\n\n applyValuesOnEvent(event: string, esquema: Shema) {\n for (const key in esquema.properties) {\n if (esquema.properties[key][event]) {\n esquema.properties[key][event].forEach((value: { op: string, scope?: string, key?: any }) => {\n jsonpath.value(this.data, `$..${key}`, this.getValueEvent(this.data, value))\n })\n }\n }\n }\n\n getValueEvent(data: any, params: { op: string, scope?: string, key?: any, separator?: string }) {\n let value;\n switch (params.op) {\n case 'sum':\n value = jsonpath.query(data, params?.scope || '').reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\n break;\n case 'concat':\n let array: string[] = []\n params.key.reduce((acc: any[], cur: string) => {\n console.log(jsonpath.query(this.data, cur)[0])\n array.push(jsonpath.query(this.data, cur)[0])\n }, [])\n if (params?.separator) value = array.join(params?.separator || ' ');\n break;\n default:\n break;\n }\n return value;\n }\n\n sendNotification(message: Message) {\n this.messageService.add(message)\n }\n}\n","<p-toast></p-toast>\n<div *ngFor=\"let element of uiEsquema.elements\" [class]=\"element?.class\" #a>\n <ng-container [ngSwitch]=\"element.type\">\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\n {{element?.label}}\n </div>\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\n <ng-container [ngSwitch]=\"el.type\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\n (sendNotification)=\"sendNotification($event)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\n <ng-container [ngSwitch]=\"el.type\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\n (sendNotification)=\"sendNotification($event)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Control'\">\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\n </ng-container>\n </ng-container>\n</div>\n<div class=\"card-footer mt-2\">\n <button pButton pRipple type=\"button\" label=\"Guardar\" (click)=\"submit()\" class=\"mr-2\"></button>\n <button pButton pRipple type=\"button\" label=\"Cancelar\" (click)=\"cancel()\" class=\"p-button-danger\"></button>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigRegistro, CrudConfig, Operations } from '../../shared/services/models/crud-config.model';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport { RegistroChildComponent } from '../registro-child/registro-child.component';\r\nimport { Router } from '@angular/router';\r\nimport { Shema } from '../../shared/services/models/shema.model';\r\nimport { ComponentRef } from '@angular/core';\r\nimport * as jsonpath from 'jsonpath';\r\n\r\n@Component({\r\n selector: 'sf-registro',\r\n templateUrl: './registro.component.html',\r\n providers: [MessageService, DialogService, DynamicDialogConfig, DynamicDialogRef],\r\n entryComponents: [RegistroComponent]\r\n})\r\nexport class RegistroComponent implements OnInit {\r\n\r\n @Input() idKatios: string = '';\r\n @Input() idEntidad: string = '';\r\n @Input() trx: string = '';\r\n @Input() id: string = '';\r\n @Input() dataTemp: any;\r\n @Input() user: any;\r\n @Output() sendData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public btnSubmit: any;\r\n public data: any;\r\n public configOperation: Operations = new Operations();\r\n public isLocal: boolean = false;\r\n public dialogRef?: DynamicDialogRef\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router,\r\n private messageSerice: MessageService,\r\n private dialogService: DialogService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud();\r\n this.setLabelSumbit();\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.crudConfig = res;\r\n console.log(this.crudConfig)\r\n if (this.trx != 'c') this.getInfoRegistro(this.crudConfig.registro);\r\n else {\r\n this.data = this.createObject(this.crudConfig.esquema);\r\n this.enProceso = false;\r\n }\r\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n setLabelSumbit() {\r\n if (this.trx == 'c') this.btnSubmit = { label: 'Guardar', icon: 'pi pi-save' }\r\n else if (this.trx == 'r') this.btnSubmit = undefined;\r\n else if (this.trx == 'u') this.btnSubmit = { label: 'Actualizar', icon: 'pi pi-sync' }\r\n else if (this.trx == 'd') this.btnSubmit = { label: 'Eliminar', icon: 'pi pi-trash' }\r\n }\r\n\r\n getInfoRegistro(configRegistro: ConfigRegistro) {\r\n let op = configRegistro.operations.find(x => x.type == 'read');\r\n let endpoint = op?.endpoint || '';\r\n endpoint = endpoint.replace('@idKatios', this.idKatios);\r\n endpoint = endpoint.replace('@id', this.id);\r\n this.generalService.genericRequest(op?.method || '', op?.server || '', endpoint)\r\n .then((res: any) => {\r\n this.data = res.data;\r\n this.enProceso = false;\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n back() {\r\n this.router.navigateByUrl(this.crudConfig.registro.btnBack);\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.crudConfig.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value))\r\n else jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n default:\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema);\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n let object = {};\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'array':\r\n return [];\r\n case 'file':\r\n return null;\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n submit() {\r\n console.log(this.data)\r\n if (!this.validateData()) return;\r\n this.applyValuesOnEvent('onSubmit', this.crudConfig.esquema)\r\n this.enProceso = true;\r\n let endpoint = this.configOperation.endpoint;\r\n endpoint = endpoint.replace('@idKatios', this.idKatios)\r\n endpoint = endpoint.replace('@id', this.id)\r\n this.generalService.genericRequest(this.configOperation.method, this.configOperation.server, endpoint, this.data)\r\n .then(() => {\r\n this.messageSerice.add({ severity: 'success', detail: `Proceso exitoso!` })\r\n setTimeout(() => {\r\n this.enProceso = false;\r\n this.back()\r\n }, 2000);\r\n })\r\n .catch(err => {\r\n this.messageSerice.add({ severity: 'warn', detail: `${err?.error?.message || 'Error no controlado, por favor comunicarse con del admin.'}` })\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n validateData() {\r\n if (this.configOperation.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.configOperation.validations?.required?.forEach(x => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n this.configOperation.validations?.operations?.forEach((op: any) => {\r\n switch (op.action) {\r\n case 'sumArray':\r\n let var1 = jsonpath.query(this.data, op.scope[0]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n let var2 = jsonpath.query(this.data, op.scope[1]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n if (var1 != var2) err.push(op.message)\r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n if (err.length != 0) this.messageSerice.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n setDefaultValue(value: string) {\r\n let data = null;\r\n switch (value) {\r\n case '@uactivo':\r\n data = `${this.user.UsuarioSistema.TDOC}-${this.user.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n data = this.user.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n data = this.user.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageSerice.add(message)\r\n }\r\n\r\n addObjectArray(element: any) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: `Detalle`,\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n id: this.getValue(element.scope).length + 1\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')].push(data);\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema)\r\n })\r\n }\r\n\r\n editRow(element: any, data: any) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: `Detalle`,\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n data: { ...data }\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')][data.id - 1] = data;\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema)\r\n })\r\n }\r\n\r\n deleteRow(element: any, index: number) {\r\n this.data[element.scope.replace('$..properties.', '')].splice(index - 1, 1);\r\n index = 1;\r\n this.data[element.scope.replace('$..properties.', '')].forEach((el: any) => {\r\n el.id = index;\r\n index++;\r\n })\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema)\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema) {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: { scope: string, op: string, key?: string }) => {\r\n jsonpath.value(this.data, `$..${key}`, this.getValueEvent(this.data, value))\r\n })\r\n }\r\n }\r\n }\r\n\r\n getValueEvent(data: any, params: { scope: string, op: string, key?: string }) {\r\n let value;\r\n switch (params.op) {\r\n case 'sum':\r\n value = jsonpath.query(data, params.scope).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\r\n break;\r\n default:\r\n break;\r\n }\r\n return value;\r\n }\r\n}\r\n","<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<p-toast></p-toast>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\r\n <span>{{crudConfig.registro?.label || idEntidad}} {{id != '' ? '-' + id : ''}}</span>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\r\n </h5>\r\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements\" [class]=\"element?.class\">\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\"></sf-control>\r\n <ng-container *ngSwitchCase=\"'Table'\">\r\n <p-table [value]=\"getValue(el.scope)\" [columns]=\"getControl(el.scope).config.columns\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <button pButton pRipple icon=\"pi pi-plus\" (click)=\"addObjectArray(el)\"\r\n class=\"p-button-success\"></button>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <th></th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <td>{{rowData[col.col]}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'currency:USD'\">\r\n <td>{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <td>\r\n <!-- <button pButton pRipple type=\"button\" (click)=\"editRow(el, rowData)\" icon=\"pi pi-pencil\" class=\"p-button-rounded p-button-info mr-1\"></button> -->\r\n <button pButton pRipple type=\"button\" (click)=\"deleteRow(el, rowIndex)\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-danger\"></button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Control'\">\r\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"card-footer mt-2\" *ngIf=\"btnSubmit\">\r\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\"\r\n (click)=\"submit()\"></button>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-sf-crud',\r\n template: `\r\n <p>\r\n sf-crud works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class SfCrudComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\n//=========================================================\r\n// PrimeNG Modules\r\n//=========================================================\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CardModule } from 'primeng/card';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { ChipsModule } from 'primeng/chips';\r\nimport { CodeHighlighterModule } from 'primeng/codehighlighter';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { InplaceModule } from 'primeng/inplace';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { KnobModule } from 'primeng/knob';\r\nimport { LightboxModule } from 'primeng/lightbox';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { MegaMenuModule } from 'primeng/megamenu';\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { MessageModule } from 'primeng/message';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OrganizationChartModule } from 'primeng/organizationchart';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { RatingModule } from 'primeng/rating';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { ScrollTopModule } from 'primeng/scrolltop';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { SlideMenuModule } from 'primeng/slidemenu';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { SplitterModule } from 'primeng/splitter';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TagModule } from 'primeng/tag';\r\nimport { TerminalModule } from 'primeng/terminal';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { ToolbarModule } from 'primeng/toolbar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { TreeModule } from 'primeng/tree';\r\n\r\n//=========================================================\r\n// Componets\r\n//=========================================================\r\nimport { SfCrudComponent } from './sf-crud.component';\r\nimport { TableroComponent } from './components/tablero/tablero.component';\r\nimport { RegistroComponent } from './components/registro/registro.component';\r\nimport { ControlComponent } from './components/control/control.component';\r\nimport { RegistroChildComponent } from './components/registro-child/registro-child.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent,\r\n RegistroChildComponent\r\n ],\r\n imports: [\r\n AccordionModule,\r\n AutoCompleteModule,\r\n AvatarGroupModule,\r\n AvatarModule,\r\n BadgeModule,\r\n BlockUIModule,\r\n BreadcrumbModule,\r\n ButtonModule,\r\n CalendarModule,\r\n CardModule,\r\n CarouselModule,\r\n CascadeSelectModule,\r\n CheckboxModule,\r\n ChipModule,\r\n ChipsModule,\r\n CodeHighlighterModule,\r\n ColorPickerModule,\r\n ConfirmDialogModule,\r\n ConfirmPopupModule,\r\n ContextMenuModule,\r\n DialogModule,\r\n DividerModule,\r\n DropdownModule,\r\n DynamicDialogModule,\r\n FieldsetModule,\r\n FileUploadModule,\r\n FormsModule,\r\n GalleriaModule,\r\n HttpClientModule,\r\n InplaceModule,\r\n InputMaskModule,\r\n InputNumberModule,\r\n InputSwitchModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n KnobModule,\r\n LightboxModule,\r\n ListboxModule,\r\n MegaMenuModule,\r\n MenubarModule,\r\n MenuModule,\r\n MessageModule,\r\n MessagesModule,\r\n MultiSelectModule,\r\n OrganizationChartModule,\r\n OverlayPanelModule,\r\n PanelMenuModule,\r\n PanelModule,\r\n PasswordModule,\r\n ProgressBarModule,\r\n RadioButtonModule,\r\n RatingModule,\r\n RippleModule,\r\n ScrollPanelModule,\r\n ScrollTopModule,\r\n SelectButtonModule,\r\n SidebarModule,\r\n SkeletonModule,\r\n SlideMenuModule,\r\n SliderModule,\r\n SplitterModule,\r\n StepsModule,\r\n TableModule,\r\n TabMenuModule,\r\n TabViewModule,\r\n TagModule,\r\n TerminalModule,\r\n TieredMenuModule,\r\n TimelineModule,\r\n ToastModule,\r\n ToggleButtonModule,\r\n ToolbarModule,\r\n TooltipModule,\r\n TreeModule,\r\n ],\r\n exports: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent\r\n ],\r\n entryComponents: [\r\n RegistroChildComponent\r\n ]\r\n})\r\nexport class SfCrudModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SfCrudService {\r\n\r\n constructor() { }\r\n}\r\n","/*\r\n * Public API Surface of sf-crud\r\n */\r\n\r\nexport * from './lib/components/tablero/tablero.component';\r\nexport * from './lib/components/registro/registro.component';\r\nexport * from './lib/components/control/control.component';\r\nexport * from './lib/sf-crud.component';\r\nexport * from './lib/sf-crud.module';\r\nexport * from './lib/sf-crud.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GeneralService","i7","i2","i3","i4","i5","i6","i8","i9","i11","i1","i4.ControlComponent","i7.ControlComponent","i10"],"mappings":"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"}
1
+ {"version":3,"file":"sf-crud.js","sources":["../../../projects/sf-crud/src/lib/shared/services/models/shema.model.ts","../../../projects/sf-crud/src/lib/shared/services/models/crud-config.model.ts","../../../projects/sf-crud/src/lib/shared/services/general.service.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.html","../../../projects/sf-crud/src/lib/components/control/control.component.ts","../../../projects/sf-crud/src/lib/components/control/control.component.html","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.ts","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.html","../../../projects/sf-crud/src/lib/components/registro/registro.component.ts","../../../projects/sf-crud/src/lib/components/registro/registro.component.html","../../../projects/sf-crud/src/lib/sf-crud.component.ts","../../../projects/sf-crud/src/lib/sf-crud.module.ts","../../../projects/sf-crud/src/lib/sf-crud.service.ts","../../../projects/sf-crud/src/public-api.ts","../../../projects/sf-crud/src/sf-crud.ts"],"sourcesContent":["export class Shema {\r\n type: string = '';\r\n subtype: string = '';\r\n config?: any;\r\n properties?: any;\r\n enum?: any[];\r\n default?:any;\r\n validations?: any\r\n}\r\n\r\n","import { Shema } from \"./shema.model\";\r\n\r\nexport class CrudConfig {\r\n idEntidad: string = '';\r\n tablero: ConfigTablero = new ConfigTablero();\r\n uiEsquema: any;\r\n esquema: Shema = new Shema();\r\n registro: ConfigRegistro = new ConfigRegistro();\r\n}\r\n\r\n\r\nexport class ConfigTablero {\r\n columns: string[] = [];\r\n endpoint: string = '';\r\n method: string = '';\r\n server: string = '';\r\n filters: string[] = [];\r\n keys: { key: string, scope?: string }[] = [];\r\n}\r\n\r\nexport class ConfigRegistro {\r\n operations: Operations[] = [];\r\n btnBack: string = '';\r\n label?: string;\r\n}\r\n\r\nexport class Operations {\r\n type: string = '';\r\n server: string = '';\r\n endpoint: string = ''\r\n method: string = '';\r\n validations: Validations = new Validations();\r\n}\r\n\r\nexport class Validations {\r\n type: string = '';\r\n required: { field: string, message: string }[] = [];\r\n server: string = '';\r\n endpoint: string = '';\r\n operations: any;\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CrudConfig } from './models/crud-config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeneralService {\r\n\r\n public generales: string = '';\r\n public jsonConfig: any;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\r\n this.jsonConfig = JSON.parse(sessionStorage.getItem('ConfigJSON') || '{}');\r\n this.generales = this.jsonConfig?.ServidorGenerales;\r\n }\r\n\r\n async getCrudByEntidad(idKatios: string, idEntidad: string) {\r\n return this.http.get(`${this.generales}crud/${idKatios}/${idEntidad}`)\r\n .toPromise()\r\n .then((res: any) => <CrudConfig>res.data)\r\n .then(data => { return data })\r\n }\r\n\r\n async genericRequest(method: string, servidor: string, endpoint: string, data?: any) {\r\n switch (method) {\r\n case 'GET':\r\n return this.http.get(`${this.jsonConfig[servidor]}${endpoint}`)\r\n .toPromise();\r\n case 'POST':\r\n return this.http.post(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'PUT':\r\n return this.http.put(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'DELETE':\r\n return this.http.delete(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n default:\r\n return\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { ConfigTablero, CrudConfig } from '../../shared/services/models/crud-config.model';\r\nimport * as jsonpath from 'jsonpath';\r\n\r\n@Component({\r\n selector: 'sf-crudtablero',\r\n templateUrl: './tablero.component.html'\r\n})\r\nexport class TableroComponent implements OnInit {\r\n\r\n @Input() opciones: any[] = [];\r\n @Input() idEntidad: string = '';\r\n @Input() idKatios: string = '';\r\n @Input() user: any;\r\n\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public data: any[] = [];\r\n public btn: { create: any, read: any, update: any, delete: any } = { create: undefined, read: undefined, update: undefined, delete: undefined }\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud()\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.crudConfig = res;\r\n this.getInfoTablero(this.crudConfig.tablero);\r\n this.loadOptions();\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n getInfoTablero(configTablero: ConfigTablero) {\r\n let endpoint = this.aplyKeys(configTablero.keys, configTablero.endpoint)\r\n this.generalService.genericRequest(configTablero.method, configTablero.server, endpoint)\r\n .then((res: any) => {\r\n this.data = res.data;\r\n this.enProceso = false;\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n loadOptions() {\r\n this.btn.create = this.opciones.find(x => x.label == 'Crear');\r\n this.btn.read = this.opciones.find(x => x.label == 'Visualizar');\r\n this.btn.update = this.opciones.find(x => x.label == 'Editar');\r\n this.btn.delete = this.opciones.find(x => x.label == 'Eliminar');\r\n }\r\n\r\n redirect(accion: string, data?: any) {\r\n switch (accion) {\r\n case 'create':\r\n this.router.navigateByUrl(this.btn.create?.valor?.redirect || '');\r\n break;\r\n case 'read':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.read.valor.redirect, data));\r\n break\r\n case 'update':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.update.valor.redirect, data));\r\n break\r\n case 'delete':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.delete.valor.redirect, data));\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n aplyKeys(keys: { key: string, scope?: string }[], endpoint: string, data?: any) {\r\n keys.forEach(key => {\r\n switch (key.key) {\r\n case '@ndoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.NDOC || '')\r\n break;\r\n case '@tdoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.TDOC || '')\r\n break;\r\n case '@idKatios':\r\n endpoint = endpoint.replace(key.key, this.idKatios)\r\n break;\r\n default:\r\n if (endpoint.includes(key.key) && data) endpoint = endpoint.replace(key.key, jsonpath.query(data, key?.scope || '')[0]);\r\n break;\r\n }\r\n });\r\n return endpoint;\r\n }\r\n}\r\n","<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <p-toolbar styleClass=\"mb-4 gap-2\">\r\n <ng-template pTemplate=\"left\">\r\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\r\n class=\"p-button-success mr-2\" (click)=\"redirect('create')\"></button>\r\n </ng-template>\r\n </p-toolbar>\r\n <p-table #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\r\n [globalFilterFields]=\"crudConfig.tablero?.filters || []\" [tableStyle]=\"{'min-width': '75rem'}\"\r\n currentPageReportTemplate=\"Registro {first} al {last} de {totalRecords}\"\r\n [showCurrentPageReport]=\"true\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <h5 class=\"m-0\">{{crudConfig.tablero?.label || idEntidad}}</h5>\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\r\n placeholder=\"Buscar...\" />\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <th>Acción</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <td *ngSwitchCase=\"'text'\">{{rowData[col.col]}}</td>\r\n <td *ngSwitchCase=\"'date:yyyy-mm-dd'\">{{rowData[col.col] | date: 'yyyy-MM-dd'}}</td>\r\n <td *ngSwitchCase=\"'currency:USD'\">{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n <td>\r\n <button *ngIf=\"btn.read\" pButton pRipple [pTooltip]=\"btn.read.label\" [icon]=\"btn.read.icon\"\r\n class=\"p-button-rounded p-button-info mr-2\" (click)=\"redirect('read', rowData)\"></button>\r\n <button *ngIf=\"btn.update\" pButton pRipple [pTooltip]=\"btn.update.label\" [icon]=\"btn.update.icon\"\r\n class=\"p-button-rounded p-button-warning mr-2\" (click)=\"redirect('update', rowData)\"></button>\r\n <button *ngIf=\"btn.delete\" pButton pRipple [pTooltip]=\"btn.delete.label\" [icon]=\"btn.delete.icon\"\r\n class=\"p-button-rounded p-button-danger mr-2\" (click)=\"redirect('delete', rowData)\"></button>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Message } from 'primeng/api';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Shema } from '../../shared/services/models/shema.model';\r\n\r\n@Component({\r\n selector: 'sf-control',\r\n templateUrl: './control.component.html'\r\n})\r\nexport class ControlComponent implements OnInit {\r\n\r\n @Input() control: Shema = new Shema();\r\n @Input() label: string = '';\r\n @Input() value: any;\r\n @Input() appendTo: any;\r\n @Output() setValue: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() sendNotification: EventEmitter<Message> = new EventEmitter<Message>();\r\n\r\n public isLoading: boolean = false;\r\n public dataFromService: any[] = [];\r\n public uploadedFiles: any[] = [];\r\n public displayAdd: boolean = false;\r\n\r\n constructor(\r\n private generalService: GeneralService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.control?.config && this.control.subtype == 'dropdown') this.loadDataFromService();\r\n }\r\n\r\n sendValue() {\r\n this.setValue.emit(this.value);\r\n }\r\n\r\n sendValueFromObject(event: any) {\r\n switch (typeof (this.control.config.optionValue)) {\r\n case 'object':\r\n this.control.config.optionValue.forEach((op: any) => op['value'] = event[op.key])\r\n this.setValue.emit(this.control.config.optionValue);\r\n break;\r\n default:\r\n this.setValue.emit(event[this.control.config.optionValue]);\r\n break;\r\n }\r\n }\r\n\r\n validateValue(type: string) {\r\n switch (type) {\r\n case 'email':\r\n let regex: RegExp = new RegExp(/([\\w\\.\\-_]+)?\\w+@[\\w-_]+(\\.\\w+){1,}/igm);\r\n if (regex.test(this.value)) this.sendValue();\r\n else {\r\n this.value = null;\r\n this.sendValue()\r\n this.sendNotification.emit({ severity: 'warn', detail: 'El correo no es válido' })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n loadDataFromService() {\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint)\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n loadDataFromControlBusquedaService(event: any) {\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint.replace('@query', event?.query || ''))\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n onUpload(event: any) {\r\n let file = event.files[0];\r\n let formData = new FormData();\r\n let path = 'Imagenes/CRUD/temp';\r\n formData.append('uploadFile', file);\r\n formData.append('Ruta', `/${path}`);\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint, formData)\r\n .then(() => {\r\n this.sendNotification.emit({ severity: 'info', detail: `Archivo cargado correctamente!` })\r\n this.uploadedFiles.push(file);\r\n this.isLoading = false;\r\n this.value = `${this.generalService.jsonConfig.Server}${path}/${file.name}`\r\n this.sendValue()\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n this.isLoading = false\r\n this.sendNotification.emit({ severity: 'error', detail: `Error al cargar el archivo!` })\r\n })\r\n }\r\n}\r\n","<!-- <p-blockUI [blocked]=\"isLoading\" [target]=\"cc\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI> -->\r\n\r\n<ng-container [ngSwitch]=\"control.type\">\r\n <label>{{label}}</label>\r\n <ng-container *ngSwitchCase=\"'string'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'input'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <input pInputText type=\"password\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" placeholder=\"email@example.com\"\r\n (focusout)=\"validateValue('email')\" [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <p-inputMask mask=\"(999) 999-9999\" [(ngModel)]=\"value\" placeholder=\"(999) 999-9999\"\r\n (focusout)=\"sendValue()\" [disabled]=\"control?.disabled || false\"></p-inputMask>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'enum'\">\r\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\" appendTo=\"body\"\r\n placeholder=\"Seleccione una opción\" [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <p-dropdown [lazy]=\"isLoading\" [options]=\"dataFromService\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n [optionLabel]=\"control.config.optionLabel\" [optionValue]=\"control.config.optionValue\"\r\n appendTo=\"body\" placeholder=\"Seleccione una opción\"\r\n [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <p-autoComplete [showEmptyMessage]=\"true\" [suggestions]=\"dataFromService\" appendTo=\"body\"\r\n (completeMethod)=\"loadDataFromControlBusquedaService($event)\" [field]=\"control.field\"\r\n [minLength]=\"1\" (onSelect)=\"sendValueFromObject($event)\"\r\n [disabled]=\"control?.disabled || false\"></p-autoComplete>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'calendar'\">\r\n <p-calendar [(ngModel)]=\"value\" (onSelect)=\"sendValue()\" [monthNavigator]=\"true\" [yearNavigator]=\"true\"\r\n yearRange=\"1900:2035\" [dateFormat]=\"control?.format || 'yy-mm-dd'\" appendTo=\"body\"\r\n [disabled]=\"control?.disabled || false\"></p-calendar>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'numeric'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"currency\" [minFractionDigits]=\"control?.minFractionDigits || 0\"\r\n [min]=\"control?.min || null\" [max]=\"control?.max || null\" (focusout)=\"sendValue()\"\r\n [currency]=\"control?.currency || 'USD'\" [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"decimal\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 0\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'percentage'\">\r\n <p-inputNumber [(ngModel)]=\"value\" suffix=\" %\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 2\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'file'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'filetmp'\">\r\n <p-fileUpload [accept]=\"control.config.accept\" [customUpload]=\"true\" (uploadHandler)=\"onUpload($event)\"\r\n [maxFileSize]=\"control.config?.maxFileSize || null\" fileLimit=\"1\">\r\n <ng-template pTemplate=\"content\">\r\n <ul *ngIf=\"uploadedFiles.length\">\r\n <li *ngFor=\"let file of uploadedFiles\">{{file.name}} - {{file.size}} bytes</li>\r\n </ul>\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>","import { Component, OnInit } from '@angular/core';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Shema } from '../../shared/services/models/shema.model';\nimport * as jsonpath from 'jsonpath';\nimport { MessageService } from 'primeng/api';\nimport { Message } from '@angular/compiler/src/i18n/i18n_ast';\n\n@Component({\n selector: 'lib-registro-child',\n templateUrl: './registro-child.component.html',\n providers: [MessageService]\n})\nexport class RegistroChildComponent implements OnInit {\n\n public uiEsquema: any;\n public esquema: Shema = new Shema();\n public data: any;\n\n constructor(\n public ref: DynamicDialogRef,\n public config: DynamicDialogConfig,\n private messageService: MessageService\n ) { }\n\n ngOnInit(): void {\n this.uiEsquema = this.config.data.uiEsquema[0];\n this.esquema = this.config.data.esquema;\n this.data = this.config.data?.data;\n if (!this.data) {\n this.data = this.createObject(this.esquema);\n jsonpath.value(this.data, '$..id', this.config.data.id);\n }\n }\n\n getControl(scope: string) {\n return jsonpath.query(this.esquema, scope)[0];\n }\n\n getValue(scope: string) {\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\n }\n\n setValue(value: any, scope: string) {\n switch (typeof (value)) {\n case 'object':\n if (Array.isArray(value)) value.forEach((val: any) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value))\n else jsonpath.value(this.data, scope.replace('.properties', ''), value);\n break;\n default:\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\n break;\n }\n this.applyValuesOnEvent('onChange', this.esquema);\n }\n\n createObject(esquema: Shema) {\n let object = {};\n switch (esquema.type) {\n case 'numeric':\n return esquema?.default || 0;\n case 'string':\n case 'date':\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\n case 'boolean':\n return esquema?.default || false;\n case 'file':\n return null;\n case 'array':\n case 'object':\n for (const key in esquema?.properties) {\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\n }\n break;\n default:\n break;\n }\n return object;\n }\n\n setDefaultValue(value: string) {\n let data = null;\n let uactivo;\n switch (value) {\n case '@uactivo':\n uactivo = JSON.parse(localStorage.getItem('oSessionTFM') || '{}')\n if (!uactivo) console.log('Validar configuracion de sesion')\n else data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.UsuarioSistema.NDOC}`\n break;\n case '@tdocactivo':\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\n if (!uactivo) console.log('Validar configuracion de sesion')\n else data = uactivo.UsuarioSistema.TDOC\n break;\n case '@ndocactivo':\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\n if (!uactivo) console.log('Validar configuracion de sesion')\n else data = uactivo.UsuarioSistema.NDOC\n break;\n case '@hoy':\n data = new Date();\n break;\n default:\n data = value;\n break;\n }\n return data\n }\n\n submit() {\n this.applyValuesOnEvent('onSubmit', this.esquema);\n if (!this.validateData()) return;\n this.ref.close(this.data);\n }\n\n cancel() {\n this.ref.close();\n }\n\n validateData() {\n if (this.esquema.validations.type == 'local') return this.validateDataLocal();\n return true;\n }\n\n validateDataLocal() {\n let err: string[] = []\n this.esquema.validations.required.forEach((x: any) => {\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\n })\n if (err.length != 0) this.messageService.add({ severity: 'warn', detail: err.join('. ') })\n return err.length == 0;\n }\n\n applyValuesOnEvent(event: string, esquema: Shema) {\n for (const key in esquema.properties) {\n if (esquema.properties[key][event]) {\n esquema.properties[key][event].forEach((value: { op: string, scope?: string, key?: any }) => {\n jsonpath.value(this.data, `$..${key}`, this.getValueEvent(this.data, value))\n })\n }\n }\n }\n\n getValueEvent(data: any, params: { op: string, scope?: string, key?: any, separator?: string }) {\n let value;\n switch (params.op) {\n case 'sum':\n value = jsonpath.query(data, params?.scope || '').reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\n break;\n case 'concat':\n let array: string[] = []\n params.key.reduce((acc: any[], cur: string) => {\n console.log(jsonpath.query(this.data, cur)[0])\n array.push(jsonpath.query(this.data, cur)[0])\n }, [])\n if (params?.separator) value = array.join(params?.separator || ' ');\n break;\n default:\n break;\n }\n return value;\n }\n\n sendNotification(message: Message) {\n this.messageService.add(message)\n }\n}\n","<p-toast></p-toast>\n<div *ngFor=\"let element of uiEsquema.elements\" [class]=\"element?.class\" #a>\n <ng-container [ngSwitch]=\"element.type\">\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\n {{element?.label}}\n </div>\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\n <ng-container [ngSwitch]=\"el.type\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\n (sendNotification)=\"sendNotification($event)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\n <ng-container [ngSwitch]=\"el.type\">\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\n (sendNotification)=\"sendNotification($event)\"></sf-control>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'Control'\">\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\n </ng-container>\n </ng-container>\n</div>\n<div class=\"card-footer mt-2\">\n <button pButton pRipple type=\"button\" label=\"Guardar\" (click)=\"submit()\" class=\"mr-2\"></button>\n <button pButton pRipple type=\"button\" label=\"Cancelar\" (click)=\"cancel()\" class=\"p-button-danger\"></button>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigRegistro, CrudConfig, Operations } from '../../shared/services/models/crud-config.model';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport { RegistroChildComponent } from '../registro-child/registro-child.component';\r\nimport { Router } from '@angular/router';\r\nimport { Shema } from '../../shared/services/models/shema.model';\r\nimport { ComponentRef } from '@angular/core';\r\nimport * as jsonpath from 'jsonpath';\r\n\r\n@Component({\r\n selector: 'sf-registro',\r\n templateUrl: './registro.component.html',\r\n providers: [MessageService, DialogService, DynamicDialogConfig, DynamicDialogRef],\r\n entryComponents: [RegistroComponent]\r\n})\r\nexport class RegistroComponent implements OnInit {\r\n\r\n @Input() idKatios: string = '';\r\n @Input() idEntidad: string = '';\r\n @Input() trx: string = '';\r\n @Input() id: string = '';\r\n @Input() dataTemp: any;\r\n @Input() user: any;\r\n @Output() sendData: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public btnSubmit: any;\r\n public data: any;\r\n public configOperation: Operations = new Operations();\r\n public isLocal: boolean = false;\r\n public dialogRef?: DynamicDialogRef\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router,\r\n private messageSerice: MessageService,\r\n private dialogService: DialogService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud();\r\n this.setLabelSumbit();\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.crudConfig = res;\r\n console.log(this.crudConfig)\r\n if (this.trx != 'c') this.getInfoRegistro(this.crudConfig.registro);\r\n else {\r\n this.data = this.createObject(this.crudConfig.esquema);\r\n this.enProceso = false;\r\n }\r\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n setLabelSumbit() {\r\n if (this.trx == 'c') this.btnSubmit = { label: 'Guardar', icon: 'pi pi-save' }\r\n else if (this.trx == 'r') this.btnSubmit = undefined;\r\n else if (this.trx == 'u') this.btnSubmit = { label: 'Actualizar', icon: 'pi pi-sync' }\r\n else if (this.trx == 'd') this.btnSubmit = { label: 'Eliminar', icon: 'pi pi-trash' }\r\n }\r\n\r\n getInfoRegistro(configRegistro: ConfigRegistro) {\r\n let op = configRegistro.operations.find(x => x.type == 'read');\r\n let endpoint = op?.endpoint || '';\r\n endpoint = endpoint.replace('@idKatios', this.idKatios);\r\n endpoint = endpoint.replace('@id', this.id);\r\n this.generalService.genericRequest(op?.method || '', op?.server || '', endpoint)\r\n .then((res: any) => {\r\n this.data = res.data;\r\n this.enProceso = false;\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n back() {\r\n this.router.navigateByUrl(this.crudConfig.registro.btnBack);\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.crudConfig.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value))\r\n else jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n default:\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema);\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n let object = {};\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'array':\r\n return [];\r\n case 'file':\r\n return null;\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n submit() {\r\n console.log(this.data)\r\n if (!this.validateData()) return;\r\n this.applyValuesOnEvent('onSubmit', this.crudConfig.esquema)\r\n this.enProceso = true;\r\n let endpoint = this.configOperation.endpoint;\r\n endpoint = endpoint.replace('@idKatios', this.idKatios)\r\n endpoint = endpoint.replace('@id', this.id)\r\n this.generalService.genericRequest(this.configOperation.method, this.configOperation.server, endpoint, this.data)\r\n .then(() => {\r\n this.messageSerice.add({ severity: 'success', detail: `Proceso exitoso!` })\r\n setTimeout(() => {\r\n this.enProceso = false;\r\n this.back()\r\n }, 2000);\r\n })\r\n .catch(err => {\r\n this.messageSerice.add({ severity: 'warn', detail: `${err?.error?.message || 'Error no controlado, por favor comunicarse con del admin.'}` })\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n validateData() {\r\n if (this.configOperation.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.configOperation.validations?.required?.forEach(x => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n this.configOperation.validations?.operations?.forEach((op: any) => {\r\n switch (op.action) {\r\n case 'sumArray':\r\n let var1 = jsonpath.query(this.data, op.scope[0]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n let var2 = jsonpath.query(this.data, op.scope[1]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n if (var1 != var2) err.push(op.message)\r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n if (err.length != 0) this.messageSerice.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n setDefaultValue(value: string) {\r\n let data = null;\r\n switch (value) {\r\n case '@uactivo':\r\n data = `${this.user.UsuarioSistema.TDOC}-${this.user.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n data = this.user.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n data = this.user.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageSerice.add(message)\r\n }\r\n\r\n addObjectArray(element: any) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: `Detalle`,\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n id: this.getValue(element.scope).length + 1\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')].push(data);\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema)\r\n })\r\n }\r\n\r\n editRow(element: any, data: any) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: `Detalle`,\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n data: { ...data }\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')][data.id - 1] = data;\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema)\r\n })\r\n }\r\n\r\n deleteRow(element: any, index: number) {\r\n this.data[element.scope.replace('$..properties.', '')].splice(index - 1, 1);\r\n index = 1;\r\n this.data[element.scope.replace('$..properties.', '')].forEach((el: any) => {\r\n el.id = index;\r\n index++;\r\n })\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema)\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema) {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: { scope: string, op: string, key?: string }) => {\r\n jsonpath.value(this.data, `$..${key}`, this.getValueEvent(this.data, value))\r\n })\r\n }\r\n }\r\n }\r\n\r\n getValueEvent(data: any, params: { scope: string, op: string, key?: string }) {\r\n let value;\r\n switch (params.op) {\r\n case 'sum':\r\n value = jsonpath.query(data, params.scope).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\r\n break;\r\n default:\r\n break;\r\n }\r\n return value;\r\n }\r\n}\r\n","<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<p-toast></p-toast>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\r\n <span>{{crudConfig.registro?.label || idEntidad}} {{id != '' ? '-' + id : ''}}</span>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\r\n </h5>\r\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements\" [class]=\"element?.class\">\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\"></sf-control>\r\n <ng-container *ngSwitchCase=\"'Table'\">\r\n <p-table [value]=\"getValue(el.scope)\" [columns]=\"getControl(el.scope).config.columns\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <button pButton pRipple icon=\"pi pi-plus\" (click)=\"addObjectArray(el)\"\r\n class=\"p-button-success\"></button>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <th></th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <td>{{rowData[col.col]}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'currency:USD'\">\r\n <td>{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <td>\r\n <!-- <button pButton pRipple type=\"button\" (click)=\"editRow(el, rowData)\" icon=\"pi pi-pencil\" class=\"p-button-rounded p-button-info mr-1\"></button> -->\r\n <button pButton pRipple type=\"button\" (click)=\"deleteRow(el, rowIndex)\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-danger\"></button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Control'\">\r\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"card-footer mt-2\" *ngIf=\"btnSubmit\">\r\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\"\r\n (click)=\"submit()\"></button>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-sf-crud',\r\n template: `\r\n <p>\r\n sf-crud works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class SfCrudComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\n//=========================================================\r\n// PrimeNG Modules\r\n//=========================================================\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CardModule } from 'primeng/card';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { ChipsModule } from 'primeng/chips';\r\nimport { CodeHighlighterModule } from 'primeng/codehighlighter';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { InplaceModule } from 'primeng/inplace';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { KnobModule } from 'primeng/knob';\r\nimport { LightboxModule } from 'primeng/lightbox';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { MegaMenuModule } from 'primeng/megamenu';\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { MessageModule } from 'primeng/message';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OrganizationChartModule } from 'primeng/organizationchart';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { RatingModule } from 'primeng/rating';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { ScrollTopModule } from 'primeng/scrolltop';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { SlideMenuModule } from 'primeng/slidemenu';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { SplitterModule } from 'primeng/splitter';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TagModule } from 'primeng/tag';\r\nimport { TerminalModule } from 'primeng/terminal';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { ToolbarModule } from 'primeng/toolbar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { TreeModule } from 'primeng/tree';\r\n\r\n//=========================================================\r\n// Componets\r\n//=========================================================\r\nimport { SfCrudComponent } from './sf-crud.component';\r\nimport { TableroComponent } from './components/tablero/tablero.component';\r\nimport { RegistroComponent } from './components/registro/registro.component';\r\nimport { ControlComponent } from './components/control/control.component';\r\nimport { RegistroChildComponent } from './components/registro-child/registro-child.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent,\r\n RegistroChildComponent\r\n ],\r\n imports: [\r\n AccordionModule,\r\n AutoCompleteModule,\r\n AvatarGroupModule,\r\n AvatarModule,\r\n BadgeModule,\r\n BlockUIModule,\r\n BreadcrumbModule,\r\n ButtonModule,\r\n CalendarModule,\r\n CardModule,\r\n CarouselModule,\r\n CascadeSelectModule,\r\n CheckboxModule,\r\n ChipModule,\r\n ChipsModule,\r\n CodeHighlighterModule,\r\n ColorPickerModule,\r\n ConfirmDialogModule,\r\n ConfirmPopupModule,\r\n ContextMenuModule,\r\n DialogModule,\r\n DividerModule,\r\n DropdownModule,\r\n DynamicDialogModule,\r\n FieldsetModule,\r\n FileUploadModule,\r\n FormsModule,\r\n GalleriaModule,\r\n HttpClientModule,\r\n InplaceModule,\r\n InputMaskModule,\r\n InputNumberModule,\r\n InputSwitchModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n KnobModule,\r\n LightboxModule,\r\n ListboxModule,\r\n MegaMenuModule,\r\n MenubarModule,\r\n MenuModule,\r\n MessageModule,\r\n MessagesModule,\r\n MultiSelectModule,\r\n OrganizationChartModule,\r\n OverlayPanelModule,\r\n PanelMenuModule,\r\n PanelModule,\r\n PasswordModule,\r\n ProgressBarModule,\r\n RadioButtonModule,\r\n RatingModule,\r\n RippleModule,\r\n ScrollPanelModule,\r\n ScrollTopModule,\r\n SelectButtonModule,\r\n SidebarModule,\r\n SkeletonModule,\r\n SlideMenuModule,\r\n SliderModule,\r\n SplitterModule,\r\n StepsModule,\r\n TableModule,\r\n TabMenuModule,\r\n TabViewModule,\r\n TagModule,\r\n TerminalModule,\r\n TieredMenuModule,\r\n TimelineModule,\r\n ToastModule,\r\n ToggleButtonModule,\r\n ToolbarModule,\r\n TooltipModule,\r\n TreeModule,\r\n ],\r\n exports: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent\r\n ],\r\n entryComponents: [\r\n RegistroChildComponent\r\n ]\r\n})\r\nexport class SfCrudModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SfCrudService {\r\n\r\n constructor() { }\r\n}\r\n","/*\r\n * Public API Surface of sf-crud\r\n */\r\n\r\nexport * from './lib/components/tablero/tablero.component';\r\nexport * from './lib/components/registro/registro.component';\r\nexport * from './lib/components/control/control.component';\r\nexport * from './lib/sf-crud.component';\r\nexport * from './lib/sf-crud.module';\r\nexport * from './lib/sf-crud.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GeneralService","i7","i2","i3","i4","i5","i6","i8","i9","i11","i1","i4.ControlComponent","i7.ControlComponent","i10"],"mappings":"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"}